Skip to content

FAQ

🎯 Who is AES for?

Teams or solo devs who want modular gameplay systems without a tangle of hard references and casting chains.

🧬 Replication?

Events are intentionally not auto‑replicated. Keep server + client flows lean; replicate only what you actually need via RPCs.

⚙️ Engine Support

Built & tested on current UE5 (tracks main). Upgrading projects is painless—no invasive engine hooks.

📖 Blueprint Friendly

Every core feature is exposed for rapid iteration—even if you’re not deep into C++.

🕹️ Multiplayer?

Yes—create identities server & client side. Use Multicast / Client RPCs to mirror authoritative events as needed.

🧪 Performance

Focused design: no unnecessary polling loops. Register listeners, fire events—done.

🤔 Why not automatic replication?

Automatic replication often means hidden polling or broad state pushes. AES keeps a strict event mindset: you explicitly decide when something crosses the network. That keeps cost + intent clear.

Need clients to hear a server‑only event? Register the listener on the server, then multicast a trimmed payload (or targeted Client RPC) so each client locally fires a mirror event if needed.

🪪 What exactly is an Identity?

An Identity is a lightweight unique token you assign to any actor/component/object that wants to speak or listen. It enables routing without direct references.

🛰️ Event types at a glance?

Broadcast: everyone listening to that event type.
Type: listeners filtered by a gameplay tag/type.
Focus: listeners bound to a specific Identity.
Whisper: direct one‑to‑one delivery.

🧪 How hard is setup?

Enable plugin → generate Identity where needed → register delegates → fire events. Minutes, not hours.

🔐 Is there any global singleton state risk?

The subsystem centralizes dispatching but payload data lives only as long as the event fires. You control retention—no hidden caches.

🛠️ Can I unit test logic using AES?

Yes. Identities + event firing are deterministic. In tests: create identities, register a capturing delegate, fire events, assert payload content.

📦 How do I enable the plugin?

3 Quick Steps:

  1. Buy AES on Fab ↗
  2. Epic Games Launcher ▸ Library: select AES ▸ Install to Engine.
  3. Open your project ▸ Edit ▸ Plugins ▸ Awesome Systems ▸ Enable AES ▸ Restart Editor.

Verify: After restart, right‑click a Blueprint graph and search Generate Event. If it shows up, you’re good.

Optional: Assign an Identity to an actor and fire a test Broadcast to see it flow.

Troubleshooting: Nodes missing? Your project is likely on a different engine version than you installed to, or the plugin is disabled.

🚀 Unreal Engine version support?

Developed against UE5 mainline (typically ahead of release). When a new version ships, update & rebuild—no manual diffing.

🧩 Can I mix AES with direct references?

Sure. Use events for decoupled signaling and keep direct refs for tight, performance‑critical loops where both sides are inherently bound.

📡 Can listeners register/unregister at runtime?

Yes—dynamic registration is a core feature. Spawn systems late, subscribe, and they start receiving immediately.

🧹 Do I need to manually unregister?

Usually no. When an owning object (and its Identity) is destroyed, AES automatically unregisters all of that Identity’s event bindings.

Manually unregister only if you want to stop listening before destruction (e.g. temporarily disabling a system, pooling actors, or swapping behavior modes).

This keeps teardown clean while still giving you control for mid‑lifecycle opt‑out.