Blueprint "event begin play" called before C++ parent's "event begin play"?

I see three ways to go about it:

Either you can create a BlueprintImplementableEvent function which replaces your blueprint begin play. You can then call this function in your C++ code whenever you want, presumably at the start or end of the actual C++ BeginPlay.

Or, and this one is just a guess, you could try moving the “Super::BeginPlay” to the bottom of the C++ BeginPlay function. I don’t know if that’s what actually calls the Blueprint BeginPlay but that would make sense.

Finally, I do have to point out that using BeginPlay to inizialize values etc… Might not be a valid use of UE’s Gameplay Framework. There are many functions in the C++ actor lifecycle, like AActor::PostInitializeComponents, that seem like they would be more suited to such work. Bypassing the need to control both BeginPlay’s execution order entirely.

1 Like