
KeylessUniversal

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)



CHANGELOGS | RECENT: MARCH 27, 2025 • "normalSpeed" bases on StarterPlayer's Default Character Walk Speed Explaination: The "normalSpeed" was on a fixed number, which was 16, and this can be detected by moderators who can ban players