-- FPS MODE GUI | Safe Studio-Only Version -- Place this in StarterPlayerScripts > LocalScript local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Stats = game:GetService("Stats") local player = Players.LocalPlayer -------------------------------------------------- -- GUI SETUP -------------------------------------------------- local gui = Instance.new("ScreenGui") gui.Name = "FPS_MODE" gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") -- Open button local openBtn = Instance.new("TextButton") openBtn.Size = UDim2.new(0,180,0,40) openBtn.Position = UDim2.new(0.5,-90,0,10) openBtn.BackgroundColor3 = Color3.fromRGB(0,255,0) openBtn.TextColor3 = Color3.new(0,0,0) openBtn.Font = Enum.Font.GothamBold openBtn.TextScaled = true openBtn.Text = "OPEN FPS HUB" openBtn.Parent = gui -- Main Frame local main = Instance.new("Frame") main.Size = UDim2.new(0,350,0,220) main.Position = UDim2.new(0.5,-175,0.5,-110) main.BackgroundColor3 = Color3.fromRGB(0,255,0) main.BorderSizePixel = 4 main.BorderColor3 = Color3.fromRGB(0,100,0) main.Active = true main.Draggable = true main.Visible = false main.Parent = gui -- Title Bar local title = Instance.new("TextLabel") title.Size = UDim2.new(1,0,0,40) title.BackgroundColor3 = Color3.fromRGB(0,200,0) title.Text = "FPS HUB" title.Font = Enum.Font.GothamBold title.TextScaled = true title.TextColor3 = Color3.new(0,0,0) title.Parent = main -- Close button local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0,30,0,30) closeBtn.Position = UDim2.new(1,-35,0,5) closeBtn.BackgroundColor3 = Color3.fromRGB(255,0,0) closeBtn.Text = "X" closeBtn.Font = Enum.Font.GothamBold closeBtn.TextScaled = true closeBtn.TextColor3 = Color3.new(1,1,1) closeBtn.Parent = main -------------------------------------------------- -- FPS/PING DISPLAY -------------------------------------------------- local fpsLabel = Instance.new("TextLabel") fpsLabel.Size = UDim2.new(1, -20, 0, 40) fpsLabel.Position = UDim2.new(0,10,0,50) fpsLabel.BackgroundTransparency = 1 fpsLabel.Font = Enum.Font.GothamBold fpsLabel.TextScaled = true fpsLabel.TextColor3 = Color3.new(0,0,0) fpsLabel.Text = "FPS: 0" fpsLabel.Parent = main local pingLabel = fpsLabel:Clone() pingLabel.Position = UDim2.new(0,10,0,90) pingLabel.Text = "PING: 0 ms" pingLabel.Parent = main local internetLabel = fpsLabel:Clone() internetLabel.Position = UDim2.new(0,10,0,130) internetLabel.Text = "INTERNET CHECKER: Unknown" internetLabel.Parent = main -------------------------------------------------- -- Enable/Disable System -------------------------------------------------- local enableBtn = Instance.new("TextButton") enableBtn.Size = UDim2.new(0,200,0,40) enableBtn.Position = UDim2.new(0.5,-100,0,170) enableBtn.BackgroundColor3 = Color3.fromRGB(0,120,0) enableBtn.Text = "Enable FPS Reading" enableBtn.TextScaled = true enableBtn.Font = Enum.Font.GothamBold enableBtn.TextColor3 = Color3.new(1,1,1) enableBtn.Parent = main local statusLabel = Instance.new("TextLabel") statusLabel.Size = UDim2.new(0,120,0,20) statusLabel.Position = UDim2.new(0.5,-60,0.85,0) statusLabel.BackgroundTransparency = 1 statusLabel.Font = Enum.Font.Gotham statusLabel.TextScaled = true statusLabel.Text = "Status: OFF" statusLabel.TextColor3 = Color3.fromRGB(255,0,0) statusLabel.Parent = main -------------------------------------------------- -- FUNCTIONALITY -------------------------------------------------- local enabled = false local fps = 0 local ping = 0 -- FPS Calculator local lastUpdate = tick() local frameCount = 0 RunService.RenderStepped:Connect(function() if not enabled then return end frameCount += 1 local now = tick() if now - lastUpdate >= 1 then fps = frameCount frameCount = 0 lastUpdate = now fpsLabel.Text = "FPS: " .. fps end end) -- Ping and Internet Quality task.spawn(function() while task.wait(1) do if enabled then local pingStat = Stats.Network.ServerStatsItem["Data Ping"] if pingStat then ping = math.floor(pingStat:GetValue()) pingLabel.Text = "PING: "..ping.." ms" if ping <= 80 then internetLabel.Text = "INTERNET CHECKER: Good" elseif ping <= 200 then internetLabel.Text = "INTERNET CHECKER: Medium" else internetLabel.Text = "INTERNET CHECKER: Bad" end end end end end) -- Button toggle enableBtn.MouseButton1Click:Connect(function() enabled = not enabled statusLabel.Text = "Status: " .. (enabled and "ON" or "OFF") statusLabel.TextColor3 = enabled and Color3.fromRGB(0,255,0) or Color3.fromRGB(255,0,0) enableBtn.Text = enabled and "Disable FPS Reading" or "Enable FPS Reading" end) -- Open/Close logic openBtn.MouseButton1Click:Connect(function() openBtn.Visible = false main.Visible = true end) closeBtn.MouseButton1Click:Connect(function() main.Visible = false openBtn.Visible = true end)