Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Health Gui Not working?!

char = game.Players.LocalPlayer.Character
hum = char:WaitForChild("Humanoid")

wait(3)

hum.Changed:connect(function(update)
	script.Parent.Inner.Size = UDim2.new(hum.Health/289, 0, 0, 25)
		if hum.Health <= 20 then
			script.Parent.Inner.BackgroundColor3 = Color3.new(255, 0, 0)
		elseif hum.Health <= 60 then
			script.Parent.Inner.BackgroundColor3 = Color3.new(255, 221, 0)
		elseif hum.Health > 60 then
			script.Parent.Inner.BackgroundColor3 = Color3.new(12, 255, 0)
		end
	end)

1 answer

There's a few problems here.

First, the Character is likely to not be loaded by the time this LocalScript runs. We have to wait for it.

Here's a cute way to do that:

local player = game.Players.LocalPlayer
local char = player.Character or player.CharacterAdded:wait()

Next, Color3 takes an r, g, and b that are in the range 0 to 1, not in the range 0 to 255.

You have to divide those parameters by 255.


You shouldn't have elseif when you mean else -- you want the last branch to always happen (and it will anyway) -- don't write something that means nothing.

You're also repeating yourself five times with script.Parent.Inner. Why not make a variable?

local player = game.Players.LocalPlayer
local char = player.Character or player.CharacterAdded:wait()
local hum = char:WaitForChild("Humanoid")

wait(3)

local inner = script.Parent.Inner

hum.Changed:connect(function(update)
	inner.Size = UDim2.new(hum.Health/289, 0, 0, 25)
	if hum.Health <= 20 then
		inner.BackgroundColor3 = Color3.new(15, 0, 0)
	elseif hum.Health <= 60 then
		inner.BackgroundColor3 = Color3.new(1, 221/255, 0)
	else
		inner.BackgroundColor3 = Color3.new(12/255, 1, 0)
	end
end)

Where did 289 come from? If it's the humanoid's max-health (which would make sense) then you should probably just use that so that you can change the MaxHealth without having to update this script.

1 comment

0

Thanks! This helped a lot! the 289 allowed the health bar not to cross over the GUI border i made. Is there an easier way?

This discussion is preserved as it was. New answers, comments, and votes are closed.