How do I invoke a "call" on a delegate defined in C++?

I’ve got a dynamic multicast delegate declared in my C++ code for a base class. I want the blueprint which inherits from this base class to invoke a “call” on that delegate. The problem is that when I drag a C++ defined event dispatcher out into the blueprint view, the “call” option is not available. However, if I create an event dispatcher in blueprints and repeat the same steps, the “call” option is available. I can still call “broadcast” from C++ on my C++ defined event dispatcher.

So… is this a bug or by design? Am I missing something? Is anyone else able to invoke “call” on an event dispatcher defined in C++?

I guess my hackish work around would be to create a series of protected wrapper functions which the inheriting class can call, and the C++ implementation just fires off a broadcast event. It’s annoying, but workable…

I don’t know if you still need the answer to this, but it could be useful for those that find and read this thread from now on.

Actually the solution is pretty simple, just add “BlueprintCallable” inside the UPROPERTY macro where you define the multicast delegate property, like you would for a method. This let the delegate to be called from Blueprint classes.

8 Likes