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
# 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: {}| Key | Default | What it does |
|---|---|---|
language | default | The 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. |
debug | false | Explains in the console what the plugin is doing. |
pay-confirm-above | default: '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-notice | true | Tells 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. |
interest | empty | Per 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.
| Keys | What they are |
|---|---|
balance, balance-other, wallet-header, wallet-line, currencies-header, currencies-line | Balances and lists in chat. |
paid, paid-taxed, received, pay-self, pay-disabled, pay-minimum, pay-refused, pay-cancelled, pay-disabled-target, pay-confirm, confirm-expired | Payments. |
pay-toggle-off, pay-toggle-on, pay-toggle-failed | /paytoggle. |
offline-pay-single, offline-pay-many | The 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, usage | Refusals. 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, queued | Admin changes. |
give-all-confirm, give-all-done, give-all-nobody | giveall. |
top-header, top-line, top-empty, top-total, top-disabled | The console leaderboard. |
history-header, history-line, history-empty | The console history. |
exchanged, exchange-failed, exchange-not-allowed, exchange-no-rate, exchange-over-ceiling, exchange-cancelled | Exchanges. |
import-started, import-done, import-already, import-same, import-running, import-failed | Imports. |
currency-created, currency-deleted, currency-saved, currency-not-found, currency-exists, currency-invalid-id, currency-invalid-rates, currency-networked-locked, currency-write-failed | The editor. |
rewards-delivered | Item 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-server | Banknotes. |
log-header, log-line, export-started, export-done, ledger-failed, rollback-confirm, rollback-nothing, rollback-done, invalid-window | The ledger tools. |
interest-paid | A payout: %amount%, %currency%, %next%. Empty to pay silently. |
reasons | What each ledger reason reads as, in histories: pay: Payment, shop:sell: Shop sale, … |
kinds | What each kind of currency reads as: stored: Server currency, item: Item, experience: Experience, external: Another plugin, unknown: Unknown. |
banknote | The note's material, name and lore. See Banknotes. |
admin | The 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.
Menus
Six screens, under lang/<code>/menus/.
| File | Opened by | Edits |
|---|---|---|
user/wallet.yml | /wallet, /economy, the back button of the other two | Yours. Written once, when missing. |
user/top.yml | /baltop, top, right-click in the wallet | Yours. |
user/history.yml | history, left-click in the wallet | Yours. |
admin/currency_admin_list.yml | /economyadmin | Replaced from the jar on every start and every menu reload. |
admin/currency_admin_edit.yml | A currency in the list | Replaced. |
admin/currency_admin_settings.yml | Economy settings | Replaced. |
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
| File | Screen values | Each 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:
| Action | What 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.
| Table | Holds |
|---|---|
exylia_currencies | One row per currency. |
exylia_economy_settings | The economy settings, the Vault choice, the ledger retention and the imports already run. |
exylia_balances | One row per player and stored currency, with the server holding it. |
exylia_balance_pending | Changes queued for a player held elsewhere or offline. |
exylia_balance_pending_taken | Marks of queued changes already taken, kept six hours so a retried insert never pays twice. |
exylia_ledger | The ledger. |
exylia_balance_imports | Who each /economyadmin import already paid. |
exylia_economy_claims | Interest payouts and rollback reversals already made. |
exylia_economy_flags | /paytoggle and the leaderboard exemption, per player. |
exylia_banknotes | Every banknote printed, and who redeemed it. |
exylia_pay_notices | Payments 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