-- [[ 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 ]] if typeof(filtergc) ~= "function" then game:GetService("Players").LocalPlayer:Kick("unsupported executor reason filtergc nil") return end if typeof(hookfunction) ~= "function" then game:GetService("Players").LocalPlayer:Kick("unsupported executor reason hookfunction nil") return end if typeof(cloneref) ~= "function" then game:GetService("Players").LocalPlayer:Kick("unsupported executor reason cloneref nil") return end if typeof(isfunctionhooked) ~= "function" then if typeof(is_function_hooked) ~= "function" then game:GetService("Players").LocalPlayer:Kick("unsupported executor reason is_function_hooked nil") return end end if typeof(restorefunction) ~= "function" then game:GetService("Players").LocalPlayer:Kick("unsupported executor reason restorefunction nil") return end local utility = { CastRays = filtergc("function", {Name = "CastRays"}, true), target = nil, Players = cloneref(game:GetService("Players")), UserInputService = cloneref(game:GetService("UserInputService")), Workspace = cloneref(game:GetService("Workspace")), RunService = cloneref(game:GetService("RunService")), VirtualInputManager = game:GetService("VirtualInputManager"), wallbang = true, AutoShoot = true, DisableAnimations = true, ForceSlotTwo = true } utility.Camera = utility.Workspace.CurrentCamera utility.LocalPlayer = utility.Players.LocalPlayer utility.CreateParam = function(self) local params = RaycastParams.new() params.FilterType = Enum.RaycastFilterType.Exclude params.FilterDescendantsInstances = {self.LocalPlayer.Character} params.IgnoreWater = true return params or nil end utility.isVisible = function(self, t) local origin = self.Camera.CFrame local params = self:CreateParam() local direction = (t.Position - origin.Position) local result = self.Workspace:Raycast(origin.Position, direction, params) if result then local model = result.Instance:FindFirstAncestorOfClass("Model") if model and model:FindFirstAncestor("BotFolder") then return true else return self.Players:GetPlayerFromCharacter(model) ~= nil end else return false end end utility.getallcharacters = function(self) local r = {} pcall(function(...) for key, char in pairs(self.Workspace.BattleArea.MapRootModel.BotFolder:GetChildren()) do table.insert(r, char) end end) for key, plr in pairs(self.Players:GetPlayers()) do table.insert(r, plr.Character) end return r end utility.GetClosestPlayer = function(self) local closestDistance = math.huge local closest = nil local camera = self.Camera or self.Workspace.CurrentCamera for _, char in pairs(self:getallcharacters()) do if not char or char.Name == self.LocalPlayer.Name then continue end if char:FindFirstChildOfClass("ForceField") then continue end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then continue end local hum = char:FindFirstChild("Humanoid") if not hum or hum.Health <= 0 then continue end local plr = self.Players:GetPlayerFromCharacter(char) if plr then local theirTeam = plr:GetAttribute("DuelTeam") local myTeam = self.LocalPlayer:GetAttribute("DuelTeam") if theirTeam and myTeam and theirTeam == myTeam then local theriguid = plr:GetAttribute("DuelGuid") local myguid = self.LocalPlayer:GetAttribute("DuelGuid") if theriguid and myguid and theriguid == myguid then continue end end end local head = char:FindFirstChild("Head") if not head then continue end local screenPos, onScreen = camera:WorldToViewportPoint(hrp.Position) if onScreen then local distance = (Vector2.new(screenPos.X, screenPos.Y) - self.UserInputService:GetMouseLocation()).Magnitude if distance < closestDistance then if not self.wallbang then if not self:isVisible(head) then continue end end closestDistance = distance closest = head end end end return closest end utility.PressTwo = function(self) self.VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Two, false, game) task.wait() self.VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Two, false, game) end utility.AnimationConn = utility.RunService.Heartbeat:Connect(function() if not utility.DisableAnimations then return end local character = utility.LocalPlayer.Character local humanoid = character and character:FindFirstChildOfClass("Humanoid") if humanoid then local animator = humanoid:FindFirstChildOfClass("Animator") if animator then for _, track in pairs(animator:GetPlayingAnimationTracks()) do if string.find(string.lower(track.Name), "shoot") or string.find(string.lower(track.Name), "fire") or string.find(string.lower(track.Name), "recoil") then track:Stop() end end end end end) utility.InputConn = utility.UserInputService.InputBegan:Connect(function(input, processed) if not utility.ForceSlotTwo then return end if input.KeyCode == Enum.KeyCode.One then task.defer(function() utility:PressTwo() end) end end) utility.ClosetPlayerConn = utility.RunService.RenderStepped:Connect(function() utility.target = utility:GetClosestPlayer() if utility.AutoShoot and utility.target then local virtualUser = game:GetService("VirtualUser") virtualUser:Button1Down(Vector2.new(0, 0), utility.Camera.CFrame) task.defer(function() virtualUser:Button1Up(Vector2.new(0,0), utility.Camera.CFrame) if utility.ForceSlotTwo then utility:PressTwo() end end) elseif utility.ForceSlotTwo then local character = utility.LocalPlayer.Character if character and character:FindFirstChild("HumanoidRootPart") then local currentTool = character:FindFirstChildOfClass("Tool") if not currentTool then utility:PressTwo() end end end end) local _, result = pcall(function(...) utility.castrayshook = hookfunction(utility.CastRays, function(...) if utility.target and utility.target.Parent and utility.target.Parent:FindFirstChildOfClass("Humanoid") then return { { position = utility.target.Position, normal = Vector3.new(0,0,0), instance = utility.target, taggedHumanoid = utility.target.Parent:FindFirstChildOfClass("Humanoid") } } end return utility.castrayshook(...) end) end) utility.Unload = function(self) if self.castrayshook and isfunctionhooked(self.CastRays) then pcall(function(...) restorefunction(self.CastRays) end) end if self.ClosetPlayerConn then self.ClosetPlayerConn:Disconnect() end if self.AnimationConn then self.AnimationConn:Disconnect() end if self.InputConn then self.InputConn:Disconnect() end utility.target = nil end if utility.castrayshook then print("hooked successfully") else warn("error: "..tostring(result)) end