Fps and Ping ui show
Key RequiredUniversal

Fps and Ping ui show

Universal Scriptinstaniiinstanii 1.3K views 829 executesUpdated Jan 18, 2026
5.0/ 5(3 votes)
30100% Positive
Lua Script•124 lines (3357 chars)
local UIS = game:GetService("UserInputService")
local RS = game:GetService("RunService")
local Stats = game:GetService("Stats")
local HttpService = game:GetService("HttpService")

local saveFile = "MinimalStats_Pos.json"

local function loadPos()
    if isfile(saveFile) then
        local d = HttpService:JSONDecode(readfile(saveFile))
        return UDim2.new(d.XS, d.XO, d.YS, d.YO)
    end
end

local function savePos(p)
    writefile(saveFile, HttpService:JSONEncode({
        XS = p.X.Scale,
        XO = p.X.Offset,
        YS = p.Y.Scale,
        YO = p.Y.Offset
    }))
end

local sg = Instance.new("ScreenGui")
sg.Name = "MinimalStats"
sg.ResetOnSpawn = false
sg.IgnoreGuiInset = true
sg.Parent = game:GetService("CoreGui")

local main = Instance.new("Frame")
main.Size = UDim2.new(0,100,0,40)
main.Position = loadPos() or UDim2.new(0.5,-50,0.1,0)
main.BackgroundColor3 = Color3.fromRGB(15,15,15)
main.BackgroundTransparency = 0.25
main.BorderSizePixel = 0
main.Active = true
main.Parent = sg

Instance.new("UICorner", main).CornerRadius = UDim.new(0,9)

local stroke = Instance.new("UIStroke", main)
stroke.Thickness = 1.2
stroke.Color = Color3.new(1,1,1)
stroke.Transparency = 0.8

local layout = Instance.new("UIListLayout", main)
layout.HorizontalAlignment = Enum.HorizontalAlignment.Center
layout.VerticalAlignment = Enum.VerticalAlignment.Center
layout.Padding = UDim.new(0,1)

local function label()
    local l = Instance.new("TextLabel")
    l.Size = UDim2.new(1,0,0,15)
    l.BackgroundTransparency = 1
    l.Font = Enum.Font.GothamBold
    l.TextColor3 = Color3.new(1,1,1)
    l.TextSize = 10
    l.Parent = main
    return l
end

local fpsLabel = label()
local pingLabel = label()

local dragging, dragInput, dragStart, startPos

main.InputBegan:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = i.Position
        startPos = main.Position
        i.Changed:Connect(function()
            if i.UserInputState == Enum.UserInputState.End then
                dragging = false
                savePos(main.Position)
            end
        end)
    end
end)

main.InputChanged:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch then
        dragInput = i
    end
end)

UIS.InputChanged:Connect(function(i)
    if i == dragInput and dragging then
        local d = i.Position - dragStart
        main.Position = UDim2.new(
            startPos.X.Scale,
            startPos.X.Offset + d.X,
            startPos.Y.Scale,
            startPos.Y.Offset + d.Y
        )
    end
end)

local frames = 0
local last = tick()

RS.RenderStepped:Connect(function()
    frames += 1
    local now = tick()

    if now - last >= 1 then
        local fps = frames
        local ping = Stats.PerformanceStats.Ping:GetValue()
        
        fpsLabel.Text = "FPS: "..fps
        pingLabel.Text = "PING: "..string.format("%.0f", ping).."ms"

        if fps >= 50 then
            fpsLabel.TextColor3 = Color3.fromRGB(120,255,120)
        elseif fps >= 30 then
            fpsLabel.TextColor3 = Color3.fromRGB(255,200,80)
        else
            fpsLabel.TextColor3 = Color3.fromRGB(255,80,80)
        end

        frames = 0
        last = now
    end
end)

Features & Information

it can display your current fps and ping the ping value is exactly the same as the one shown in roblox settings
#open source

Community Comments (1)

hygg520hygg520Aug 30, 2026

我看到陈泽了

More Scripts for Universal Scripts