Edit inherited components

Is it possible somehow to edit inherited components?

F.e. I have blueprint A, which containt manually added SpringArm and Camera. I created blueprint B, which inherits bp A, but now I can’t edit anything from SpringArm and Camera. Is it a bug?

Hi Ufna,

It’s not exactly a bug, but it is a limitation of how component templates are stored right now. It’s something we want to fix in a future release.

For now, you can change settings in your derived BP by setting them in the user construction script of blueprint B.

Cheers,
Michael Noland

Hi Michael,

Thanks for explanation :slight_smile:

V.A.

Hi Michael some aproximaded ETOA, please, please. Those was a anticlimax when I try to change my inherited trigger size five minuts ago :frowning:

Hi -

We’re going to try and get it in for 4.5, but depending on how priorities line up, it might be 4.6

Thanks to answers

I didn’t see this in the 4.6 release list, perhaps I missed it (haven’t actually got our project working in 4.6 yet to test!), do we know when this will be done, it is a right pain!

There has been some submits to the master branch so probably 4.8 for non source users.

any news on this? I still can’t edit components inherited from C++ code (or is this a different issue?)

I can’t even edit variables in a derived blueprint.
For example, let’s say I have a parent blueprint called “Spell.”
I then have a derived blueprint called “Spell_Fireball.”
The parent blueprint defines a variable named “Spell Name.”
Now, for the derived blueprint, I’d like to be able to edit the “Spell Name” to say “Fireball.”
I can show the “Spell Name” variable by selecting “show inherited variables,” but I can’t edit the defaults for the subclass in this pane – all the fields are dimmed, and the “Default value” field isn’t even shown.

The reason I want to do it this way is because I want to treat all spells the same way for user interface and gameplay triggering purposes (each spell has a mana cost, a cooldown, etc.)
But I also want the set of spell effects (particles, sounds, etc) and spell actions (how it affects the game state) to be different.
For now, I think the only way I can get this working is by using delegation – instead of subclassing “Spell,” I have to define a “Spell Action” interface and have a variable in the Spell class that takes one of those.
Evenso, this feels pretty clumsy.

Is there a better way?

Any news on this? It looks like I can edit a component from a parent class if that parent class is a blueprint, but it doesn’t work if the parent class is a C++ class… It would like it to work in both situations.

Mmmmm, we are on 4.12 and still no news?

Anyway, if I want to declare a skeletal mesh in C++ and then in a sub-blueprint design it visually, how I will go about this?

I just bumped into this inconvenience too. In my case I have a blueprint, let’s say it’s name is Vehicle, that sets up a couple of UActorComponents that are shared for all vehicles. One of those components could be e.g. engineComponent with uproperties acceleration and breakDeceleration. Inheriting that blueprint renders the engineComponent useless since I can’t set it’s parameters to anything other than the default from the parent blueprint. Instancing the parent blueprint to the scene gives the same result.

I think unlocking editing for inherited components is an important addition to the engine/editor in terms of separation of concerns. Components are really nice to work with to encapsulate behavior but I seem to always run into these inconveniences.

Top wishlist regarding components:

  • EditInline-references to components in the scene, just like how it works for actors
  • required components (with validation to either just prevent PIE or perhaps spawn the required component straight up). This mostly to avoid crashing coworkers editors with hard check()s when they forget to add references.
  • the functionality discussed in this thread

Any update on this subject?
Wanted to implement InventoryComponent (actor component) in my character, but since it is impossible to edit its variables, I think there is no point in that…

+1 … any news at 4.18? There’s some variable to make it editable, but still, for example if you create a SplineComponent under an actor using C++, you can’t edit it. It’s shown in a different color in the components list and it says “inherited” . You can’t modify the points of it. If you add the component by hand on the editor, you can!

When I say that there’s a varaible:

In the constructor of the Actor class I add a subcomponent like this:

var = CreateDefaultSubobject<class…>(“name”);
var->SetComponent(this);
var->bEditableWhenInherited = true;

The EditableWhenInherited allows us to change the parameters. But the component is hidden unless it’s the root component… and also, depending on the kind of component, you can’t edit some stuff… for example… if you create a Spline Component that should be inside a SceneComponent that is the root… you can’t modify it’s control points…