Constness is not updated in overridden BlueprintImplementableEvents when the native declaration is made non-const. 

Steps to Reproduce
  1. Create Class "MyClass" that inherits from UObject.
  2. In MyClass, define a BlueprintImplemetableEvent UFUNCTION "MyFunction" with a  ptr parameter of some type(licensee repro used UAnimSequence). Add the const keyword after the function. 
  3. After Compiling, Create BP Class "TestBP" that inherits "MyClass" in the editor.
  4. Override "MyFuction" in "TestBP".
  5. Declare Variable "TestVariable" of the same type as input of "MyFunction" in "TestBP"​
  6. Set "TestVariable" using Input of "MyFunction".
  7. Check for compile error, save and exit the editor.
  8. Remove the const keyword from "MyFunction" and compile.
  9. Launch the editor and open "TestBP" and note that the Blueprint compilation error is still thrown as if the function is still const. ("TestVariable is read only within this context and cannot be set to a new value")

Deleting the Blueprint implementation and overriding it again will fix the incorrect const-ness. 

Have Comments or More Details?

There's no existing public thread on this issue, so head over to AnswerHub just mention UE-132304 in the post.

Login to Vote

ComponentUE - Gameplay - Blueprint Editor
Affects Versions4.
Target Fix5.0
CreatedOct 19, 2021
UpdatedNov 17, 2021