-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] local plrs = game:GetService("Players") local lplrs = plrs.LocalPlayer local cam = workspace.CurrentCamera local function findTarget() local closestPlayer = nil local closestDist = math.huge local screenCenter = Vector2.new(cam.ViewportSize.X / 2, cam.ViewportSize.Y / 2) for _, player in plrs:GetPlayers() do if player ~= lplrs and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local rootPart = player.Character.HumanoidRootPart local screenPos, onScreen = cam:WorldToViewportPoint(rootPart.Position) if onScreen then local dist = (Vector2.new(screenPos.X, screenPos.Y) - screenCenter).Magnitude if dist < closestDist then closestDist = dist closestPlayer = player end end end end return closestPlayer end local ClientFire = require(lplrs:WaitForChild("PlayerScripts"):WaitForChild("BallisticsClient"):WaitForChild("ClientFire")) local originalFireVolley = ClientFire.fireVolley function ClientFire.fireVolley(weaponName, muzzleIndex, bulletIndex, origin, directions) local target = findTarget() if target and target.Character then local targetPart = target.Character:FindFirstChild("HumanoidRootPart") or target.Character:FindFirstChild("Head") if targetPart then local targetPos = targetPart.Position + Vector3.new(0, 1.5, 0) local newDirection = (targetPos - origin).Unit for i = 1, #directions do directions[i] = newDirection end end end return originalFireVolley(weaponName, muzzleIndex, bulletIndex, origin, directions) end