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 Questions & Answers just mention UE-132304 in the post.

Login to Vote

ComponentUE - Gameplay - Blueprint Editor
Affects Versions4.
Target Fix5.0
Fix Commit18577089
Main Commit18577126
Release Commit18577089
CreatedOct 19, 2021
ResolvedJan 11, 2022
UpdatedJan 26, 2023