Description

When a Blueprint contains multiple layers of nested subobjects, any subobjects below the top-most layer do not have changes to their properties propagate to child Blueprints. See attached project (created in Main, CL 4184318).

Steps to Reproduce
  1. Create a new code project.
  2. Add a new code class to the project that derives from UObject.
  3. Add the following UCLASS specifiers to the class: Blueprintable, EditInlineNew, DefaultToInstanced, CollapseCategories
  4. Under a public access specifier, add an EditAnywhere UPROPERTY of any basic type (eg. FString).
  5. Add a UPROPERTY that is a TArray of pointers to the class containing this property. Use the EditAnywhere, Instanced UPROPERTY specifiers.
  6. Build the project in Visual Studio.
  7. Open the project in the Editor.
  8. Create a new Blueprint that derives from the code class created in step 2.
  9. Add an element to the array created in step 5 and set the type to the class from step 2.
  10. Add an element to the array in the subobject that was just created and set the type to the class from step 2.
  11. Set different values for the property created in step 4 for each of the base Blueprint, the first subobject (in the Blueprint's array), and the second subobject (in the first subobject's array).
  12. Compile and save the Blueprint.
  13. Create a child Blueprint that derives from the Blueprint created in step 8.
  14. Open the child Blueprint.
  15. Note that the properties created in step 4 match the values that were set in the parent Blueprint.
  16. Close the Child Blueprint.
  17. Open the parent Blueprint.
  18. Change the value of the property of the nested-most instance (ie. the instance inside the first subobject's array).
  19. Compile and save the Blueprint.
  20. Close the parent Blueprint.
  21. Open the child Blueprint.

RESULT:
The default value for the nested-most property in the child Blueprint does not match the new value set in the parent Blueprint's nested-most property.

EXPECTED:
The default value for the nested-most property in the child Blueprint matches the new value set in the parent Blueprint's nested-most property.

Have Comments or More Details?

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

4
Login to Vote

Won't Fix
ComponentUE - Gameplay - Blueprint
Affects Versions4.18.34.19.24.21
CreatedJul 6, 2018
ResolvedAug 18, 2021
UpdatedAug 18, 2021