Description

Blueprint nodes that exist as a result of the UPROPERTY() macro don't get disabled once the "BlueprintReadWrite" or "BlueprintReadOnly" is removed as a parameter in the UPROPERTY() macro. The nodes for setting or getting that variable can't be searched for or created again but existing nodes won't generate warnings or errors and will actually still function as intended when PIE.

The same holds true for UFUNCTION() up until the blueprint is compiled, then the function node generates an error.

Steps to Reproduce
  1. Create a new Code FirstPerson template project
  2. Right click in the content browser and select: New C++ Class, select Actor for the parent class and name it Farm, create it.
  3. In Farm.h under the Tick function, copy/paste: UPROPERTY(BlueprintReadWrite) int sheep;
  4. Save farm.h and compile in editor.
  5. In the content browser right click on Farm and select: Create Blueprint class based on Farm
  6. Name the class FarmBP and create it
  7. Navigate to FarmBP's Event Graph in the BP Editor
  8. Right click on the event graph and search for sheep, select Get Sheep
  9. Right click on the event graph and search for sheep, select Set Sheep
  10. Save and compile the blueprint.
  11. In Farm.h, remove the BlueprintReadWrite parameter from the UPROPERTY() macro.
  12. Save Farm.h and compile in editor.

Results:
The existing Get Sheep and Set Sheep nodes are still completely functional and don't generate any warnings or errors, yet no more nodes referencing the sheep variable can be created.

Expected Results:
The existing Get Sheep and Set Sheep nodes generate warnings and cause errors upon compiling the blueprint.

Have Comments or More Details?

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

1
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint Compiler
Affects Versions4.11
Target Fix4.17
Fix Commit3459524
Main Commit3510073
CreatedSep 11, 2015
ResolvedMay 25, 2017
UpdatedJun 11, 2019