DUXPLIMA Documentation

Economy

Balances, payments and the leaderboard, plus banks, loans, banknotes and a sell price per item.

Every player holds a wallet with a balance per currency. One currency ships (coins), /balance and /pay do the everyday work, and /eco is the admin surface. Balances live in the database rather than in player data, so they survive a world rollback.

Module economy · enabled by default · modules/economy/config.conf and currencies.conf

Commands

/* generated:commands */
CommandWhat it doesPermission
/balance (/bal, /money)Show a wallet balance.uxmessentials.economy.balance
/baltop (/balancetop)View the top balances.uxmessentials.economy.baltop
/bankShared bank accounts management.uxmessentials.economy.bank
/depositDeposit physical banknotes into virtual balance.uxmessentials.economy.deposit
/eco (/economy)Eco-admin balance mutations.uxmessentials.economy.admin
/exchangeExchange currencies or open the conversion GUI.uxmessentials.economy.exchange
/loanDebtor loans and credit rating.uxmessentials.economy.loan
/payTransfer funds to another player.uxmessentials.economy.pay
/payallPay every online player at once.uxmessentials.economy.payall
/payconfirmConfirm a large pending pay.uxmessentials.economy.pay
/paytoggleToggle accepting incoming pay.uxmessentials.economy.pay.toggle
/sellSell held items at their configured worth.uxmessentials.economy.sell
/sellallSell every sellable item in your inventory.uxmessentials.economy.sell
/setworthSet an item's sell worth.uxmessentials.economy.setworth
/walletOpen your visual wallet dashboard.uxmessentials.economy.wallet
/withdrawWithdraw virtual money into a physical banknote item.uxmessentials.economy.withdraw
/worthReport a held item's configured sell value.uxmessentials.economy.worth
/* /generated */

Permissions

/* generated:permissions */
NodeDefaultGrants
uxmessentials.economy.adminopUmbrella for eco-admin mutations (/eco give, take, set).
uxmessentials.economy.admin.bulkop/eco giveall, /eco giverandom, /eco resetall server-wide bulk mutations.
uxmessentials.economy.admin.giveop/eco give <player> <amount> [currency] only.
uxmessentials.economy.admin.setop/eco set <player> <amount> [currency] and /eco reset only.
uxmessentials.economy.admin.takeop/eco take <player> <amount> [currency] only.
uxmessentials.economy.balanceeveryone/balance [currency] to see your own balance.
uxmessentials.economy.balance.othersop/balance <player> [currency] to view another player's balance.
uxmessentials.economy.baltopeveryone/baltop [currency] [page] to view the top balances.
uxmessentials.economy.baltop.exemptoffMarks the holder as hidden from every /baltop leaderboard.
uxmessentials.economy.bankeveryone/bank: open the bank panel to move money between your wallet and your bank balance.
uxmessentials.economy.bank.createeveryone/bank create <name>: open a new shared bank account. Held by default alongside the bank node.
uxmessentials.economy.bank.depositeveryone/bank deposit: pay into a shared bank account. Held by default alongside the bank node.
uxmessentials.economy.bank.memberseveryone/bank addmember and removemember: change who may use a shared bank account.
uxmessentials.economy.bank.withdraweveryone/bank withdraw: take money out of a shared bank account; the capability worth withholding from junior members.
uxmessentials.economy.bypasscmdcostopSkip the configured per-command economy charge (command-costs in economy.conf).
uxmessentials.economy.currency.<currency>opUse one currency that is configured to require a permission.
uxmessentials.economy.depositeveryone/deposit <amount> [currency]: move money from your wallet into your bank balance.
uxmessentials.economy.exchangeeveryone/exchange <amount> <from> <to>: convert between two currencies at the configured rate.
uxmessentials.economy.loanoff/loan: take, review and repay a loan against the configured limit and interest.
uxmessentials.economy.loan.takeeveryone/loan take: borrow. Held by default alongside the loan node, so negating it leaves a borrower able to check and repay what they already owe but not to take more.
uxmessentials.economy.payeveryone/pay <player> <amount> [currency] and /payconfirm to transfer funds.
uxmessentials.economy.pay.toggleeveryone/paytoggle to refuse all incoming /pay transfers.
uxmessentials.economy.payallop/payall <amount> [currency]: pay every online player from your own wallet.
uxmessentials.economy.salary.amount.<amount>offThe periodic salary you are paid; the largest tier held wins.
uxmessentials.economy.selleveryone/sell [amount] to sell held items at their configured worth.
uxmessentials.economy.setworthop/setworth [item] <price>|clear to set or clear an item's sell worth override.
uxmessentials.economy.tax.bypassopSend a /pay without the configured transfer tax being deducted.
uxmessentials.economy.walleteveryone/wallet: open your own wallet panel listing every currency you hold.
uxmessentials.economy.withdraweveryone/withdraw <amount> [currency]: move money from your bank balance back into your wallet.
uxmessentials.economy.wortheveryone/worth [item] to report an item's configured sell value.
uxmessentials.module.economyopHot-reload / inspect the economy module (wallets, banks, currencies and the provider bridge).
/* /generated */

Settings

/* generated:settings */
KeyDefaultWhat it does
amount-format"full"full (grouped digits) | compact (1.2k style)
wallet.default-currency"coins"id of the currency used when a command names none
wallet.starting-balance"0"
wallet.min-balance"0"
wallet.max-balance"1000000000000"
wallet.gui-enabledtruewhether to enable the visual /wallet GUI
gui.timezone"UTC"zone id transaction-history timestamps render in (e.g. Europe/Istanbul); UTC keeps every server in a network consistent
banknotes.enabledtruewhether to enable physical banknote items (/withdraw and /deposit)
bank.enabledtruewhether to enable bank accounts (/bank)
bank.interest.enabledfalseoff by default
bank.interest.interval-hours24how often interest is paid
bank.interest.tiers[...]"minBalance:ratePercent"; the highest qualifying tier applies
loans.enabledtruewhether to enable loan & debt system (/loan)
loans.limit-multiplier"1000"max principal = credit-score * this
loans.interest-max"0.22"interest rate at the lowest credit score
loans.interest-span"0.20"how far the rate drops from interest-max to the highest score
loans.installment-cycle-hours24hours between installments (auto-repayment due interval)
loans.score-on-time-manual25credit-score gain for a manual on-time payment
loans.score-on-time-auto10credit-score gain for a successful automatic repayment
loans.score-missed-50credit-score penalty for a missed automatic repayment
loans.score-floor100lowest a credit score can fall to
loans.score-ceiling1000highest a credit score can rise to
pay.min-pay"0.01"
pay.confirm-threshold""empty disables the /pay confirmation prompt
pay.confirm-timeout-ms30000how long a pending /pay confirmation stays valid
pay.toggle-defaulttruenew players accept incoming payments by default
pay.tax.enabledfalseoff by default; turn on to tax payments
pay.tax.percent"0"percent of the amount taken (e.g. "5" = 5%)
pay.tax.flat"0"a flat cut added on top, in the currency's units
pay.tax.sink"void""void" destroys the tax, or "account:<uuid>" routes it to a holding wallet
pay.tax.bypass-permission"uxmessentials.economy.tax.bypass"holders pay no tax
baltop.page-size10
baltop.cache-ttl-ms60000how often the /baltop snapshot is refreshed
baltop.snapshot-capacity100rows retained per currency snapshot
baltop.exempt-permission"uxmessentials.economy.baltop.exempt"
baltop.exclude-bannedfalsedrop banned players from the leaderboard
baltop.min-balance"0"hide rows below this balance (0 = show everyone)
provider.registertrueregister the native economy with Vault/Treasury via ServicesManager
provider.priority"Normal"Lowest | Low | Normal | High | Highest
allow-nonatomic-recurringfalseA backend that cannot guard its take (anything but the built-in ledger) may double-charge a scheduled sweep, because a debit that reports failure might in fact have succeeded. A player clicking "buy" sees a wrong charge and complains; a nightly sweep cannot. So a module that bills on a timer refuses a foreign-backed currency at startup, naming it, unless you set this to true and accept the risk. No shipped module bills on a timer yet; salary and bank interest pay out rather than charge, and loans are already limited to the built-in ledger. This setting starts having an effect when player-warp rent lands.
persistence.write-debounce-ms250coalesce rapid balance writes
persistence.batch-flush-ms1000transaction-telemetry flush interval
worth.enabledtrue
worth.economyshopgui-fallbacktrueWhen EconomyShopGUI is installed, an item with no /setworth override and no price in the list below falls back to the shop's own sell price, so a priced shop does not have to be priced twice. Your own prices always win, and with the plugin absent this setting does nothing.
worth.items[...]
command-costs-enabledtrueCharge players to execute configured commands. Format is "COMMAND:cost" (without slash, case-insensitive). Bypass with permission node: uxmessentials.economy.bypasscmdcost
command-costs[...]
exchange.enabledtrue
exchange.rates[...]
salary.enabledfalse
salary.interval-seconds3600
salary.default-amount100
fraud-detection.enabledfalse
fraud-detection.webhook-url""
fraud-detection.single-limit"1000000"
fraud-detection.velocity-seconds60
fraud-detection.velocity-limit"5000000"
maintenance.enabledfalsemaster switch; off means no maintenance runs at all
maintenance.dry-runtruetrue = only log what WOULD be removed; set false to actually delete
maintenance.run-interval-hours24how often the task runs
maintenance.prune-transactions-days90delete transaction telemetry older than this many days
maintenance.purge-inactive-days90purge wallets of players unseen this long (never those with a loan/bank/score tie)
daily-reward.enabledfalseoff by default
daily-reward.amount"100"how much to credit per claim
daily-reward.currency""currency id, or blank for the default currency
daily-reward.cooldown-hours24minimum gap between claims
logs.file-enabledfalsewrite the human-readable operations.log
/* /generated */

Placeholders

/* generated:placeholders */
PlaceholderRenders
%uxmessentials_balance%The player's balance in the default currency, as a plain number.
%uxmessentials_balance_formatted%The player's balance with the currency symbol and grouping applied.
%uxmessentials_baltop_position%The player's place on the default-currency leaderboard.
%uxmessentials_economy_balance%The player's balance in the default currency, as a plain number.
%uxmessentials_economy_balance_<currency>%The player's balance in one named currency, as a plain number.
%uxmessentials_economy_balance_compact%The player's balance shortened to 1.2k / 3.4M.
%uxmessentials_economy_balance_formatted%The player's balance with the currency symbol and grouping applied.
%uxmessentials_economy_balance_formatted_<currency>%The player's balance in one named currency, with its symbol applied.
%uxmessentials_economy_balance_short%The same shortened balance, under the spelling a config may prefer.
%uxmessentials_economy_baltop_<currency>_<n>_amount%The balance of the player ranked nth in one named currency, as a plain number.
%uxmessentials_economy_baltop_<currency>_<n>_formatted%The balance of the player ranked nth in one named currency, with its symbol applied.
%uxmessentials_economy_baltop_<currency>_<n>_name%The name of the player ranked nth on one named currency's leaderboard.
%uxmessentials_economy_baltop_<currency>_<n>_uuid%The uuid of the player ranked nth on one named currency's leaderboard.
%uxmessentials_economy_baltop_<n>_amount%The balance of the player ranked nth, as a plain number.
%uxmessentials_economy_baltop_<n>_formatted%The balance of the player ranked nth, with the currency symbol applied.
%uxmessentials_economy_baltop_<n>_name%The name of the player ranked nth on the default-currency leaderboard.
%uxmessentials_economy_baltop_<n>_uuid%The uuid of the player ranked nth on the default-currency leaderboard.
%uxmessentials_economy_baltop_position%The player's place on the default-currency leaderboard.
%uxmessentials_economy_currency_name%The plural name of the default currency.
%uxmessentials_economy_currency_symbol%The symbol of the default currency.
/* /generated */

Notes

  • Extra currencies are defined in currencies.conf, each with its own symbol, formatting, limits, icon and flags for whether it can be paid, exchanged or ranked. Commands take an optional [currency] and fall back to the default without one.
  • A currency can be backed by another plugin. Set backend on it (playerpoints, coinsengine:gold, exp, placeholder:<name>) and uxmEssentials reads and writes that plugin's numbers instead of keeping a second balance beside it. A foreign-backed currency has no /baltop.
  • The extras are feature flags: banks, loans, banknotes, worth and sell, exchange and the wallet dashboard each register their commands only when their block is enabled.
  • Banknotes need three things aligned: the currency marked physical, its denominations set, and the banknotes block enabled.
  • /baltop is a snapshot refreshed on cache-ttl-ms, not a live query, which is why a payment made a second ago may not have moved the board yet.
  • Turning the module off makes paid features free, not broken: home, warp and vault costs stop being charged rather than failing.
  • On a server that already has a Vault economy, uxmEssentials defers to the existing provider. Set provider.register and its priority deliberately if you want it to take over.

Related: Homes, Kits, Ranks