-- [[ 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 ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Lighting = game:GetService("Lighting") local HttpService = game:GetService("HttpService") local VirtualUser = game:GetService("VirtualUser") local CoreGui = game:GetService("CoreGui") local Workspace = game:GetService("Workspace") local LP = Players.LocalPlayer local Camera = Workspace.CurrentCamera local RNG = Random.new() local Config = { Aimlock = false, Aimbot = false, Silent = false, Wallbang = true, FOV = 160, Smooth = 0.4, TeamCheck = true, Target = "Head", Trigger = false, TrigFOV = 35, TrigDelay = 0.07, ESP = false, Boxes = true, Names = true, Distance = true, ESPTeam = true, ESPColor = Color3.fromRGB(255, 40, 40), Speed = false, SpeedVal = 28, Fly = false, FlySpeed = 55, InfJump = false, Noclip = false, NoRecoil = false, NoSpread = false, InfAmmo = false, Hitbox = false, HitSize = 5, ThirdP = false, Fullbright= false, NoFog = false, AntiAFK = true } local ESPFolder = Instance.new("Folder") ESPFolder.Name = "R_ESP" ESPFolder.Parent = CoreGui local BV, BG local lastTrig = 0 ---------------------------------------------------------------- -- TARGET ---------------------------------------------------------------- local function GetTarget() local best, part = Config.FOV, nil local center = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2) for _, plr in ipairs(Players:GetPlayers()) do if plr == LP then continue end local char = plr.Character if not char then continue end local hum = char:FindFirstChildOfClass("Humanoid") local hrp = char:FindFirstChild("HumanoidRootPart") if not hum or not hrp or hum.Health <= 0 then continue end if Config.TeamCheck and plr.Team and LP.Team and plr.Team == LP.Team then continue end local p = char:FindFirstChild(Config.Target) or char:FindFirstChild("Head") or hrp local sp, on = Camera:WorldToViewportPoint(p.Position) if not on then continue end local mag = (Vector2.new(sp.X, sp.Y) - center).Magnitude if mag >= best then continue end if not Config.Wallbang then local rp = RaycastParams.new() rp.FilterDescendantsInstances = {LP.Character} rp.FilterType = Enum.RaycastFilterType.Exclude local hit = Workspace:Raycast(Camera.CFrame.Position, p.Position - Camera.CFrame.Position, rp) if hit and not hit.Instance:IsDescendantOf(char) then continue end end best = mag part = p end return part end ---------------------------------------------------------------- -- AIM (aimlock kept hard, aimbot + silent fixed) ---------------------------------------------------------------- local function DoAim() if not (Config.Aimlock or Config.Aimbot or Config.Silent) then return end local part = GetTarget() if not part then return end local goal = CFrame.new(Camera.CFrame.Position, part.Position) if Config.Aimlock then Camera.CFrame = goal -- hard lock (the one that worked) elseif Config.Silent then Camera.CFrame = Camera.CFrame:Lerp(goal, 0.7) else Camera.CFrame = Camera.CFrame:Lerp(goal, Config.Smooth) end end ---------------------------------------------------------------- -- TRIGGERBOT (actually fires) ---------------------------------------------------------------- local function DoTrigger() if not Config.Trigger then return end if tick() - lastTrig < Config.TrigDelay then return end local part = GetTarget() if not part then return end local sp, on = Camera:WorldToViewportPoint(part.Position) if not on then return end local center = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2) if (Vector2.new(sp.X, sp.Y) - center).Magnitude > Config.TrigFOV then return end lastTrig = tick() local char = LP.Character if not char then return end local tool = char:FindFirstChildOfClass("Tool") if tool then pcall(function() tool:Activate() end) end end ---------------------------------------------------------------- -- ESP (already worked — kept) ---------------------------------------------------------------- local function ClearESP() ESPFolder:ClearAllChildren() end local function MakeESP(plr) local char = plr.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") local hum = char:FindFirstChildOfClass("Humanoid") if not hrp or not hum then return end if Config.Boxes then local hl = Instance.new("Highlight") hl.Adornee = char hl.FillColor = Config.ESPColor hl.OutlineColor = Color3.new(1,1,1) hl.FillTransparency = 0.6 hl.OutlineTransparency = 0 hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.Parent = ESPFolder end if Config.Names or Config.Distance then local bb = Instance.new("BillboardGui") bb.Adornee = hrp bb.Size = UDim2.new(0, 140, 0, 40) bb.StudsOffset = Vector3.new(0, 3.4, 0) bb.AlwaysOnTop = true bb.Parent = ESPFolder local lab = Instance.new("TextLabel") lab.Size = UDim2.new(1,0,1,0) lab.BackgroundTransparency = 1 lab.TextColor3 = Color3.new(1,1,1) lab.TextStrokeTransparency = 0.2 lab.Font = Enum.Font.GothamBold lab.TextSize = 14 lab.Parent = bb local c c = RunService.RenderStepped:Connect(function() if not char.Parent or not hrp.Parent or hum.Health <= 0 then bb:Destroy() if c then c:Disconnect() end return end local t = "" if Config.Names then t = plr.DisplayName or plr.Name end if Config.Distance then local d = math.floor((hrp.Position - Camera.CFrame.Position).Magnitude) t = t .. (t ~= "" and "\n" or "") .. d .. "m" end lab.Text = t end) end end local function RefreshESP() ClearESP() if not Config.ESP then return end for _, plr in ipairs(Players:GetPlayers()) do if plr == LP then continue end if Config.ESPTeam and plr.Team and LP.Team and plr.Team == LP.Team then continue end if plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then MakeESP(plr) end end end task.spawn(function() while task.wait(1) do if Config.ESP then RefreshESP() else ClearESP() end end end) ---------------------------------------------------------------- -- SPEED (forced every frame — fixed) ---------------------------------------------------------------- local function DoSpeed() local char = LP.Character if not char then return end local hum = char:FindFirstChildOfClass("Humanoid") if not hum then return end if Config.Speed then hum.WalkSpeed = Config.SpeedVal end end ---------------------------------------------------------------- -- FLY (fixed) ---------------------------------------------------------------- local function DoFly() local char = LP.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if not hrp then return end if not Config.Fly then if BV then BV:Destroy() BV = nil end if BG then BG:Destroy() BG = nil end return end if not BV then BV = Instance.new("BodyVelocity") BV.MaxForce = Vector3.new(9e9, 9e9, 9e9) BV.Velocity = Vector3.zero BV.Parent = hrp BG = Instance.new("BodyGyro") BG.MaxTorque = Vector3.new(9e9, 9e9, 9e9) BG.P = 9e4 BG.Parent = hrp end local hum = char:FindFirstChildOfClass("Humanoid") local move = hum and hum.MoveDirection or Vector3.zero local vel = Vector3.zero if move.Magnitude > 0.05 then local dir = (Camera.CFrame.RightVector * move.X + Camera.CFrame.LookVector * move.Z) if dir.Magnitude > 0 then vel = dir.Unit * Config.FlySpeed end end BV.Velocity = vel BG.CFrame = Camera.CFrame end ---------------------------------------------------------------- -- NOCLIP (fixed) ---------------------------------------------------------------- local function DoNoclip() if not Config.Noclip then return end local char = LP.Character if not char then return end for _, p in ipairs(char:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end ---------------------------------------------------------------- -- INF JUMP ---------------------------------------------------------------- UserInputService.JumpRequest:Connect(function() if Config.InfJump then local char = LP.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end end end) ---------------------------------------------------------------- -- COMBAT HOOKS ---------------------------------------------------------------- local function DoCombat() local char = LP.Character if not char then return end local tool = char:FindFirstChildOfClass("Tool") if not tool then return end for _, v in ipairs(tool:GetDescendants()) do if v:IsA("NumberValue") or v:IsA("IntValue") then local n = v.Name:lower() if Config.NoRecoil and (n:find("recoil") or n:find("kick")) then pcall(function() v.Value = 0 end) end if Config.NoSpread and n:find("spread") then pcall(function() v.Value = 0 end) end if Config.InfAmmo and (n:find("ammo") or n:find("clip") or n:find("mag")) then pcall(function() v.Value = 999 end) end end end end local function DoHitbox() if not Config.Hitbox then return end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then local hrp = plr.Character:FindFirstChild("HumanoidRootPart") if hrp then hrp.Size = Vector3.new(Config.HitSize, Config.HitSize, Config.HitSize) hrp.Transparency = 0.75 hrp.CanCollide = false end end end end ---------------------------------------------------------------- -- VISUALS ---------------------------------------------------------------- local function DoFullbright() if Config.Fullbright then Lighting.Brightness = 2 Lighting.ClockTime = 14 Lighting.FogEnd = 1e6 Lighting.GlobalShadows = false end end local function DoNoFog() if Config.NoFog then Lighting.FogEnd = 1e6 end end local function DoThird() pcall(function() LP.CameraMode = Config.ThirdP and Enum.CameraMode.Classic or Enum.CameraMode.LockFirstPerson end) end LP.Idled:Connect(function() if Config.AntiAFK then pcall(function() VirtualUser:CaptureController() VirtualUser:ClickButton2(Vector2.new()) end) end end) ---------------------------------------------------------------- -- GUI ---------------------------------------------------------------- local SG = Instance.new("ScreenGui") SG.Name = "RMob24" SG.ResetOnSpawn = false SG.DisplayOrder = 999 SG.IgnoreGuiInset = true pcall(function() SG.Parent = CoreGui end) if not SG.Parent then SG.Parent = LP:WaitForChild("PlayerGui") end local OpenBtn = Instance.new("TextButton") OpenBtn.Size = UDim2.new(0, 58, 0, 58) OpenBtn.Position = UDim2.new(1, -72, 0.42, 0) OpenBtn.BackgroundColor3 = Color3.fromRGB(255, 45, 45) OpenBtn.Text = "R" OpenBtn.TextColor3 = Color3.new(1,1,1) OpenBtn.Font = Enum.Font.GothamBold OpenBtn.TextSize = 22 OpenBtn.Parent = SG Instance.new("UICorner", OpenBtn).CornerRadius = UDim.new(1, 0) local Main = Instance.new("Frame") Main.Size = UDim2.new(0, 310, 0, 460) Main.Position = UDim2.new(0.5, -155, 0.5, -230) Main.BackgroundColor3 = Color3.fromRGB(16, 16, 20) Main.Visible = false Main.Parent = SG Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 12) local Top = Instance.new("Frame") Top.Size = UDim2.new(1, 0, 0, 40) Top.BackgroundColor3 = Color3.fromRGB(26, 26, 32) Top.Parent = Main Instance.new("UICorner", Top).CornerRadius = UDim.new(0, 12) local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, -50, 1, 0) Title.Position = UDim2.new(0, 12, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "RIVAL v2.4" Title.TextColor3 = Color3.fromRGB(255, 60, 60) Title.Font = Enum.Font.GothamBold Title.TextSize = 16 Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = Top local Close = Instance.new("TextButton") Close.Size = UDim2.new(0, 34, 0, 34) Close.Position = UDim2.new(1, -38, 0, 3) Close.BackgroundColor3 = Color3.fromRGB(40, 40, 48) Close.Text = "X" Close.TextColor3 = Color3.fromRGB(255, 80, 80) Close.Font = Enum.Font.GothamBold Close.TextSize = 15 Close.Parent = Top Instance.new("UICorner", Close).CornerRadius = UDim.new(0, 8) local TabBar = Instance.new("ScrollingFrame") TabBar.Size = UDim2.new(1, -8, 0, 36) TabBar.Position = UDim2.new(0, 4, 0, 44) TabBar.BackgroundTransparency = 1 TabBar.ScrollBarThickness = 0 TabBar.CanvasSize = UDim2.new(0, 420, 0, 0) TabBar.Parent = Main local TabLay = Instance.new("UIListLayout", TabBar) TabLay.FillDirection = Enum.FillDirection.Horizontal TabLay.Padding = UDim.new(0, 5) local Content = Instance.new("ScrollingFrame") Content.Size = UDim2.new(1, -12, 1, -90) Content.Position = UDim2.new(0, 6, 0, 84) Content.BackgroundTransparency = 1 Content.ScrollBarThickness = 3 Content.CanvasSize = UDim2.new(0, 0, 0, 800) Content.Parent = Main local ContLay = Instance.new("UIListLayout", Content) ContLay.Padding = UDim.new(0, 6) local Tabs = {"Combat", "ESP", "Move", "Visual"} local TabBtns = {} local Cur = "Combat" local function Clear() for _, c in ipairs(Content:GetChildren()) do if not c:IsA("UIListLayout") then c:Destroy() end end end local function Toggle(txt, val, cb) local f = Instance.new("Frame") f.Size = UDim2.new(1, 0, 0, 44) f.BackgroundColor3 = Color3.fromRGB(28, 28, 34) f.Parent = Content Instance.new("UICorner", f).CornerRadius = UDim.new(0, 8) local l = Instance.new("TextLabel") l.Size = UDim2.new(1, -70, 1, 0) l.Position = UDim2.new(0, 10, 0, 0) l.BackgroundTransparency = 1 l.Text = txt l.TextColor3 = Color3.fromRGB(230, 230, 230) l.Font = Enum.Font.Gotham l.TextSize = 14 l.TextXAlignment = Enum.TextXAlignment.Left l.Parent = f local b = Instance.new("TextButton") b.Size = UDim2.new(0, 54, 0, 28) b.Position = UDim2.new(1, -62, 0.5, -14) b.BackgroundColor3 = val and Color3.fromRGB(255, 50, 50) or Color3.fromRGB(55, 55, 65) b.Text = val and "ON" or "OFF" b.TextColor3 = Color3.new(1,1,1) b.Font = Enum.Font.GothamBold b.TextSize = 12 b.Parent = f Instance.new("UICorner", b).CornerRadius = UDim.new(0, 8) local on = val b.MouseButton1Click:Connect(function() on = not on b.BackgroundColor3 = on and Color3.fromRGB(255, 50, 50) or Color3.fromRGB(55, 55, 65) b.Text = on and "ON" or "OFF" cb(on) end) end local function Slider(txt, min, max, val, cb) local f = Instance.new("Frame") f.Size = UDim2.new(1, 0, 0, 58) f.BackgroundColor3 = Color3.fromRGB(28, 28, 34) f.Parent = Content Instance.new("UICorner", f).CornerRadius = UDim.new(0, 8) local l = Instance.new("TextLabel") l.Size = UDim2.new(1, -16, 0, 20) l.Position = UDim2.new(0, 10, 0, 4) l.BackgroundTransparency = 1 l.Text = txt .. ": " .. val l.TextColor3 = Color3.fromRGB(230, 230, 230) l.Font = Enum.Font.Gotham l.TextSize = 13 l.TextXAlignment = Enum.TextXAlignment.Left l.Parent = f local bar = Instance.new("Frame") bar.Size = UDim2.new(1, -20, 0, 12) bar.Position = UDim2.new(0, 10, 0, 32) bar.BackgroundColor3 = Color3.fromRGB(48, 48, 58) bar.Parent = f Instance.new("UICorner", bar).CornerRadius = UDim.new(0, 6) local fill = Instance.new("Frame") fill.Size = UDim2.new((val-min)/(max-min), 0, 1, 0) fill.BackgroundColor3 = Color3.fromRGB(255, 50, 50) fill.Parent = bar Instance.new("UICorner", fill).CornerRadius = UDim.new(0, 6) local hold = false bar.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then hold = true end end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then hold = false end end) UserInputService.InputChanged:Connect(function(i) if hold and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then local r = math.clamp((i.Position.X - bar.AbsolutePosition.X) / bar.AbsoluteSize.X, 0, 1) local v = math.floor(min + (max-min)*r) fill.Size = UDim2.new(r, 0, 1, 0) l.Text = txt .. ": " .. v cb(v) end end) end local function Build(name) Clear() if name == "Combat" then Toggle("Aimlock (Hard)", Config.Aimlock, function(v) Config.Aimlock = v end) Toggle("Aimbot (Smooth)", Config.Aimbot, function(v) Config.Aimbot = v end) Toggle("Silent Aim", Config.Silent, function(v) Config.Silent = v end) Toggle("Wallbang", Config.Wallbang, function(v) Config.Wallbang = v end) Toggle("Triggerbot", Config.Trigger, function(v) Config.Trigger = v end) Slider("Aim FOV", 40, 300, Config.FOV, function(v) Config.FOV = v end) Slider("Smooth", 10, 70, math.floor(Config.Smooth*100), function(v) Config.Smooth = v/100 end) Slider("Trigger FOV", 10, 70, Config.TrigFOV, function(v) Config.TrigFOV = v end) Toggle("Team Check", Config.TeamCheck, function(v) Config.TeamCheck = v end) Toggle("No Recoil", Config.NoRecoil, function(v) Config.NoRecoil = v end) Toggle("No Spread", Config.NoSpread, function(v) Config.NoSpread = v end) Toggle("Infinite Ammo", Config.InfAmmo, function(v) Config.InfAmmo = v end) Toggle("Hitbox Expand", Config.Hitbox, function(v) Config.Hitbox = v end) Slider("Hitbox Size", 2, 15, Config.HitSize, function(v) Config.HitSize = v end) elseif name == "ESP" then Toggle("ESP", Config.ESP, function(v) Config.ESP = v if v then RefreshESP() else ClearESP() end end) Toggle("Boxes", Config.Boxes, function(v) Config.Boxes = v if Config.ESP then RefreshESP() end end) Toggle("Names", Config.Names, function(v) Config.Names = v if Config.ESP then RefreshESP() end end) Toggle("Distance", Config.Distance, function(v) Config.Distance = v if Config.ESP then RefreshESP() end end) Toggle("Team Check", Config.ESPTeam, function(v) Config.ESPTeam = v if Config.ESP then RefreshESP() end end) elseif name == "Move" then Toggle("Speed", Config.Speed, function(v) Config.Speed = v end) Slider("Speed Value", 16, 50, Config.SpeedVal, function(v) Config.SpeedVal = v end) Toggle("Fly", Config.Fly, function(v) Config.Fly = v end) Slider("Fly Speed", 20, 120, Config.FlySpeed, function(v) Config.FlySpeed = v end) Toggle("Infinite Jump", Config.InfJump, function(v) Config.InfJump = v end) Toggle("Noclip", Config.Noclip, function(v) Config.Noclip = v end) elseif name == "Visual" then Toggle("Third Person", Config.ThirdP, function(v) Config.ThirdP = v DoThird() end) Toggle("Fullbright", Config.Fullbright, function(v) Config.Fullbright = v DoFullbright() end) Toggle("No Fog", Config.NoFog, function(v) Config.NoFog = v DoNoFog() end) Toggle("Anti-AFK", Config.AntiAFK, function(v) Config.AntiAFK = v end) end Content.CanvasSize = UDim2.new(0, 0, 0, ContLay.AbsoluteContentSize.Y + 20) end for _, n in ipairs(Tabs) do local b = Instance.new("TextButton") b.Size = UDim2.new(0, 78, 0, 30) b.BackgroundColor3 = n == Cur and Color3.fromRGB(255, 50, 50) or Color3.fromRGB(38, 38, 46) b.Text = n b.TextColor3 = Color3.new(1,1,1) b.Font = Enum.Font.GothamBold b.TextSize = 12 b.Parent = TabBar Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6) TabBtns[n] = b b.MouseButton1Click:Connect(function() Cur = n for k, btn in pairs(TabBtns) do btn.BackgroundColor3 = k == n and Color3.fromRGB(255, 50, 50) or Color3.fromRGB(38, 38, 46) end Build(n) end) end OpenBtn.MouseButton1Click:Connect(function() Main.Visible = not Main.Visible if Main.Visible then Build(Cur) end end) Close.MouseButton1Click:Connect(function() Main.Visible = false end) local dragging, d0, p0 Top.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = true d0 = i.Position p0 = Main.Position end end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = false end end) UserInputService.InputChanged:Connect(function(i) if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then local d = i.Position - d0 Main.Position = UDim2.new(p0.X.Scale, p0.X.Offset + d.X, p0.Y.Scale, p0.Y.Offset + d.Y) end end) ---------------------------------------------------------------- -- MAIN LOOP (speed forced every frame) ---------------------------------------------------------------- RunService.RenderStepped:Connect(function() DoAim() DoTrigger() DoSpeed() -- forced every frame DoFly() DoNoclip() DoCombat() if Config.Hitbox then DoHitbox() end end) -- also force speed on character respawn LP.CharacterAdded:Connect(function(char) task.wait(0.3) local hum = char:WaitForChild("Humanoid", 5) if hum and Config.Speed then hum.WalkSpeed = Config.SpeedVal end end)