Just calm down and look around insted of panicing, all you really needed to do is look on GameMode functions.
Override ChoosePlayerStart function in GameMode class, to do that from blueprints you hover over “Functions” and Override button should apper and pick ChoosePlayerStart. That function is called every time before player gets spawned asking to which actor spawn the player (yes it does not need to be PlayerStart), it gives you PlayerController of player that is about to spawn and based on that you return Actor.
In order to point out right PlayerStart you will need to extend it’s class, add some variable that assigns the player. Problem is hard to do that. You could put some number and in GameMode on begin play try to find them and put them in order of those numbers in array and based on that recover PlayerStart from that array in ChoosePlayerStart. If you have diffrent criteria, implement them in PlayerStart and try to choose them on ChoosePlayerStart
You need to keep in mind engine design does not try to be in your way, that why PlayerStart does not have much function, since engine don’t know what kind of game you gonna make and what spawning system it will have, it’s the same reason why engine does not have any inventory system. You design a game and it engine expects from you that if something is missing you gonna code it yourself, so don’t expect things gonna be simple.
Also can you point me to thread you mentioned?