-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. 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 Rscripts 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)