Gameplay Message Router
Tag-based pub/sub for UE5 — systems talk without hard references. Standalone from Epic’s Lyra pattern.
Source: GameplayMessageRouter
What it’s for
As a project grows, UI, inventory, combat, and objectives all need to hear about the same moments — “item picked up,” “objective complete,” “player downed.” Wiring those systems with hard actor references becomes spaghetti.
A gameplay message router is a pub/sub bus: something broadcasts a message on a channel (a Gameplay Tag), and anything that listens on that channel reacts — without knowing who sent it.
Why it exists
Epic shipped this pattern in Lyra. We keep a standalone copy under Broken Gameplay so you can use the idea without adopting the whole Lyra project. It’s a building block for decoupled architecture, not a full game framework.
What you get (conceptually)
- Publisher / subscriber messaging keyed by Gameplay Tags as channels
- Support for custom payloads (structs) so messages carry real data
- Blueprint and C++ usage (including K2 nodes for Blueprint ergonomics)
- Local-player-friendly scoping — a natural partner to other gameplay event patterns
- Multiplayer-aware design; no extra plugin dependencies
Typical uses: UI reactions, cross-system events, achievements, inventory pings, “something happened somewhere” without finding the actor that owns it.
Who it’s for
Teams (or solo devs) who want loose coupling between systems early — especially when UI and gameplay evolve on different schedules.
Credit
Originally from Epic’s Lyra Starter Game; maintained here as a focused, standalone package by Broken Gameplay Studios.
Want the details?
Register/broadcast API and Blueprint entry points are in the repo: