Creating a dynamic input delegate?

So, for the past few days I have been trying to hunt down how UE4 handles delegates, more specifically the ones that are not defined as BlueprintImplementableEvent within the class (the input delegates). I managed to get a decent understanding of how the engine handles things, but there is one thing that still escapes me; how the Actor class generates the input delegates.

I have noticed the following code in the AActor class:

DECLARE_DELEGATE_RetVal_ThreeParams(bool, FOnProcessEvent, AActor, UFunction, void*);**

I kinda get the other delegates in the class, but I don’t understand what this one does. I know it has a relation with the ProcessEvent function in AActor, but I cannot find anywhere how it is called and what it is responsible for. I did manage to track down the FOnProcessEvent to some utility classes, but that only made me more confused.

Essentially, what I want to know is the following:


  1. What does this delegate do?
  2. How does it do it?
  3. What is the FOnProcessEvent good for? I have found other delegates with an F signature, but this one is the odd one out, since I could actually trace it back to somewhere else in the code.
  4. If necessary: How would I go making a custom FOnProcessEvent?
  5. If none of this has anything to do with input delegate generation, then where can I find that functionality? Other than that, I wasn’t able to find anything else.

What I want to be able to do is the following; to be able to generate a custom blueprint, not based on the actor class, where you are able to place an input event (either axis or action) in the blueprint graph. Those input events don’t have to have any actual effect; I just want to ability to enable a blueprint to call on them in the graph. I have already explored options of making my own blueprint graphs but from what I managed to understand, that won’t solve my problem (not to mention it’s kinda out of my league).

Is there anyone who can help me out?