Pattern — Messenger Bridges
Two messenger systems decouple senders and receivers. Choose based on scope: one device vs the entire level.
Device Messenger (in-OS)
Section titled “Device Messenger (in-OS)”sequenceDiagram
participant Mail as BP_Prog_Mail
participant DM as Device Messenger
participant TB as Taskbar widget
Mail->>DM: Broadcast("MailReceived", payload)
DM->>TB: Begin Listening callback
TB->>TB: Show unread badge
Screenshot callouts
Section titled “Screenshot callouts”Global Messenger (world scope)
Section titled “Global Messenger (world scope)”sequenceDiagram participant Cmd as BP_CMD_ToggleDoor participant GM as UGlobalMessageSubsystem participant Door as Level actor Cmd->>GM: BroadcastMessage(Message.OS.Door.Toggle) GM->>Door: ListenToMessage callback Door->>Door: Open / close
Screenshot callouts
Section titled “Screenshot callouts”When to use which
Section titled “When to use which”| Device Messenger | Global Messenger | |
|---|---|---|
| Scope | One device / OS instance | Entire world |
| Identifiers | FName event names | Gameplay tags |
| Typical use | Mail badge, battery HUD, theme change | Terminal → door, OS → gameplay |