-- [[ 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 Camera = workspace.CurrentCamera local WeaponController = require(game:GetService("ReplicatedStorage").client.controllers.WeaponController) local Settings = { Enabled = true, TeamCheck = true, TargetPart = "Head" -- "Head" or "HumanoidRootPart" } local function GetClosestTarget() local closestPlayer = nil local closestPart = nil local shortestDistance = math.huge for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer then local char = player.Character if char then local hum = char:FindFirstChildWhichIsA("Humanoid") local part = char:FindFirstChild(Settings.TargetPart) or char:FindFirstChild("HumanoidRootPart") if hum and hum.Health > 0 and part then local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position) if onScreen then local mousePos = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude if dist < shortestDistance then shortestDistance = dist closestPlayer = player closestPart = part end end end end end end return closestPlayer, closestPart end local oldRequestFire = WeaponController.request_fire WeaponController.request_fire = function(self, ...) if Settings.Enabled then local targetPlayer, targetPart = GetClosestTarget() if targetPlayer and targetPart then local realOrigin = Camera.CFrame.Position local targetPos = targetPart.Position local aimCFrame = CFrame.new(realOrigin, targetPos) local oldCFrame = Camera.CFrame Camera.CFrame = aimCFrame local result = oldRequestFire(self, ...) Camera.CFrame = oldCFrame return result end end return oldRequestFire(self, ...) end