Bug - Reparented Blueprint child not firing "Begin Play Event" in newly assigned Parent BP

Hey guys,

I have a CharacterBP that I am using as a master for all my camera logic and camera settings. It is just a character BP with an empty mesh and spring arms with scene components attached to them. In the BP, I am spawning in camera actors and attaching them to the scene components on “BeginPlay”

From there I have several other BP that are childs of this “MasterCamera_BP” that follow through with character meshes ect, while inheriting my camera logic and settings from my “MasterCamera_BP”.

However, all these childs are made by right clicking on the “MasterCamera_BP” and clicking “Create Child Class”. If I try to take a separate character BP and reparent its Parent BP from “Character” to my “MasterCamera_BP”, the subsequent BPs wont seem to recognize or see the camera actors I spawned in.

I was doing a test, and from the child I can get world location data on the scene component that is attached to my spring arm in my “MasterCamera_BP” and the data seems correct, but I can’t do the same with the camera actor because it doesn’t exist for some reason. I tried spawning in the camera actor again in the child, and while it seems to get spawned in world, I can’t set my view target to the camera, I just get a broken view at local 0,0,0.

This all said, this works fine if I right click on “MasterCamera_BP” and “Create Child BP”, but not if I reparent an existing CharacterBP. Hopefully this all makes sense. I attached an image of my “MasterCamera_BP” where I am spawning in the camera actor and attaching it to the scene component. Let me know if you need anything else to try and repro assuming this is a legit issue.

EDIT: I I found some more details, the reparented child doesn’t seem to fire off the “BeginPlay” in its parent “MasterCamera_BP” that spawns the camera actors, while the child created by right clicking and selecting “Create Child BP” does.

Verify that the child has a Parent: BeginPlay node after Event BeginPlay. This is automatically added when you right click → create child BP.

Hmm, it does’t seem like this node was created when I made the child. I don’t see any Parent nodes at all in the BP.

I found the issue, it seems the “Begin Play” in the child was somehow conflicting with the one in the parent, thus blocking it from firing entirely? When I removed it, it started to work.

If you don’t know how to create those "parent: ", they can be created by right clicking any function or event and “Add call to parent function”.

If you mean that the blueprint is data only, click the “Open full blueprint editor”

There should be some faded default nodes.

Thank you for the reply sir, it is much appreciated! :slight_smile:

For anyone else having this issue, make sure that your parent class calls the superclass’ BeginPlay().

I noticed this issue when I re-parented my blueprint from PlayerController to a custom C++ class. In my custom class, my BeginPlay method did not called Super::BeginPlay() which stopped the event from firing in my child blueprint.

You must reference the parent when using Begin Play in the child.