Speed Setter
Key RequiredUniversal

Speed Setter

Universal Scriptddorredoreddorredore 2.2K views 1.3K executesUpdated Jun 24, 2025
0.0/ 5(1 votes)
010% Positive
Lua Script•177 lines (4951 chars)
-- LocalScript inside StarterPlayerScripts

local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local RS = game:GetService("RunService")

local player = Players.LocalPlayer
local gui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
gui.Name = "SpeedGui"
gui.ResetOnSpawn = false

-- Setup values
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local originalSpeed = humanoid.WalkSpeed
local currentSpeed = originalSpeed
local dragging = false
local loopEnabled = false
local locked = false
local collapsed = false
local loopConn

-- GUI Base
local main = Instance.new("Frame")
main.Name = "MainFrame"
main.Size = UDim2.new(0, 330, 0, 250)
main.Position = UDim2.new(0.2, 0, 0.2, 0)
main.BackgroundColor3 = Color3.fromRGB(0, 30, 60)
main.Active = true
main.Draggable = true
main.Parent = gui
Instance.new("UICorner", main)

-- Title
local title = Instance.new("TextLabel", main)
title.Size = UDim2.new(1, 0, 0, 30)
title.BackgroundTransparency = 1
title.Text = "Speed Setter"
title.TextColor3 = Color3.fromRGB(0, 255, 255)
title.Font = Enum.Font.GothamBold
title.TextScaled = true

-- Speed Label
local speedLabel = Instance.new("TextLabel", main)
speedLabel.Position = UDim2.new(0, 0, 0, 30)
speedLabel.Size = UDim2.new(1, 0, 0, 30)
speedLabel.BackgroundTransparency = 1
speedLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
speedLabel.Font = Enum.Font.Gotham
speedLabel.TextScaled = true
speedLabel.Text = "Speed: " .. currentSpeed

-- Update Speed
local function updateSpeed()
	local hum = player.Character and player.Character:FindFirstChild("Humanoid")
	if hum then
		hum.WalkSpeed = currentSpeed
	end
	speedLabel.Text = "Speed: " .. currentSpeed
end

-- Loop
local function startLoop()
	if loopConn then loopConn:Disconnect() end
	loopConn = RS.RenderStepped:Connect(function()
		updateSpeed()
	end)
end

local function stopLoop()
	if loopConn then loopConn:Disconnect() end
end

-- Button Utility
local function createTinyButton(text, pos, color, callback)
	local btn = Instance.new("TextButton", main)
	btn.Text = text
	btn.Size = UDim2.new(0, 55, 0, 25)
	btn.Position = pos
	btn.BackgroundColor3 = color
	btn.TextColor3 = Color3.new(1,1,1)
	btn.Font = Enum.Font.GothamBold
	btn.TextScaled = true
	Instance.new("UICorner", btn)
	btn.MouseButton1Click:Connect(callback)
	return btn
end

-- Speed Buttons
local increments = {-100,-10,-8,-6,-5,-4,-2,-1,1,2,4,5,6,8,10,100}
for i, amt in ipairs(increments) do
	local col = amt > 0 and Color3.fromRGB(0,150,0) or Color3.fromRGB(150,0,0)
	local row = math.floor((i-1)/6)
	local colIndex = (i-1)%6
	createTinyButton((amt>0 and "+" or "")..amt, UDim2.new(0, 10 + colIndex*54, 0, 70 + row*30), col, function()
		currentSpeed = math.clamp(currentSpeed + amt, 0, 1000)
		updateSpeed()
	end)
end

-- Loop Button
createTinyButton("Loop", UDim2.new(0, 10, 0, 190), Color3.fromRGB(0,100,255), function()
	loopEnabled = true
	startLoop()
end)

-- Unloop Button
createTinyButton("Unloop", UDim2.new(0, 70, 0, 190), Color3.fromRGB(0,70,200), function()
	loopEnabled = false
	stopLoop()
end)

-- Reset Button
createTinyButton("Reset", UDim2.new(0, 130, 0, 190), Color3.fromRGB(100,100,100), function()
	currentSpeed = originalSpeed
	updateSpeed()
end)

-- Lock Button
createTinyButton("Lock", UDim2.new(0, 190, 0, 190), Color3.fromRGB(70,70,180), function()
	locked = true
	main.Draggable = false
end)

-- Unlock Button
createTinyButton("Unlock", UDim2.new(0, 250, 0, 190), Color3.fromRGB(70,180,70), function()
	locked = false
	main.Draggable = true
end)

-- Destroy Button
createTinyButton("Destroy", UDim2.new(0, 10, 0, 220), Color3.fromRGB(200, 50, 50), function()
	gui:Destroy()
end)

-- Hide Button
local hideBtn = Instance.new("TextButton", main)
hideBtn.Text = "Hide"
hideBtn.Size = UDim2.new(0, 60, 0, 25)
hideBtn.Position = UDim2.new(1, -65, 1, -30)
hideBtn.BackgroundColor3 = Color3.fromRGB(0, 70, 140)
hideBtn.TextColor3 = Color3.new(1, 1, 1)
hideBtn.Font = Enum.Font.GothamBold
hideBtn.TextScaled = true
Instance.new("UICorner", hideBtn)

-- Collapsed State
local miniBtn = Instance.new("TextButton")
miniBtn.Size = UDim2.new(0, 60, 0, 25)
miniBtn.Position = UDim2.new(0, 10, 0, 10)
miniBtn.Text = "Speed"
miniBtn.BackgroundColor3 = Color3.fromRGB(0, 70, 140)
miniBtn.TextColor3 = Color3.new(1, 1, 1)
miniBtn.Font = Enum.Font.GothamBold
miniBtn.TextScaled = true
Instance.new("UICorner", miniBtn)
miniBtn.Visible = false
miniBtn.Parent = gui

hideBtn.MouseButton1Click:Connect(function()
	main.Visible = false
	miniBtn.Visible = true
end)

miniBtn.MouseButton1Click:Connect(function()
	main.Visible = true
	miniBtn.Visible = false
end)

-- Respawn support
player.CharacterAdded:Connect(function(char)
	character = char
	humanoid = char:WaitForChild("Humanoid")
	originalSpeed = humanoid.WalkSpeed
	currentSpeed = loopEnabled and currentSpeed or originalSpeed
	updateSpeed()
end)

Features & Information

local player = speed setter gui lets you control your walk speed in a draggable gui with buttons to increase, decrease, loop, reset, lock, unlock, hide, or destroy - draggable and resizable - loop option to continuously enforce speed - live update on respawn - multiple preset speed increments (+/-1,2,4,5,6,8,10,100) - hide/collapse gui for minimal screen space made this to easily test and adjust walk speed while playing client-side

Community Comments (2)

sp9derssp9dersJun 24, 2025

don't wanna be a hater but this is completely pointless

ddorredoreddorredoreJun 24, 2025

Ok

More Scripts for Universal Scripts