Description

If code in an Actor Component class is changed (eg. a new UPROPERTY is added) and a hot reload is performed to implement the changes, the properties in the component can become linked across any Blueprints that include that component. Changing the value of a property in one Blueprint can cause all other Blueprints containing that component to show the same changed value.

REGRESSION:
No. The same behavior occurs in 4.20.3.

Steps to Reproduce
  1. Create a new Basic Code project.
  2. Build the project in Visual Studio.
  3. Open the project in the Editor.
  4. Add a new Actor Component code class to the project.
  5. In the header file for the new Actor Component, add the following property:
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = TestCat)
    bool bGetsLinked;
    
  6. Build the project in Visual Studio.
  7. Add two new Actor Blueprints to the project. Name them "Blueprint1" and "Blueprint2"
  8. Add the new Actor Component created in step 4 to each of the new Blueprints.
  9. Note that the Gets Linked property can be individually set in each Blueprint.
  10. Leave the Gets Linked property checked in Blueprint1 and unchecked in Blueprint2.
  11. Add another property to the Actor Component's header file:
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = TestCat)
    bool bAlsoGetsLinked;
    
  12. Build the project in Visual Studio to trigger a hot reload.
  13. Note that in Blueprint1 and Blueprint2, the Gets Linked property can no longer be set individually. Changing the setting in one Blueprint also changes it in the other Blueprint.
  14. Create a third Actor Blueprint and name it "Blueprint3"
  15. Note that changing the value of Gets Linked in either Blueprint1 or Blueprint2 also changes the value in Blueprint3.

RESULT:
Properties in an Actor Component can become linked across multiple Blueprints containing that component if code in the Actor Component was hot reloaded. This affects not only existing Blueprints, but also new Blueprints created after the hot reload was performed.

EXPECTED:
Different Blueprints containing the same Actor Component are able to set property values independently of each other.

Have Comments or More Details?

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

8
Login to Vote

Won't Fix
ComponentUE - Gameplay - Components
Affects Versions4.214.224.20.3
CreatedDec 3, 2018
ResolvedAug 18, 2021
UpdatedAug 18, 2021