-- FPS Changer GUI Script (with Bottom Notification Banner) local CoreGui = game:GetService("CoreGui") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") -- Remove existing GUI if already running if CoreGui:FindFirstChild("FPSChangerGUI") then CoreGui.FPSChangerGUI:Destroy() end local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "FPSChangerGUI" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = CoreGui -- Main Window local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 220, 0, 140) MainFrame.Position = UDim2.new(0.5, -110, 0.5, -70) MainFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) MainFrame.BorderSizePixel = 0 MainFrame.ClipsDescendants = true MainFrame.Parent = ScreenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 8) UICorner.Parent = MainFrame -- Title Bar local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, -35, 0, 30) Title.Position = UDim2.new(0, 10, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "FPS Changer" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.TextSize = 16 Title.Font = Enum.Font.SourceSansBold Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = MainFrame -- Minimize Button local MinButton = Instance.new("TextButton") MinButton.Size = UDim2.new(0, 24, 0, 24) MinButton.Position = UDim2.new(1, -28, 0, 3) MinButton.BackgroundColor3 = Color3.fromRGB(55, 55, 55) MinButton.TextColor3 = Color3.fromRGB(255, 255, 255) MinButton.TextSize = 16 MinButton.Font = Enum.Font.SourceSansBold MinButton.Text = "-" MinButton.Parent = MainFrame local MinCorner = Instance.new("UICorner") MinCorner.CornerRadius = UDim.new(0, 4) MinCorner.Parent = MinButton -- FPS Input Box local TextBox = Instance.new("TextBox") TextBox.Size = UDim2.new(0.8, 0, 0, 35) TextBox.Position = UDim2.new(0.1, 0, 0, 40) TextBox.BackgroundColor3 = Color3.fromRGB(50, 50, 50) TextBox.TextColor3 = Color3.fromRGB(255, 255, 255) TextBox.TextSize = 14 TextBox.Font = Enum.Font.SourceSans TextBox.PlaceholderText = "Enter FPS" TextBox.Text = "120" TextBox.Parent = MainFrame local BoxCorner = Instance.new("UICorner") BoxCorner.CornerRadius = UDim.new(0, 6) BoxCorner.Parent = TextBox -- Apply Button local ApplyButton = Instance.new("TextButton") ApplyButton.Size = UDim2.new(0.8, 0, 0, 35) ApplyButton.Position = UDim2.new(0.1, 0, 0, 85) ApplyButton.BackgroundColor3 = Color3.fromRGB(0, 170, 255) ApplyButton.TextColor3 = Color3.fromRGB(255, 255, 255) ApplyButton.TextSize = 14 ApplyButton.Font = Enum.Font.SourceSansBold ApplyButton.Text = "Apply FPS" ApplyButton.Parent = MainFrame local BtnCorner = Instance.new("UICorner") BtnCorner.CornerRadius = UDim.new(0, 6) BtnCorner.Parent = ApplyButton -- Bottom Notification Banner local NotifFrame = Instance.new("Frame") NotifFrame.Name = "Notification" NotifFrame.Size = UDim2.new(0, 280, 0, 55) NotifFrame.Position = UDim2.new(0.5, -140, 1, 10) -- Starts just off-screen at the bottom NotifFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) NotifFrame.BorderSizePixel = 0 NotifFrame.Parent = ScreenGui local NotifCorner = Instance.new("UICorner") NotifCorner.CornerRadius = UDim.new(0, 8) NotifCorner.Parent = NotifFrame local NotifAccent = Instance.new("Frame") NotifAccent.Size = UDim2.new(0, 4, 1, 0) NotifAccent.BackgroundColor3 = Color3.fromRGB(0, 170, 255) NotifAccent.BorderSizePixel = 0 NotifAccent.Parent = NotifFrame local NotifTitle = Instance.new("TextLabel") NotifTitle.Size = UDim2.new(1, -15, 0, 20) NotifTitle.Position = UDim2.new(0, 12, 0, 5) NotifTitle.BackgroundTransparency = 1 NotifTitle.Text = "FPS Changer Notice" NotifTitle.TextColor3 = Color3.fromRGB(0, 170, 255) NotifTitle.TextSize = 14 NotifTitle.Font = Enum.Font.SourceSansBold NotifTitle.TextXAlignment = Enum.TextXAlignment.Left NotifTitle.Parent = NotifFrame local NotifText = Instance.new("TextLabel") NotifText.Size = UDim2.new(1, -15, 0, 25) NotifText.Position = UDim2.new(0, 12, 0, 24) NotifText.BackgroundTransparency = 1 NotifText.Text = "Your phone must support 90 or 120 Hz for this to work." NotifText.TextColor3 = Color3.fromRGB(235, 235, 235) NotifText.TextSize = 13 NotifText.Font = Enum.Font.SourceSans NotifText.TextXAlignment = Enum.TextXAlignment.Left NotifText.TextWrapped = true NotifText.Parent = NotifFrame -- Animate Notification In and Out task.spawn(function() local slideIn = TweenService:Create(NotifFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Position = UDim2.new(0.5, -140, 1, -75) }) slideIn:Play() slideIn.Completed:Wait() task.wait(5) -- Stays visible for 5 seconds local slideOut = TweenService:Create(NotifFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.In), { Position = UDim2.new(0.5, -140, 1, 10) }) slideOut:Play() slideOut.Completed:Wait() NotifFrame:Destroy() end) -- Set default 120 FPS immediately on startup pcall(function() setfflag("TaskSchedulerTargetFps", "120") end) -- Apply custom FPS ApplyButton.MouseButton1Click:Connect(function() local targetFps = TextBox.Text pcall(function() setfflag("TaskSchedulerTargetFps", tostring(targetFps)) end) end) -- Minimize / Expand Logic local minimized = false MinButton.MouseButton1Click:Connect(function() minimized = not minimized if minimized then MainFrame.Size = UDim2.new(0, 220, 0, 30) MinButton.Text = "+" else MainFrame.Size = UDim2.new(0, 220, 0, 140) MinButton.Text = "-" end end) -- Keybind Toggle (RightShift) UserInputService.InputBegan:Connect(function(input, gameProcessed) if not gameProcessed and input.KeyCode == Enum.KeyCode.RightShift then MainFrame.Visible = not MainFrame.Visible end end) -- Dragging Support (Works on Touch and Mouse) local dragging, dragInput, dragStart, startPos MainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = MainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) MainFrame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end)