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

My death event code only functions once and then after, it stops working.? [SOLVED]

I'm trying to make an item death system where if you die, all the items in your backpack stay the same way they were before you died. So SpeedCoil would be in the first slot if it was in the first slot before, etc.

I already figured out the code and it works, I just can't figure out why it's only running once.. please help!

game.Players.PlayerAdded:Connect(function(plr) -- When player joins in
	wait(1) -- This is so the game doesn't error when there's no humanoid, I know theres WaitForChild btw.
	plr.Character.Humanoid.Died:Connect(function() -- When the player dies
		local items = plr.Backpack:GetChildren() -- Getting the tools in the backpack
		local DeadTools = plr.DeadTools -- A folder to where the tools get stored when player dies
		plr.Character.Humanoid:UnequipTools() -- To prevent tools from being left behind
		
		for i, item in pairs(items) do
			item.Parent = DeadTools -- Send all tools to the deadtool folder
		end
		
		print("Player has died, checking if they had any items beforehand..")
		plr.CharacterAdded:Connect(function(chr)
			for i, items in pairs(DeadTools:GetChildren()) do
				items.Parent = plr.Backpack -- Send back to the player when they spawn in
			end
		end)
	end)
end)

1 answer

Aha I found out how to fix this by doing a workaround by moving the CharacterAdded event to be first rather than the Death event being second.

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