Description

Changing a UPROPERTY value from BlueprintReadWrite to BlueprintReadOnly, or vice versa, and performing a Hot Reload results in the variables not being found in the Blueprint's Event Graph context search. Turning Context Sensitive off allows the variables to be found, but trying to use them results in Blueprint compile errors.

Steps to Reproduce
  1. Create a new code project using the First Person template, no starter content.
  2. Add a new Actor code class to the project.
  3. Close the Editor.
  4. In the header file for the new actor class, add the following code:
    UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = TestCat)
    float MyReadWrite;
    
    UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = TestDog)
    int32 MyReadOnly;
    
  5. Build the project in Visual Studio.
  6. Open the project in the Editor.
  7. Create a new Blueprint derived from the new Actor class.
  8. Open the new Blueprint.
  9. Right-click in the Event Graph and search for "read".
    • Note that a Get node is available for MyReadOnly and a Get and Set node are available for MyReadWrite.
  10. With the Editor still open, replace BlueprintReadWrite with BlueprintReadOnly for the MyReadWrite variable.
  11. Perform a Hot Reload in the Editor.
  12. Right-click the Event Graph and perform a search for "read".

RESULT:
The expected Get nodes for both MyReadWrite and MyReadOnly are not found in the Context Sensitive search results.

EXPECTED:
Both MyReadWrite and MyReadOnly show Get nodes in the search results.

WORKAROUND:
Shutting down and re-opening the Editor makes the nodes visible in the search results.

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

0
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint
Affects Versions4.6.14.7.14.8
Target Fix4.8
Fix Commit2477815
CreatedMar 3, 2015
ResolvedMar 16, 2015
UpdatedApr 27, 2018