local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local CoreGui = game:GetService("CoreGui") local me = Players.LocalPlayer local mouse = me:GetMouse() -- settings local settings = { silentAim = true, fov = 300, visible = true, rage = true, esp = true } -- unlock all task.spawn(function() for _, v in pairs(game:GetDescendants()) do if v:IsA("Tool") or v:IsA("Accessory") then local clone = v:Clone() clone.Parent = me.Backpack end end end) -- gui library (works on mobile and pc) local library = {} local main = Instance.new("ScreenGui") main.Name = "RivalsCheatGUI" main.Parent = CoreGui main.ResetOnSpawn = false local container = Instance.new("Frame") container.Size = UDim2.new(0, 350, 0, 400) container.Position = UDim2.new(0.5, -175, 0.5, -200) container.BackgroundColor3 = Color3.fromRGB(30, 30, 30) container.Parent = main local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 40) title.BackgroundColor3 = Color3.fromRGB(60, 60, 60) title.Text = "Rivals Menu" title.TextColor3 = Color3.new(1, 1, 1) title.Parent = container local tabs = {} local function createToggle(name, callback, defaultValue) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, -20, 0, 30) frame.Position = UDim2.new(0, 10, 0, 50 + #tabs * 35) frame.BackgroundTransparency = 1 frame.Parent = container local label = Instance.new("TextLabel") label.Size = UDim2.new(0,. 200, 1, 0) label.Text = name label.TextColor3 = Color3.new(1, 1, 1) label.BackgroundTransparency = 1 label.Parent = frame local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0, 60, 0, 25) toggleBtn.Position = UDim2.new(1, -65, 0.5, -12) toggleBtn.Text = defaultValue and "ON" or "OFF" toggleBtn.TextColor3 = Color3.new(0, 0, 0) toggleBtn.BackgroundColor3 = defaultValue and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(255, 50, 50) toggleBtn.Parent = frame toggleBtn.MouseButton1Click:Connect(function() local new = not (toggleBtn.Text == "ON") toggleBtn.Text = new and "ON" or "OFF" toggleBtn.BackgroundColor3 = new and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(255, 50, 50) callback(new) end) return toggleBtn end createToggle("Silent Aim", function(state) settings.silentAim = state end, true) createToggle("ESP", function(state) settings.esp = state end, true) createToggle("Rage (Wallbang)", function(state) settings.rage = state end, true) -- fov slider local fovFrame = Instance.new("Frame") fovFrame.Size = UDim2.new(1, -20, 0, 50) fovFrame.Position = UDim2.new(0, 10, 0, 200) fovFrame.BackgroundTransparency = 1 fovFrame.Parent = container local fovText = Instance.new("TextLabel") fovText.Size = UDim2.new(1, 0, 0, 20) fovText.Text = "FOV: 300" fovText.TextColor3 = Color3.new(1, 1, 1) fovText.BackgroundTransparency = 1 fovText.Parent = fovFrame local slider = Instance.new("TextBox") slider.Size = UDim2.new(1, 0, 0, 20) slider.Position = UDim2.new(0, 0, 0, 25) slider.Text = "300" slider.BackgroundColor3 = Color3.fromRGB(50, 50, 50) slider.TextColor3 = Color3.new(1, 1, 1) slider.Parent = fovFrame slider.FocusLost:Connect(function() local num = tonumber(slider.Text) if num then settings.fov = math.clamp(num, 10, 1000) slider.Text = tostring(settings.fov) fovText.Text = "FOV: " .. tostring(settings.fov) end end) -- drag gui local dragging, dragStart, startPos container.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = container.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart container.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) -- esp boxes local espBoxes = {} local function updateESP() if not settings.esp then for _, box in pairs(espBoxes) do box.Visible = false end return end for player, box in pairs(espBoxes) do if player and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local hrp = player.Character.HumanoidRootPart local pos, onScreen = workspace.CurrentCamera:WorldToViewportPoint(hrp.Position) if onScreen then box.Size = Vector2.new(20, 35) box.Position = Vector2.new(pos.X - 10, pos.Y - 17) box.Visible = true else box.Visible = false end else box.Visible = false end end end -- silent aim local function getClosestPlayer() local closest, dist = nil, settings.fov local mousePos = Vector2.new(mouse.X, mouse.Y) for _, player in pairs(Players:GetPlayers()) do if player ~= me and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local hrp = player.Character.HumanoidRootPart local screenPos = workspace.CurrentCamera:WorldToViewportPoint(hrp.Position) local diff = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude if diff < dist then dist = diff closest = player end end end return closest end -- wallbang local mt = getrawmetatable(game) local oldIndex = mt.__index setreadonly(mt, false) mt.__index = newcclosure(function(self, key) if settings.rage and key == "Material" then return Enum.Material.Air end return oldIndex(self, key) end) setreadonly(mt, true) -- silent aim hook local oldName oldName = hookmetamethod(game, "__namecall", function(self, ...) local args = {...} local method = getnamecallmethod() if settings.silentAim and method:lower():find("fire") then local target = getClosestPlayer() if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then args[1] = target.Character.HumanoidRootPart.Position end end return oldName(self, unpack(args)) end) -- loop RunService.RenderStepped:Connect(function() for _, player in pairs(Players:GetPlayers()) do if not espBoxes[player] then local box = Drawing.new("Square") box.Visible = false box.Color = Color3.fromRGB(255, 0, 0) box.Thickness = 2 espBoxes[player] = box end end updateESP() end)