local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function() Camera = workspace.CurrentCamera end) local Settings = { SilentAimEnabled = true, HeadChance = 10, FOVRadius = 180, } local NonHeadParts = { "Torso", "HumanoidRootPart", "UpperTorso", "LowerTorso", "Left Arm", "Right Arm", "Left Leg", "Right Leg", "LeftUpperArm", "LeftLowerArm", "LeftHand", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "RightUpperLeg", "RightLowerLeg", "RightFoot", } local FOVCircle = Drawing.new("Circle") FOVCircle.Visible = true FOVCircle.Thickness = 1 FOVCircle.Radius = Settings.FOVRadius FOVCircle.Transparency = 0.7 FOVCircle.Color = Color3.fromRGB(255, 255, 255) FOVCircle.Filled = false RunService.RenderStepped:Connect(function() FOVCircle.Position = UserInputService:GetMouseLocation() FOVCircle.Radius = Settings.FOVRadius FOVCircle.Visible = Settings.SilentAimEnabled end) local function GetRandomBodyPart(TargetCharacter) if math.random(1, 100) <= Settings.HeadChance then local Head = TargetCharacter:FindFirstChild("Head") or TargetCharacter:FindFirstChild("HeadHitbox") if Head then return Head, true end end local ValidParts = {} for _, PartName in ipairs(NonHeadParts) do local Part = TargetCharacter:FindFirstChild(PartName) if Part then table.insert(ValidParts, Part) end end if #ValidParts > 0 then return ValidParts[math.random(1, #ValidParts)], false end local Head = TargetCharacter:FindFirstChild("Head") or TargetCharacter:FindFirstChild("HeadHitbox") if Head then return Head, true end return nil, false end local function IsInFOV(WorldPosition) if not Camera then return false, math.huge end local ScreenPos, OnScreen = Camera:WorldToViewportPoint(WorldPosition) if not OnScreen then return false, math.huge end local MousePos = UserInputService:GetMouseLocation() local Distance = (Vector2.new(ScreenPos.X, ScreenPos.Y) - MousePos).Magnitude return Distance <= Settings.FOVRadius, Distance end local function IsVisible(Origin, TargetPosition) local Params = RaycastParams.new() Params.FilterType = Enum.RaycastFilterType.Exclude local FilterList = {} if LocalPlayer.Character then table.insert(FilterList, LocalPlayer.Character) end local EffectsFolder = workspace:FindFirstChild("Effects") if EffectsFolder then table.insert(FilterList, EffectsFolder) end for _, Player in ipairs(Players:GetPlayers()) do if Player.Character then table.insert(FilterList, Player.Character) end end Params.FilterDescendantsInstances = FilterList local Direction = TargetPosition - Origin local Result = workspace:Raycast(Origin, Direction, Params) return Result == nil end local function GetClosestEnemy() local ClosestPlayer = nil local ClosestDistance = math.huge for _, Player in ipairs(Players:GetPlayers()) do if Player ~= LocalPlayer and Player.Character then local Character = Player.Character local Humanoid = Character:FindFirstChildOfClass("Humanoid") if Humanoid and Humanoid.Health > 0 and not Character:FindFirstChild("SpawnProtection") then local HRP = Character:FindFirstChild("HumanoidRootPart") if HRP then local InFOV, Distance = IsInFOV(HRP.Position) if InFOV and Distance < ClosestDistance then ClosestPlayer = Player ClosestDistance = Distance end end end end end return ClosestPlayer end local OldNamecall OldNamecall = hookmetamethod(game, "__namecall", newcclosure(function(Self, ...) local Method = getnamecallmethod() local Args = {...} if Settings.SilentAimEnabled and Method == "FireServer" and #Args >= 1 and typeof(Args[1]) == "table" then local Packet = Args[1] if typeof(Packet.origin) == "Vector3" and typeof(Packet.direction) == "Vector3" then local TargetPlayer = GetClosestEnemy() if TargetPlayer and TargetPlayer.Character then local Character = TargetPlayer.Character local Humanoid = Character:FindFirstChildOfClass("Humanoid") if Humanoid and Humanoid.Health > 0 then local TargetPart, IsHeadshot = GetRandomBodyPart(Character) if TargetPart then local Origin = Packet.origin if IsVisible(Origin, TargetPart.Position) then Packet.direction = (TargetPart.Position - Origin).Unit Packet.hitPosition = TargetPart.Position Packet.hitInstance = TargetPart Packet.hitHumanoid = Humanoid Packet.IsHeadshot = IsHeadshot or TargetPart.Name == "Head" or TargetPart.Name == "HeadHitbox" setnamecallmethod(Method) return OldNamecall(Self, Packet) end end end end end end setnamecallmethod(Method) return OldNamecall(Self, ...) end))