local Holder = Instance.new("Folder", game.CoreGui) Holder.Name = "ESP" local Box = Instance.new("BoxHandleAdornment") Box.Name = "nilBox" Box.Size = Vector3.new(4, 7, 4) Box.Color3 = Color3.new(100 / 255, 100 / 255, 100 / 255) Box.Transparency = 5.5 Box.ZIndex = 0 Box.AlwaysOnTop = true Box.Visible = false local NameTag = Instance.new("BillboardGui") NameTag.Name = "nilNameTag" NameTag.Enabled = false NameTag.Size = UDim2.new(0, 200, 0, 50) NameTag.AlwaysOnTop = true NameTag.StudsOffset = Vector3.new(0, 1.8, 0) local Tag = Instance.new("TextLabel", NameTag) Tag.Name = "Tag" Tag.BackgroundTransparency = 1 Tag.Position = UDim2.new(0, -50, 0, 0) Tag.Size = UDim2.new(0, 300, 0, 20) Tag.TextSize = 15 Tag.TextColor3 = Color3.new(100 / 255, 100 / 255, 100 / 255) Tag.TextStrokeColor3 = Color3.new(0 / 255, 0 / 255, 0 / 255) Tag.TextStrokeTransparency = 0.4 Tag.Text = "nil" Tag.Font = Enum.Font.SourceSansBold Tag.TextScaled = false local LoadCharacter = function(v) repeat wait() until v.Character ~= nil v.Character:WaitForChild("Humanoid") local vHolder = Holder:FindFirstChild(v.Name) vHolder:ClearAllChildren() local b = Box:Clone() b.Name = v.Name .. "Box" b.Adornee = v.Character b.Parent = vHolder local t = NameTag:Clone() t.Name = v.Name .. "NameTag" t.Enabled = true t.Parent = vHolder t.Adornee = v.Character:WaitForChild("Head", 5) if not t.Adornee then return UnloadCharacter(v) end t.Tag.Text = v.Name b.Color3 = Color3.new(v.TeamColor.r, v.TeamColor.g, v.TeamColor.b) t.Tag.TextColor3 = Color3.new(v.TeamColor.r, v.TeamColor.g, v.TeamColor.b) local Update local UpdateNameTag = function() if not pcall(function() v.Character.Humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None t.Tag.Text = v.Name .. "\n" .. ((maxh ~= 0 and tostring(math.floor((h / maxh) * 100))) or "0") .. "% " .. tostring(h) .. "/" .. tostring(maxh) end) then Update:Disconnect() end end UpdateNameTag() Update = v.Character.Humanoid.Changed:Connect(UpdateNameTag) end local UnloadCharacter = function(v) local vHolder = Holder:FindFirstChild(v.Name) if vHolder and (vHolder:FindFirstChild(v.Name .. "Box") ~= nil or vHolder:FindFirstChild(v.Name .. "NameTag") ~= nil) then vHolder:ClearAllChildren() end end local LoadPlayer = function(v) local vHolder = Instance.new("Folder", Holder) vHolder.Name = v.Name v.CharacterAdded:Connect(function() pcall(LoadCharacter, v) end) v.CharacterRemoving:Connect(function() pcall(UnloadCharacter, v) end) v.Changed:Connect(function(prop) if prop == "TeamColor" then UnloadCharacter(v) wait() LoadCharacter(v) end end) LoadCharacter(v) end local UnloadPlayer = function(v) UnloadCharacter(v) local vHolder = Holder:FindFirstChild(v.Name) if vHolder then vHolder:Destroy() end end for i,v in pairs(game:GetService("Players"):GetPlayers()) do spawn(function() pcall(LoadPlayer, v) end) end game:GetService("Players").PlayerAdded:Connect(function(v) pcall(LoadPlayer, v) end) game:GetService("Players").PlayerRemoving:Connect(function(v) pcall(UnloadPlayer, v) end) game:GetService("Players").LocalPlayer.NameDisplayDistance = 0