GroupeZ Docs
Modules

Economy Module

Multi-currency economy system with Vault integration

File: modules/economy/config.yml

The Economy module provides a fully featured multi-currency economy system with Vault integration, balance top leaderboards, configurable number formatting, pay confirmations, and transaction reason tracking. You can define as many economies as you need, each with its own symbol, format, limits, and Vault registration status.


Configuration

enable: true

# The name of the default economy used by Vault and /pay
default-economy: "money"

# List of economy definitions
economies:
  - name: "money"
    display-name: "&6Money"
    symbol: "$"
    format: "%price%$"
    vault: true
    min: 0
    max: 1000000000
    min-pay: 0
    max-pay: 1000000000
    enable-pay: true
    enable-confirm-inventory: true
    min-confirm-inventory: 1000
    price-format: PRICE_WITH_REDUCTION

  - name: "coins"
    display-name: "&eCoins"
    symbol: "\u26c1"
    format: "%price% \u26c1"
    vault: false
    min: 0
    max: 1000000000
    min-pay: 0
    max-pay: 1000000000
    enable-pay: true
    enable-confirm-inventory: true
    min-confirm-inventory: 1000
    price-format: PRICE_WITH_REDUCTION

# Multiplier suffixes for the /pay command number shorthand
# Players can type e.g. /pay Player 5k to pay 5000
number-format-sell-multiplication:
  k: 1000
  m: 1000000
  b: 1000000000
  t: 1000000000000
  q: 1000000000000000
  qq: 1000000000000000000
  s: 1000000000000000000000
  ss: 1000000000000000000000000
  o: 1000000000000000000000000000
  n: 1000000000000000000000000000000
  d: 1000000000000000000000000000000000
  uu: 1000000000000000000000000000000000000
  dd: 1000000000000000000000000000000000000000
  tr: 1000000000000000000000000000000000000000000

# How prices are formatted globally
# Options: PRICE_RAW, PRICE_WITH_DECIMAL_FORMAT, PRICE_WITH_REDUCTION
price-format: PRICE_WITH_REDUCTION

# Decimal format pattern used when price-format is PRICE_WITH_DECIMAL_FORMAT
price-decimal-format: '#,###.#'

# Reduction tiers used when price-format is PRICE_WITH_REDUCTION
price-reductions:
  - format: "%amount%K"
    maxAmount: 999999
    display: "1K"
  - format: "%amount%M"
    maxAmount: 999999999
    display: "1M"
  - format: "%amount%B"
    maxAmount: 999999999999
    display: "1B"
  - format: "%amount%T"
    maxAmount: 999999999999999
    display: "1T"
  - format: "%amount%Q"
    maxAmount: 999999999999999999
    display: "1Q"

# Balance top leaderboard settings
enable-baltop: true
baltop-refresh-seconds: 900
baltop-placeholder-user-empty: "?"
baltop-display: MESSAGE
baltop-message-economy: money
baltop-message-amount: 10

# Whether to store economy data for offline players (increases storage usage)
store-offline-player-money: false
paytoggle-placeholder-enabled: "&aEnabled"
paytoggle-placeholder-disabled: "&cDisabled"

# Default balances granted to new players
default-economies:
  - economy: money
    amount: 100

# Transaction reason strings used in Vault and internal logging
pay-withdraw-reason: "Payment sent"
pay-deposit-reason: "Payment received"
command-give-reason: "Admin give"
command-give-all-reason: "Admin give all"
command-give-random-reason: "Admin give random"
command-take-reason: "Admin take"
command-reset-reason: "Admin reset"
command-set-reason: "Admin set"

Options

General Options

OptionTypeDefaultDescription
enableBooleantrueEnable or disable the Economy module
default-economyStringmoneyThe name of the default economy. This economy is used for Vault integration and as the default for commands that do not specify an economy
price-formatStringPRICE_WITH_REDUCTIONGlobal price formatting mode. Options: PRICE_RAW (no formatting), PRICE_WITH_DECIMAL_FORMAT (uses price-decimal-format), PRICE_WITH_REDUCTION (uses price-reductions tiers)
price-decimal-formatString#,###.#Java DecimalFormat pattern used when price-format is PRICE_WITH_DECIMAL_FORMAT
enable-baltopBooleantrueEnable the balance top leaderboard
baltop-refresh-secondsInteger900How often (in seconds) the baltop leaderboard is refreshed. 900 = 15 minutes
baltop-placeholder-user-emptyString?Placeholder text displayed in baltop when a position has no player
baltop-displayStringMESSAGEHow the baltop leaderboard is displayed. Currently supports MESSAGE
baltop-message-economyStringmoneyThe economy used when displaying the baltop via the /baltop command
baltop-message-amountInteger10Number of entries shown per page in the baltop leaderboard
store-offline-player-moneyBooleanfalseIf true, economy data for offline players is stored and accessible via placeholders. Increases storage usage
paytoggle-placeholder-enabledString&aEnabledText returned by %zessentials_user_pay_status% when the player accepts payments
paytoggle-placeholder-disabledString&cDisabledText returned by %zessentials_user_pay_status% when the player has disabled payments with /paytoggle

Economy Entry Properties

Each entry in the economies list supports the following properties:

PropertyTypeDefaultDescription
nameString-Unique internal name for this economy. Used in commands, placeholders, and configuration references
display-nameString-Display name shown to players. Supports color codes and MiniMessage
symbolString-Currency symbol (e.g., $, T, special Unicode characters)
formatString-Format string for displaying prices. Use %price% as the amount placeholder (e.g., %price%$ or %price% coins)
vaultBooleanfalseIf true, this economy is registered with the Vault API and can be used by other plugins
minDouble0Minimum balance allowed for this economy
maxDouble1000000000Maximum balance allowed for this economy
min-payDouble0Minimum amount a player can send in a single /pay transaction
max-payDouble1000000000Maximum amount a player can send in a single /pay transaction
enable-payBooleantrueWhether the /pay command is enabled for this economy
enable-confirm-inventoryBooleantrueIf true, a confirmation GUI opens before processing pay transactions for this economy
min-confirm-inventoryDouble1000Minimum payment amount required to trigger the confirmation GUI. Payments below this amount process immediately
price-formatStringPRICE_WITH_REDUCTIONPer-economy price formatting override. Same options as the global price-format

Only one economy should have vault: true. This economy is registered with the Vault API and will be used by any third-party plugin that queries Vault for economy data.

Number Format Multipliers

The number-format-sell-multiplication map defines shorthand suffixes players can use with the /pay command. For example, typing /pay Player 5k sends 5,000.

SuffixMultiplier
k1,000
m1,000,000
b1,000,000,000
t1,000,000,000,000
q1,000,000,000,000,000
qq1,000,000,000,000,000,000
s10^21
ss10^24
o10^27
n10^30
d10^33
uu10^36
dd10^39
tr10^42

Price Reduction Tiers

When price-format is set to PRICE_WITH_REDUCTION, amounts are abbreviated using the configured tiers:

PropertyTypeDescription
formatStringThe display format. Use %amount% for the reduced number (e.g., %amount%K)
maxAmountLongThe upper bound for this tier. Amounts exceeding this value use the next tier
displayStringA label for this tier (e.g., 1K, 1M, 1B)

Example: A balance of 1,500,000 would display as 1.5M using the default reduction tiers.

Default Economies

The default-economies list defines the starting balance given to new players:

PropertyTypeDescription
economyStringThe economy name to grant the starting balance in
amountDoubleThe starting balance amount

Transaction Reasons

Transaction reasons are logged with each economy operation and can be used for auditing:

OptionTypeDefaultDescription
pay-withdraw-reasonStringPayment sentReason logged when money is withdrawn via /pay
pay-deposit-reasonStringPayment receivedReason logged when money is deposited via /pay
command-give-reasonStringAdmin giveReason logged for /eco give
command-give-all-reasonStringAdmin give allReason logged for /eco give-all
command-give-random-reasonStringAdmin give randomReason logged for /eco give-random
command-take-reasonStringAdmin takeReason logged for /eco take
command-reset-reasonStringAdmin resetReason logged for /eco reset
command-set-reasonStringAdmin setReason logged for /eco set

Transaction reasons appear in Vault API callbacks and can be picked up by logging plugins that monitor economy transactions.


CommandAliasesPermissionDescription
/moneybalanceessentials.moneyShow your current balance
/pay-essentials.payPay another player
/paytoggle-essentials.pay.toggleToggle whether you can receive payments
/economyecoessentials.eco.useManage economies (give, take, set, reset, show)
/balancetopbaltopessentials.balance.topShow the top balances leaderboard

Economy Subcommands

SubcommandDescription
giveGive money to a player
takeTake money from a player
setSet a player's balance
resetReset a player's balance to the default
reset-allReset all player balances
showShow a player's balance
give-randomGive money to a random online player
give-allGive money to all online players

PermissionDescription
essentials.moneyAllows using the /money command
essentials.payAllows using the /pay command
essentials.pay.toggleAllows toggling payment reception
essentials.eco.useAllows using /economy admin commands
essentials.balance.topAllows viewing the balance top leaderboard

Player Balance

PlaceholderDescription
%zessentials_user_formatted_balance_{economy}%Formatted balance for the specified economy (e.g., 1.5M$)
%zessentials_user_balance_{economy}%Raw numeric balance for the specified economy
%zessentials_user_custom_balance_{economy}_{format}%Balance formatted with a custom DecimalFormat pattern
%zessentials_user_position_{economy}%Player's rank position in the baltop leaderboard

Baltop Leaderboard

PlaceholderDescription
%zessentials_economy_baltop_name_{economy}_{position}%Player name at the given baltop position
%zessentials_economy_baltop_uuid_{economy}_{position}%UUID of the player at the given baltop position
%zessentials_economy_baltop_amount_{economy}_{position}%Raw balance amount at the given position
%zessentials_economy_baltop_formatted_amount_{economy}_{position}%Formatted balance amount at the given position

Replace {economy} with the actual economy name (e.g., money, coins) and {position} with the rank number starting from 1. Using an invalid economy name will return an empty value.

Example: Display the top 3 players in the money economy:

1. %zessentials_economy_baltop_name_money_1% - %zessentials_economy_baltop_formatted_amount_money_1%
2. %zessentials_economy_baltop_name_money_2% - %zessentials_economy_baltop_formatted_amount_money_2%
3. %zessentials_economy_baltop_name_money_3% - %zessentials_economy_baltop_formatted_amount_money_3%

On this page

GroupeZ MCP

Documentation in your AI

MCP lets your AI search GroupeZ documentation and read current examples to help you configure your plugins.

Read-only · No documentation API key needed

1. Copy the server URL

Transport: HTTP (Streamable HTTP). Authentication: none. Your tool uses its own model and subscription limits.

  1. Open Plugins in ChatGPT on the web, then + → Add custom MCP server.
  2. Name it ‘GroupeZ Documentation’, paste the URL above and choose ‘No authentication’. Create and install the plugin.
  3. In a conversation, type @ and select the plugin before asking. If needed, enable search, get_page and list_pages in its settings.
Official setup guide

3. Ask a question

Use GroupeZ MCP to help me create a zMenu inventory. Search relevant pages, read the examples and cite your sources.
Other clients and troubleshooting

For clients using mcpServers, adapt this example to their format:

{
  "mcpServers": {
    "groupez-docs": {
      "url": ""
    }
  }
}

Available tools are search, get_page and list_pages. Refresh the connector’s tools after updates. If your AI cannot access them, check that the connector is enabled in the conversation and your account allows custom MCP servers. Opening the URL in a browser is not an MCP test.