In my game I have a state machine which rules when the player controller can possess a pawn. After spawning the pawn in INIT state, I tried to possess the pawn when GAMEPLAY state is entered. The scheme of the game state is:
INIT > MAIN_MENU > GAMEPLAY
The problem is I can't move the character after possessing, but other key mapping; eg. turning on/off flashlight works.
Tried possessing it from game mode, game state and the player controller itself. The only thing I know from these trials and errors: possessing only works from server side.
Found out that the key mapping for basic movement is initialized when the character is spawned to the world. The reason that movement does not work let alone moving the camera is, that the input mapping references the player controller and at the point of spawning the pawn, the controller assigned is not the controller controlling the pawn in the future.
The solution is to turn the input mapping into an event and call the event after possessing the pawn using Client RPC.
Input Mapping in ThridPersonCharacter