Content generated with AI — it may contain mistakes.

Reference

Configuration

config.yml key by key, what messages.yml holds, the menu files and their values, and every database table the plugin keeps.

Everything is generated in plugins/ExyliaEconomy/ on first start, with comments. Edit the files there, never the copies in the jar. config.yml holds only what each server decides alone; the currencies and the economy-wide settings live in the database and are edited with /economyadmin, so every server of a network reads the same ones. /economyadmin reload applies an edit.

config.yml

plugins/ExyliaEconomy/config.yml
# ExyliaEconomy. The currencies are kept in the database and edited in game with /economyadmin.
language: default
debug: false
pay-confirm-above:
  default: '0'
offline-pay-notice: true
banknotes:
  - default
interest: {}
KeyDefaultWhat it does
languagedefaultThe language of this plugin's menus and messages. default follows the language set in ExyliaLib's config.yml; en, es or pt set this plugin alone. Each is a folder under lang/. Any other code starts as a copy of English, yours to rewrite.
debugfalseExplains in the console what the plugin is doing.
pay-confirm-abovedefault: '0'Per currency id, the amount above which /pay asks the payer to confirm within 30 seconds. default covers every currency not listed; '0' never asks. See Payments.
offline-pay-noticetrueTells a player, as they join, what they were paid while they were offline: one line per currency.
banknotes[default]The currencies /withdraw may print, by id; default is the default currency. Stored currencies only. Empty turns banknotes off. See Banknotes.
interestemptyPer currency id, rate, interval, max and online-only. Nothing is paid until one is added. See Interest.

Amounts in pay-confirm-above and interest.<id>.max read like the commands': 10000, 10k, 1.5m. Write them quoted, as the defaults are.

messages.yml

lang/<code>/messages.yml holds every line the plugin says. %prefix% expands to the prefix value at the top, {primary}&lECONOMY {letters_black}• in English. Colours are palette tokens, so recolouring the network never means editing this file; MiniMessage tags work too, and the confirmation lines use <click> and <hover> for their [✔ CONFIRM] button.

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
balance, balance-other, wallet-header, wallet-line, currencies-header, currencies-lineBalances and lists in chat.
paid, paid-taxed, received, pay-self, pay-disabled, pay-minimum, pay-refused, pay-cancelled, pay-disabled-target, pay-confirm, confirm-expiredPayments.
pay-toggle-off, pay-toggle-on, pay-toggle-failed/paytoggle.
offline-pay-single, offline-pay-manyThe notice on join.
not-enough, invalid-amount, no-currency, no-permission, not-available, still-loading, refused, over-ceiling, at-ceiling, permission-denied, economy-off, player-required, usageRefusals. over-ceiling, at-ceiling and the exchange-… reasons are plain text inserted into refused or exchange-failed.
given, given-notify, taken, taken-notify, set, reset, queuedAdmin changes.
give-all-confirm, give-all-done, give-all-nobodygiveall.
top-header, top-line, top-empty, top-total, top-disabledThe console leaderboard.
history-header, history-line, history-emptyThe console history.
exchanged, exchange-failed, exchange-not-allowed, exchange-no-rate, exchange-over-ceiling, exchange-cancelledExchanges.
import-started, import-done, import-already, import-same, import-running, import-failedImports.
currency-created, currency-deleted, currency-saved, currency-not-found, currency-exists, currency-invalid-id, currency-invalid-rates, currency-networked-locked, currency-write-failedThe editor.
rewards-deliveredItem and experience payments handed over on join. %amount% is how many.
note-withdrawn, note-redeemed, note-invalid, note-not-held, note-disabled, note-inventory-full, note-failed, note-wrong-serverBanknotes.
log-header, log-line, export-started, export-done, ledger-failed, rollback-confirm, rollback-nothing, rollback-done, invalid-windowThe ledger tools.
interest-paidA payout: %amount%, %currency%, %next%. Empty to pay silently.
reasonsWhat each ledger reason reads as, in histories: pay: Payment, shop:sell: Shop sale, …
kindsWhat each kind of currency reads as: stored: Server currency, item: Item, experience: Experience, external: Another plugin, unknown: Unknown.
banknoteThe note's material, name and lore. See Banknotes.
adminThe editor's prompts, form titles, field names and hints, and the words its screens show: on, off, none, ledger-forever, ledger-days, kind-stored…

A reason not listed under reasons reads as the label of the part before its colon, then as the reason itself with its first letter raised, so a new plugin's reasons never show blank.

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

FileOpened byEdits
user/wallet.yml/wallet, /economy, the back button of the other twoYours. Written once, when missing.
user/top.yml/baltop, top, right-click in the walletYours.
user/history.ymlhistory, left-click in the walletYours.
admin/currency_admin_list.yml/economyadminReplaced from the jar on every start and every menu reload.
admin/currency_admin_edit.ymlA currency in the listReplaced.
admin/currency_admin_settings.ymlEconomy settingsReplaced.

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

Values on the players' screens

FileScreen valuesEach row
wallet.yml%wallet_owner%, %wallet_owner_id%, %wallet_currencies%%currency%, %currency_id%, %currency_icon%, %currency_balance%, %currency_kind%, %wallet_owner_id%
top.yml%currency%, %currency_id%, %top_size%, %top_total%%top_position%, %top_player%, %top_amount%, %currency%
history.yml%currency%, %currency_id%, %history_owner%, %history_owner_id%, %history_size%%entry_when%, %entry_delta%, %entry_reason%, %entry_balance%, %entry_server%, %entry_icon%

The wallet lists only the currencies the viewer may use. The board and the history are 90 rows deep; %entry_icon% is LIME_DYE for money in and RED_DYE for money out.

Actions

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

ActionWhat it does
exyliaeconomy:economy_wallet [uuid]Opens a wallet: the clicker's, or the player whose id is given.
exyliaeconomy:economy_history <currency> [uuid]Opens a history. Refused for a currency the clicker may not use.
exyliaeconomy:economy_top <currency>Opens a leaderboard, the same way top does.

The editor's buttons are exyliaeconomy:currency_admin_* actions; each one checks exyliaeconomy.admin on the click.

Database

Every table lives in the database database.yml points at; see Installation.

TableHolds
exylia_currenciesOne row per currency.
exylia_economy_settingsThe economy settings, the Vault choice, the ledger retention and the imports already run.
exylia_balancesOne row per player and stored currency, with the server holding it.
exylia_balance_pendingChanges queued for a player held elsewhere or offline.
exylia_balance_pending_takenMarks of queued changes already taken, kept six hours so a retried insert never pays twice.
exylia_ledgerThe ledger.
exylia_balance_importsWho each /economyadmin import already paid.
exylia_economy_claimsInterest payouts and rollback reversals already made.
exylia_economy_flags/paytoggle and the leaderboard exemption, per player.
exylia_banknotesEvery banknote printed, and who redeemed it.
exylia_pay_noticesPayments waiting to be shown on join.

Item and experience payments waiting for a player's join are kept in ExyliaLib's pending rewards.

Something missing on this page? Tell us on Discord