2 min read

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:

github.com/BrokenGameplayStudios/GameplayMessageRouter