I set default pawn for level a spectator class.
I then take the Gamemode of that level and use on post login to add umg based on if it’s controlled pawn class is spectator to bring up team select.
Set HUD I believe to a team select HUD class
In the my custom player controller I have a enum for team as well as a custom player start
0 spec
1 red
2 blue
Default 0
Then override on choose player start. Which switches on enum from player controller to spec, red, blue (Gamemode override)
Spec goes to normal start
Red and blue each get actors of class myplayerstart
The override choose player start where the enum splits to red or blue both get all actors of class myplayerstart, Use some checks to make arrays of both red and blue player starts. So we can then get one from the array to return as its player start.
Last tricky part is in the umg for team select when you choose red or blue you are changing the player controllers enum value for team and then using respawn logic do player is destroyed and respawned where it will go through the choose player start again picking up on its playerstart.
As far as team colors and such are used you may want to use the character node on possessed to again use this team enum to set a reference of the same in the character blueprint and rep notify that value.
In the repnotifys call all the cosmetic changes for skin color etc.
This is a complicated set of things to accomplish whichbim sure is why the above mentioned link was posted as you’ll need to understand a lot in order to accomplish this as a tutorial isn’t out there for this.
I don’t have time at the moment to make screens or anything. Gl!