UnrealHeaderTool and the Blueprint compiler generate inconsistent metadata for object reference variables whose underlying class type includes 'DefaultToInstanced' metadata.

UnrealHeaderTool-generated fields implicitly add 'EditInline' to the variable's metadata so that fields of this type can be instanced directly in the Property Editor at edit time. However, the Blueprint compiler does not currently match this behavior, so variables of this type added through the Blueprint class editor cannot be instanced directly in the same manner.

Define a native "wrapper" BlueprintType struct or class on the C++ side containing a variable of this type, and then add a variable of the native wrapper type on the Blueprint class side.

Steps to Reproduce
  1. Open the attached (sample) project in the 5.3 editor.
  2. Open DA_TestDataAsset.
  3. Open the 'MyEffects' member element (index 0).
  4. Note that only the "Wrapped Int Value" member can be inline-edited.
    Expected result: Both "Int Value" and "Wrapped Int Value" members should be inline-editable.


Have Comments or More Details?

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

Login to Vote

ComponentUE - Gameplay - Blueprint Compiler
Affects Versions4.
Target Fix5.4
Fix Commit30398323
Main Commit30398348
CreatedSep 7, 2023
ResolvedDec 19, 2023
UpdatedJan 20, 2024