Child blueprints will call Event BeginPlay on their parent, even when nothing is hooked up in the child

If the user creates a child blueprint of something like a base character class, to make another class of character class based on it, the original parent class will have it’s “Event BeginPlay” called every time one of those NPC’s is spawned even after deleting the exec for “Parent: BeginPlay” if the Event BeginPlay of the child is not exec’d to something else… By default the child has a BeginPlay that is greyed out and stated that it’s disabled, however there seems to be some sort of callback to the parent that causes it to loop again.

Discovered after following and extending the dual stick shooter tutorial.

  1. Create a generic MyCharacter class,
    and create a child off of it

  2. In the child delete the “Parent:
    BeginPlay” from the event graph

  3. Create a basic spawner for the child
    Put a Print on the Event BeginPlay
    of the parent and fire off the
    spawner

  4. Note that the Event BeginPlay in the
    child appears greyed out and
    “disabled”

  5. Add a Print on the child beginplay
    and it goes away

If you plug in any nodes on the event begin play without the parent node attached, do you still see this behavior or is it overridden?

Yes, on my last step, I tried putting just a print string on it and it made the problem go away

Excellent, I wanted to be certain that would happen before determining what is going on. The reason it is acting on the parent’s begin play without the parent node attached is intended. It is still inheriting the functionality of the parent begin play blueprint. When you added the print string it overrides the event begin play, the parent node is designed to allow you to add functionality to the begin play without overriding that initial functionality. It is only required if you intend to add functionality to the begin play but still want to maintain the parent blueprints behavior. If you don’t intend to override the function, it won’t be necessary to still have access to the parents begin play function.

Ah thank you!, although at some point in the future it would be great if child blueprints had some sort of notation that said that, it looked like (from my naive approach) that if I got rid of that parent node that it would unlink that event…