Can I Change the default player controller class for different users at runtime?

Hi, can I set different player controller classes for different players at runtime, or alternatively can I have one player controller class for the listen-server owner and a different player controller class for all other players logging into the listen server?

One thing I thought of was changing the default player controller class in the game mode after the listen server owner has logged into the level, but I don’t know how or even if this can be done

I’ve implemented a system that does this and it involves subclassing GameModeBase and overriding a few methods.