--[[ ⚡ Chimera Utility Hub — Retro Edition • AutoClicker 20 CPS (RenderStepped; no explicit waits) • WalkSpeed 50 toggle • Auto Flux / Surge / Prestige (every 30s, TP + jump, +6 Y boost) • One-click Runes (Starter / Quantum) • Draggable, minimizable (still draggable), closable Drop as a LocalScript (e.g., StarterPlayerScripts). ]] ----------------------- -- Services & Handles ----------------------- local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local GuiService = game:GetService("GuiService") local VIM = game:GetService("VirtualInputManager") local player = Players.LocalPlayer local PlayerGui = player:WaitForChild("PlayerGui") ----------------------- -- Character helpers ----------------------- local humanoid, hrp local function attachCharacter(char) char = char or player.Character or player.CharacterAdded:Wait() hrp = char:WaitForChild("HumanoidRootPart") humanoid = char:WaitForChild("Humanoid") end attachCharacter(player.Character or player.CharacterAdded:Wait()) player.CharacterAdded:Connect(function(char) attachCharacter(char) if _G.__CHIMERA_WS50_ENABLED then task.defer(function() if humanoid then humanoid.WalkSpeed = 50 end end) end end) ----------------------- -- Remove old UI if re-run ----------------------- local OLD = PlayerGui:FindFirstChild("Chimera_UI") if OLD then OLD:Destroy() end ----------------------- -- State ----------------------- local STATE = { minimized = false, clickConn = nil, -- RenderStepped connection for clicker clicking = false, loops = {}, -- name -> {running=true} } _G.__CHIMERA_WS50_ENABLED = _G.__CHIMERA_WS50_ENABLED or false ----------------------- -- Coords (+ small Y boost) ----------------------- local Y_BOOST = 6 local LOCS = { Flux = Vector3.new(-190, 267, -1810), Surge = Vector3.new(-203, 267, -1776), Prestige = Vector3.new(-255, 274, -1692), RuneStarter = Vector3.new(-319, 267, -1791), RuneQuantum = Vector3.new(-318, 267, -1830), } local function withBoost(v) return Vector3.new(v.X, v.Y + Y_BOOST, v.Z) end ----------------------- -- Helpers (TP/Jump & timers) ----------------------- local function tpJump(vec3) if hrp and humanoid then hrp.CFrame = CFrame.new(vec3) humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end local function startLoop(name, stepSeconds, fn) if STATE.loops[name] and STATE.loops[name].running then STATE.loops[name].running = false task.wait() -- give previous loop a tick to end end STATE.loops[name] = { running = true } local slot = STATE.loops[name] task.spawn(function() while slot.running do fn() local t = 0 while slot.running and t < stepSeconds do t += task.wait(0.1) end end end) end local function stopLoop(name) if STATE.loops[name] then STATE.loops[name].running = false end end ----------------------- -- AutoClicker (20 CPS, no explicit waits) ----------------------- local function sendLeftClickAtMouse() local pos = UserInputService:GetMouseLocation() local inset = GuiService:GetGuiInset() local vx, vy = pos.X - inset.X, pos.Y - inset.Y -- 0 = left mouse VIM:SendMouseButtonEvent(vx, vy, 0, true, game, 0) VIM:SendMouseButtonEvent(vx, vy, 0, false, game, 0) end local function startClicking20() if STATE.clicking then return end STATE.clicking = true local acc = 0 -- accumulator to fire exactly at 20 Hz local interval = 1/20 -- 0.05s STATE.clickConn = RunService.RenderStepped:Connect(function(dt) acc += dt while acc >= interval do sendLeftClickAtMouse() acc -= interval end end) end local function stopClicking() STATE.clicking = false if STATE.clickConn then STATE.clickConn:Disconnect() STATE.clickConn = nil end end ----------------------- -- Retro UI (Arcade theme) ----------------------- local function retroStroke(inst, thickness, color) local s = Instance.new("UIStroke") s.Thickness = thickness or 2 s.Color = color or Color3.fromRGB(35, 255, 155) s.ApplyStrokeMode = Enum.ApplyStrokeMode.Border s.Parent = inst return s end local function retroCorners(inst, r) local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, r or 10) c.Parent = inst return c end -- Palette local COL_BG = Color3.fromRGB(12, 12, 14) -- deep black local COL_PNL = Color3.fromRGB(20, 22, 26) -- panel local COL_HDR = Color3.fromRGB(18, 18, 22) -- header bar local COL_TXT = Color3.fromRGB(230, 255, 230) -- greenish white local COL_BTN = Color3.fromRGB(26, 30, 36) -- button idle local COL_BTN_ON = Color3.fromRGB(38, 120, 80) -- on/active local COL_BTN_WARN = Color3.fromRGB(70, 52, 52) -- off/warn local COL_ACC = Color3.fromRGB(35, 255, 155) -- neon green local gui = Instance.new("ScreenGui") gui.Name = "Chimera_UI" gui.IgnoreGuiInset = true gui.ResetOnSpawn = false gui.Parent = PlayerGui local main = Instance.new("Frame") main.Size = UDim2.fromOffset(360, 390) main.Position = UDim2.new(0.5, -180, 0.3, 0) main.BackgroundColor3 = COL_PNL main.BorderSizePixel = 0 main.Parent = gui retroCorners(main, 14) retroStroke(main, 2, COL_ACC) -- subtle outer frame for retro bezel local bezel = Instance.new("Frame") bezel.Size = UDim2.new(1, 8, 1, 8) bezel.Position = UDim2.fromOffset(-4, -4) bezel.BackgroundColor3 = COL_BG bezel.BorderSizePixel = 0 bezel.ZIndex = 0 bezel.Parent = main retroCorners(bezel, 16) local header = Instance.new("Frame") header.Size = UDim2.new(1, 0, 0, 36) header.BackgroundColor3 = COL_HDR header.BorderSizePixel = 0 header.Parent = main retroCorners(header, 14) retroStroke(header, 2, COL_ACC) local title = Instance.new("TextLabel") title.BackgroundTransparency = 1 title.Text = "⚡ Chimera Utility Hub" title.Font = Enum.Font.Arcade -- retro look (falls back if unavailable) title.TextSize = 22 title.TextColor3 = COL_TXT title.TextXAlignment = Enum.TextXAlignment.Left title.Position = UDim2.fromOffset(12, 0) title.Size = UDim2.new(1, -110, 1, 0) title.Parent = header local btnClose = Instance.new("TextButton") btnClose.Text = "■" btnClose.Font = Enum.Font.Arcade btnClose.TextSize = 18 btnClose.TextColor3 = COL_TXT btnClose.AutoButtonColor = false btnClose.BackgroundColor3 = COL_BTN_WARN btnClose.Size = UDim2.fromOffset(28, 24) btnClose.Position = UDim2.new(1, -34, 0.5, -12) btnClose.Parent = header retroCorners(btnClose, 6) retroStroke(btnClose, 1, COL_ACC) local btnMin = Instance.new("TextButton") btnMin.Text = "▭" btnMin.Font = Enum.Font.Arcade btnMin.TextSize = 18 btnMin.TextColor3 = COL_TXT btnMin.AutoButtonColor = false btnMin.BackgroundColor3 = COL_BTN btnMin.Size = UDim2.fromOffset(28, 24) btnMin.Position = UDim2.new(1, -68, 0.5, -12) btnMin.Parent = header retroCorners(btnMin, 6) retroStroke(btnMin, 1, COL_ACC) local content = Instance.new("Frame") content.Size = UDim2.new(1, -20, 1, -48) content.Position = UDim2.fromOffset(10, 42) content.BackgroundTransparency = 1 content.Parent = main local function makeButton(parent, text, y) local b = Instance.new("TextButton") b.Size = UDim2.fromOffset(320, 34) b.Position = UDim2.new(0.5, -160, 0, y) b.BackgroundColor3 = COL_BTN b.Text = text b.Font = Enum.Font.Arcade b.TextSize = 20 b.TextColor3 = COL_TXT b.AutoButtonColor = true b.Parent = parent retroCorners(b, 8) retroStroke(b, 1, COL_ACC) return b end local function makeLabel(parent, text, y) local l = Instance.new("TextLabel") l.BackgroundTransparency = 1 l.Text = text l.Font = Enum.Font.Arcade l.TextSize = 18 l.TextColor3 = COL_TXT l.Position = UDim2.new(0.5, -160, 0, y) l.Size = UDim2.fromOffset(320, 22) l.Parent = parent return l end -- Controls local btnClicker = makeButton(content, "AutoClicker: OFF (20 CPS)", 0) local btnWS = makeButton(content, "WalkSpeed: Default", 42) local btnFlux = makeButton(content, "Auto Flux (30s): OFF", 84) local btnSurge = makeButton(content, "Auto Surge (30s): OFF", 126) local btnPrestige = makeButton(content, "Auto Prestige (30s): OFF", 168) local lblRunes = makeLabel(content, "Runes:", 210) local btnStarter = makeButton(content, "Starter Rune (TP)", 236) local btnQuantum = makeButton(content, "Quantum Rune (TP)", 278) local credit = Instance.new("TextLabel") credit.BackgroundTransparency = 1 credit.Text = "Credit: Chimera__Gaming" credit.Font = Enum.Font.Arcade credit.TextSize = 16 credit.TextColor3 = Color3.fromRGB(140, 220, 180) credit.Position = UDim2.new(0, 12, 1, -22) credit.Size = UDim2.fromOffset(320, 18) credit.TextXAlignment = Enum.TextXAlignment.Left credit.Parent = content ----------------------- -- Dragging (header keeps drag when minimized) ----------------------- local dragging, dragStart, startPos local function updateDrag(input) if not dragging then return end local delta = input.Position - dragStart main.Position = UDim2.fromOffset(startPos.X.Offset + delta.X, startPos.Y.Offset + delta.Y) end header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = main.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) header.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then updateDrag(input) end end) UserInputService.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then updateDrag(input) end end) ----------------------- -- Wire up buttons ----------------------- -- Close btnClose.MouseButton1Click:Connect(function() stopClicking() stopLoop("Flux"); stopLoop("Surge"); stopLoop("Prestige") gui:Destroy() end) -- Minimize (header remains => still draggable) btnMin.MouseButton1Click:Connect(function() STATE.minimized = not STATE.minimized content.Visible = not STATE.minimized main.Size = STATE.minimized and UDim2.fromOffset(240, 44) or UDim2.fromOffset(360, 340) title.Text = STATE.minimized and "⚡ Chimera Hub" or "⚡ Chimera Utility Hub" end) -- Autoclicker toggle (20 CPS) btnClicker.MouseButton1Click:Connect(function() if STATE.clicking then stopClicking() btnClicker.Text = "AutoClicker: OFF (20 CPS)" btnClicker.BackgroundColor3 = COL_BTN else startClicking20() btnClicker.Text = "AutoClicker: ON (20 CPS)" btnClicker.BackgroundColor3 = COL_BTN_ON end end) -- WalkSpeed 50 toggle btnWS.MouseButton1Click:Connect(function() _G.__CHIMERA_WS50_ENABLED = not _G.__CHIMERA_WS50_ENABLED if _G.__CHIMERA_WS50_ENABLED then if humanoid then humanoid.WalkSpeed = 50 end btnWS.Text = "WalkSpeed: 50" btnWS.BackgroundColor3 = COL_BTN_ON else if humanoid then humanoid.WalkSpeed = 16 end btnWS.Text = "WalkSpeed: Default" btnWS.BackgroundColor3 = COL_BTN end end) -- Auto Flux / Surge / Prestige (every 30s TP + jump; +Y boost) local function toggleAuto(name, button, baseVec) if STATE.loops[name] and STATE.loops[name].running then stopLoop(name) button.Text = ("Auto %s (30s): OFF"):format(name) button.BackgroundColor3 = COL_BTN else startLoop(name, 30, function() tpJump(withBoost(baseVec)) end) button.Text = ("Auto %s (30s): ON"):format(name) button.BackgroundColor3 = COL_BTN_ON end end btnFlux.MouseButton1Click:Connect(function() toggleAuto("Flux", btnFlux, LOCS.Flux) end) btnSurge.MouseButton1Click:Connect(function() toggleAuto("Surge", btnSurge, LOCS.Surge) end) btnPrestige.MouseButton1Click:Connect(function()toggleAuto("Prestige", btnPrestige, LOCS.Prestige) end) -- One-click Rune teleports (with small Y boost + jump) btnStarter.MouseButton1Click:Connect(function() tpJump(withBoost(LOCS.RuneStarter)) end) btnQuantum.MouseButton1Click:Connect(function() tpJump(withBoost(LOCS.RuneQuantum)) end)