-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] -- Rivals Script | Loadstring-compatible -- Execute via your preferred Roblox executor local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Camera = workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer local Mouse = LocalPlayer:GetMouse() -- CONFIG local Config = { ESP = { Enabled = true, BoxColor = Color3.fromRGB(255, 80, 80), NameColor = Color3.fromRGB(255, 255, 255), HealthColor = Color3.fromRGB(0, 255, 100), TracerColor = Color3.fromRGB(255, 80, 80), ShowTracers = true, ShowHealth = true, ShowNames = true, ShowBoxes = true, }, Aimbot = { Enabled = true, Key = Enum.KeyCode.E, FOV = 150, Smoothness = 0.2, TargetPart = "Head", ShowFOV = true, FOVColor = Color3.fromRGB(255, 255, 255), }, Movement = { SpeedEnabled = false, Speed = 30, JumpEnabled = false, JumpPower = 80, NoclipEnabled = false, }, Silent = { AimbotEnabled = false, -- silent aim } } -- UTILITIES local function GetCharacter(player) return player.Character end local function GetRootPart(player) local char = GetCharacter(player) return char and char:FindFirstChild("HumanoidRootPart") end local function GetHumanoid(player) local char = GetCharacter(player) return char and char:FindFirstChildOfClass("Humanoid") end local function GetHead(player) local char = GetCharacter(player) return char and char:FindFirstChild("Head") end local function IsAlive(player) local hum = GetHumanoid(player) return hum and hum.Health > 0 end local function WorldToViewport(pos) local screenPos, onScreen = Camera:WorldToViewportPoint(pos) return Vector2.new(screenPos.X, screenPos.Y), screenPos.Z, onScreen end local function GetDistance(player) local root = GetRootPart(player) local localRoot = GetRootPart(LocalPlayer) if root and localRoot then return (root.Position - localRoot.Position).Magnitude end return math.huge end -- ESP SYSTEM local ESPFolder = Instance.new("Folder") ESPFolder.Name = "RivalsESP" ESPFolder.Parent = game.CoreGui local ESPObjects = {} local function CreateESP(player) if ESPObjects[player] then return end local drawing = {} -- Box local box = Drawing.new("Square") box.Filled = false box.Thickness = 1.5 box.Visible = false drawing.Box = box -- Name local name = Drawing.new("Text") name.Size = 13 name.Center = true name.Outline = true name.Visible = false drawing.Name = name -- Health bar background local healthBG = Drawing.new("Square") healthBG.Filled = true healthBG.Color = Color3.fromRGB(0, 0, 0) healthBG.Transparency = 0.5 healthBG.Visible = false drawing.HealthBG = healthBG -- Health bar local health = Drawing.new("Square") health.Filled = true health.Visible = false drawing.Health = health -- Tracer local tracer = Drawing.new("Line") tracer.Thickness = 1 tracer.Visible = false drawing.Tracer = tracer ESPObjects[player] = drawing end local function RemoveESP(player) if ESPObjects[player] then for _, obj in pairs(ESPObjects[player]) do obj:Remove() end ESPObjects[player] = nil end end local function UpdateESP() for _, player in ipairs(Players:GetPlayers()) do if player == LocalPlayer then continue end if not ESPObjects[player] then CreateESP(player) end local drawing = ESPObjects[player] if not drawing then continue end if not Config.ESP.Enabled or not IsAlive(player) then for _, obj in pairs(drawing) do obj.Visible = false end continue end local char = GetCharacter(player) local root = GetRootPart(player) local head = GetHead(player) local hum = GetHumanoid(player) if not char or not root or not head or not hum then for _, obj in pairs(drawing) do obj.Visible = false end continue end -- Calculate box from character bounding local hrpPos, depth, onScreen = WorldToViewport(root.Position) local headPos = WorldToViewport(head.Position + Vector3.new(0, 0.5, 0)) local feetPos = WorldToViewport(root.Position - Vector3.new(0, 3, 0)) if not onScreen or depth <= 0 then for _, obj in pairs(drawing) do obj.Visible = false end continue end local boxHeight = math.abs(headPos.Y - feetPos.Y) local boxWidth = boxHeight * 0.5 local boxX = hrpPos.X - boxWidth / 2 local boxY = headPos.Y -- Box if Config.ESP.ShowBoxes then drawing.Box.Position = Vector2.new(boxX, boxY) drawing.Box.Size = Vector2.new(boxWidth, boxHeight) drawing.Box.Color = Config.ESP.BoxColor drawing.Box.Visible = true else drawing.Box.Visible = false end -- Name if Config.ESP.ShowNames then drawing.Name.Position = Vector2.new(hrpPos.X, boxY - 16) drawing.Name.Text = player.DisplayName .. " [" .. math.floor(GetDistance(player)) .. "m]" drawing.Name.Color = Config.ESP.NameColor drawing.Name.Visible = true else drawing.Name.Visible = false end -- Health bar if Config.ESP.ShowHealth then local healthRatio = hum.Health / hum.MaxHealth local barH = boxHeight local barX = boxX - 6 drawing.HealthBG.Position = Vector2.new(barX, boxY) drawing.HealthBG.Size = Vector2.new(4, barH) drawing.HealthBG.Visible = true drawing.Health.Position = Vector2.new(barX, boxY + barH * (1 - healthRatio)) drawing.Health.Size = Vector2.new(4, barH * healthRatio) drawing.Health.Color = Color3.fromRGB( math.floor(255 * (1 - healthRatio)), math.floor(255 * healthRatio), 0 ) drawing.Health.Visible = true else drawing.HealthBG.Visible = false drawing.Health.Visible = false end -- Tracer if Config.ESP.ShowTracers then local viewportSize = Camera.ViewportSize drawing.Tracer.From = Vector2.new(viewportSize.X / 2, viewportSize.Y) drawing.Tracer.To = hrpPos drawing.Tracer.Color = Config.ESP.TracerColor drawing.Tracer.Visible = true else drawing.Tracer.Visible = false end end end -- FOV CIRCLE local FOVCircle = Drawing.new("Circle") FOVCircle.Filled = false FOVCircle.Radius = Config.Aimbot.FOV FOVCircle.Thickness = 1 FOVCircle.Color = Config.Aimbot.FOVColor FOVCircle.Visible = Config.Aimbot.ShowFOV -- AIMBOT SYSTEM local function GetClosestPlayer() local closestPlayer = nil local closestDist = Config.Aimbot.FOV local viewportCenter = Camera.ViewportSize / 2 for _, player in ipairs(Players:GetPlayers()) do if player == LocalPlayer then continue end if not IsAlive(player) then continue end local targetPart = GetCharacter(player) and GetCharacter(player):FindFirstChild(Config.Aimbot.TargetPart) if not targetPart then continue end local screenPos, depth, onScreen = WorldToViewport(targetPart.Position) if not onScreen or depth <= 0 then continue end local dist = (screenPos - viewportCenter).Magnitude if dist < closestDist then closestDist = dist closestPlayer = player end end return closestPlayer end local AimbotActive = false UserInputService.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == Config.Aimbot.Key then AimbotActive = true end end) UserInputService.InputEnded:Connect(function(input) if input.KeyCode == Config.Aimbot.Key then AimbotActive = false end end) local function UpdateAimbot() local viewportSize = Camera.ViewportSize FOVCircle.Position = viewportSize / 2 FOVCircle.Visible = Config.Aimbot.ShowFOV and Config.Aimbot.Enabled if not Config.Aimbot.Enabled then return end if not AimbotActive then return end local target = GetClosestPlayer() if not target then return end local targetPart = GetCharacter(target) and GetCharacter(target):FindFirstChild(Config.Aimbot.TargetPart) if not targetPart then return end local targetPos = Camera:WorldToViewportPoint(targetPart.Position) local currentCF = Camera.CFrame local targetCF = CFrame.lookAt(currentCF.Position, targetPart.Position) Camera.CFrame = currentCF:Lerp(targetCF, Config.Aimbot.Smoothness) end -- MOVEMENT MODS local function ApplyMovement() local character = LocalPlayer.Character if not character then return end local humanoid = character:FindFirstChildOfClass("Humanoid") local rootPart = character:FindFirstChild("HumanoidRootPart") if not humanoid then return end if Config.Movement.SpeedEnabled then humanoid.WalkSpeed = Config.Movement.Speed else humanoid.WalkSpeed = 16 end if Config.Movement.JumpEnabled then humanoid.JumpPower = Config.Movement.JumpPower else humanoid.JumpPower = 50 end end -- NOCLIP RunService.Stepped:Connect(function() if Config.Movement.NoclipEnabled then local character = LocalPlayer.Character if character then for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end end) -- PLAYER TRACKING Players.PlayerAdded:Connect(function(player) CreateESP(player) end) Players.PlayerRemoving:Connect(function(player) RemoveESP(player) end) for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer then CreateESP(player) end end -- MAIN LOOP RunService.RenderStepped:Connect(function() UpdateESP() UpdateAimbot() ApplyMovement() end) -- SIMPLE GUI TOGGLE local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "RivalsMenu" ScreenGui.ResetOnSpawn = false ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.Parent = game.CoreGui local Frame = Instance.new("Frame") Frame.Size = UDim2.new(0, 200, 0, 280) Frame.Position = UDim2.new(0, 10, 0.3, 0) Frame.BackgroundColor3 = Color3.fromRGB(15, 15, 20) Frame.BorderSizePixel = 0 Frame.Active = true Frame.Draggable = true Frame.Parent = ScreenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 8) UICorner.Parent = Frame local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 30) Title.BackgroundColor3 = Color3.fromRGB(255, 80, 80) Title.Text = "⚡ RIVALS SCRIPT" Title.TextColor3 = Color3.new(1, 1, 1) Title.TextScaled = true Title.Font = Enum.Font.GothamBold Title.Parent = Frame local UICorner2 = Instance.new("UICorner") UICorner2.CornerRadius = UDim.new(0, 8) UICorner2.Parent = Title local function CreateToggle(name, yPos, configTable, configKey) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.9, 0, 0, 28) btn.Position = UDim2.new(0.05, 0, 0, yPos) btn.BackgroundColor3 = configTable[configKey] and Color3.fromRGB(255, 80, 80) or Color3.fromRGB(40, 40, 50) btn.Text = name .. ": " .. (configTable[configKey] and "ON" or "OFF") btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.Gotham btn.TextScaled = true btn.Parent = Frame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 6) corner.Parent = btn btn.MouseButton1Click:Connect(function() configTable[configKey] = not configTable[configKey] btn.Text = name .. ": " .. (configTable[configKey] and "ON" or "OFF") btn.BackgroundColor3 = configTable[configKey] and Color3.fromRGB(255, 80, 80) or Color3.fromRGB(40, 40, 50) end) end CreateToggle("ESP", 38, Config.ESP, "Enabled") CreateToggle("Tracers", 72, Config.ESP, "ShowTracers") CreateToggle("Health", 106, Config.ESP, "ShowHealth") CreateToggle("Aimbot", 140, Config.Aimbot, "Enabled") CreateToggle("FOV Circle",174, Config.Aimbot, "ShowFOV") CreateToggle("Speed", 208, Config.Movement, "SpeedEnabled") CreateToggle("Noclip", 242, Config.Movement, "NoclipEnabled") print("[Rivals Script] Loaded successfully.")