Dicey Table

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.

Did this page answer your question?