local Bullets = require(game:GetService("ReplicatedStorage").Client.Libraries.Bullets) local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local Mouse = LocalPlayer:GetMouse() local FOV_RADIUS = 150 local function getClosestToMouse() local target, closestDist = nil, FOV_RADIUS for _, plr in pairs(Players:GetPlayers()) do if plr ~= LocalPlayer and plr.Character and plr.Character:FindFirstChild("Head") then local pos, onScreen = workspace.CurrentCamera:WorldToViewportPoint(plr.Character.Head.Position) if onScreen then local dist = (Vector2.new(pos.X, pos.Y) - Vector2.new(Mouse.X, Mouse.Y)).Magnitude if dist < closestDist then target = plr.Character.Head closestDist = dist end end end end return target end local oldFire = Bullets.Fire Bullets.Fire = function(self, ...) local args = {...} local target = getClosestToMouse() if target then local origin = args[4] args[5] = (target.Position - origin).Unit end return oldFire(self, unpack(args)) end