Should be relatively simple, I just have no idea how to do it.
I don't really change the Name property of the Humanoid anymore, due to it sometimes breaking some scripts, now, I just use the MakeJoints
method to keep the Player from falling apart, and the HealthChanged event of the Humanoid to detect when the Player's Health has changed, here is what I mean;
local plr = game.Players.LocalPlayer --Variable 'plr' will specify/identify the LocalScript's Client repeat wait() until plr.Character and plr.Character:FindFirstChild("Humanoid") --The 'repeat' loop will repeat/yield the code until the Player's Character is existant, and the Player's 'Humanoid' is existant within the Player's Character local hum = plr.Character['Humanoid'] --Variable 'hum' is now specifying the Player's 'Humanoid' hum.HealthChanged:connect(function(health) --Here is the 'HealthChanged' event; This will fire when a 'Humanoid''s Health property has changed, and variable/argument 'health' is specifying the 'Health' property if health<= 0 then --The 'if' statement is checking to see if the 'Health' property is less than or equal to '0' hum.Health = hum.MaxHealth --If so, reverts the Player's Health to full plr.Character:MakeJoints() --Remakes the 'Joints' on the Player's Character end --This ends the chunk for the 'if' statement end) --This ends the chunk for the function
Hope this helped!