Posted 2026-08-30
Type /battle, and the room follows you into the arena
The chat learned its first command. /battle opens a summons: pick the people standing in the room with you, pick a level, and everybody chosen gets an interception - confirm, and they are redirected into the match.
What shipped
Standing in the lounge, you can now type /battle into the chat. Nothing is posted - the sentence is a verb, not a message - and a menu opens instead: the people in the room with you, straight off the same roster the sidebar draws, and the battle levels your space can fight on, off the same shelf the match wizard reads. Tick the people, pick the level, press Summon.
You are walked into the arena immediately, because waiting for people is something you do inside it. Everybody you named gets an interception wherever they are in the space: a card saying who summons them and to what, with two honest buttons. Confirm redirects them to the same door. Deny makes it go away. Enter confirms too, for somebody mid-walk with the pointer locked - the one moment a phone-sized dialog has no cursor to click with.
Guests can be summoned like anybody else. A guest is in the roster because they are in the room, the interception reaches them because an admitted guest is a member of the conversation, and the match room is one of the few doors a guest link opens on purpose - fighting is usually why they were invited.
How it works, in one paragraph
The summons rides its own Realtime topic, gated by the same membership rule as everything else in a space - not the chat topic, which re-subscribes per conversation and would miss anybody reading another room, and not the lounge topic, which already has one subscriber and a client library that allows exactly one. The payload is deliberately thin: who, whither, and for whom. The summoner’s name is not in it - the receiver resolves it from their own roster, because a name sent over a wire is a second answer to a question the roster already settles, wrong exactly when somebody spoofs it. And a forged summons is an invitation to a door that will not open: the match itself re-checks membership at the boundary, so the worst a forgery puts on a screen is a sentence.
The match is created by the wizard’s own action with the wizard’s own defaults, silly generated name included - a menu in the chat has no room to ask anybody to be funny. One command, one shelf, one door: /battle cannot offer a level the wizard would refuse, because they are the same list asked the same question.
Read the real thing
- How we built the boxing gameWhat a match actually is here, told from the package that fights them.
- The XP editor guideWhere the levels a summons offers come from.
