if _G.SilentAimCleanup then _G.SilentAimCleanup() end local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera local Net = require(ReplicatedStorage.Shared.Net) local teamBased = false pcall(function() teamBased = require(ReplicatedStorage.Client.State).Match.isTeamBased() end) local FOV_RADIUS = 200 local active = true local npcCache = {} local lastNpcRefresh = 0 local function refreshNpcs() local now = tick() if now - lastNpcRefresh < 2 then return end lastNpcRefresh = now local playerChars = {} for _, p in Players:GetPlayers() do if p.Character then playerChars[p.Character] = true end end table.clear(npcCache) for _, desc in workspace:GetDescendants() do if desc:IsA("Humanoid") and desc.Health > 0 then local model = desc.Parent if model and not playerChars[model] and model:FindFirstChild("Head") then npcCache[#npcCache + 1] = model end end end end local function checkHead(model, mousePos, bestDist) local head = model:FindFirstChild("Head") if not head then return nil, bestDist end local hum = model:FindFirstChildOfClass("Humanoid") if not hum or hum.Health <= 0 then return nil, bestDist end local pos, onScreen = Camera:WorldToViewportPoint(head.Position) if not onScreen then return nil, bestDist end local d = (Vector2.new(pos.X, pos.Y) - mousePos).Magnitude if d < bestDist then return head, d end return nil, bestDist end local function getTarget() Camera = workspace.CurrentCamera local mousePos = UserInputService:GetMouseLocation() local bestHead, bestDist = nil, FOV_RADIUS for _, p in Players:GetPlayers() do if p ~= LocalPlayer and not (teamBased and LocalPlayer.Team and p.Team == LocalPlayer.Team) and p.Character then local h, d = checkHead(p.Character, mousePos, bestDist) if h then bestHead, bestDist = h, d end end end refreshNpcs() for _, model in npcCache do local h, d = checkHead(model, mousePos, bestDist) if h then bestHead, bestDist = h, d end end return bestHead end local originalSend local hookedPacket local hooked = false for _, val in pairs(Net.packets) do if typeof(val) == "table" and rawget(val, "send") then local origFn = val.send val.send = function(data) if not hooked and typeof(data) == "table" and data.rays then originalSend = origFn hookedPacket = val hooked = true val.send = function(d) if not active then return originalSend(d) end local head = getTarget() if head and head.Parent and d.rays and #d.rays > 0 then local hp = head.Position local newRays = table.create(#d.rays) for i, ray in d.rays do newRays[i] = Ray.new(ray.Origin, (hp - ray.Origin).Unit) end d.rays = newRays end return originalSend(d) end return val.send(data) end return origFn(data) end end end local circleOutline, circleInline local renderConn pcall(function() circleOutline = Drawing.new("Circle") circleOutline.Thickness = 3 circleOutline.Color = Color3.new(0, 0, 0) circleOutline.Filled = false circleOutline.Visible = true circleOutline.Transparency = 1 circleOutline.Radius = FOV_RADIUS circleInline = Drawing.new("Circle") circleInline.Thickness = 1 circleInline.Color = Color3.new(1, 1, 1) circleInline.Filled = false circleInline.Visible = true circleInline.Transparency = 1 circleInline.Radius = FOV_RADIUS renderConn = RunService.RenderStepped:Connect(function() if not active then return end Camera = workspace.CurrentCamera local mousePos = UserInputService:GetMouseLocation() circleOutline.Position = mousePos circleInline.Position = mousePos end) end) _G.SilentAimCleanup = function() active = false if hookedPacket and originalSend then hookedPacket.send = originalSend end if renderConn then renderConn:Disconnect() end if circleOutline then circleOutline:Remove() end if circleInline then circleInline:Remove() end _G.SilentAimCleanup = nil end print("w")