Download

Exposing Child Blueprint Variables in Editor

So I’ve been searching through documentation and trying to find an answer to what I’m assuming is pretty simple, but I’m not having any luck.

I have an actor blueprint which contains only a point light. I’ve setup 4 variables as well as some curves for controlling those values in a flickering action. If I drag this blueprint into my scene, I’ve exposed the variables so I can edit them right there in the editor. This way I can control the brightness, light radius, etc. per instance.

I have then taken that blueprint, and placed inside of a parent blueprint which contains a torch model and a particle system. I can access those same variables I setup when I’m editing inside the blueprint from the Child Actor Template section of the details panel. However, when I drag this parent blueprint into my scene, I cannot control the variables in the editor anymore, so I have no way of making certain torches brighter, etc.

How do I get these variables exposed on the parent blueprint so that I have access to edit them per instance in the editor? Have I gone about this in completely the wrong way? I appreciate any help or insight anyone can give!

Hi,
You have to add something in the torch BP’s construction script, and those variables as well. These var inside of the torch are public so you can access in the editor, but vars in the light BP child don’t need to be public (unless you plan to use the light BP alone without the torch).

Here is the construction script of the torch, you can see it set variables of the light with the variables of the torch (which are the one you will see on the scene), this way they get proper value when the timeline begins, and then it set directly properties on the component so you can see the change in the editor :

@Grot13 thank you so much for a quick response and for even providing a quick example blueprint to illustrate how to accomplish this. Now I can re-utilize my light blueprint into all sorts of different torches that require it to be in different positions and with different values. You seriously rock!

I implemented this structure and everything is functioning as expected. Thanks again!

I also forget to mention that child actor variables are accessible also via the “child actor template” in the parent BP. Probably not as convenient in your case, but I though I should mention it anyway.
And no need to set them public (i just created a test boolean) :

@Grot13 Where is the information that you provided to solve this issue?

Here is how you communicate with child BP:

In my example the BP_Light only contains a point light with no code so I set directly the intensity on the light component.
Now in the case you use the child alone in the scene, this will be done inside its own construction script (with same node and a public var too) :

Then in the parent you set the var directly :

@Grot13 That’s great! Thank you :slight_smile: