Introduction
What is the EventDispatcher plugin?
EventDispatcher is a lightweight global event system for Unreal Engine. It lets Blueprints and C++ classes communicate through events without holding direct references to each other.
Register a listener for an event in one place, for example a UMG Widget, and invoke the event from anywhere else: a GameMode, GameInstance, Level Blueprint, Actor or Component. The sender never needs to know who is listening.
Sender → Global Event ("MyEvent") → Listener(s)
Features
- Global events that can be invoked from anything with a world context (Actors, Components, Widgets, UObjects).
- Blueprint and C++ support. Every function is a Blueprint node and a static C++ function.
- Typed events: Simple (no data), Payload (any object), String, Int, Float, Bool, Vector, String + Float and String + Int. See Event Types.
- Two ways to identify events: Data Asset identifiers or plain names. See Identifiers vs. Names.
- Targeted invokes that reach a single listener instead of everyone. See Targeting a Listener.
- Automatic cleanup of listeners whose objects have been destroyed.
Common use cases
UI and HUD updates, quest and inventory changes, game state changes, global notifications and any other communication between systems that should not reference each other directly.
Requirements
| Unreal Engine | 4.27, 5.0 – 5.8 |
| Target platforms | Windows, Mac, Linux, Android, iOS (see the Fab listing for the full list) |
| Networking | Events are local to one game instance and are not replicated |
Where to go next
- Install the plugin
- Create an Event Identifier
- Register and invoke your first event
- Read Dispatching and Timing. Callbacks do not run immediately by default.