loadstring([[ local Players = game:GetService("Players") local function createHealthBar(character) local humanoid = character:WaitForChild("Humanoid") local head = character:WaitForChild("Head") -- Remove duplicates if head:FindFirstChild("HealthBar") then head.HealthBar:Destroy() end -- Billboard local billboard = Instance.new("BillboardGui") billboard.Name = "HealthBar" billboard.Size = UDim2.new(8, 0, 2, 0) billboard.StudsOffset = Vector3.new(0, 4, 0) billboard.AlwaysOnTop = true billboard.Parent = head -- Background local bg = Instance.new("Frame") bg.Size = UDim2.new(1, 0, 0.3, 0) bg.Position = UDim2.new(0, 0, 0.7, 0) bg.BackgroundColor3 = Color3.fromRGB(20, 20, 20) bg.BorderSizePixel = 0 bg.Parent = billboard -- Green bar local bar = Instance.new("Frame") bar.Size = UDim2.new(1, 0, 1, 0) bar.BackgroundColor3 = Color3.fromRGB(0, 255, 0) bar.BorderSizePixel = 0 bar.Parent = bg -- Text (Exact HP) local text = Instance.new("TextLabel") text.Size = UDim2.new(1, 0, 1.3, 0) text.Position = UDim2.new(0, 0, -1.3, 0) text.BackgroundTransparency = 1 text.TextColor3 = Color3.fromRGB(255, 255, 255) text.TextStrokeTransparency = 0 text.TextScaled = true text.Font = Enum.Font.GothamBold text.Parent = billboard local function update() local hp = humanoid.Health local max = humanoid.MaxHealth local percent = (hp / max) * 100 bar.Size = UDim2.new(hp / max, 0, 1, 0) text.Text = string.format("%.2f / %.2f (%.2f%%)", hp, max, percent) end humanoid.HealthChanged:Connect(update) update() end -- New players Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:Connect(createHealthBar) end) -- Existing players for _, plr in ipairs(Players:GetPlayers()) do if plr.Character then createHealthBar(plr.Character) end end ]])()