-- [[ 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 Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local WSB = require(LocalPlayer.PlayerScripts:WaitForChild("Client"):WaitForChild("Systems"):WaitForChild("GunSystem"):WaitForChild("WeaponViewmodelController"):WaitForChild("WeaponShotBuilder")) local function get_target() local cam = workspace.CurrentCamera local center = cam.ViewportSize * 0.5 local best, bestDist = nil, math.huge local function check(head) if not head or not head:IsA("BasePart") then return end local pos, onScreen = cam:WorldToScreenPoint(head.Position) if onScreen and pos.Z > 0 then local d = (Vector2.new(pos.X, pos.Y) - center).Magnitude if d < bestDist then best, bestDist = head, d end end end local zombies = workspace:FindFirstChild("Zombies") if zombies then for _, z in ipairs(zombies:GetChildren()) do if z:GetAttribute("Dead") ~= true and (tonumber(z:GetAttribute("Health")) or 0) > 0 then check(z:FindFirstChild("Head")) end end end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LocalPlayer and plr.Character then local hum = plr.Character:FindFirstChildOfClass("Humanoid") if hum and hum.Health > 0 then check(plr.Character:FindFirstChild("Head")) end end end return best end local old_RBD = WSB.ResolveBaseDirection WSB.ResolveBaseDirection = function(args) local head = get_target() if head and head.Parent then local origin = args.shotOrigin or args.serverShotOrigin if origin then local d = head.Position - origin if d.Magnitude > 0.01 then return d.Unit end end end return old_RBD(args) end local old_GSD = WSB.GetSpreadDegrees WSB.GetSpreadDegrees = function(args) if get_target() then return 0 end return old_GSD(args) end