SPS Speedometer
Key RequiredUniversal

SPS Speedometer

Universal Scriptliterallytimliterallytim 23 views 295 executesUpdated Jul 11, 2026
Unrated
00
Lua Script•89 lines (2653 chars)
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)

Features & Information

puts a speedometer ui on the bottom right of screen
#sps#speedometer#universal#keyless

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts