local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "FPSControlGUI"
screenGui.Parent = player:WaitForChild("PlayerGui")
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 300, 0, 250)
frame.Position = UDim2.new(0, 10, 0, 10)
frame.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
frame.Parent = screenGui
local function makeDraggable(frame)
local dragToggle = nil
local dragInput = nil
local dragStart = nil
local startPos = nil
frame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragToggle = true
dragStart = input.Position
startPos = frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragToggle = false
end
end)
end
end)
frame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
game:GetService("RunService").RenderStepped:Connect(function()
if dragToggle and dragInput then
local delta = dragInput.Position - dragStart
frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
end
makeDraggable(frame)
local fpsLabel = Instance.new("TextLabel")
fpsLabel.Size = UDim2.new(1, 0, 0, 30)
fpsLabel.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
fpsLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
fpsLabel.Text = "FPS Control"
fpsLabel.Parent = frame
local fpsInput = Instance.new("TextBox")
fpsInput.Size = UDim2.new(1, -20, 0, 30)
fpsInput.Position = UDim2.new(0, 10, 0, 40)
fpsInput.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
fpsInput.TextColor3 = Color3.fromRGB(0, 0, 0)
fpsInput.PlaceholderText = "Enter FPS Value"
fpsInput.Parent = frame
local fluctuationInput = Instance.new("TextBox")
fluctuationInput.Size = UDim2.new(1, -20, 0, 30)
fluctuationInput.Position = UDim2.new(0, 10, 0, 80)
fluctuationInput.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
fluctuationInput.TextColor3 = Color3.fromRGB(0, 0, 0)
fluctuationInput.PlaceholderText = "Enter Fluctuation Range"
fluctuationInput.Parent = frame
local waitTimeInput = Instance.new("TextBox")
waitTimeInput.Size = UDim2.new(1, -20, 0, 30)
waitTimeInput.Position = UDim2.new(0, 10, 0, 120)
waitTimeInput.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
waitTimeInput.TextColor3 = Color3.fromRGB(0, 0, 0)
waitTimeInput.PlaceholderText = "Enter Wait Time (s)"
waitTimeInput.Parent = frame
local enterButton = Instance.new("TextButton")
enterButton.Size = UDim2.new(1, -20, 0, 30)
enterButton.Position = UDim2.new(0, 10, 0, 160)
enterButton.BackgroundColor3 = Color3.fromRGB(0, 128, 0)
enterButton.TextColor3 = Color3.fromRGB(255, 255, 255)
enterButton.Text = "Apply"
enterButton.Parent = frame
local clearButton = Instance.new("TextButton")
clearButton.Size = UDim2.new(1, -20, 0, 30)
clearButton.Position = UDim2.new(0, 10, 0, 200)
clearButton.BackgroundColor3 = Color3.fromRGB(128, 0, 0)
clearButton.TextColor3 = Color3.fromRGB(255, 255, 255)
clearButton.Text = "Clear FPS"
clearButton.Parent = frame
local notification = Instance.new("TextLabel")
notification.Size = UDim2.new(1, 0, 0, 50)
notification.Position = UDim2.new(0, 0, 1, -50)
notification.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
notification.TextColor3 = Color3.fromRGB(255, 255, 255)
notification.Text = "GUI Hidden"
notification.Visible = false
notification.Parent = screenGui
local UserInputService = game:GetService("UserInputService")
local isVisible = true
UserInputService.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.RightShift then
isVisible = not isVisible
frame.Visible = isVisible
notification.Visible = not isVisible
notification.Text = isVisible and "GUI Visible" or "GUI Hidden"
end
end)
local fluctuationCoroutine = nil
local storedFPS = 1000
local function stopFluctuation()
if fluctuationCoroutine then
coroutine.close(fluctuationCoroutine)
fluctuationCoroutine = nil
end
end
clearButton.MouseButton1Click:Connect(function()
stopFluctuation()
local args = { [1] = storedFPS }
ReplicatedStorage.UpdateFPS:FireServer(unpack(args))
fpsInput.Text = tostring(storedFPS)
fluctuationInput.Text = "0"
waitTimeInput.Text = "0.01"
end)
local function applyFPSSettings(fpsValue, fluctuationRange, waitTime)
if waitTime <= 0 then
waitTime = 0.01
end
while true do
local fluctuation = math.random(-fluctuationRange, fluctuationRange)
local fluctuatedValue = fpsValue + fluctuation
local args = { fluctuatedValue }
ReplicatedStorage.UpdateFPS:FireServer(unpack(args))
wait(waitTime)
end
end
enterButton.MouseButton1Click:Connect(function()
storedFPS = tonumber(fpsInput.Text) or 1000
local fluctuationRange = tonumber(fluctuationInput.Text) or 10
local waitTime = tonumber(waitTimeInput.Text) or 0.01
stopFluctuation()
fluctuationCoroutine = coroutine.create(function()
applyFPSSettings(storedFPS, fluctuationRange, waitTime)
end)
coroutine.resume(fluctuationCoroutine)
end)
Comments
Doesn't work