local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local LocalPlayer = Players.LocalPlayer local GunHandler = require(ReplicatedStorage.Modules.GunHandler) local function getClosestPlayer() local closestPlayer = nil local shortestDistance = math.huge local camera = workspace.CurrentCamera for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local hrp = player.Character.HumanoidRootPart local screenPos, onScreen = camera:WorldToViewportPoint(hrp.Position) if onScreen then local distance = (Vector2.new(screenPos.X, screenPos.Y) - Vector2.new(camera.ViewportSize.X/2, camera.ViewportSize.Y/2)).Magnitude if distance < shortestDistance then shortestDistance = distance closestPlayer = hrp end end end end return closestPlayer end local oldGetAim = GunHandler.GetAim GunHandler.GetAim = function(muzzlePos) local target = getClosestPlayer() if target then return (target.Position - muzzlePos).Unit end return oldGetAim(muzzlePos) end