see server region, fps, and ping
Key RequiredUniversal

see server region, fps, and ping

Universal ScriptVesperVesper 7.3K views 112 executesUpdated Mar 30, 2022
3.3/ 5(6 votes)
4267% Positive
Lua Script•81 lines (2610 chars)
-- services
local network = game:GetService("NetworkClient")
local stats = game:GetService("Stats")
local http = game:GetService("HttpService")
-- guis
local gui = Instance.new("ScreenGui")
local layout = Instance.new("UIListLayout")
local mainFrame = Instance.new("Frame")
-- vars
local layoutNum = 99999
-- properties
gui.Name = "stats"
gui.Parent = game:WaitForChild("CoreGui")
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
gui.IgnoreGuiInset = true

mainFrame.Size = UDim2.new(0.94, 0, 0, 36)
mainFrame.Position = UDim2.new(0.5, 0, 0, 0)
mainFrame.AnchorPoint = Vector2.new(0.5, 0)
mainFrame.BackgroundTransparency = 1
mainFrame.Parent = gui

layout.FillDirection = Enum.FillDirection.Horizontal
layout.HorizontalAlignment = Enum.HorizontalAlignment.Right
layout.VerticalAlignment = Enum.VerticalAlignment.Bottom
layout.Padding = UDim.new(0, 10, 0, 0)
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.Parent = mainFrame
-- main
function newIcon(text: string)
	local icon = Instance.new("Frame")
	local label = Instance.new("TextLabel")
	local corner = Instance.new("UICorner")
	icon.LayoutOrder = layoutNum
	icon.Parent = mainFrame
	icon.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
	icon.BackgroundTransparency = 0.500
	icon.Size = UDim2.new(0, 80, 0, 31)
	label.Parent = icon
	label.AnchorPoint = Vector2.new(0.5, 0.5)
	label.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
	label.BackgroundTransparency = 1.000
	label.Position = UDim2.new(0.5, 0, 0.5, 0)
	label.Size = UDim2.new(0.699999988, 0, 0.699999988, 0)
	label.Font = Enum.Font.GothamSemibold
	label.Text = text
	label.TextColor3 = Color3.fromRGB(255, 255, 255)
	label.TextScaled = true
	label.TextSize = 14.000
	label.TextWrapped = true
	corner.Parent = icon
	layoutNum -= 1
	return icon
end
network.ConnectionAccepted:Connect(function(server)
	local ipInfo = http:JSONDecode(game:HttpGet("http://ipinfo.io/"..string.split(server, "|")[1].."/json"))
	local country = ipInfo["country"]
	local region = ipInfo["region"]
	local icon = newIcon(country.."/"..region)
	icon.LayoutOrder = math.huge
end)
game.Loaded:Wait()
task.spawn(function()
	local icon = newIcon("0ms")
	while task.wait(1) do
		local ping = tonumber(string.split(stats:WaitForChild("Network"):WaitForChild("ServerStatsItem"):WaitForChild("Data Ping"):GetValueString(), " ")[1])
		if ping == nil then continue end
		icon.TextLabel.Text = math.floor(ping).."ms"
	end
end)
do
	local icon = newIcon("0fps")
	local fps = 0
	game:GetService("RunService").RenderStepped:Connect(function()
		fps += 1
	end)
	while task.wait(1) do
		icon.TextLabel.Text = fps.."fps"
		fps = 0
	end
end

Features & Information

put in autoexec makes topbar icons that display server region, fps and ping
#fps#ping#server region

Community Comments (1)

NickdalestNickdalestNov 8, 2025

Does it still work till now?

More Scripts for Universal Scripts