Creating an Interface to be implemented by Native or Blueprint

I’m trying to create an interface for what amounts to a “special ability” or “spell”. Some implementations will be very simple, other may well be complex. I’d like to keep the freedom to implement the interface in whichever way is most appropriate.

I want blueprints and native code to be able to:

  • call the same methods through this interface.
  • implement this interface as a blueprint or a native class.

A) Is this possible? B) How should it be done?

Use BlueprintNativeEvent on the native interface class method.

In the implementing native class method, you must use BlueprintNativeEvent. To make the function callable from blueprint, also use BlueprintCallable.