
KeylessUniversal

-- 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)No comments yet for this script.



