Unreal Engine Global Event Handler UE7443

Global Event Handler

Video: Link

Design your code using a solid pattern, decouple it and remove all the unnecessary dependencies. Implementation of the Event Aggregator Pattern (Observer Pattern), inspired in WPF frameworks like Prism.

Design your project like a pro

By decoupling your project, and eliminate unnecessary dependencies, you make your projects more modular and testable.

Have you ever tried to migrate a Blueprint and found out that it had tons of dependencies? That’s because castings creates dependencies to the casted classes.

Game Instance Subsystem Based

No need to create components or interfaces for using the Global Event Pattern. Just Call and Bind, exactly how the UE4’s Event Dispatchers work, but globally ;)

Level Streaming Supported

If you ever tried to communicate to an Actor that lives in a different sublevel, then you know how annoying that can be! This plugin will help with that.

Payloads supported

Send any UObject Payload containing any kind of data.

technical details

Features:

  • Call global events by Class, Name or GameplayTag. Payloads and metadata supported.
  • Bind and receive global messages. Unbind (and Unbind all) is also supported.
  • Methods for debugging and managing the global events are also included.
  • Send Events from one UObject to another (Actors, Widgets, Tasks, etc).
  • Send Events from one Sublevel/Persistent level to another.
  • No need to create Components or Interfaces.
  • Based on Game Instance Subsystem. So no need to initialize anything.
  • The system will automatically “clean” itself when Actors are destroyed or when the level is destroyed.

Code Modules:

  •  TMWEventAggregator [Runtime]

Number of C++ Classes: 2

Network Replicated: Not by default, but supported

Supported Development Platforms: Windows (Should work on any other dev platform*)

Supported Target Build Platforms: Windows, Android (Should work on every other platform*)

* Any other platform require compilation.

Documentation: Link

ExampleProject: Link