--// ESP Script - Player Boxes + Names local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera -- Store ESP objects local ESPObjects = {} -- Create ESP function local function createESP(player) if player == LocalPlayer then return end if ESPObjects[player] then return end -- Box local box = Drawing.new("Square") box.Thickness = 1 box.Color = Color3.fromRGB(0, 255, 0) box.Filled = false box.Visible = false -- Name label local name = Drawing.new("Text") name.Size = 13 name.Center = true name.Outline = true name.Color = Color3.fromRGB(255, 255, 255) name.Visible = false ESPObjects[player] = {Box = box, Name = name} end -- Cleanup ESP local function removeESP(player) if ESPObjects[player] then for _, drawing in pairs(ESPObjects[player]) do drawing:Remove() end ESPObjects[player] = nil end end -- Update ESP loop RunService.RenderStepped:Connect(function() for player, drawings in pairs(ESPObjects) do local character = player.Character local hrp = character and character:FindFirstChild("HumanoidRootPart") local head = character and character:FindFirstChild("Head") if hrp and head and character:FindFirstChildOfClass("Humanoid") and character:FindFirstChildOfClass("Humanoid").Health > 0 then local hrpPos, onScreen = Camera:WorldToViewportPoint(hrp.Position) local headPos = Camera:WorldToViewportPoint(head.Position + Vector3.new(0, 0.5, 0)) if onScreen then local scale = (Camera.CFrame.Position - hrp.Position).Magnitude local boxSize = Vector2.new(50 / (scale * 0.1), 100 / (scale * 0.1)) local boxPos = Vector2.new(hrpPos.X - boxSize.X / 2, hrpPos.Y - boxSize.Y / 2) drawings.Box.Size = boxSize drawings.Box.Position = boxPos drawings.Box.Visible = true drawings.Name.Position = Vector2.new(headPos.X, headPos.Y - 15) drawings.Name.Text = player.Name drawings.Name.Visible = true else drawings.Box.Visible = false drawings.Name.Visible = false end else drawings.Box.Visible = false drawings.Name.Visible = false end end end) -- Connect ESP to existing and new players for _, player in pairs(Players:GetPlayers()) do createESP(player) end Players.PlayerAdded:Connect(createESP) Players.PlayerRemoving:Connect(removeESP)