Before I say anything you guys should know that my game is a game where there is one person who is "it" and they have to try to kill everybody else. What I want to happen in this piece of code is to create a table of the players, and remove them from the table if they die OR leave the game. The players seem to get removed when they leave the game, but if they are kill by the person whos it, they don't seem to be removed from the table. Help?!

	local localtimer = roundtime
	activecontestants = {unpack(contestants)}
	while true do
			wait(1)
			localtimer = localtimer - 1
			status.Value = localtimer
		if localtimer < 2 or #activecontestants == 1 then
			break
		end
	end
	for index, player in pairs(activecontestants) do -- Set up the Died event.
		if player.Character and player.Character:FindFirstChild("Humanoid") then
			player.Character.Humanoid.Died:connect(function()
				for index2, player2 in pairs(activecontestants) do
					-- This second loop is a precaution because the table may have changed by the time they died.
					if player2 == player then
						table.remove(activecontestants, index2)
					end
				end
			end)
		end
	end
	game.Players.PlayerRemoving:connect(function(p) -- Set up the PlayerRemoving event.
		for index, player in pairs(activecontestants) do
			if player == p then
				table.remove(activecontestants, index)
			end
		end
	end)

1 comment

0

This script is oddly familiar with a script someone else has asked me to fix. I just re-rwote the whole thing. Still working on it though. Funny thing is that they had the same problems.