Speedometer
Key RequiredUniversal

Speedometer

Universal Scriptwaruwaru 3.2K views 92 executesUpdated Jan 27, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•89 lines (2292 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local StarterGui = game:GetService("StarterGui")

local LocalPlayer = Players.LocalPlayer

-- Create GUI elements
local ScreenGui = Instance.new("ScreenGui")
local Frame = Instance.new("Frame")
local SpeedLabel = Instance.new("TextLabel")
local UICorner = Instance.new("UICorner")

ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
ScreenGui.ResetOnSpawn = false

Frame.Name = "SpeedometerFrame"
Frame.Parent = ScreenGui
Frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
Frame.BackgroundTransparency = 0.2
Frame.BorderSizePixel = 0
Frame.Position = UDim2.new(0.8, 0, 0.1, 0)
Frame.Size = UDim2.new(0.15, 0, 0.08, 0)
Frame.Active = true
Frame.Draggable = true

UICorner.Parent = Frame
UICorner.CornerRadius = UDim.new(0.2, 0)

SpeedLabel.Name = "SpeedLabel"
SpeedLabel.Parent = Frame
SpeedLabel.BackgroundTransparency = 1
SpeedLabel.Position = UDim2.new(0, 0, 0, 0)
SpeedLabel.Size = UDim2.new(1, 0, 1, 0)
SpeedLabel.Font = Enum.Font.GothamBold
SpeedLabel.TextColor3 = Color3.fromRGB(0, 255, 0)
SpeedLabel.TextScaled = true
SpeedLabel.Text = "0.00 st/s"


local lastPos = nil
local lastTime = tick()


local function calculateSpeed()
    local character = LocalPlayer.Character
    if not character then return 0 end
    
    local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
    if not humanoidRootPart then return 0 end
    
    local currentPos = humanoidRootPart.Position
    local currentTime = tick()
    
    if not lastPos then
        lastPos = currentPos
        lastTime = currentTime
        return 0
    end
    
    local distance = (currentPos - lastPos).Magnitude
    local timeDiff = currentTime - lastTime
    local speed = distance / timeDiff
    
    lastPos = currentPos
    lastTime = currentTime
    
    return speed
end


RunService.RenderStepped:Connect(function()
    local speed = calculateSpeed()
    SpeedLabel.Text = string.format("%.2f st/s", speed)
end)

-- Character respawn handling
LocalPlayer.CharacterAdded:Connect(function()
    lastPos = nil
    lastTime = tick()
end)


StarterGui:SetCore("SendNotification", {
    Title = "Speed Display Loaded";
    Text = "Drag the frame to reposition!";
    Duration = 5;
})

print("Draggable")

Features & Information

The most useless script ever

Community Comments (1)

waruwaruJan 27, 2025(edited)

Measures studs per second btw

More Scripts for Universal Scripts