local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Players = game:GetService("Players") local player = Players.LocalPlayer local char = player.Character or player.CharacterAdded:Wait() local hrp = char:WaitForChild("HumanoidRootPart") local humanoid = char:WaitForChild("Humanoid") -- speed local walkSpeed = 5 local runSpeed = 20 local currentSpeed = walkSpeed local running = false UserInputService.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.LeftShift then running = true currentSpeed = runSpeed end end) UserInputService.InputEnded:Connect(function(input, gpe) if input.KeyCode == Enum.KeyCode.LeftShift then running = false currentSpeed = walkSpeed end end) RunService.RenderStepped:Connect(function(dt) local moveDir = humanoid.MoveDirection if moveDir.Magnitude > 0 then hrp.CFrame = hrp.CFrame + (moveDir * currentSpeed * dt) end end)