Pass event delegates through blueprint functions, interfaces, etc

Here's an interesting hack in the Unreal editor.
You can drag an Event input to a function's entry node to add a new input of type Delegate on that function.

Empty that function of any nodes, than copy-paste the function into a blueprint interface.
The interface will have a function with an input of type Delegate.

Add that interface to a blueprint and then implement that interface function.
You'll see that to can receive a "remote" event delegate through the interface and bind it to a dispatcher declared in the blueprint.

You can also copy the signature of your interface function to dispatchers declared in the blueprint.
This create a dispatcher with a parameter of type Delegate that you can also use to pass remote events.

1 Like

How bloody peculiar

Be careful though. The event delegate has a signature, and that signature is an invisible hard reference to where the event is declared, which could defeat the purpose of using an interface.
So it's best to use events from a native class. Timer is a good one because its signature is only an Execute.

1 Like