Fps and Ping Display
Key RequiredUniversal

Fps and Ping Display

Universal Scriptlarkyqkwqlarkyqkwq 621 views 3.7K executesUpdated Feb 21, 2026
Unrated
00
Lua Script•123 lines (3782 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

-- GUI Setup
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "FPSPingCounter"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 130, 0, 30)
mainFrame.Position = UDim2.new(0.8, 0, 0, 50)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
mainFrame.BackgroundTransparency = 0.7
mainFrame.BorderSizePixel = 1
mainFrame.BorderColor3 = Color3.fromRGB(50, 50, 50)
mainFrame.Parent = screenGui
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.ClipsDescendants = true

-- Add UICorner
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = mainFrame

-- FPS TextLabel
local fpsLabel = Instance.new("TextLabel")
fpsLabel.Size = UDim2.new(0.5, -5, 1, -10)
fpsLabel.Position = UDim2.new(0, 5, 0, 5)
fpsLabel.BackgroundTransparency = 1
fpsLabel.Text = "FPS: 0"
fpsLabel.TextColor3 = Color3.new(1, 1, 1)
fpsLabel.Font = Enum.Font.Code
fpsLabel.TextSize = 15
fpsLabel.TextXAlignment = Enum.TextXAlignment.Left
fpsLabel.Parent = mainFrame

-- PING TextLabel
local pingLabel = Instance.new("TextLabel")
pingLabel.Size = UDim2.new(0.5, -5, 1, -10)
pingLabel.Position = UDim2.new(0.5, 5, 0, 5)
pingLabel.BackgroundTransparency = 1
pingLabel.Text = "PING: 0"
pingLabel.TextColor3 = Color3.new(1, 1, 1)
pingLabel.Font = Enum.Font.Code
pingLabel.TextSize = 15
pingLabel.TextXAlignment = Enum.TextXAlignment.Right
pingLabel.Parent = mainFrame

-- Dragging
local dragging = false
local dragInput, mousePos, framePos

local function updateDrag(input)
    local delta = input.Position - mousePos
    mainFrame.Position = UDim2.new(0, framePos.X + delta.X, 0, framePos.Y + delta.Y)
end

mainFrame.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
        mousePos = input.Position
        framePos = mainFrame.Position
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)

mainFrame.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement then
        dragInput = input
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging then
        updateDrag(input)
    end
end)

-- Smooth FPS/PING update
local displayedFPS = 0
local displayedPing = 0
local lastTime = tick()

RunService.RenderStepped:Connect(function()
    local currentTime = tick()
    local fps = 1 / (currentTime - lastTime)
    lastTime = currentTime
    local ping = player:GetNetworkPing() * 1000

    -- Smooth transition
    displayedFPS = displayedFPS + (fps - displayedFPS) * 0.1
    displayedPing = displayedPing + (ping - displayedPing) * 0.1

    fpsLabel.Text = string.format("FPS: %d", math.floor(displayedFPS))
    pingLabel.Text = string.format("PING: %d", math.floor(displayedPing))

    -- FPS color
    if displayedFPS <= 25 then
        fpsLabel.TextColor3 = Color3.fromRGB(255, 0, 0)
    elseif displayedFPS <= 40 then
        fpsLabel.TextColor3 = Color3.fromRGB(255, 255, 0)
    else
        fpsLabel.TextColor3 = Color3.fromRGB(0, 255, 0)
    end

    -- PING color
    if displayedPing <= 150 then
        pingLabel.TextColor3 = Color3.fromRGB(0, 255, 0)
    elseif displayedPing <= 250 then
        pingLabel.TextColor3 = Color3.fromRGB(255, 255, 0)
    else
        pingLabel.TextColor3 = Color3.fromRGB(255, 0, 0)
    end
end)

Features & Information

Fps Counter and Ping

Community Comments (1)

oxideemooooncyoxideemooooncyFeb 21, 2026

lag

More Scripts for Universal Scripts