Blueprint Implementable Events can't have c++ base definition

I want to have a basic implementation of a function in C++, and then to optionally override this function in blueprint. However adding BlueprintImplementableEvent to my UFUNCTION macro fails to compile if I have a definition.

Is there any way to do this without creating secondary functions?

What you want are BlueprintNativeEvents

BlueprintNativeEvents can have a C++ implementation that can be overridden in blueprint.

The Native implementation though is a second method that has the same signature as your BlueprintNativeEvent but with _Implementation added to its name.

Solved my problem! Thanks!