I followed the three class creation tutorials (blueprint, code and code+blueprint). In the third tutorial (here) it walks you through setting up a BlueprintNativeEvent.
The documentation says:
*there is a native default implementation of the function that is called if the Blueprint does not override the function. This is useful for things where you want some sort of default behaviour if the Blueprint does not implement it, but want the Blueprint to be able to override the functionality if desired. These are more costly, so we only put them in where the functionality is needed. When you override the BlueprintNativeEvent, you can still call the native implementation, if desired, by right clicking on the event or function entry node, and selecting “Add call to parent”.
In my case however when I overlap the sphere the blueprint implementation is called (the light changes to a random color) AND the native implementation is called (the light goes out). I only see the light (and it’s new random color) when overlap end fires and the native implemention toggles the light on.
As the docs say its supposed to be optional that the naitive implemenation is called by right clicking on the event in the event graph and selecting “Add call to parent”. However that menu item is disabled.
TLDR; Seems like, in this example at least, the naitive implementation is always being called for a BlueprintNativeEvent even when overridden in a blueprint despite the documentation saying otherwise.