Set up a Pawn to be possessed by AI automatically.
Set up a GameMode to use this pawn as default.
Put a breakpoint on AController::Possess
OnNewPawn.Broadcast is reached.
Next up, the default PlayerController possesses the default pawn. Except it never reaches ReceivePossess or any of the delegates:
Fully broken. This delegate is important when you need to be notified of a new possession the moment you run the game. The only way it works is by disabling AI auto possession.