Reference
Lobby Fields for AI Agents
Lobby field ids for AI agents: the /play lobby's owner settings, game picker, setup options, deck picks, bots and the list of open tables to join.
On this page9 sections
These are the fields and buttons of a /play lobby. They cover the owner's settings and the game picker. They also cover setup options, deck picks, bots and the list of open tables.
Panels in this group#
8 panels, with the id prefix lobby. The field catalogue lists every group.
| Panel | Label | Tab | Fields | Actions |
|---|---|---|---|---|
lobby.tables |
Open tables | lobby |
1 | 7 |
lobby.game-picker |
Game picker | lobby |
1 | 1 |
lobby.room |
Lobby | lobby |
1 | 4 |
lobby.owner |
Lobby owner settings | lobby |
8 | 3 |
lobby.requirements |
Deck picks | lobby |
0 | 0 |
lobby.setup-options |
Game setup options | lobby |
0 | 2 |
lobby.bots |
Lobby bots | lobby |
1 | 3 |
lobby.bots.add |
Add bot | lobby |
2 | 1 |
lobby.tables#
Open tables · surface lobby · singleton (no target)
How it opens: /play/tables.
Fields (1)
| Field id | Label | Kind | Unit | Target | Class | Range / options | Description |
|---|---|---|---|---|---|---|---|
lobby.tables.search |
Search tables | text |
— | — | W | — | Filter the open-tables list by table, game or host name (client-side, as typed). |
Actions (7)
| Action id | Label | Class | Target | Description |
|---|---|---|---|---|
lobby.tables.refresh |
Refresh | R | — | Reload the open-tables list. |
lobby.tables.start-lobby |
Start a lobby | R | — | Go to the game picker (/play/lobby). Nothing is created until a game is picked. |
lobby.tables.my-tables-refresh |
Refresh | R | — | Reload the list of tables this user owns. |
lobby.tables.my-tables-more |
Show more | R | — | Load the next page of this user's tables. |
lobby.tables.delete.ask |
Delete… | R | room |
Owner: open the delete-table dialog. Nothing is deleted yet. Target: the table's room id. |
lobby.tables.delete.cancel |
Cancel | R | room |
Close the delete-table dialog without deleting. Target: the table's room id. |
lobby.tables.delete.confirm |
Delete table | H | room |
Requires the user's confirmation in the DiceyTable tab. Owner: delete the table and every saved snapshot of it for everyone, permanently; invites to it stop working. Refused while players are at the table unless the human ticked the acknowledgement. Target: the table's room id. |
lobby.game-picker#
Game picker · surface lobby · singleton (no target)
How it opens: /play/tables ▸ Create lobby.
Fields (1)
| Field id | Label | Kind | Unit | Target | Class | Range / options | Description |
|---|---|---|---|---|---|---|---|
lobby.game-picker.search |
Search games | text |
— | — | W | — | Search every published game pack; results show as tiles below (picking one is lobby_create). |
Actions (1)
| Action id | Label | Class | Target | Description |
|---|---|---|---|---|
lobby.game-picker.start-blank |
Start a blank table | W | — | Create a lobby with no game chosen yet (a game can still be picked inside it), and open it. |
lobby.room#
Lobby · surface lobby · target lobby
How it opens: /play/lobby/:id — roster, ready, role, Start.
Fields (1)
| Field id | Label | Kind | Unit | Target | Class | Range / options | Description |
|---|---|---|---|---|---|---|---|
lobby.room.invite-link |
Invite link | text |
— | lobby |
W | — | The lobby's share link (read-only). The same URL keeps working after Start. |
Actions (4)
| Action id | Label | Class | Target | Description |
|---|---|---|---|---|
lobby.room.play |
Play | W | lobby |
Take a player seat in this lobby. |
lobby.room.spectate |
Spectate | W | lobby |
Take a spectator seat (disabled when the room is closed to spectators). |
lobby.room.ready |
I'm ready | W | lobby |
Toggle this user's ready flag. Advisory: Start never waits on it. |
lobby.room.start |
Start the game | W | lobby |
Start the game (owner only). Disabled while a required lobby choice is outstanding; everyone is then taken into the table. |
lobby.owner#
Lobby owner settings · surface lobby · target lobby
How it opens: The lobby's owner panel (owner only).
Fields (8)
| Field id | Label | Kind | Unit | Target | Class | Range / options | Description |
|---|---|---|---|---|---|---|---|
lobby.owner.name |
Room name | text |
— | lobby |
W | — | The lobby's display name (a draft until Save — lobby.owner.save). Owner only. |
lobby.owner.max-players |
Player seats | integer |
— | lobby |
W | ≥ 1, ≤ 10, step 1 | Seat cap (a draft until Save — lobby.owner.save). The server also enforces the game's own declared bounds and names them when it refuses. Owner only. |
lobby.owner.spectators-allowed |
Allow spectators | boolean |
— | lobby |
W | — | Whether members may take a spectator seat. Saved immediately; closing it demotes any seated spectator. Owner only. |
lobby.owner.seat-selection |
Seat selection | select |
— | lobby |
W | choice, random |
How players get their seats at the table: choice — each player picks a free seat; random — the host deals each player a random free seat and players cannot change it (the host still can). Saved immediately; locked once the game has started. Owner only. |
lobby.owner.visibility |
Who can see this lobby | select |
— | lobby |
H | public, friends, private |
Room visibility, saved immediately. H: the user confirms in the tab. Friends-only and private need a membership; the server refuses otherwise. |
lobby.owner.variant |
Variant | select |
— | lobby |
W | — | Which of the game's declared variants this lobby will start. Saved immediately; the server may clear a seat cap the variant cannot seat. Shown only when the game declares two or more variants; locked once the game has started. Owner only (lobby_set_variant is the same write). |
lobby.ranked |
Ranked | boolean |
— | lobby |
W | — | Whether this lobby starts a RANKED match (game-ratings plan §4.8). Saved immediately. Shown only when the chosen variant offers Ranked; locked once the game has started. The server refuses it for a variant without ranking, for an owner without a Player or Game Master membership (ranked play is a paid feature), and for a trust-locked owner. Turning it on does not start anything: Start then refuses while any member or table blocker remains. Owner only. |
lobby.owner.game-search |
Search games | text |
— | lobby |
W | — | Search box of the owner's Change game chooser (open it with lobby.owner.change-game). Picking a result is lobby_set_game. |
Actions (3)
| Action id | Label | Class | Target | Description |
|---|---|---|---|---|
lobby.owner.save |
Save | W | lobby |
Save the room name and seat cap drafts. |
lobby.owner.change-game |
Change game | R | lobby |
Open (or close) the owner's game chooser. Changing the game itself is lobby_set_game. |
lobby.owner.password-remove |
Remove password | H | lobby |
Requires the user's confirmation in the DiceyTable tab. Remove the lobby's join password, so anyone with the link can join. |
lobby.requirements#
Deck picks · surface lobby · target lobby
How it opens: The lobby's per-player requirements panel.
No field or action is registered on this panel yet. panel_open can still open it, and describe_panel / screenshot_panel can read it.
lobby.setup-options#
Game setup options · surface lobby · target lobby
How it opens: The lobby's setup-options panel.
Per-instance field families
| Id pattern | Materialised from |
|---|---|
lobby.setup.<key> |
One field per setup option the chosen game's manifest declares (setupOptions[].key), bound per lobby. Values are checked with the lobby's own rule; the draft is saved by lobby.setup-options.save, or in one step by lobby_setup_options_set. |
Actions (2)
| Action id | Label | Class | Target | Description |
|---|---|---|---|---|
lobby.setup-options.save |
Save options | W | lobby |
Save the game's setup options as edited in the form (owner only). |
lobby.setup-options.discard |
Discard | W | lobby |
Throw away unsaved edits in the setup-options form. |
lobby.bots#
Lobby bots · surface lobby · target lobby
How it opens: The lobby's Bots block under the roster (shown when the game declares bots, or a bot is seated).
Fields (1)
| Field id | Label | Kind | Unit | Target | Class | Range / options | Description |
|---|---|---|---|---|---|---|---|
lobby.bots.difficulty |
Difficulty | select |
— | peer |
W | — | How strong one seated bot plays. Saved immediately. Target: the bot's peer id (bot:<id>, from lobby_state's bots). Shown only for a bot that declares difficulties; owner only, before Start (lobby_bot_set_difficulty is the same write). |
Actions (3)
| Action id | Label | Class | Target | Description |
|---|---|---|---|---|
lobby.bots.open-add |
Add bot | R | lobby |
Open the Add bot dialog (owner only; shown when the lobby's game declares bots). Nothing is added until lobby.bots.add.confirm — or use lobby_bot_add. |
lobby.bots.remove |
Remove bot | W | peer |
Remove one bot from the lobby (owner only, before Start). Target: the bot's peer id (bot:<id>). The bot can be added again; no person is affected. |
lobby.bots.retest-device |
Re-test device | W | lobby |
Measure again what this device can do for an AI bot, and report the result to the lobby. Runs a short benchmark; the first run downloads about 14 MB (more with a graphics card). Read the result with hardware_tier_get. |
lobby.bots.add#
Add bot · surface lobby · target lobby
How it opens: Lobby ▸ Bots ▸ Add bot (owner only, before Start); a dialog.
Fields (2)
| Field id | Label | Kind | Unit | Target | Class | Range / options | Description |
|---|---|---|---|---|---|---|---|
lobby.bots.add.bot |
Bot | select |
— | lobby |
W | — | Which of the game's declared bots to add (a draft until lobby.bots.add.confirm). Each option says whether the bot is scripted or runs an AI model, and what device an AI one needs. Owner only. |
lobby.bots.add.difficulty |
Difficulty | select |
— | lobby |
W | — | The difficulty the new bot starts at (a draft until lobby.bots.add.confirm); defaults to the bot's own default. Shown only when the chosen bot declares difficulties. Owner only. |
Actions (1)
| Action id | Label | Class | Target | Description |
|---|---|---|---|---|
lobby.bots.add.confirm |
Add | W | lobby |
Add the bot chosen in the Add bot dialog, at the chosen difficulty (owner only). The server refuses a bot the game does not declare, one bot too many, or a lobby with no seat left, and says why. |
