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?
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.
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.