Fps and ping counter
Key RequiredUniversal

Fps and ping counter

Universal ScriptEl_VireXusEl_VireXus 5K views 1K executesUpdated Mar 23, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•84 lines (2749 chars)
-- Services
local RunService = game:GetService("RunService")
local Stats = game:GetService("Stats")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local StarterGui = game:GetService("StarterGui")

-- Create GUI
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "FPS_Ping_Display"
ScreenGui.Parent = game:GetService("CoreGui")

local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(0, 200, 0, 80)
Frame.Position = UDim2.new(0.7, 0, 0.05, 0)
Frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
Frame.BackgroundTransparency = 0.3
Frame.BorderSizePixel = 2
Frame.Parent = ScreenGui
Frame.Active = true
Frame.Draggable = true -- Makes the GUI movable

local TitleLabel = Instance.new("TextLabel")
TitleLabel.Size = UDim2.new(1, 0, 0.3, 0)
TitleLabel.Position = UDim2.new(0, 0, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "FPS & Ping counter"
TitleLabel.Font = Enum.Font.SourceSansBold
TitleLabel.TextSize = 16
TitleLabel.TextColor3 = Color3.new(1, 1, 1)
TitleLabel.Parent = Frame

local FPSText = Instance.new("TextLabel")
FPSText.Size = UDim2.new(1, 0, 0.35, 0)
FPSText.Position = UDim2.new(0, 0, 0.3, 0)
FPSText.BackgroundTransparency = 1
FPSText.Font = Enum.Font.SourceSansBold
FPSText.TextSize = 16
FPSText.TextColor3 = Color3.new(1, 1, 1)
FPSText.Parent = Frame

local PingText = Instance.new("TextLabel")
PingText.Size = UDim2.new(1, 0, 0.35, 0)
PingText.Position = UDim2.new(0, 0, 0.65, 0)
PingText.BackgroundTransparency = 1
PingText.Font = Enum.Font.SourceSansBold
PingText.TextSize = 16
PingText.TextColor3 = Color3.new(1, 1, 1)
PingText.Parent = Frame

-- Send a welcoming notification to the player
StarterGui:SetCore("SendNotification", {
    Title = "Yippee!",
    Text = "Thanks you for choosing this script!",
    Icon = "rbxassetid://15652789465", -- New icon ID
    Duration = 5
})

-- Update FPS & Ping every second
task.spawn(function()
    while true do
        -- FPS Calculation
        local fps = math.floor(1 / RunService.RenderStepped:Wait())

        -- Ping Calculation
        local ping = math.floor(Stats.Network.ServerStatsItem["Data Ping"]:GetValue())

        -- FPS Rating
        local fpsRating = (fps > 60 and "Excellent (Ultra Smooth)") or 
                          (fps >= 30 and "Playable") or 
                          "Choppy (Bad)"

        -- Ping Rating
        local pingRating = (ping <= 50 and "Good") or 
                           (ping <= 100 and "Decent") or 
                           "Bad (High Ping)"

        -- Update GUI Text
        FPSText.Text = "FPS: " .. fps .. " (" .. fpsRating .. ")"
        PingText.Text = "Ping: " .. ping .. "ms (" .. pingRating .. ")"

        task.wait(1) -- Update every second
    end
end)

Features & Information

Shows your current fps or ping
#Fps counter#Ping counter#Best#Universal#Script

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts