Mini-games¶
Play a standalone mini-game (e.g. tic-tac-toe) with one or more other players, independently of the main world session.
The server only routes: it knows which mini-game types exist and their player
bounds (data/config/minigames.yaml), but never their rules. Every mini-game
ships as its own module under app/minigames/<name>/, loaded by your client on
demand — the game's logic (turns, win conditions, board state) all runs
client-side.
Playing¶
/minigame create <gameType>— start a room, you become the host./minigame invite <player>— host only. The target gets an invite prompt immediately, wherever they are./minigame accept//minigame decline/minigame leave— leaving (or disconnecting) while a match is running stops it for every member, no partial continuation or re-hosting./minigame who/minigamewith no arguments opens a dialog with the same actions as buttons, for when you'd rather not type the sub-commands.
Once in a room, the game window shows the game itself (left) next to a
participants panel (right) with the roster and an invite field — the invite
input autocompletes online player names. The game area only starts the actual
match once the room has reached the game's minPlayers; until then it shows a
waiting placeholder while you invite more people.
Adding a mini-game¶
Nothing server-side changes: create app/minigames/<name>/, build it
(npm run build), register it in data/config/minigames.yaml
(displayName, entryUrl, minPlayers, maxPlayers), and run
make build-minigames. See app/minigames/README.md for the contract a
mini-game's default-exported component must satisfy.