
Key RequiredUniversal

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)
Vibe coded bs