Blueprint-added component properties are not exposed on the actor level

Hi,

We are noticing that instance-editable properties of components added in blueprint are not exposed on the top-level actor. They’re only exposed when the component is added as a native component. This results in some UX problems for our content creators where they have to make extra clicks to find the properties they want. Is there a particular reason blueprint-spawned component properties aren’t exposed by default? And is there a way built into the engine to make them appear in the Details panel?

Thanks,

Reuben

Steps to Reproduce

  1. Create a class UMyComponent and make it BlueprintSpawnableComponent
  2. Expose an int property MyInt. Ensure it is EditAnywhere
  3. Create a new BP actor and add the component to it
  4. Place an instance of the BP in the world
  5. Observe that the MyInt property is not editable in the Details pane when the actor is selected, only when the inner component is selected
  6. In code, make a new actor AMyActor, and add UMyComponent to it as a default subobject
  7. Place an instance of AMyActor in the world
  8. Observe that MyInt property is editable when instances of AMyActor are selected in the world AND when the innter component is selected

Hello [mention removed]​,

Thank you for the detailed repro steps. I was able to reproduce this scenario locally in multiple versions of UE5.

After digging into the engine behavior and reviewing its source code, I’ve confirmed this is currently working as intended. Components added via the Blueprint Editor (using the “Add Component” button) are treated differently than components created in C++ using CreateDefaultSubobject. Specifically:

  • C++ components are considered native subobjects, and their properties are always exposed in the Class Defaults panel.
  • Components added via the Blueprint Editor are stored in the SimpleConstructionScript (SCS) and not included in the Class Defaults details view.

There’s currently no system in place to expose Blueprint-created SCS component templates in this view, and attempts to forcibly add them via engine hacks can lead to unintended behavior since these are treated completely different by the engine.

You could explore alternatives that extend the editor like IDetailCustomization to manually inject SCS-type components into the Class Defaults view. It appears it would be more practical to simply select the component directly in the list to inspect and edit its properties.

Please let me know if this information helps.

Best,

Francisco

Hi Francisco,

Thanks for getting back to me. That is quite unfortunate since not having the BP-spawned components in the top-level details panel is an annoying UX issue for our content creators. We’ll see what we can do to work around it.

Reuben