In my game, I have a health bar BillboardGui. Here is the hierarchy. So here is the code in the Script:
repeat wait() until script.Parent.Parent.Parent.Name == "Head"
local char = script.Parent.Parent.Parent.Parent
local h = char.Humanoid
local max = h.MaxHealth
local f = script.Parent
local bar = f.Bar
script.Parent.PlayerName.Text = char.Name
script.Parent.Parent.Adornee = char.Head
wait(1)
h.HealthChanged:connect(function()
bar:TweenSize(UDim2.new(0.9 / max * h.Health, 0, 0.4, 0), "Out", "Bounce", 1)
if h.Health > (3/5 * max) then
f.Bar.BackgroundColor3 = Color3.new(0, 255, 0)
end
if h.Health <= (3/5 * max) then
f.Bar.BackgroundColor3 = Color3.new(255, 255, 0)
end
if h.Health <= (2/5 * max) then
f.Bar.BackgroundColor3 = Color3.new(255,141,1)
end
if h.Health <= (1/5 * max) then
f.Bar.BackgroundColor3 = Color3.new(255,0,0)
end
end)
My problem is this: when the player dies, the health bar goes to zero. That's good. However, what's not good is that after the player dies, the health bar doesn't go back up to 100. Instead, it stays red and at zero. Why is this so, and how can I fix this? I have a theory already that it's because every time the player dies, the Humanoid is removed, but I don't know how to get around this.

3 comments
Try Changed instead of health changed
@incapaz Changed isn't an event of Humanoid. See this link: https://wiki.roblox.com/index.php?title=API:Class/Humanoid
You should disconnect the event adter it reaches 0