-- [[ 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 Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer local Camera = Workspace.CurrentCamera local CONFIG = { enabled = true, hitbox = "head", fov = 180, teamCheck = true, wallCheck = false, drawFov = true, fovColor = Color3.fromRGB(255, 50, 50) } local BoneMap = { head = "Head", torso = "Torso", uppertorso = "UpperTorso", lowertorso = "LowerTorso", humanoidrootpart = "HumanoidRootPart" } local function getPlayerTeam(plr) if not plr then return "" end local states = plr:FindFirstChild("PlayerStates") if states then local team = states:FindFirstChild("Team") if team and team:IsA("StringValue") and team.Value ~= "" then return team.Value end end if plr.Character then local charStates = plr.Character:FindFirstChild("PlayerStates") if charStates then local t = charStates:FindFirstChild("Team") if t then return tostring(t.Value) end end end if plr.Team then return plr.Team.Name end return "" end local function isTeammate(plr) if not plr or plr == LocalPlayer then return false end local myTeam = getPlayerTeam(LocalPlayer) if myTeam == "" or myTeam == "None" or myTeam == "Spectator" then return false end return myTeam == getPlayerTeam(plr) end local function isVisible(point, char) local origin = Camera.CFrame.Position local pos = typeof(point) == "Instance" and point.Position or point local params = RaycastParams.new() params.FilterType = Enum.RaycastFilterType.Exclude params.FilterDescendantsInstances = {LocalPlayer.Character, char, Camera} params.IgnoreWater = true return Workspace:Raycast(origin, pos - origin, params) == nil end local function getBestTarget() local bestPart, bestPoint = nil, nil local bestDist = CONFIG.fov + 1 local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) for _, player in ipairs(Players:GetPlayers()) do if player == LocalPlayer then continue end if CONFIG.teamCheck and isTeammate(player) then continue end local char = player.Character if not char then continue end local hum = char:FindFirstChildOfClass("Humanoid") if not hum or hum.Health <= 0 then continue end local boneName = BoneMap[CONFIG.hitbox] or "Head" local part = char:FindFirstChild(boneName) if not part then continue end if CONFIG.wallCheck and not isVisible(part.Position, char) then continue end local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position) if not onScreen then continue end local dist = (Vector2.new(screenPos.X, screenPos.Y) - center).Magnitude if dist < bestDist then bestDist = dist bestPart = part bestPoint = part.Position end end return bestPart, bestPoint end local currentSilentPart = nil local currentSilentPoint = nil local fovCircle = Drawing.new("Circle") fovCircle.Thickness = 1 fovCircle.NumSides = 64 fovCircle.Filled = false fovCircle.Transparency = 1 fovCircle.Visible = false local mouse1Down = false local _inputBegan = UserInputService.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then mouse1Down = true end end) local _inputEnded = UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then mouse1Down = false end end) local oldNamecall local hookInstalled = false local function installHook() if hookInstalled then return end hookInstalled = true oldNamecall = hookmetamethod(game, "__namecall", newcclosure(function(self, ...) local method = getnamecallmethod() local args = {...} if checkcaller() then return oldNamecall(self, ...) end if not mouse1Down or not CONFIG.enabled or not currentSilentPoint then return oldNamecall(self, ...) end if self == Workspace and (method == "Raycast" or method == "FindPartOnRay" or method == "FindPartOnRayWithIgnoreList") then if method == "Raycast" and typeof(args[1]) == "Vector3" and typeof(args[2]) == "Vector3" then local newDir = (currentSilentPoint - args[1]).Unit * args[2].Magnitude pcall(setnamecallmethod, method) return oldNamecall(self, args[1], newDir, select(3, ...)) end if typeof(args[1]) == "Ray" then local newRay = Ray.new(args[1].Origin, (currentSilentPoint - args[1].Origin).Unit * args[1].Direction.Magnitude) pcall(setnamecallmethod, method) return oldNamecall(self, newRay, select(2, ...)) end end if method == "FireServer" or method == "InvokeServer" then local name = string.lower(self.Name) local isWeaponRemote = name:find("hit") or name:find("shoot") or name:find("fire") or name:find("bullet") or name:find("damage") or name:find("dmg") or name:find("gun") or name:find("weapon") or name:find("impact") or name:find("shot") or name:find("attack") or name:find("projectile") if isWeaponRemote then local modified = false for i = 1, #args do if typeof(args[i]) == "Vector3" then args[i] = currentSilentPoint modified = true elseif typeof(args[i]) == "Instance" then args[i] = currentSilentPart modified = true elseif typeof(args[i]) == "table" then local t = args[i] if t.Hit ~= nil then t.Hit = currentSilentPart modified = true end if t.Part ~= nil then t.Part = currentSilentPart modified = true end if t.HitPart ~= nil then t.HitPart = currentSilentPart modified = true end if t.Target ~= nil then t.Target = currentSilentPart modified = true end if t.Position ~= nil then t.Position = currentSilentPoint modified = true end if t.Point ~= nil then t.Point = currentSilentPoint modified = true end if t.HitPosition ~= nil then t.HitPosition = currentSilentPoint modified = true end end end if modified then pcall(setnamecallmethod, method) return oldNamecall(self, unpack(args)) end end end return oldNamecall(self, ...) end)) end local aimLoop = RunService.Heartbeat:Connect(function() Camera = Workspace.CurrentCamera if CONFIG.drawFov then local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) fovCircle.Position = center fovCircle.Radius = CONFIG.fov fovCircle.Color = CONFIG.fovColor fovCircle.Visible = true else fovCircle.Visible = false end if not CONFIG.enabled then currentSilentPart = nil currentSilentPoint = nil return end installHook() currentSilentPart, currentSilentPoint = getBestTarget() end) local function unload() aimLoop:Disconnect() _inputBegan:Disconnect() _inputEnded:Disconnect() fovCircle.Visible = false fovCircle:Remove() if oldNamecall then pcall(function() hookmetamethod(game, "__namecall", oldNamecall) end) end end