Hey nic-hartley-
If I understand correctly you are trying to create a function that can both be overridden in a class blueprint as well as a child C++ class, correct? This is possible with the BlueprintNativeEvent specifier and _Implementation functions. Consider the following declaration:
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = test)
void TestFunction();
void TestFunction_Implementation();
The BlueprintNativeEvent is what allows the function to be overridden in blueprints and the _Implementation is the default code that is called if it is not overridden in blueprints. To be able to override this in your child class, you will need to make the _Implementation() function virtual ( virtual void TestFunction_Implementation();
). In your child class you would have:
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = test)
void TestFunction();
virtual void TestFunction_Implementation() override;
This would allow you to implement the function both in your parent and child C++ class, and override them (independently) in their respective blueprints.
Cheers