local fov = fov or 180; local hitpart = hitpart or "Head"; local Players = game:GetService("Players"); local localPlayer = Players.LocalPlayer; local rotation = CFrame.Angles(0, math.pi*0.5, 0); local old; old = hookmetamethod(workspace, "__newindex", function(self, index, value) if index == "CFrame" and debug.info(3, "n") == "firebullet" then local closest = math.rad(fov); local origin, direction = value.Position, value.LookVector; for _, player in ipairs(Players:GetPlayers()) do local character, team = player.Character, player.Team; if character and (not team or team ~= localPlayer.Team) then local cframe = CFrame.new(origin, character[hitpart].Position) * rotation; local angle = math.acos(direction:Dot(cframe.LookVector)); if angle < closest then value = cframe; closest = angle; end end end end old(self, index, value); end);