Content generated with AI — it may contain mistakes.

Reference

Configuration

Every key of config.yml: language, stakes, currencies and the server fee, waiting times, what players may do while they play, the board look, the room, the side panels, tables in the world and the command names.

config.yml holds what every game shares. Each game's own settings are in modules/<game>/config.yml, described on Games. Times are written 30s, 5m or 1h30m; colours use palette tokens such as {primary}. Apply a change with /tabletopadmin reload, except where a key says it needs a restart.

Language

KeyDefaultWhat it does
languagedefaultdefault follows the language set in ExyliaLib's config.yml; en, es, ru, tr, fr or pt sets this plugin alone. Each is a folder under lang/ you can edit.
debugfalseExplains in the console what the plugin is doing.

Stakes: wager

KeyDefaultWhat it does
wager.currencies[]Currencies a stake may use, by their ExyliaLib id. Empty offers every currency the player may use.
wager.minimum10Smallest stake a player may put in.
wager.maximum0Largest stake. 0 for no limit.
wager.fee-percent5.0Share of the pot the server keeps from a win, from 0 to 100. A draw is refunded in full. Players with exyliatabletop.bypass.fee keep everything.
Only currencies earned by playing

List only currencies players earn in game. Never offer a currency bought with real money.

The fee is rounded down to the currency's decimals and is not paid to anyone: it leaves the economy.

Waiting times: matches

KeyDefaultWhat it does
matches.open-expiry10mHow long an open table waits in the lobby before its stakes are refunded. A table in the world waits tables.fill-time instead.
matches.invite-expiry60sHow long an invitation waits for an answer.
matches.join-cooldown1sTime from one attempt to create or join to the next, so a stake is never charged twice by a double click.
matches.start-delay3sCountdown before the first move, once every player is seated.

While they play: arena

KeyDefaultWhat it does
arena.allowed-commands[msg, r, tell]Commands a player may still type during a match, without the slash. The game's own commands always work, so /<game> leave does.
arena.freezetrueKeeps players inside their room: they may walk around in it, never out. At a table in the world, keeps a standing player within tables.reach of their seat.

The board look: theme

Shared by every board: ExyliaLib's stage theme.

KeyDefaultWhat it does
theme.table-blockBLACK_CONCRETEThe block behind every board.
theme.frame-block, theme.frame-glowGRAY_CONCRETE, {secondary_light}The frame round it, and its outline colour.
theme.button-block, theme.button-glowGRAY_CONCRETE, {primary}What buttons are made of, and their outline under the crosshair.
theme.hover-sound, theme.press-soundempty, emptyLeft empty on purpose: every game plays its own hover and press sounds from its sounds section. Filling them adds a second sound on top.
theme.verdict-blockBLACK_CONCRETEThe plaque a finished game's verdict lands on.
theme.verdict-win, -lose, -draw{success}, {error}, {warning}Its outline on a win, a loss and a draw.
theme.rain-item, theme.rain-countAMETHYST_SHARD, 10A win rains this item over the board, this many. Empty or 0 for none.
theme.fireworks, theme.win-colourstrue, [{primary}, {secondary_light}, {info}]A win sets off fireworks only the winner sees, in these colours.
theme.zoom2.4How many times nearer, and so larger, every board is drawn than its game's own distance says. 1 draws them as each game's file places them.
theme.max-wide, theme.max-tall110, 80A board never spans more than this many degrees across, or up and down: it stops growing there. Lower them to fit every board on a narrow field of view.
theme.nearest2.5The nearest a board may come to the eyes, in blocks.

The room: room

A closed dark room drawn round a player while they play, only for them, so they see the board and nothing of the world behind it. Other players are hidden from them meanwhile.

KeyDefaultWhat it does
room.enabledtrueDraws the room. Off, the board stands in the open world; the blocks round the player are still cleared and other players still hidden.
room.block, room.floorBLACK_CONCRETE, trueThe block of its walls, ceiling and floor, and whether it has a floor (off shows the ground).
room.reach, room.ceiling4.5, 3.5How far from the eyes the walls stand, and how far above the eyes the ceiling is, in blocks.
room.stars, room.star-colours, room.star-scale40, [{secondary}, {secondary_light}, {letters}], 0.32Faint twinkling stars on the walls and ceiling: how many (0 for none), their colours and their size.

Side panels: guide

While a match is played, two panels stand at the player's sides, a turn of the head away and never over the board: how the game is played on their left, how it is won on their right.

KeyDefaultWhat it does
guide.enabledtrueShows the panels. Off shows none.
guide.distance, guide.lift1.9, 0.05How far from the eyes they stand, and how far above eye level their middle is (negative is below), in blocks.
guide.scale0.42How big their text is drawn; the titles are drawn larger.

Tables in the world: tables

Tables an admin sets down with /tabletopadmin table (see Commands). Players sit down at them and play in sight of whoever stands round; a hand, dice under a cup or a fleet stay hidden from those watching. No room is drawn there.

KeyDefaultWhat it does
tables.onlyfalseMatches are played at the tables alone: create, duel, the lobby's OPEN A TABLE and the API open no table anywhere else.
tables.sittruePlayers sit down on their seat (set seats on stairs or slabs). Off, they stand at it.
tables.reach0.6How far a standing player may step from their seat while they play, in blocks.
tables.watch-radius12How near a player must stand to watch the boards, in blocks.
tables.fill-time90sHow long a table waits for its seats to fill before it is closed, every stake refunded and everyone at it stood up, so nobody keeps a table from others by sitting at it.
tables.busy-lift1.8How far the hologram rises while the table is played, so it stands clear over the boards.
tables.hologramExyliaLib's table lookThe hologram over the centre of each table: an ExyliaLib hologram section. Its lines come from seating in messages.yml.

Command names

KeyDefaultWhat it does
games-command[games]Names of the command that opens the games catalogue. The first is the command. Needs a restart.
tabletop-command[tabletop]Names of the command that opens the catalogue on this plugin's games alone. The first is the command. Needs a restart.
admin-command[tabletopadmin, tta]Names of the admin command; the first is the command, the rest aliases. Needs a restart.

Each game's command is set by commands in its own module file, and also needs a restart.

Messages and menus

Every line a player reads is in lang/<language>/messages.yml and in each game's lang/<language>/modules/<game>/messages.yml. Colours are palette tokens, so recolouring the server never means editing them. A message may open with an effect tag that never reaches the screen: [sound:NAME|volume|pitch] plays a sound, [center] centres the line. %prefix% is replaced by the prefix value; an empty message is not sent.

Section of messages.ymlHolds
generalTables closed while the escrow settles, a game switched off, the cooldown and a blocked command.
wagerThe stake checks, the currency, amount and seats prompts, and a duel sent to more players than the game seats.
tablesOpening, joining, answering, leaving and expiry, the invitation block and its ACCEPT, DECLINE and START buttons. Every line can use %game%, %amount% (the stake), %pot%, %seated%, %seats%, %min%, %missing% and %command%.
offerThe confirmation before taking a seat from the lobby, and announce, the line told to the whole server when a table opens for anybody (%player%, %game%, %amount%, %pot%, %command%).
matchThe countdown, the board heading and turn lines, the boss bar, the results and their titles, the leave confirmation, the leave button in the hotbar, a match called off and the titles of the side panels.
modesThe Tabletop category card in the games catalogue and the description on each game's card (%min%, %max%, %command%).
adminReload, calling a match off and its confirmation.
labelsThe words the admin screens show for a match's kind and state.
seatingTables in the world: the hologram over a table (free, waiting, being played), sitting down, the refusals, and the admin lines of table create, remove and list.

The lobby is lang/<language>/menus/user/lobby.yml: yours to restyle, and a release only adds what is missing. The admin screens under menus/admin/ are rewritten from the jar on every start.

Something missing on this page? Tell us on Discord