local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local Debris = game:GetService("Debris") local player = Players.LocalPlayer local scriptInstance = script local normalSpeed = game.StarterPlayer.CharacterWalkSpeed -- Default walk speed { DO NOT CHANGE } local boostedSpeed = 30 -- Speed when toggled { CHANGE IF YOU WANT } local speedStep = 5 -- Speed adjustment step { CHANGE IF YOU WANT } local maxSpeed = 1000 -- Maximum walk speed { CHANGE IF YOU WANT } local minSpeed = 10 -- Minimum walk speed { CHANGE IF YOU WANT } local isBoosted = false local lastSemicolonPress = 0 local inputConnection local tutorialShown = false -- Function to display speed change notification local function displayText(text, bool, lineCount) if not bool then return end local screenGui = Instance.new("ScreenGui") screenGui.Parent = player:FindFirstChild("PlayerGui") local textLabel = Instance.new("TextLabel") textLabel.Size = UDim2.new(0, 400, 0, 100 * (lineCount or 1)) textLabel.Position = UDim2.new(0.5, -200, 0.1, 0) textLabel.BackgroundTransparency = 0.2 textLabel.BackgroundColor3 = Color3.new(0, 0, 0) textLabel.TextColor3 = Color3.new(1, 1, 1) textLabel.TextScaled = true textLabel.Text = text textLabel.Parent = screenGui Debris:AddItem(screenGui, 2) -- Remove GUI after 2 seconds end -- Function to show tutorial local function showTutorial() task.wait(5) -- Delay before showing tutorial if not tutorialShown then tutorialShown = true displayText(string.format( "Page Up = Increase WalkSpeed \nPage Down = Decrease WalkSpeed \nHome = Toggle Speed Change \nSemicolon [ ; ] (2x) = Delete Code"), true, 4 ) end end -- DO NOT MESS IF YOU DON'T KNOW WHAT TO DO!! local function setupCharacter(character) local humanoid = character:WaitForChild("Humanoid") -- Function to update speed based on toggle state local function updateSpeed() if isBoosted then humanoid.WalkSpeed = boostedSpeed else humanoid.WalkSpeed = normalSpeed end end -- Apply correct speed when character resets updateSpeed() -- Detect WalkSpeed changes and reset if toggled humanoid:GetPropertyChangedSignal("WalkSpeed"):Connect(function() updateSpeed() end) -- Disconnect previous input connection to prevent duplication if inputConnection then inputConnection:Disconnect() end -- Key input handling inputConnection = UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.Home then isBoosted = not isBoosted updateSpeed() displayText(string.format("Speed Toggled: %s", isBoosted and "ON" or "OFF"), true, 1) elseif input.KeyCode == Enum.KeyCode.PageUp then if isBoosted then boostedSpeed = math.min(boostedSpeed + speedStep, maxSpeed) updateSpeed() displayText(string.format("Changed WalkSpeed to %d", humanoid.WalkSpeed), true, 1) end elseif input.KeyCode == Enum.KeyCode.PageDown then if isBoosted then boostedSpeed = math.max(boostedSpeed - speedStep, minSpeed) updateSpeed() displayText(string.format("Changed WalkSpeed to %d", humanoid.WalkSpeed), true, 1) end elseif input.KeyCode == Enum.KeyCode.Semicolon then local currentTime = tick() if currentTime - lastSemicolonPress <= 0.5 then displayText("Script destroyed!", true, 1) -- Notify before destroying task.wait(0.5) -- Small delay so message is visible scriptInstance:Destroy() end lastSemicolonPress = currentTime end end) end -- Setup character initially and on respawn if player.Character then setupCharacter(player.Character) showTutorial() end player.CharacterAdded:Connect(function(character) setupCharacter(character) showTutorial() end)