Content generated with AI — it may contain mistakes.

Reference

Database

The seven tables, their columns, and what is deliberately kept in memory instead.

Everything the plugin owns lives in the database: there is no world list, no kit file and no pad file on disk. H2 by default, or any engine ExyliaLib supports, configured in database.yml.

sandbox_worlds

One row per configured world.

ColumnTypeNotes
idkeyThe world id as typed
display_nametext
biometextA biome id, minecraft:plains
border_sizeintThe diameter
icontextMaterial name, head string or a serialised item
generation_jsontextThe preset: base height, the layer stack and the feature list
typetextMANAGED or IMPORTED
folder_nametextImported worlds only
settings_jsontextThe difficulty and twelve of the thirteen toggles
created_at, updated_atlong

disable_powder_snow is toggled in the admin screen and read live, but it is not written into settings_json — it goes back to its default on the next load.

sandbox_player_kits

One row per kit.

ColumnTypeNotes
idkey<uuid>:<slot>
player_uuidindexed
slotint1-based
name, icontext
contents, armor, offhandtextSerialised item stacks
favoritebooleanAt most one true row per player

sandbox_predefined_kits

ColumnTypeNotes
idkeyA slug of the name at creation. Renaming does not change it
name, description, icontext
contents, armor, offhandtext

sandbox_kitroom_categories

ColumnTypeNotes
idkey
display_nametext
materialtextThe icon
priorityintSort order along the bottom row

sandbox_kitroom_items

ColumnTypeNotes
idkey<categoryId>:<slot>
category_idindexed
slotint
item_stacktextOne serialised stack

sandbox_player_stats

ColumnTypeNotes
uuidkey
kills, deathsintCounted only inside sandbox worlds
playtime_millislongSandbox time, not server time

A kill counts when both the killer and the victim are in a sandbox world and they are not the same player. KDR with no deaths is the kill count.

sandbox_tp_regions

ColumnTypeNotes
idkeyTwelve hex characters
display_nametext
interval_secondsintMinimum five
target_world_idtextEmpty means a random READY world
spread_radiusint
world_nametextThe world the box is in
min_x … max_zdoubleThe six corners

sandbox_settings

Exactly one row, holding the lobby location and the kit-creator room location.

A legacy data.yml in the plugin folder is read once on startup and imported into this row, for locations the database does not already have. The file is never rewritten or deleted.

What is not in the database

Kept in memory onlyLost on
The kit a player is wearingRestart, or leaving
The /back pointRestart, or a disconnect
Queue membershipRestart, or a disconnect
Pending /tpa requestsTheir timeout, a disconnect, or a restart
The kit-creator sessionA disconnect, which also gives the inventory back
Who is standing on a teleport padRecomputed when the plugin loads

Kits and statistics are cached per player and written back when they disconnect.

Sharing across servers

Point every server at the same database and the worlds, kits, templates, kit-room and pads are the same everywhere. Nothing is synchronised live: a world created on one server is picked up by another when it next reads, and kits are read on join.

Something missing on this page? Tell us on Discord