local Players = game:GetService("Players") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local screenGui = Instance.new("ScreenGui") screenGui.Name = "Speedometer" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 200, 0, 80) frame.Position = UDim2.new(1, -210, 1, -90) frame.AnchorPoint = Vector2.new(1, 1) frame.BackgroundColor3 = Color3.fromRGB(10, 10, 15) frame.BackgroundTransparency = 0.3 frame.BorderSizePixel = 0 frame.Parent = screenGui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 12) corner.Parent = frame local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(0, 255, 150) stroke.Thickness = 1.5 stroke.Transparency = 0.4 stroke.Parent = frame local currentLabel = Instance.new("TextLabel") currentLabel.Size = UDim2.new(1, 0, 0.6, 0) currentLabel.BackgroundTransparency = 1 currentLabel.TextColor3 = Color3.fromRGB(0, 255, 150) currentLabel.TextScaled = true currentLabel.Font = Enum.Font.GothamBold currentLabel.Text = "0 SPS" currentLabel.Parent = frame local peakLabel = Instance.new("TextLabel") peakLabel.Size = UDim2.new(1, 0, 0.4, 0) peakLabel.Position = UDim2.new(0, 0, 0.6, 0) peakLabel.BackgroundTransparency = 1 peakLabel.TextColor3 = Color3.fromRGB(255, 215, 0) peakLabel.TextScaled = true peakLabel.Font = Enum.Font.GothamSemibold peakLabel.Text = "Peak: 0 SPS" peakLabel.Parent = frame local humanoidRootPart = nil local lastPosition = Vector3.new() local lastTime = tick() local peakSPS = 0 local function updateCharacter() local character = player.Character or player.CharacterAdded:Wait() humanoidRootPart = character:WaitForChild("HumanoidRootPart") lastPosition = humanoidRootPart.Position lastTime = tick() end updateCharacter() player.CharacterAdded:Connect(function() task.wait(0.5) updateCharacter() end) RunService.Heartbeat:Connect(function() if not humanoidRootPart or not humanoidRootPart.Parent then return end local currentTime = tick() local currentPos = humanoidRootPart.Position local distance = (currentPos - lastPosition).Magnitude local deltaTime = currentTime - lastTime if deltaTime >= 0.03 then local currentSPS = math.floor(distance / deltaTime + 0.5) currentLabel.Text = currentSPS .. " SPS" if currentSPS > peakSPS then peakSPS = currentSPS peakLabel.Text = "Peak: " .. peakSPS .. " SPS" end lastPosition = currentPos lastTime = currentTime end end)