Blueprint within a Blueprint, variables not exposed to editor?

Hello and thanks for reading!

I have a Blueprint class called “BP_Propeller” that encapsulates a static mesh. BP_Propeller shall then be a sub-component of another Blueprint called “BP_Block”.

BP_Propeller has three variables: m_Material, RotationSpeed, TestVariable.

Now when I drop a BP_Propeller into the Level-Editor, I can access these variables:

image

But when BP_Propeller is a sub-component of BP_Block, like this:

image

Then I have no access to these variables when dropping “BP_Block” into the level editor:

Why is this? Why are the variables hidden, as soon as my Blueprint is a component of another Blueprint?

Probably a beginners question, right?

Thanks a lot!

Martin

1 Like

On the contrary, a legit one. There were great plans on how the Child Actors Components could work but it seems they stopped working on it:


Nesting Blueprints - intended workflows?

  • At the moment, the only mechanism available for ‘nesting’ Blueprints is the child actor component. This isn’t really nesting in the way most people would want, but rather it ties the lifetime and positions together, but they are technically independent actors. We’d like to improve the way that blueprints can be nested, but it’s currently not on the roadmap.

State of Child Actors?

  • Not used heavily in terms of scaling to 1000s of things, but we do use it wherever it makes sense
    • Supply drops, balloon and crate are separate actors with child actor comp
  • We’d like to have fully nested hierarchy, child actor components are just what we have today
  • If all you need is the transform, there are some other tools
    • On any vector/transform property, can mark to show a 3D widget
    • If just attaching things in level and not BP editor, you can use sockets

You can blueprint the desired behaviour but it would be N.I.C.E. to have the variables and components (and their variables as well!) exposed to the World Outliner… :expressionless:

An alternative workflow to this → make your own custom components extending from the native ones. For example: you can override a static mesh component:

This way you end up with a component that already is a static mesh component but now it also has a full graph and can have its own instance editable variables & functionality:

You add that custom component to the main actor instead of Child Actor Component:

The downside is that actor components cannot have Timelines and / or any other components. So your job is to assemble / attach it all in the main actor. Workable but not that dev-friendly.


Again, would be nice if CACs supported this from the get-go @Epic

2 Likes

Thank you so much!

Now this confuses me a a little. I don’t understand the overall strategy using Blueprint-Classes overall. I will try to find out in this thread here. Thank you very much, I really appreciate your help.

How on earth has this not been fixed yet? This has been a MASSIVE bug for years. Epic, please respond (even though we all know no one from epic reads this stuff). Really getting the feeling epic hates this community as much as it hates fixing bugs.