Run it
Copy the script and paste it into your executor.
local Bullets = require(game:GetService("ReplicatedStorage").Client.Libraries.Bullets)
local originalFire = Bullets.Fire
local TARGET_MAX_DIST = 500
function Bullets.Fire(self, playerController, weaponInstance, weaponData, origin, direction, shotId)
local newDirection = direction
local localPlayer = game.Players.LocalPlayer
local mouse = localPlayer:GetMouse()
local camera = workspace.CurrentCamera
local ray = camera:ScreenPointToRay(mouse.X, mouse.Y)
local raycastParams = RaycastParams.new()
raycastParams.FilterType = .RaycastFilterType.Blacklist
raycastParams.FilterDescendantsInstances = {localPlayer.Character}
rayResult = :(ray.Origin, ray.Direction * , raycastParams)
hitPoint = rayResult rayResult.Position ray.Origin + ray.Direction *
closestHRP =
closestDist = .huge
_, model (.Characters:())
hrp = model:()
hrp model ~= localPlayer.Character
dist = (hrp.Position - hitPoint).Magnitude
dist < closestDist
closestDist = dist
closestHRP = hrp
_, model (.Zombies:())
hrp = model:()
hrp
dist = (hrp.Position - hitPoint).Magnitude
dist < closestDist
closestDist = dist
closestHRP = hrp
closestHRP closestDist < TARGET_MAX_DIST
newDirection = (closestHRP.Position - origin).Unit
(self, playerController, weaponInstance, weaponData, origin, newDirection, shotId)
credits: Phemonaz

Universal