Players conservation between levels

Hi guys,

I’m working on a local multiplayer setup and I’m stuck on a stupid problem:
In this game, the first level is a character selection menu such as this one

. Here, I create 4 custom playercontrollers (no pawn attached) to be able to listen to every gamepad. Then when everyone’s ready, the gamemode loads a new level.

at this point, since I don’t need any GUI related logic anymore, I want to switch the player controllers class to a clean one, focused on the actual playing controls. To do that, I just set a different player controller class in the level parameters.

So far, everything seems ok: when I load the new level, My 4 “playerCtrl_menu” are immediately replaced by 4 “playerCtrl_game”.

But how can I know who’s who? Is there an id or something?

I’ve seen before that the “get all actors of class” node doesn’t always return the objects in their creation order, so I need a way to reorder it.
One solution would be to have a foreach on the gamepads list, and get the related playerCtrl.
Is it a good solution? and if yes, how can I do it?

by the way, here’s a bonus question: Does my process make sense? I haven’t seen any similar setup on the web, but I needed to have some specific logic in the player controller to communicate with the menu. And I feel that keeping this unused logic code all along the game is a bit uncomfortable and not optimized

Thanks for your help