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

Hi ,

I tried to reproduce this issue, and the results I saw were different from what you described. Let me tell you what I did, and if you can point out where you are doing things differently, that would help.

  • Create a new code project using the First Person template.

  • Build the project in Visual Studio.

  • Open the project in the Editor.

  • Add a new code class to the project derived from GameMode.

  • Close the Editor.

  • Override BeginPlay() in the new code class with the following code:

    if (GEngine)
    {
    GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Green, TEXT(“Code Begin Play”));
    }

  • Open the project in the Editor.

  • Create a Blueprint from my custom GameMode class.

  • In the Blueprint Event Graph, set an Event Begin Play node and connect it to a Print String node.

  • Set the new Blueprint as the project’s GameMode.

  • Start PIE.

What I was seeing is that the message from the code class is displayed, but the Event Begin Play node in the Event Graph was apparently not being triggered.

If you could also answer a few additional questions, that would be helpful.

  • What version of the Engine are you using?
  • Are you using the binary version installed by the Launcher, or did you build the Engine from source code?
  • Does this happen in a brand new project as well, or only in your own project?