What is the effect of ShowOnlyInnerProperties?

Yes, you are correct. ShowOnlyInnerProperties suppresses the grouping of a struct’s UPROPERTYs members into a single node in the property editor. Instead, the categories assigned to its UPROPERTYs will be used.

ShowOnlyInnerProperties is applied to a UPROPERTY that is a struct:

USTRUCT(BlueprintType)
struct FWeaponInfo
{
	GENERATED_BODY()

public:

	UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta=(Category="Weapon"))
	bool bIsCool;

	UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta=(Category="Style"))
	UAnimMontage* Attack;
};


UCLASS()
class UAttackSelector : public UObject
{
	GENERATED_BODY()

public:

	UPROPERTY(EditDefaultsOnly, Category = Weapon, meta=(ShowOnlyInnerProperties))
	FWeaponInfo Weapon;

	// ...
};

(So you don’t use it inside your struct to expand.)

Instances of UAttackSelector will have FWeaponInfo’s bIsCool and Attack member variables displayed as if they were members of UAttackSelector.

I’d guess you can use it on UCLASSes too. Not sure where else it’s useful. Doesn’t seem to work for arrays.

1 Like