-- LocalScript (StarterPlayerScripts) local Players = game:GetService("Players") local player = Players.LocalPlayer local RunService = game:GetService("RunService") -- Config local DEFAULT_POWER = 50 local POWER_INCREMENT = 1 local POWER_TICK_INTERVAL = 1 local MIN_POWER = 0 local MAX_POWER = 500 local DEFAULT_ROBUX = 0 local ROBUX_INCREMENT = 1 local ROBUX_TICK_INTERVAL = 5 local DEFAULT_TIX = 0 local TIX_INCREMENT = 1 local TIX_TICK_INTERVAL = 3 -- State local running = false local mode = "Jump" local powerValue = DEFAULT_POWER local robuxValue = DEFAULT_ROBUX local tixValue = DEFAULT_TIX -- Ensure NumberValues exist local function ensureStat(name, default) local v = player:FindFirstChild(name) if not v then v = Instance.new("NumberValue") v.Name = name v.Value = default v.Parent = player end return v end local powerStat = ensureStat("PowerStat", powerValue) local robuxStat = ensureStat("RobuxStat", robuxValue) local tixStat = ensureStat("TixStat", tixValue) -- Clamp local function clamp(n, lo, hi) if lo and n < lo then return lo end if hi and n > hi then return hi end return n end -- Apply power to humanoid local function applyToCharacter(char) if not char then return end local humanoid = char:FindFirstChildOfClass("Humanoid") if not humanoid then return end if mode == "Jump" then pcall(function() humanoid.JumpPower = clamp(powerValue, MIN_POWER, MAX_POWER) end) else pcall(function() humanoid.WalkSpeed = clamp(powerValue, MIN_POWER, MAX_POWER) end) end end -- On respawn local function onCharacterAdded(char) char:WaitForChild("Humanoid", 5) applyToCharacter(char) end if player.Character then onCharacterAdded(player.Character) end player.CharacterAdded:Connect(onCharacterAdded) -- Create GUI local function createGui() local screenGui = Instance.new("ScreenGui") screenGui.Name = "StatsGui" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") -- Draggable frame local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 280, 0, 300) mainFrame.Position = UDim2.new(0, 10, 0, 10) mainFrame.BackgroundColor3 = Color3.fromRGB(20,20,20) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui local frameCorner = Instance.new("UICorner", mainFrame) frameCorner.CornerRadius = UDim.new(0, 10) local uiListLayout = Instance.new("UIListLayout") uiListLayout.Padding = UDim.new(0,6) uiListLayout.FillDirection = Enum.FillDirection.Vertical uiListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center uiListLayout.SortOrder = Enum.SortOrder.LayoutOrder -- Scrolling frame for stats local scrollFrame = Instance.new("ScrollingFrame") scrollFrame.Size = UDim2.new(1,-10,1,-10) scrollFrame.Position = UDim2.new(0,5,0,5) scrollFrame.CanvasSize = UDim2.new(0,0,0,0) -- will update dynamically scrollFrame.ScrollBarThickness = 8 scrollFrame.BackgroundTransparency = 1 scrollFrame.BorderSizePixel = 0 scrollFrame.Parent = mainFrame local uiCorner2 = Instance.new("UICorner", scrollFrame) uiCorner2.CornerRadius = UDim.new(0,8) local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0,6) layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Parent = scrollFrame -- Helper to create labels local function createStatLabel(icon, text) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1,-10,0,28) lbl.BackgroundColor3 = Color3.fromRGB(40,40,40) lbl.TextColor3 = Color3.fromRGB(255,255,255) lbl.BackgroundTransparency = 0.1 lbl.Font = Enum.Font.SourceSansBold lbl.TextSize = 16 lbl.Text = icon.." "..text lbl.Parent = scrollFrame local corner = Instance.new("UICorner", lbl) corner.CornerRadius = UDim.new(0,6) return lbl end local titleLabel = createStatLabel("📊", "Stats Panel") titleLabel.TextSize = 18 local modeLabel = createStatLabel(mode=="Jump" and "🏃‍♂️" or "⚡", "Mode: "..mode) local powerLabel = createStatLabel(mode=="Jump" and "🏃‍♂️" or "⚡", "Power: "..powerValue) local robuxLabel = createStatLabel("💰", "Robux: "..robuxValue) local tixLabel = createStatLabel("🎟️", "Tix: "..tixValue) -- Buttons local function createButton(text) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1,-10,0,32) btn.BackgroundColor3 = Color3.fromRGB(70,70,70) btn.TextColor3 = Color3.fromRGB(255,255,255) btn.Font = Enum.Font.SourceSansBold btn.TextSize = 16 btn.Text = text btn.Parent = scrollFrame local corner = Instance.new("UICorner", btn) corner.CornerRadius = UDim.new(0,6) return btn end local startStopBtn = createButton("Start") local switchBtn = createButton("Switch Jump/Speed") local resetBtn = createButton("Reset Power") -- Function to update scroll canvas size local function updateCanvas() scrollFrame.CanvasSize = UDim2.new(0,0,0,layout.AbsoluteContentSize.Y + 10) end layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(updateCanvas) updateCanvas() -- Button logic startStopBtn.MouseButton1Click:Connect(function() running = not running startStopBtn.Text = running and "Stop" or "Start" end) switchBtn.MouseButton1Click:Connect(function() mode = (mode=="Jump") and "Speed" or "Jump" modeLabel.Text = (mode=="Jump" and "🏃‍♂️" or "⚡").." Mode: "..mode powerLabel.Text = (mode=="Jump" and "🏃‍♂️" or "⚡").." Power: "..powerValue if player.Character then applyToCharacter(player.Character) end end) resetBtn.MouseButton1Click:Connect(function() powerValue = DEFAULT_POWER powerStat.Value = powerValue powerLabel.Text = (mode=="Jump" and "🏃‍♂️" or "⚡").." Power: "..powerValue if player.Character then applyToCharacter(player.Character) end end) return { PowerLabel = powerLabel, RobuxLabel = robuxLabel, TixLabel = tixLabel, ModeLabel = modeLabel, StartStopBtn = startStopBtn } end local gui = createGui() -- Power loop task.spawn(function() while true do if running then powerValue = clamp(powerValue + POWER_INCREMENT, MIN_POWER, MAX_POWER) powerStat.Value = powerValue gui.PowerLabel.Text = (mode=="Jump" and "🏃‍♂️" or "⚡").." Power: "..powerValue if player.Character then applyToCharacter(player.Character) end end task.wait(POWER_TICK_INTERVAL) end end) -- Robux loop task.spawn(function() while true do robuxValue = robuxValue + ROBUX_INCREMENT robuxStat.Value = robuxValue gui.RobuxLabel.Text = "💰 Robux: "..robuxValue task.wait(ROBUX_TICK_INTERVAL) end end) -- Tix loop task.spawn(function() while true do tixValue = tixValue + TIX_INCREMENT tixStat.Value = tixValue gui.TixLabel.Text = "🎟️ Tix: "..tixValue task.wait(TIX_TICK_INTERVAL) end end) -- Keep labels synced powerStat.Changed:Connect(function() powerValue = powerStat.Value gui.PowerLabel.Text = (mode=="Jump" and "🏃‍♂️" or "⚡").." Power: "..powerValue end) robuxStat.Changed:Connect(function() robuxValue = robuxStat.Value gui.RobuxLabel.Text = "💰 Robux: "..robuxValue end) tixStat.Changed:Connect(function() tixValue = tixStat.Value gui.TixLabel.Text = "🎟️ Tix: "..tixValue end) -- Optional hotkey local UserInputService = game:GetService("UserInputService") UserInputService.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == Enum.KeyCode.Space then running = not running gui.StartStopBtn.Text = running and "Stop" or "Start" end end) -- Apply stats immediately if player.Character then applyToCharacter(player.Character) end