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.
I had a really similar issue. And you want to make sure that ResetOnSpawn
is ENABLED. If this affects your intro or whatsoever, simply add a LocalScript
into StarterCharacter and check if the intro is running, if it is then wait a certain amount of time before continuing, else just make the element visible or enabled the GUI.
This may fix your issue if not please comment.