I'm having problems with the For loop inside my OnJoiningParty function, every time NumPlayer tries to find the amount of players inside the Idex.Party.Group it doesn't return the right amount of players that is actually in the table, it just returns 0. How do I fix this???

Here is part of the script:

local MapNames = {"Map1","Map2"}

local PlaceMapID = {
	["Map1"] = {ID = 123246764},
	[2] = {ID = 123246764},
	[3] = {ID = 123246764}
	}



local PartyList = {}

O = 0
function OnPartyCreation(Player, Maps)
O = O + 1	
local Mapi = PartyList[MapNames]
local A,B = pcall(function()
	print(GetMapID(Maps))
	local Created 
	local CreatePartMap
	Created = false
	repeat 
	PartyList[#PartyList] =	{
	Party = {
		
		Leader = Player;
		Group = {}
		
		},
	MapName = Maps	
	}
	wait()
	CreatePartMap = PartyList[#PartyList].Party
	Created = true
	until Created == true and CreatePartMap.Leader ~= nil
	return print("New party was created"), print(unpack(CreatePartMap.Group))
end)
print(A,B)
end

function OnJoiningParty(Player, Map)
	local MaxPlayers = Services.Players.MaxPlayers
	print("hi")
	repeat wait() until Player 
		for _,Idex in pairs(PartyList) do
			local Names = Idex.MapName
				print(5)
			if Map ==  Names then
				print(111)
	for NumPlayer = 0,#Idex.Party.Group do	
		print(6)
		if NumPlayer > MaxPlayers then
			print(7)
			warn("Party is full, "..NumPlayer .." < ".. MaxPlayers)
		else
	table.insert(Idex.Party.Group,Player.Name)
	print(unpack(Idex.Party.Group))
	SwitchTables(Lobby,InParty,Player.Name)
		print(unpack(InParty))
		print(unpack(Lobby))
	warn("Party is not full, "..NumPlayer .." > ".. MaxPlayers)
	print(Player.Name.." has joined the party")
		break
			end
			end
	end
		end
		end

game.ReplicatedStorage.GameFolder.Remotes.JoinParty.OnServerEvent:Connect(OnJoiningParty)

game.ReplicatedStorage.GameFolder.Remotes.CreateParty.OnServerInvoke = OnPartyCreation

Here is a more focused part of the problem inside the script:

function OnJoiningParty(Player, Map)
	local MaxPlayers = Services.Players.MaxPlayers
	print("hi")
	repeat wait() until Player 
		for _,Idex in pairs(PartyList) do
			local Names = Idex.MapName
				print(5)
			if Map ==  Names then
				print(111)
	for NumPlayer = 0,#Idex.Party.Group do	
		print(6)
		if NumPlayer > MaxPlayers then
			print(7)
			warn("Party is full, "..NumPlayer .." < ".. MaxPlayers)
		else
	table.insert(Idex.Party.Group,Player.Name)
	print(unpack(Idex.Party.Group))
	SwitchTables(Lobby,InParty,Player.Name)
		print(unpack(InParty))
		print(unpack(Lobby))
	warn("Party is not full, "..NumPlayer .." > ".. MaxPlayers)
	print(Player.Name.." has joined the party")
		break
			end
			end
	end
		end
		end

game.ReplicatedStorage.GameFolder.Remotes.JoinParty.OnServerEvent:Connect(OnJoiningParty)