Description

When the ShowOnlyInnerProperties property specifier is used for a struct property, the properties contained within the struct are exposed to the Blueprints Details panel as if they were part of the class containing the struct property. This does not happen if the class containing the struct property is nested within another class as an instance. In this case, the struct property appears in the Details panel with its properties nested below it.

REGRESSION:
No. The same behavior occurs in 4.20.3.

Steps to Reproduce
  1. Create a new Basic Code project.
  2. Add a new USTRUCT to the bottom of the GameModeBase.h file that was created for the project.
    • eg:
      USTRUCT()
      struct FTestStruct
      {
      	GENERATED_BODY()
      
      public:
      	UPROPERTY(EditAnywhere)
      	int32 TestVar1 = 1;
      
      	UPROPERTY(EditAnywhere)
      	int32 TestVar2 = 2;
      };
      
  3. Add a new UCLASS below the struct that derives from UObject.
  4. Add the Blueprintable and EditInlineNew specifiers to the new UCLASS macro.
  5. Add a public UPROPERTY to the new class that is of the type of the struct created previously. Name this variable anything easily memorable.
  6. Add the EditAnywhere and Meta = (ShowOnlyInnerProperties) specifiers to the UPROPERTY macro.
  7. Create a second new UCLASS at the bottom of the file that also derives from UObject.
  8. Add the Blueprintable specifier to the second UCLASS macro.
  9. Add a public UPROPERTY to the second class that is a pointer of the type of the first class.
  10. Add the EditAnywhere and Instanced specifiers to the UPROPERTY macro.
  11. Build the project in Visual Studio.
  12. Open the project in the Editor.
  13. Create a Blueprint of each of the classes created in steps 3 and 7.
  14. In the Blueprint of the second class (step 7), set the value of the UPROPERTY that was added to the class to an instance of the first class (step 3).

RESULT:
In the Blueprint of the first class (step 3), the name of the UPROPERTY in that class does not show anywhere; the properties in the struct are the only properties shown. In the Blueprint of the second class (step 7), the name of the UPROPERTY in the first class is shown, with the struct's properties nested below it.

EXPECTED:
In both Blueprints, the name of the UPROPERTY in the first class is not shown.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-70288 in the post.

8
Login to Vote

Won't Fix
ComponentUE - Gameplay - Blueprint
Affects Versions4.20.34.234.21.2
CreatedFeb 19, 2019
ResolvedAug 27, 2021
UpdatedAug 27, 2021