Run it
Copy the script and paste it into your executor.
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- UI Setup
local screenGui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
local speedLabel = Instance.new("TextLabel", screenGui)
local uiGradient = .(, speedLabel)
uiCorner = .(, speedLabel)
uiStroke = .(, speedLabel)
speedLabel.Size = .(, , , )
speedLabel.Position = .(, -, , )
speedLabel.BackgroundColor3 = .(, , )
speedLabel.TextColor3 = .(, , )
speedLabel.Font = .Font.GothamBold
speedLabel.TextSize =
speedLabel.Text =
speedLabel.Active =
speedLabel.Draggable =
uiGradient.Color = ColorSequence.{
ColorSequenceKeypoint.(, .(, , )),
ColorSequenceKeypoint.(, .(, , ))
}
uiGradient.Rotation =
uiCorner.CornerRadius = .(, )
uiStroke.Thickness =
uiStroke.Color = .(, , )
lastPosition = character.HumanoidRootPart.Position
speedHistory = {}
historySize =
()
total =
_, speed (speedHistory)
total = total + speed
total / #speedHistory
currentPosition = character.HumanoidRootPart.Position
distance = (currentPosition - lastPosition).Magnitude
speedInStudsPerSecond = distance
speedInKmph = .(speedInStudsPerSecond * )
speedInMph = .(speedInStudsPerSecond * )
speedInKmph ==
speedHistory = {}
.(speedHistory, speedInKmph)
#speedHistory > historySize
.(speedHistory, )
smoothedSpeed = .(())
speedLabel.Text = .(, smoothedSpeed, .(smoothedSpeed * ))
lastPosition = currentPosition
()
This is an speedometer made by me it supports kmph/mph

Universal