local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer local Camera = Workspace.CurrentCamera local Config = { Enabled = true, FOVRadius = 300, TeamCheck = true, } local target = { current = nil, } local function getClosestTarget() if not Camera then return nil end local closestDist = Config.FOVRadius local closestPlayer = nil local screenCenter = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character then if Config.TeamCheck and player:GetAttribute("Team") == LocalPlayer:GetAttribute("Team") then continue end local character = player.Character local humanoid = character:FindFirstChildOfClass("Humanoid") local head = character:FindFirstChild("Head") if humanoid and humanoid.Health > 0 and head then local worldPos = head.Position local screenPos, onScreen = Camera:WorldToScreenPoint(worldPos) if onScreen then local screenPos2D = Vector2.new(screenPos.X, screenPos.Y) local distFromCenter = (screenPos2D - screenCenter).Magnitude if distFromCenter < closestDist then closestDist = distFromCenter closestPlayer = player end end end end end return closestPlayer end task.spawn(function() while task.wait(0.05) do if Config.Enabled then target.current = getClosestTarget() else target.current = nil end end end) task.wait(2) local oldNamecall oldNamecall = hookmetamethod(game, "__namecall", function(self, ...) local method = getnamecallmethod() if method == "Raycast" and self == workspace then if Config.Enabled and target.current and target.current.Character then local targetHead = target.current.Character:FindFirstChild("Head") if targetHead then local origin = select(1, ...) if typeof(origin) == "Vector3" then return { Instance = targetHead, Position = targetHead.Position, Material = Enum.Material.SmoothPlastic, Normal = Vector3.new(0, 1, 0) } end end end end return oldNamecall(self, ...) end)