> For the complete documentation index, see [llms.txt](https://asperazera.gitbook.io/simple-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/simple-event-system/introduction.md).

# Introduction

**Simple Event System (SES)** is a powerful and lightweight tool for Unreal Engine 5 that allows you to build game architecture without "spaghetti code." It is a **Global Event Bus** written 100% in Blueprints, designed for maximum modularity and ease of use.

> **TL;DR:** SES allows Actor A to broadcast "Event X happened" along with data, without knowing who (Actor B, C, or D) is listening.

#### Why use Simple Event System?

* **100% Blueprints:** Content-only plugin, making it easy to customize and migrate to new engine versions.
* **Complete Decoupling:** Removes the need for Hard References and "Cast To" nodes.
* **Optimization:** Uses lightweight Instanced Structs instead of Objects to transfer data.
* **Gameplay Tags:** Uses hierarchical tags (e.g., Game.State.Win) for organized event filtering.
* **Replication Ready:** Built-in support for Multicast (Server-to-Clients) communication.
* **Global Access:** Send and receive events from any Actor, Widget, or Component.

***

### Technical Requirements

| Requirement                                                                                                                                   | Details                                  |
| --------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- |
| **Engine Version**                                                                                                                            | Unreal Engine 5.3+                       |
| **Plugins** **(for UE&#x20;**<mark style="color:$warning;">**5.3**</mark>**&#x20;and&#x20;**<mark style="color:$warning;">**5.4**</mark>**)** | Struct Utils (Enabled by default in UE5) |

{% hint style="info" %} <mark style="color:$primary;">**Note:**</mark> <mark style="color:$primary;"></mark><mark style="color:$primary;">This plugin requires UE 5.3 or higher due to reliance on modern Instanced Struct features that were unstable in previous engine versions.</mark>
{% endhint %}

{% hint style="warning" %} <mark style="color:$warning;">**Dependency Requirement**</mark>

<mark style="color:$warning;">For</mark> <mark style="color:$warning;"></mark><mark style="color:$warning;">**Unreal Engine 5.3 and 5.4**</mark><mark style="color:$warning;">, please ensure the</mark> <mark style="color:$warning;"></mark><mark style="color:$warning;">**Struct Utils**</mark> <mark style="color:$warning;"></mark><mark style="color:$warning;">plugin is enabled in your project.</mark>

<mark style="color:$warning;">Starting from</mark> <mark style="color:$warning;"></mark><mark style="color:$warning;">**UE 5.5**</mark><mark style="color:$warning;">, this logic became part of the Core Engine, so you</mark> <mark style="color:$warning;"></mark><mark style="color:$warning;">**do not**</mark> <mark style="color:$warning;"></mark><mark style="color:$warning;">need to enable any extra plugins.</mark>
{% endhint %}
