Content generated with AI — it may contain mistakes.

Reference

Configuration

config.yml key by key with its defaults, what messages.yml holds, the two menu files with their values and actions, and the database tables.

Everything is generated in plugins/ExyliaPlayerVaults/ on first start, with comments. Edit the files there, never the copies in the jar. /pvadmin reload applies an edit.

config.yml

plugins/ExyliaPlayerVaults/config.yml
language: default
vaults:
  default-amount: 1
  max-amount: 9
  default-rows: 6
  hidden-slots: keep
  blocked-materials: []
  checkpoint: 30s
  save-player-on-write: true
restrictions:
  open-cooldown: 500ms
  block-in-combat: true
  disabled-worlds: []
  disabled-game-modes:
    - SPECTATOR
purchase:
  enabled: false
  currency: ''
  base-price: 5000.0
  price-multiplier: 1.5
  max-purchases: 9
history:
  keep: 10
customization:
  name-max-length: 24
  default-icon: BARREL
sounds:
  opened: BLOCK_BARREL_OPEN|1.0|1.2
  closed: BLOCK_BARREL_CLOSE|1.0|1.2

Lengths of time read like everywhere in Exylia: 500ms, 30s, 1m30s; a bare number is seconds.

language

KeyDefaultWhat it does
languagedefaultThe language of this plugin's menus and messages. default follows the language set in ExyliaLib's config.yml; en, es, pt, fr, ru or tr set this plugin alone. Each is a folder under lang/.

vaults

KeyDefaultWhat it does
default-amount1Vaults a player has with no exyliaplayervaults.amount.<number> of their own.
max-amount9The most vaults anybody may have, bought ones included, whatever their permissions. Also how many entries the list draws.
default-rows6Rows per vault with no exyliaplayervaults.rows.<1-6> of their own. Clamped to 1–6.
hidden-slotskeepWhat happens to stacks past a smaller vault's last slot: keep stores them out of sight, return hands them back. See Vaults.
blocked-materials[]Materials that may not go into a vault, by name, compared ignoring case. Shulker boxes and bundles holding one are refused too.
checkpoint30sHow often an open vault that changed is written while it stays open, so a crash costs at most this much. Never less than one second.
save-player-on-writetrueSaves the player's own inventory file after each write that changed their vault, so a crash right after cannot leave an item in both places.

restrictions

None of these apply to staff opening somebody else's vault.

KeyDefaultWhat it does
open-cooldown500msHow long a player waits between opening two vaults. 0s turns it off. Skipped with exyliaplayervaults.bypass.cooldown.
block-in-combattrueRefuses to open a vault while the player is combat-tagged, and closes one that is open when they hit or are hit by a player.
disabled-worlds[]Worlds in which vaults cannot be opened, by name.
disabled-game-modes[SPECTATOR]Game modes in which vaults cannot be opened: SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR.

The last three are skipped with exyliaplayervaults.bypass.restrictions.

purchase

KeyDefaultWhat it does
enabledfalseLets players buy vaults past what their rank gives them, from the list.
currency''The currency they pay in, by id. Empty uses ExyliaLib's default currency.
base-price5000.0What the first bought vault costs.
price-multiplier1.5Each later vault costs this many times the one before. 1.0 keeps every vault at base-price.
max-purchases9The most vaults one player may buy. max-amount still caps the total.

See Purchases.

history

KeyDefaultWhat it does
keep10How many earlier copies of each vault are kept, newest first. 0 keeps none. See Staff tools.

customization

KeyDefaultWhat it does
name-max-length24The longest name a player may give a vault. Names hold letters, digits, spaces and - _ ' . ! ? # ( ) only.
default-iconBARRELWhat a vault is drawn as in the list until its owner picks an icon: a menu material such as CHEST, playerhead-<name> or basehead-<texture>.

sounds

KeyDefaultWhat it does
openedBLOCK_BARREL_OPEN|1.0|1.2Played when a vault window opens, as NAME|volume|pitch. Empty plays nothing.
closedBLOCK_BARREL_CLOSE|1.0|1.2Played when a player closes a vault window.

messages.yml

lang/<code>/messages.yml holds every line the plugin says and every window title. %prefix% expands to the prefix value at the top, {primary}&lVAULTS {letters_black}•<reset> in English. Colours are palette tokens.

A line may open with an effect tag, which never reaches the screen: [sound:NAME|volume|pitch] plays a sound to whoever receives it. An empty line sends nothing at all — that is how a message is turned off.

KeysWhat they are
prefixOpens every chat line through %prefix%.
title, admin-title, view-title, snapshot-titleWindow titles: your own vault, a vault staff are editing, a read-only view, a history copy. %number% is the vault, %player% its owner, %name% its name (in title and admin-title).
default-nameWhat a vault is called until it is renamed: #%number%.
in-use, not-unlocked, unreadable, blocked-item, lock-lost, taken-over, taking-overOpening and keeping a vault.
hidden-stacks, returned, rewards-deliveredA vault that shrank (%count% stacks), and items handed back on join (%amount%).
cooldown, in-combat, disabled-world, disabled-game-modeRestrictions. %time% is what is left of the cooldown.
rename-prompt, name-invalid, renamed, rename-reset, icon-prompt, icon-changed, no-permissionNames and icons.
buy-prompt, bought, buy-too-poor, buy-limit, buy-disabled, buy-failedPurchases. %price% is formatted in the currency, %number% is the vault bought.
search-header, search-line, search-none/pv search. %query% is what was searched, %amount% how many were found, %name% the vault.
admin-usageThe lines /pvadmin prints.
clear-prompt, cleared, restore-prompt, restored, history-empty, snapshot-missing, reloadedStaff tools. %when% is how long ago a copy was taken.

Two screens, under lang/<code>/menus/.

FileOpened byEdits
user/vaults.yml/pv, /pvadmin listYours. Kept across updates; a release that has to change its layout raises menu-version, replaces the file and keeps your previous one next to it.
admin/history.yml/pvadmin historyReplaced from the jar on every start and every menu reload.

A menu file that fails to parse is named in the console and that screen does not open; fix it and /pvadmin reload.

The vault list

vaults.yml is a PAGINATION menu with three templates: item_template for vaults the owner has, buy_template for the next one for sale, locked_template for the rest.

Screen valuesEach vault
%owner_name%, %vaults_unlocked%, %vaults_max%, %vaults_bought%, %vaults_rows%%vault_number%, %vault_name%, %vault_icon%, %vault_used%, %vault_size%, %vault_free%, %vault_owner%, and on the one for sale %vault_price%

%vault_owner% is the owner's UUID, which the buttons pass to the actions. %vaults_max% is how many entries are drawn: max-amount, or the unlocked count when that is higher.

The history screen

Screen valuesEach copy
%owner_name%, %vault_number%, %history_size%%snapshot_id%, %snapshot_date%, %snapshot_when%, %snapshot_cause%, %snapshot_actor%, %snapshot_used%

%snapshot_cause% is CLOSED, EDITED, CLEARED or RESTORED; %snapshot_used% is how many stacks the copy holds.

Actions

The buttons call these, and any menu of any Exylia plugin can too:

ActionWhat it does
exyliaplayervaults:open <owner> <number>Opens a vault. Your own goes through every player check; somebody else's opens to edit with admin.edit, read only with admin.view, and does nothing otherwise.
exyliaplayervaults:rename <owner> <number>Asks for a new name. Your own unlocked vault with customize.name, or anybody's with admin.edit.
exyliaplayervaults:icon <owner> <number>Asks for a new icon, on the same terms with customize.icon.
exyliaplayervaults:buySells the clicker their next vault.
exyliaplayervaults:snapshot_view <id>Shows a history copy, read only. Needs admin.history.
exyliaplayervaults:snapshot_restore <id>Puts a history copy back after a confirmation. Needs admin.history and admin.edit.

<owner> is a UUID; the owner is never trusted from the button, so acting on somebody else's vault always asks for the staff permission again.

Database

Every table lives in the database database.yml points at; they are listed on Network.

Something missing on this page? Tell us on Discord