> For the complete documentation index, see [llms.txt](https://asperazera.gitbook.io/ultimate-event-system/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://asperazera.gitbook.io/ultimate-event-system/readme.md).

# Introduction

<figure><picture><source srcset="/files/NsUr4ALQphNvEVV1Qfb5" media="(prefers-color-scheme: dark)"><img src="/files/AQ3fMpUQiDgSis5bFeul" alt=""></picture><figcaption></figcaption></figure>

**Ultimate Event System (UES)** is a powerful and lightweight messaging tool for Unreal Engine 5 that lets you build clean game architecture without "spaghetti code." It is a **Global Event Bus** built on a simple **Publisher-Subscriber** idea, designed for maximum modularity and ease of use in Blueprints.

> **TL;DR:** UES lets Actor A broadcast *"Event X happened"* (with optional data) without knowing who - Actor B, C, a Widget, or nobody - is listening.

***

### Why use Ultimate Event System?

* **Complete Decoupling:** Removes the need for Hard References and "Cast To" nodes between your actors, widgets, and systems.
* **Gameplay Tags as Topics:** Uses hierarchical tags (e.g. `Event.Player.Death`) so events stay organized and easy to filter.
* **Send Any Data (Payloads):** Attach numbers, text, structs, object references, or arrays to an event. In Blueprints there is **no manual wrapping** - just plug your variable in.
* **Type-Safe Unpacking:** Read data back with the **Get Payload** node, or branch on it with **Switch on Payload Type**.
* **Zero Setup:** No component to add and no manager to place in the level. The system initializes itself and is available everywhere.
* **Memory Safe:** Subscribers that get destroyed are cleaned up automatically - no dangling subscriptions, no leaks, no crashes.
* **Built-in Debug Tools:** An on-screen overlay, console commands, and statistics nodes let you see event traffic live.

{% hint style="info" %}
UES is a native engine plugin, so it behaves the same in Blueprints and C++. **This guide focuses on Blueprints.**
{% endhint %}

***

### Technical Requirements

| Requirement                   | Details                                   |
| ----------------------------- | ----------------------------------------- |
| **Engine Version**            | Unreal Engine 5.3+                        |
| **Dependency (UE 5.3 & 5.4)** | Struct Utils (enabled by default in UE 5) |

{% hint style="warning" %}
**Dependency Requirement**

For **Unreal Engine 5.3 and 5.4**, please make sure the **Struct Utils** plugin is enabled in your project.

Starting with **UE 5.5**, this became part of the Core Engine, so you **do not** need to enable any extra plugins.
{% endhint %}
