
KeylessUniversal

local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local MIN_FPS = 1
local MAX_FPS = 340
local currentCap = 60
local function applyCap(fps)
fps = math.clamp(math.round(fps), MIN_FPS, MAX_FPS)
currentCap = fps
pcall(function() settings().Rendering.FrameRateManager = Enum.FrameRateManagerMode.Disabled end)
if syn and syn.set_fps_cap then
syn.set_fps_cap(fps)
elseif setfpscap then
setfpscap(fps)
elseif fps_cap then
fps_cap(fps)
end
end
local old = PlayerGui:FindFirstChild("SimpleFPSGui")
if old then old:Destroy() end
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "SimpleFPSGui"
ScreenGui.ResetOnSpawn = false
ScreenGui.IgnoreGuiInset = true
ScreenGui.Parent = PlayerGui
local Panel = Instance.new("Frame")
Panel.Size = UDim2.new(0, 200, 0, 106)
Panel.Position = UDim2.new(0, 24, 0.5, -53)
Panel.BackgroundColor3 = Color3.fromRGB(14, 14, 22)
Panel.BorderSizePixel = 0
Panel.Parent = ScreenGui
Instance.new("UICorner", Panel).CornerRadius = UDim.new(0, 10)
local Stroke = Instance.new("UIStroke")
Stroke.Color = Color3.fromRGB(70, 110, 255)
Stroke.Thickness = 1.5
Stroke.Transparency = 0.5
Stroke.Parent = Panel
local dragging, dragStart, startPos = false, Vector2.new(), UDim2.new()
Panel.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1
or i.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = Vector2.new(i.Position.X, i.Position.Y)
startPos = Panel.Position
end
end)
UserInputService.InputChanged:Connect(function(i)
if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement
or i.UserInputType == Enum.UserInputType.Touch) then
local d = Vector2.new(i.Position.X, i.Position.Y) - dragStart
Panel.Position = UDim2.new(0,
math.clamp(startPos.X.Offset + d.X, 0, ScreenGui.AbsoluteSize.X - Panel.AbsoluteSize.X),
0,
math.clamp(startPos.Y.Offset + d.Y, 0, ScreenGui.AbsoluteSize.Y - Panel.AbsoluteSize.Y))
end
end)
UserInputService.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1
or i.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
local LiveLabel = Instance.new("TextLabel")
LiveLabel.Size = UDim2.new(1, -16, 0, 22)
LiveLabel.Position = UDim2.new(0, 8, 0, 8)
LiveLabel.BackgroundTransparency = 1
LiveLabel.Font = Enum.Font.Code
LiveLabel.TextSize = 13
LiveLabel.TextColor3 = Color3.fromRGB(100, 220, 100)
LiveLabel.TextXAlignment = Enum.TextXAlignment.Left
LiveLabel.Text = "LIVE: — fps | CAP: 60 fps"
LiveLabel.Parent = Panel
local Box = Instance.new("TextBox")
Box.Size = UDim2.new(1, -16, 0, 32)
Box.Position = UDim2.new(0, 8, 0, 36)
Box.BackgroundColor3 = Color3.fromRGB(24, 26, 42)
Box.BorderSizePixel = 0
Box.Font = Enum.Font.GothamBold
Box.TextSize = 16
Box.TextColor3 = Color3.fromRGB(200, 215, 255)
Box.PlaceholderText = "Enter FPS (1-340)"
Box.PlaceholderColor3 = Color3.fromRGB(80, 90, 130)
Box.Text = "60"
Box.ClearTextOnFocus = true
Box.Parent = Panel
Instance.new("UICorner", Box).CornerRadius = UDim.new(0, 6)
local BoxStroke = Instance.new("UIStroke")
BoxStroke.Color = Color3.fromRGB(70, 110, 255)
BoxStroke.Thickness = 1
BoxStroke.Transparency = 0.6
BoxStroke.Parent = Box
local ApplyBtn = Instance.new("TextButton")
ApplyBtn.Size = UDim2.new(1, -16, 0, 24)
ApplyBtn.Position = UDim2.new(0, 8, 0, 76)
ApplyBtn.BackgroundColor3 = Color3.fromRGB(50, 90, 220)
ApplyBtn.BorderSizePixel = 0
ApplyBtn.Font = Enum.Font.GothamBold
ApplyBtn.TextSize = 12
ApplyBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
ApplyBtn.Text = "SET FPS"
ApplyBtn.AutoButtonColor = false
ApplyBtn.Parent = Panel
Instance.new("UICorner", ApplyBtn).CornerRadius = UDim.new(0, 6)
local function tryApply()
local num = tonumber(Box.Text)
if num then
local clamped = math.clamp(math.round(num), MIN_FPS, MAX_FPS)
applyCap(clamped)
Box.Text = tostring(clamped)
TweenService:Create(ApplyBtn, TweenInfo.new(0.1),
{BackgroundColor3 = Color3.fromRGB(40, 180, 80)}):Play()
task.delay(0.4, function()
TweenService:Create(ApplyBtn, TweenInfo.new(0.2),
{BackgroundColor3 = Color3.fromRGB(50, 90, 220)}):Play()
end)
else
TweenService:Create(ApplyBtn, TweenInfo.new(0.1),
{BackgroundColor3 = Color3.fromRGB(180, 40, 40)}):Play()
task.delay(0.4, function()
TweenService:Create(ApplyBtn, TweenInfo.new(0.2),
{BackgroundColor3 = Color3.fromRGB(50, 90, 220)}):Play()
end)
end
end
ApplyBtn.MouseButton1Click:Connect(tryApply)
Box.FocusLost:Connect(function(enterPressed)
if enterPressed then tryApply() end
end)
local history, lastTime = {}, tick()
RunService.RenderStepped:Connect(function()
local now = tick()
local dt = now - lastTime
lastTime = now
if dt > 0 then
history[#history + 1] = 1 / dt
if #history > 30 then table.remove(history, 1) end
local sum = 0
for _, v in ipairs(history) do sum = sum + v end
local live = math.round(sum / #history)
LiveLabel.Text = string.format("LIVE: %d fps | CAP: %d fps", live, currentCap)
local ratio = live / currentCap
if ratio >= 0.9 then
LiveLabel.TextColor3 = Color3.fromRGB(100, 220, 100)
elseif ratio >= 0.6 then
LiveLabel.TextColor3 = Color3.fromRGB(220, 200, 60)
else
LiveLabel.TextColor3 = Color3.fromRGB(220, 70, 70)
end
end
end)
LocalPlayer.CharacterAdded:Connect(function()
task.wait(1)
applyCap(currentCap)
end)
applyCap(currentCap)
print("[FPS Changer] Ready")No comments yet for this script.



