The monsterExp function only gets called once. I assume it is because the monster variable gets emptied when to gameObject gets destroyed. Is there any way to work around it. Also, another question, can you make labels update "live" and not after character reset?
monster1 = game.Lighting.Zombies
monster1.Parent = game.Workspace
exp = 0
level = 1
expreq = level*25 + 100
gold = 100
game.StarterGui.StatsGui.Level.Text ="Level: "..level
game.StarterGui.StatsGui.Exp.Text = "Exp: "..exp.."/"..expreq
game.StarterGui.StatsGui.Gold.Text = "Gold: "..gold
monster = workspace.Zombies.Zombie.Zombie
function monsterExp()
print('hej')
if monster.Health <= 0 then
exp = exp + 25
print(exp)
game.StarterGui.StatsGui.Exp.Text = "Exp: "..exp.."/"..expreq
print(game.StarterGui.StatsGui.Exp.Text)
end
end
monster.HealthChanged:connect(monsterExp)

3 comments
In 'if monster.Health <= 0', your trying to say if the monster's health is less than 0 (like -1) then it will add exp? Or your trying to say, 'if monster.Health == 0', which means that if the monster is dead.
Instead of monster.Health <= 0 Change it to monster.Health 1 so it will give you the Exp/XP and you will also kill it! RB Username: SniperXShots
Doesn't really matter if it is 1 or 0, the problem is that the function gets called after the first time when the monster dies, but not the second time