How are event dispatcher in Blueprints replicated?

On an Event Dispatcher, you can set Replication to “Replicated” or “RepNotify” and conditions.
These settings are usually on Properties(C++)/Variables(BP).

An Event Dispatcher, in my mind anyway, is more like a RPC(C++)/CustomEventNode(BP). It’s a function delegate/event that gets called and then triggers on the recipient. You mark them as reliable vs unreliable, and can set Server/Client/NetMulticast. But, that’s not what is here.

Based on the settings distinction, it looks like the Event Dispatchers replicate like properties. Is this correct? Anyone know why they’re distinctly different from RPCs despite having similar/same functionality? I’m considering triggering the delegate through a NetMulticast RPC/CustomEvent instead of relying on these Property replications.

I don’t think replicating the multicastdelegate itself is actually supported. Seems more like a bug that you can select any Replication setting other than None for them. https://github.com/EpicGames/UnrealEngine/blob/31e50412e65bb690996b9b0c4ea3090f977cf1c1/Engine/Source/Runtime/CoreUObject/Private/UObject/PropertyMulticastDelegate.cpp#L127
If that actually was supported, I’d expect it to replicate the bound objects and functions NOT the fact that an event dispatcher was called which is different to what RPCs and NetMulticast does.

Thank you. Indeed, it does not seem to replicate when I test in UE4.26 and UE5 Preview 2 despite being set to.

I bind an event to an EventDispatcher set to Replicate on both Server and Client in BeginPlay, in the tick I wait 5 seconds on the server and call the EventDispatcher. The Server triggers the event that was bound, but not the client.

And that’s regardless of Net Dormancy settings (which are bugged in UE4.26 I just learned which made this all the more confusing)