Redis topics
Proxies and servers talk over Redis. These are the topics in use.
| Topic | Payload | Purpose |
|---|---|---|
(channel format) | Redis channel is gate:<topic>; message body is <origin>|<payload> | All topics below are published on channels prefixed with gate: and carry the sender origin so instances can ignore their own messages. |
reload:<module> | key name or * | Tells all proxies/backends to reload a config module (also reload:messages, reload:nicks, reload:announcements, reload:reasons, reload:reports). |
alert | JSON {text} | Network-wide /alert broadcast. |
anticheat:alert | JSON {player, server, check, vl?, info?} | Anticheat alert from /gatealert to team members on the proxy. |
team:line | JSON {perm, off, except, line} | Delivers a team notification line to everyone with a permission across proxies. |
msg:send | JSON {id, fromUuid, fromName, fromReal, team, fromDisplay, bypass, to, text} | Cross-proxy private message delivery. |
msg:result | JSON {id, status, toUuid, toName, toDisplay} | Delivery result of a private message. |
msg:spy | JSON {fromUuid, from, toUuid, to, text} | Private message copy for social spy. |
chat:route | JSON {uuid, text} | A staff/team-chat-routed player's chat line, sent from Gate-Paper to the proxy. |
chat:muted | JSON {uuid} | Gate-Paper tells the proxy that a muted player tried to chat. |
friend:event | JSON {type, from, name, to:[uuid]} | Friend requests, changes and online notices across proxies. |
friends:open | JSON {uuid} | Gate-Paper (lobby friends item) asks the proxy to open the friends menu. |
lobby:open | JSON {uuid, menu} | LobbySystem hotbar item asks the proxy to open a menu for the player. |
lobby:vis | JSON {uuid, mode, friends:[uuid]} | Lobby player visibility mode and friend list for a player. |
lobby:prefs | JSON {uuid, scoreboard} | Lobby scoreboard preference of a player. |
player:state | JSON {uuid, chat_mode, profanity, friends:[uuid]} | Per-player state pushed to backend servers. |
nick:changed | JSON {uuid, real, state?} | A nick was set (state present) or removed (state absent); Gate-Paper applies or restores the disguise. |
staff:tp | JSON {staff, target} | Gate-Paper teleports the staff member to the target after a server switch. |
punish:update | uuid string | A punishment of a player changed; refresh state. |
protect:lockdown | JSON {until} | Lockdown end time synchronised across proxies. |
joinme:show | JSON {id, owner, name, server, bypass, display} | Shows a JoinMe invitation in the lobbies. |
joinme:close | JSON {server} | Closes the JoinMe of a server (sent by /gatejoinme close or the proxy). |
coins:req | JSON {id, op: balance|add|remove, uuid, amount, source?, reason?, key?, server?} | Gate-Paper GateCoins request to the proxy (one proxy claims it). |
coins:res | JSON {id, ok, balance, delta, duplicate} or {id, ok:false, error: INSUFFICIENT|INVALID|UNAVAILABLE, balance?, message?} | Answer to a coins request. |
coins:changed | JSON {uuid, balance, delta, source, reason?, server?} | Broadcast after any balance change; fires CoinsChangeEvent on backends. |
discord:link | JSON {code, discord_id} | Sent by the Discord bot to confirm a link code. |
discord:linked | JSON {uuid, discord_id} | Tells the player that the Discord link succeeded. |
gui:view | JSON {uuid, session, title, rows, fill?, items:[...]} | Proxy sends a menu to render on the player's backend server. |
gui:close | JSON {uuid} | Proxy closes the menu. |
gui:prompt | JSON {uuid, session, question} | Proxy asks the player for chat input. |
gui:sound | JSON {uuid, sound, volume, pitch} | Proxy plays a sound for the player. |
gui:ack | JSON | Backend confirms a menu was opened. |
gui:click | JSON {uuid, session, slot, click} | Backend reports a menu click. |
gui:closed | JSON {uuid, ...} | Backend reports that the player closed the menu. |
gui:input | JSON {uuid, ...} | Backend reports the chat input of a prompt. |