That’s an interesting approach but the problem is that I have to use delegates.
I have created an event in interface:
DECLARE_EVENT_OneParam(IAction, FExecuteEvent, ABaseCharacter*)
virtual FExecuteEvent& OnExecute() = 0;
But unfortunately there is no way to use it in Blueprint (FExecuteEvent is undefined for UFUNCTION).
I have also tried Multicast Delegate but the console output directly tells me that this is not supported by Blueprint (may I know why?).