Editing the Child Actor component

@Fen Has the right idea. It may not be perfect, but it’s a usable work-around.

To put it into simpler terms:

  1. In the BP that will be a child actor, the one that you want to edit the instance of and will be within an “outer BP”, make a Function that uses the values you want to change. Effectively an “Update” Function that handles updating in-editor visuals/settings for that instance, that would normally be handled in the construction script.

This Update Function can be called in the construction script normally, but more importantly can be called by the “outer” BP this will be in.

  1. In the “outer” BP that has the child, make another “Update” Function that:
  • Gets a reference to the child actor using “Get Child Actor”,
  • Casts it to the class of the child actor,
  • Sets the values you need changed in the child actor,
  • Calls the Update Function within the child actor.

This doesn’t technically need to be a function. If you do it all in the construction script, it’ll work just fine. But having it be a function keeps things neat and allows you to mark the function “Call In Editor” for an easy button-press test if it’s not in the construction script.

  1. Have variables for the child actor’s values, on the “outer” BP. That way you can modify them in-editor and see updates.

As an example, I have…

  • An Animated Door BP that has a bunch of variables for the kind of door, single/double door, open state, movement method, etc.
  • A Level Streaming Volume BP that handles level streaming when interacted with.
  • I want the Animated Door within the Level Streaming Volume, as a child actor that I can adjust for single/double doors, etc.

I set up a bunch of variables in the construction script of the Animated Door to update the door when changed. I selected all that in the construction script and collapsed it into a Function I called “UpdateDoor”. That function is still called in the Construction Script, and works fine.

I added the Animated Door BP to the Level Stream Volume BP as a Child Actor, and can’t update the Door any more. So, I have to get a reference to the Child Actor, cast it to Animated Door BP, and set the values from there. However, that alone doesn’t update the child actor instance. I need to call the UpdateDoor function after I set the relevant values.

I suspect the reason direct editing of child actor templates within a parent BP isn’t a thing already is because of nesting. How many layers worth of child actors can be within any one BP is effectively limitless, so to make all of that editable in the outer-most instance would be insane, even with details drop-down categories. :stuck_out_tongue: