Cannot bind to C++ Event Dispatchers in Blueprints

I’m running with 4.6 source as of [CL 2350678 by Zak Middleton in 4.6 branch].

I noticed I can no longer bind to an event dispatcher due to an error with the Target while in Blueprints. If I have an Actor that supports some Event Dispatcher, drag a wire off of it, and find the “Bind Event to XXX”, it will create the Bind node, but then disconnect the Target. Trying to then reconnect to the target shows an error of “XXX Reference is not compatible with Self Reference”. I show a screenshot from a level blueprint. The top “Bind Event…” was an existing node. You can see that the “HeroSafeTrigger” is hooked correctly to the Target. The bottom “Bind Event…” is a newly placed node. You can see the error message as I try to connect to the target. If the event dispatcher is defined in a blueprint, I can bind to it as normal. Just dispatchers defined in C++ are failing, it appears.

I’m using the unstable 4.6, so I suspect that’s the cause. I wanted to bring it up just in case it wasn’t noticed yet. Please let me know if this is fixed in the latest 4.6 or if I’ll need to back out to 4.5.1.

Looks like your newly placed “Bind Event” node actually belongs to LevelActor - Level Blueprint, so it would be logical to assume that “Target self” is level actor and not the trigger box.

(I replied, but somehow my response got lost, responding again)

The upper “Bind Event” node shows that I could successfully bind HeroSafeTrigger as the target. This node was placed while on 4.5. The lower “Bind Event” node was placed after 4.6, but for some reason doesn’t accept HeroSafeTrigger as a Target. Only C++ defined Event Dispatchers are rejected in this way. Blueprint defined Event Dispatchers seem to work ok.

Hey CombatJack-

Could you provide the code where you declare and define the dispatcher to give us an idea of how things are set up on your end?

Cheers

This appeared to be any C++ defined dispatcher, not just mine. In the screenshot, I’m attempting to bind to OnActorBeginOverlap, defined in AActor. The HeroSafeTrigger is just a triggerbox actor.

Are you not seeing this issue? I saw this issue after getting from the 4.6 branch as of the change “[CL 2350678 by Zak Middleton in 4.6 branch].” I didn’t have any local code changes from my 4.5.1 engine. Or game code changes. I had to roll back to 4.5.1, and now everything is working correctly.

Hey CombatJack-

I was able to reproduce this problem in an internal version of the engine and have submitted it to out tracking database (UE-5440) for further investigation. Thanks for the report and this should be fixed in a future update to the engine.

Cheers

I’d like to link to EventDispatcher in GameMode broken on 4.6? - Community & Industry Discussion - Epic Developer Community Forums because I believe it’s the same issue, but this time in the public release of 4.6.

My specific issue of not being able to set the target of a Bind node to a dispatcher defined in C++ appears to be fixed in official 4.6. Although your issue may be a variation on it.

Looks like there are some other related errors with dispatchers. I have logged my new findings here.