Begin play character initialization

Hello,

I’m working in Unreal Engine 5 with Blueprints and some C++. In my project, I have a menu level where players select a character, and the chosen character’s class (a Blueprint child of a Bp character who is a child of C++ character) is saved in the Game Instance as a variable (SavedCharacterClass). After selecting, I load a new level, and I want the Game Mode to spawn this child class as the player pawn, as if it were the default pawn.

Currently, I’m setting the Game Mode’s Default Pawn Class to SavedCharacterClass in the Game Mode Blueprint’s Event Begin Play, spawning new character and possesing it. However, the character’s Event Begin Play (in Blueprint) and the C++ parent’s BeginPlay and other Blueprints Begin Plays have already run by the time the new pawn spawns, causing issues with initialization logic (e.g., null references, input bindings, component setup). There’s a lot of Begin Play logic in both the Blueprint child classes and the C++ parent, and adding delays everywhere isn’t practical.

How can I ensure the child class spawns as the active character with all Begin Play logic (Blueprint and C++) executing correctly, mimicking the Game Mode’s default pawn behavior? Is there a way to set the Default Pawn Class before Begin Play events fire, or a better approach to handle this?