I am having some issues with the part "for i =1,#pplz do" it wont work for some reasons, there is no errors in the output and it only print 1 not 2 or 3

local maps = game.Lighting.Maps:GetChildren()
local pplz = game.Players:GetChildren()	

while true do
if #maps == 0 then   					
	print("No maps found!")  
	script.Parent:remove()  					
	return								
end 
	wait(3)
	-- add text to a gui saying game will start soon
	chosenmap = maps[math.random(1, #maps)]
	map = chosenmap:Clone()
	map.Parent = game.Workspace.Map
	wait(2)
	local spawn1 = game.Workspace.Map:FindFirstChild(map.Name).Team1:GetChildren()
	local spawn2 = game.Workspace.Map:FindFirstChild(map.Name).Team2:GetChildren()
	local team1 = spawn1[math.random(1, #spawn1)]
	local team2 = spawn2[math.random(1, #spawn2)]
	print "1"
	for i = 1,#pplz do
		if pplz[i].TeamColor == BrickColor.new("Bright red") and pplz[i] ~= nil and pplz[i].Character:FindFirstChild("Torso") ~= nil then
			pplz[i].Character.Torso.CFrame = CFrame.new(team1.Position.x, team1.Position.y+2, team1.Position.z)
			print "2"
		elseif pplz[i].TeamColor == BrickColor.new("Bright blue") and pplz[i] ~= nil and pplz[i].Character:FindFirstChild("Torso") ~= nil then
			pplz[i].Character.Torso.CFrame = CFrame.new(team2.Position.x, team2.Position.y+2, team2.Position.z)	
		end
		print "3"
	end
	wait(10)
	map:remove()
end