Description

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
    {
    GENERATED_BODY()
    
    public:
    UPROPERTY(EditAnywhere)
    FString String;
    
    
    };
    
    
    UCLASS(Blueprintable)
    class SUBOBJECTINDIRECTION_API UObjectWithSubObject : public UObject
    {
    GENERATED_BODY()
    
    public:
    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.

9
Login to Vote

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