FAQ
Quick Answers
Section titled “Quick Answers”🎯 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.
In Depth
Section titled “In Depth”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.
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.
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.
Enable plugin → generate Identity where needed → register delegates → fire events. Minutes, not hours.
The subsystem centralizes dispatching but payload data lives only as long as the event fires. You control retention—no hidden caches.
Yes. Identities + event firing are deterministic. In tests: create identities, register a capturing delegate, fire events, assert payload content.
3 Quick Steps:
- Buy AES on Fab ↗
- Epic Games Launcher ▸ Library: select AES ▸ Install to Engine.
- 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.
Developed against UE5 mainline (typically ahead of release). When a new version ships, update & rebuild—no manual diffing.
Sure. Use events for decoupled signaling and keep direct refs for tight, performance‑critical loops where both sides are inherently bound.
Yes—dynamic registration is a core feature. Spawn systems late, subscribe, and they start receiving immediately.
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.