Run it
Copy the script and paste it into your executor.
Players = :()
Workspace = :()
UserInputService = :()
RunService = :()
LocalPlayer = Players.LocalPlayer
Camera = Workspace.CurrentCamera
(player1, player2)
success, areSameTeamFunc = (()
()
)
success areSameTeamFunc
(player1, player2)
player1.Team == player2.Team
()
cameraCFrame = Camera.CFrame
cameraPos = cameraCFrame.Position
lookVector = cameraCFrame.LookVector
bestHead =
bestScreenDistance = .huge
maxScreenDistance =
_, model (Workspace:())
model:()
head = model:()
(head head:())
character = model
humanoid = character:()
(humanoid humanoid.Health > )
player = Players:(character)
player
player == LocalPlayer (player, LocalPlayer)
headPos = head.Position
screenPos, onScreen = Camera:(headPos)
onScreen
screenCenter = Camera.ViewportSize /
screenDistance = (.(screenPos.X, screenPos.Y) - screenCenter).Magnitude
screenDistance > maxScreenDistance
raycastParams = RaycastParams.()
raycastParams.FilterType = .RaycastFilterType.Exclude
raycastParams.FilterDescendantsInstances = { LocalPlayer.Character, Camera }
ray = Workspace:(cameraPos, headPos - cameraPos, raycastParams)
ray ray.Instance:(character)
screenDistance < bestScreenDistance
bestScreenDistance = screenDistance
bestHead = head
bestHead
hitscanModule
success, err = (()
hitscanModule = (LocalPlayer.PlayerScripts.Client.game.classes.Projectiles.HitscanProjectile)
)
success
(, err)
originalNew = hitscanModule.new
hitscanModule.new = (origin, velocity, magnetStrength, owner, uniqueId, weaponConfig, tracerConfig, tracerOffset)
owner == LocalPlayer
targetHead = ()
targetHead
cameraPos = Camera.CFrame.Position
newDirection = (targetHead.Position - cameraPos).Unit
speed = velocity.Magnitude
velocity = newDirection * speed
(origin, velocity, magnetStrength, owner, uniqueId, weaponConfig, tracerConfig, tracerOffset)
Credits: Phemonaz

Universal