M
Description
So basically it just solves chronos's clock puzzle for you.
GAMEThe Battle Bricks
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop & Mobile
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local CoreGui = game:GetService("CoreGui")
local UserInputService = game:GetService("UserInputService")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
-- Direct ID -> Value map for fast O(1) lookup
local minuteIdMap = {
["129199740637798"] = 1,
["138795220647217"] = 2,
["122297843372758"] = 3,
["84468735573099"] = 4,
["139585842395420"] = 5,
["114420297720959"] = 6,
["126597147911095"] = 7,
["139541364348217"] = 8,
["85743552777717"] = 9,
["70504232472778"] = 10,
["95962531510845"] = 11,
["113664476715192"] = 12
}
local autoClickEnabled = false
local function sendNotify(title, text)
pcall(function()
StarterGui:SetCore("SendNotification", {
Title = title,
Text = text,
Duration = 3
})
end)
end
local function extractAssetId(propertyString)
if not propertyString then return nil end
return string.match(propertyString, "%d+")
end
local function getTimeFromImage(imageProperty)
local id = extractAssetId(imageProperty)
return id and minuteIdMap[id] or nil
end
local function normalizeToClock(value)
local result = value % 12
if result <= 0 then
result = result + 12
end
return result
end
local function isSubtractedClock(clockFrame)
if clockFrame:IsA("GuiObject") then
local bgColor = clockFrame.BackgroundColor3
if bgColor.R < 0.5 or (bgColor.R > 0.7 and bgColor.G < 0.3) then
return true
end
end
local bgImage = clockFrame:FindFirstChild("Background") or clockFrame:FindFirstChild("Inverted")
if bgImage and bgImage:IsA("ImageLabel") and bgImage.Visible then
return true
end
return false
end
local function findQuizGui()
local searchLocations = { player:FindFirstChild("PlayerGui"), CoreGui }
for _, location in ipairs(searchLocations) do
if location then
local exact = location:FindFirstChild("ClockQuiz")
if exact then return exact end
for _, child in ipairs(location:GetChildren()) do
local name = child.Name:lower()
if name:find("clock") or name:find("quiz") or name:find("chronos") then
return child
end
end
end
end
return nil
end
local function clickGuiElement(element)
if not element then return end
local pos = element.AbsolutePosition
local size = element.AbsoluteSize
local centerX = pos.X + (size.X / 2)
local centerY = pos.Y + (size.Y / 2) + 36 -- Account for Roblox inset bar
pcall(function()
VirtualInputManager:SendMouseButtonEvent(centerX, centerY, 0, true, game, 1)
task.wait(0.05)
VirtualInputManager:SendMouseButtonEvent(centerX, centerY, 0, false, game, 1)
end)
end
local function runQuiz()
local gui = findQuizGui()
if not gui then return false end
local frame = gui:FindFirstChild("Frame") or gui:FindFirstChildWhichIsA("Frame", true)
local question = frame and (frame:FindFirstChild("Question") or frame:FindFirstChild("QuestionTroll") or frame:FindFirstChildWhichIsA("Frame"))
local choices = frame and (frame:FindFirstChild("Choices") or frame:FindFirstChild("Answers"))
if not (question and choices) then return false end
local minuteSum = 0
local clockCount = 0
for _, obj in ipairs(question:GetChildren()) do
if obj.Name:lower():find("clock") or obj:FindFirstChild("Minute") then
local min = obj:FindFirstChild("Minute") or obj:FindFirstChildWhichIsA("ImageLabel", true)
local minVal = min and getTimeFromImage(min.Image)
if minVal then
clockCount += 1
if isSubtractedClock(obj) then
minuteSum -= minVal
else
minuteSum += minVal
end
end
end
end
if clockCount == 0 then return false end
local targetValue = normalizeToClock(minuteSum)
local matchedAnswer = nil
for _, ans in ipairs(choices:GetChildren()) do
if ans:IsA("ImageButton") or ans:IsA("GuiButton") then
local min = ans:FindFirstChild("Minute") or ans:FindFirstChildWhichIsA("ImageLabel", true)
local minVal = min and getTimeFromImage(min.Image)
if minVal == targetValue then
matchedAnswer = ans
break
end
end
end
if matchedAnswer then
clickGuiElement(matchedAnswer)
return true
end
return false
end
-- Mobile & PC Compatible Native UI
local guiName = "ChronosSolverMobileUI"
local existingGui = player:WaitForChild("PlayerGui"):FindFirstChild(guiName)
if existingGui then existingGui:Destroy() end
local screenGui = Instance.new("ScreenGui")
screenGui.Name = guiName
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 180, 0, 130)
mainFrame.Position = UDim2.new(0.5, -90, 0.15, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Parent = screenGui
local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, 10)
uiCorner.Parent = mainFrame
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, 0, 0, 30)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Clock Solver"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.TextSize = 15
titleLabel.Font = Enum.Font.SourceSansBold
titleLabel.Parent = mainFrame
local solveButton = Instance.new("TextButton")
solveButton.Size = UDim2.new(0.85, 0, 0, 35)
solveButton.Position = UDim2.new(0.075, 0, 0.28, 0)
solveButton.BackgroundColor3 = Color3.fromRGB(0, 120, 215)
solveButton.Text = "Solve Once"
solveButton.TextColor3 = Color3.fromRGB(255, 255, 255)
solveButton.TextSize = 14
solveButton.Font = Enum.Font.SourceSans
solveButton.Parent = mainFrame
local buttonCorner = Instance.new("UICorner")
buttonCorner.CornerRadius = UDim.new(0, 6)
buttonCorner.Parent = solveButton
local toggleButton = Instance.new("TextButton")
toggleButton.Size = UDim2.new(0.85, 0, 0, 35)
toggleButton.Position = UDim2.new(0.075, 0, 0.62, 0)
toggleButton.BackgroundColor3 = Color3.fromRGB(180, 40, 40)
toggleButton.Text = "Auto Pick (Lazy:D): OFF"
toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleButton.TextSize = 12
toggleButton.Font = Enum.Font.SourceSans
toggleButton.Parent = mainFrame
local toggleCorner = Instance.new("UICorner")
toggleCorner.CornerRadius = UDim.new(0, 6)
toggleCorner.Parent = toggleButton
-- Dragging Mechanics (Mouse + Touch)
local dragging = false
local dragInput, dragStart, startPos
local function updateInput(input)
local delta = input.Position - dragStart
mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
mainFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = mainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
mainFrame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
updateInput(input)
end
end)
-- Button Listeners
solveButton.MouseButton1Click:Connect(function()
local success = runQuiz()
if not success then
sendNotify("Solver", "Quiz GUI not found or inactive.")
end
end)
toggleButton.MouseButton1Click:Connect(function()
autoClickEnabled = not autoClickEnabled
if autoClickEnabled then
toggleButton.BackgroundColor3 = Color3.fromRGB(40, 180, 40)
toggleButton.Text = "Auto Pick (Lazy:D): ON"
sendNotify("Auto Pick", "Started automatically picking answers.")
else
toggleButton.BackgroundColor3 = Color3.fromRGB(180, 40, 40)
toggleButton.Text = "Auto Pick (Lazy:D): OFF"
sendNotify("Auto Pick", "Stopped.")
end
end)
-- Background loop for Auto Pick
task.spawn(function()
while true do
if autoClickEnabled then
runQuiz()
end
task.wait(0.3)
end
end)Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place