Skip to main content

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 Engine4.27, 5.0 – 5.8
Target platformsWindows, Mac, Linux, Android, iOS (see the Fab listing for the full list)
NetworkingEvents are local to one game instance and are not replicated

Where to go next​

  1. Install the plugin
  2. Create an Event Identifier
  3. Register and invoke your first event
  4. Read Dispatching and Timing. Callbacks do not run immediately by default.