How to make my main pawn possessed by MyAIController?

You can’t set the Player Controller in the GameMode as an AI Controller. If you want a PlayerCharacter class to have a default AI Controller, you need to set it in the Defaults of the Character and change a setting to “When Spawned” (don’t know the name, but it is near the AI Controller Tab).

If you let the GameMode spawn the default pawn class, it will autoposses it with the set PlayerController. As far as i know, you can’t use an AI Controller there.

If you want to spawn a Character that is controlled by an AI Controller, you just need to create the BP Class of that character (that’s why you sperated AI and PlayerCharacter, even if they use the same BaseClass as a character) and set the default AI Controller to yours and change teh setting i mentioned above.

If you don’t want to have a PlayerCharacter spawned which is possesed by the normal PlayerController, just leave the Default Class as “NONE” in the GameMode.

The PlayerController is spawned 100%,because it is needed for most things than just controlling the pawn.

If you want to have another character that is controlled by this controller late, you can spawn it and use “Posses” (a function of the PlayerController) with it later.