Skip to main content
“Chat” is actually two independent subsystems. Real-time message text never touches the main game socket at all; it rides a second, JSON-over-WebSocket connection with its own auth, its own server discovery, and its own message-signing scheme.

Two chat channels

Sending an alliance/world chat message: cmd="chat.room" on the WebSocket, not the SFS-side al.msg/chat.country commands (those are for sharing a rich attachment/card into a room, no free-text field). Every message is signed:
The alliance room id is not a deterministic function of the alliance id; it must be fetched via common.chat.room.id on the main SFS socket before you can room.joinMulti on the WebSocket.

Core Alliance commands

Core Mail commands

Government (“Kingdom”) system

A cross-alliance elected-leadership layer on top of the world map: choose.king, kingdom.position.appoint/.apply/.resign, cross.throne.* (14 commands for a cross-server king-of-the-hill tournament). Ordinary SFS commands, no separate channel.