Developer Notes

Functions with no return values are overridden by placing them as events

Description

BlueprintNativeEvents (and BlueprintImplementableEvents) are not available to be overridden in a Blueprint Graph if they do not return a value. This affects both functions present in source code, as well as user-created functions.

Steps to Reproduce
  1. Create a new Blueprint First Person project, no starter content.
  2. Add a UMG Widget to the project.
  3. Open the new Widget and go to the Graph tab.
  4. In the Overridable Functions section of the My Blueprint window, expand the Mouse section.
  5. Note that the OnMouseEnter and OnMouseLeave functions are not available to be overridden.
  6. Add a new code class to the project derived from UserWidget.
  7. Close the Editor.
  8. In the header file for the new class, add the following code:
    UFUNCTION(BlueprintNativeEvent, Category = "TestCat")
    void SomeTestFunction(const bool TestVar);
    
  9. Add an implementation of the function to the source file.
  10. Build the project in Visual Studio.
  11. Open the project in the Editor.
  12. Create a new Blueprint derived from the new code class.
  13. Open the Blueprint and go to the Graph tab.
  14. In the My Blueprint window, note that there is no TestCat section, and the new function cannot be found.
  15. Close the Editor.
  16. Change the function to return a value, such as bool.
  17. Rebuild the project in Visual Studio.
  18. Open the project in the Editor.
  19. Open the Blueprint created in step 12.
  20. Go to the Graph tab.

RESULTS:
In the My Blueprint window, there is now a TestCat category and the new function is now visible.

EXPECTED:
The function is visible even if it does not return any value.

Have Comments or More Details?

Head over to the existingAnswerHub thread and let us know what's up.

0
Login to Vote

Won't Fix
ComponentGameplay - Blueprint
Affects Versions4.6.14.8
CreatedDec 22, 2014
ResolvedJan 8, 2015
UpdatedApr 27, 2018