All I’m saying is that the Create Player function will be executed PlayerCount + 1 times when Single? is false. Is this intended?
Since you want to start assigning controllers at 0, run ForLoop from index 0 to PlayerCount - 1 instead. That’s unless you handle that elsewhere already and that variable holds correct value before the loop.