local Players = game:GetService("Players") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local hrp = character:WaitForChild("HumanoidRootPart") local spsGui = Instance.new("ScreenGui") spsGui.Name = "SPS_GUI" spsGui.ResetOnSpawn = false spsGui.Parent = player:WaitForChild("PlayerGui") local label = Instance.new("TextLabel") label.Size = UDim2.new(0, 200, 0, 40) label.Position = UDim2.new(0, 20, 0, 20) label.BackgroundTransparency = 0.3 label.BackgroundColor3 = Color3.fromRGB(0, 0, 0) label.TextColor3 = Color3.fromRGB(255, 255, 255) label.Font = Enum.Font.SourceSansBold label.TextSize = 22 label.Text = "Speed: 0 SPS" label.Parent = spsGui local lastPos = hrp.Position local lastTime = tick() RunService.RenderStepped:Connect(function() if not hrp or not hrp.Parent then character = player.Character or player.CharacterAdded:Wait() hrp = character:WaitForChild("HumanoidRootPart") lastPos = hrp.Position lastTime = tick() return end local currentTime = tick() local dt = currentTime - lastTime local currentPos = hrp.Position local dist = (currentPos - lastPos).Magnitude local speed = dist / dt label.Text = string.format("Speed: %.1f SPS", speed) lastPos = currentPos lastTime = currentTime end)