local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer local Camera = Workspace.CurrentCamera -- SETTINGS local AIM_PART = "Head" -- Target part to aim at local AIM_SMOOTHNESS = 0.15 -- Lower is snappier local MAX_DISTANCE = 1000 function getClosestVisiblePlayer() local closestPlayer = nil local closestDistance = MAX_DISTANCE for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild(AIM_PART) then local targetPart = player.Character[AIM_PART] local direction = (targetPart.Position - Camera.CFrame.Position) local rayParams = RaycastParams.new() rayParams.FilterDescendantsInstances = {LocalPlayer.Character} rayParams.FilterType = Enum.RaycastFilterType.Blacklist local ray = Workspace:Raycast(Camera.CFrame.Position, direction, rayParams) if ray and ray.Instance and ray.Instance:IsDescendantOf(player.Character) then local screenPoint, onScreen = Camera:WorldToViewportPoint(targetPart.Position) if onScreen then local distance = (Camera.CFrame.Position - targetPart.Position).Magnitude if distance < closestDistance then closestDistance = distance closestPlayer = targetPart end local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer function createESP(player) if player == LocalPlayer then return end local function addESPToCharacter(character) local torso = character:FindFirstChild("HumanoidRootPart") if torso and not torso:FindFirstChild("ESPBox") then local box = Instance.new("BoxHandleAdornment") box.Name = "ESPBox" box.Adornee = torso box.AlwaysOnTop = true box.ZIndex = 5 box.Size = Vector3.new(2, 5, 1) box.Color3 = Color3.fromRGB(255, 0, 0) -- Red color box.Transparency = 0.6 box.Parent = torso end end if player.Character then addESPToCharacter(player.Character) end player.CharacterAdded:Connect(function(character) wait(1) addESPToCharacter(character) end) end -- Setup ESP for existing players for _, player in pairs(Players:GetPlayers()) do createESP(player) end -- Add ESP for new players joining Players.PlayerAdded:Connect(function(player) createESP(player) end)