The Instanced Subobject values for the Child_BP are same as what the Parent_BP subobject values are changed to before compile and saving both Blueprint Objects.

Tested in 4.18.3 (CL-3832480), 4.19.2 (CL-4033788), 4.20 (CL-4165543) and 4.21 (CL-4162595)

Steps to Reproduce
  1. Create a Basic C++ project
  2. Create a C++ class that derives from UObject named ObjectWithSubobject
  3. Enter the following code in the ObjectWithSubobject header file:
    UCLASS(EditInlineNew, DefaultToInstanced)
    class SUBOBJECTINDIRECTION_API USubObject : public UObject
    FString String;
    class SUBOBJECTINDIRECTION_API UObjectWithSubObject : public UObject
    UPROPERTY(EditAnywhere, Instanced)
    USubObject* SubObject;

      4. Create a blueprint deriving from the ObjectWithSubobject named Parent_BP

      5. Create a child blueprint from Parent_BP named Child_BP

      6. Set the Subobject property in the Parent_BP to Subobject

Expand the Subobject property and input "Parent" the String property

Expand the Subobject property in the Child_BP blueprint


Expected: The Child_BP should have default values.

Result: The Child_BP values has the same values that the Parent_BP has been changed to.

Have Comments or More Details?

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

Login to Vote

Won't Fix
ComponentUE - Gameplay - Blueprint
Affects Versions4.
CreatedJun 27, 2018
ResolvedAug 18, 2021
UpdatedAug 18, 2021