Introduction to the Economy System

On Minecraft servers, the economy system is one of the most important mechanics for keeping players motivated and building long-term attachment to the server. Features such as item selling, plot renting and player-to-player trade are all built on top of the economy.

To set up an economy system you need three basic components:

  • Vault — the API that acts as a bridge between economy, permission and chat plugins
  • Economy provider — the plugin that performs the actual money transactions (EssentialsX, CMI, etc.)
  • Shop plugin — the interface players buy and sell through (ShopGUI+, ChestShop, etc.)

Installing Vault

Vault provides a standard API across economy plugins. Almost every economy and shop plugin depends on it.

Installing Vault

cp Vault-1.7.3.jar /opt/minecraft/plugins/
systemctl restart minecraft

Vault does not provide an economy system on its own. It works together with an economy plugin (the provider). After installation, the /vault-info command shows you which economy plugin Vault is using.

Configuring the EssentialsX Economy

EssentialsX is the most widely used multi-purpose plugin on Minecraft servers. Its built-in economy module integrates with Vault.

Basic Economy Settings

yaml
# plugins/Essentials/config.yml — Economy section

# Currency name
currency-symbol: '₺'
currency-symbol-suffix: false

# Starting balance
starting-balance: 1000

# Minimum balance (negative allowance)
min-money: 0

# Maximum balance
max-money: 10000000000000

# Decimal places
min-pay-amount: 0.01

# Currency format
currency-format: '#,##0.00'

# Command costs
command-costs:
  home: 50
  warp: 25
  tpa: 10
  sethome: 500
  kit tools: 100

Money Command Reference

CommandPermissionDescription
/balanceessentials.balanceShows your own balance
/balance <player>essentials.balance.othersShows another player's balance
/pay <player> <amount>essentials.paySends money to a player
/eco give <player> <amount>essentials.eco.giveAdds money to a player (admin)
/eco take <player> <amount>essentials.eco.takeTakes money from a player (admin)
/eco set <player> <amount>essentials.eco.setSets a player's balance (admin)
/eco reset <player>essentials.eco.resetResets the balance to the starting value
/baltopessentials.baltopLists the richest players
/worthessentials.worthShows the value of the item in your hand

Installing and Configuring ShopGUI+

ShopGUI+ is a GUI-based shop plugin. Players buy and sell through an inventory-like interface. It gives you a categorised, visual shopping experience.

Installing ShopGUI+

cp ShopGUIPlus-1.87.jar /opt/minecraft/plugins/
systemctl restart minecraft

Shop Configuration

yaml
# plugins/ShopGUIPlus/config.yml
shopMenuName: "&8☰ &6KEYDAL &8Shop"
shopMenuRows: 4
fillItem:
  enabled: true
  material: BLACK_STAINED_GLASS_PANE
  name: " "
buttons:
  goBack:
    slot: 31
    material: BARRIER
    name: "&c← Go Back"
  previousPage:
    slot: 27
    material: ARROW
    name: "&7Previous Page"
  nextPage:
    slot: 35
    material: ARROW
    name: "&7Next Page"

Creating a Shop Category

yaml
# plugins/ShopGUIPlus/shops/blocks.yml
blocks:
  name: "&6Blocks"
  rows: 6
  items:
    1:
      material: COBBLESTONE
      buyPrice: 5
      sellPrice: 2
      slot: 0
    2:
      material: STONE
      buyPrice: 8
      sellPrice: 3
      slot: 1
    3:
      material: OAK_LOG
      buyPrice: 15
      sellPrice: 8
      slot: 2
    4:
      material: IRON_INGOT
      buyPrice: 50
      sellPrice: 25
      slot: 3
    5:
      material: GOLD_INGOT
      buyPrice: 100
      sellPrice: 50
      slot: 4
    6:
      material: DIAMOND
      buyPrice: 500
      sellPrice: 250
      slot: 5

Installing and Using ChestShop

ChestShop is a physical shop plugin that lets players set up their own stores. Players open a shop using a chest and a sign.

ChestShop Sign Format

text
╔═══════════════════╗
║   PlayerName      ║  ← Line 1: shop owner
║   64              ║  ← Line 2: quantity
║   B 50 : S 25     ║  ← Line 3: buy:sell price
║   DIAMOND         ║  ← Line 4: item name
╚═══════════════════╝

Players write this format on signs to create a shop linked to a chest. B 50 = buy price 50, S 25 = sell price 25.

yaml
# plugins/ChestShop/config.yml
SHOP_TRANSACTION_MESSAGE_ON_BUY: "&a%buyer% bought %item% x%amount%. &7(%price%₺)"
SHOP_TRANSACTION_MESSAGE_ON_SELL: "&e%seller% sold %item% x%amount%. &7(%price%₺)"
ALLOW_MULTIPLE_SHOPS_AT_ONE_BLOCK: false
SHOP_CREATION_PRICE: 100
TAX_AMOUNT: 5
SERVER_TAX_ACCOUNT: "SunucuKasa"
REVERSE_BUTTONS: false
SHIFT_SELLS_EVERYTHING: true
SHIFT_BUYS_STACKS: true

Economy Balancing Tips

A balanced economy keeps players motivated for far longer. The following principles will help you maintain that balance:

Money Faucets and Sinks

In a healthy economy, money faucets (sources) and sinks (drains) must be balanced:

Money Faucets (In)Money Sinks (Out)
Mob kill rewardsBuying items from the shop
Item sales (server shop)Command costs (/home, /warp)
Quest rewardsBuying plots/regions
First join bonusRepair costs
Vote rewardsTax system (ChestShop)
Starting balanceEnchanting costs

Methods for Controlling Inflation

  • Tax system: take a 3-10% tax on every transaction (ChestShop TAX_AMOUNT)
  • Command costs: attach a cost to commands like /home, /warp and /tpa
  • Dynamic pricing: automatically lower the price of heavily sold items
  • Daily/weekly limits: cap how much can be sold to the shop
  • Economy reset events: periodic economy resets through a season system
  • Add luxury spending: sinks such as cosmetics, titles and special items

Admin Economy Commands

Knowing the admin commands is important for managing the economy. The most frequently used ones are listed below:

CommandDescriptionExample
/eco give <player> <amount>Add money to a player/eco give Steve 5000
/eco take <player> <amount>Take money from a player/eco take Steve 1000
/eco set <player> <amount>Set the balance/eco set Steve 0
/eco reset <player>Reset to the starting balance/eco reset Steve
/baltopWealth leaderboard/baltop 2 (page 2)
/worthCheck an item's value/worth diamond_block
/setworth <item> <price>Set an item's value/setworth diamond 500

Advanced Economy Features

Player Market (Auction House)

You can add an auction/market system so players can trade with each other:

yaml
# AuctionHouse config.yml
general:
  tax: 5
  max-listings-per-player: 10
  listing-fee: 50
  expire-time: 48h
  min-price: 1
  max-price: 1000000
  blacklisted-items:
    - BEDROCK
    - BARRIER
    - COMMAND_BLOCK

Banking System

EssentialsX ships with built-in bank support. Players can deposit money and earn interest:

yaml
# EssentialsX config.yml — Bank settings
bank:
  enabled: true
  max-bank-balance: 50000000
  interest:
    enabled: true
    rate: 2.5
    interval: 1440  # minutes (24 hours)
    max-payout: 10000

Troubleshooting

Vault cannot find an economy provider

This error usually comes from the plugin load order. Check in server.log that Vault is loaded before EssentialsX. Restarting the server generally fixes it.

Balance synchronisation problems

To keep balances in sync across every server on a BungeeCord network, use EssentialsX's MySQL storage mode:

yaml
# EssentialsX config.yml
storage:
  type: mysql
  mysql:
    host: 127.0.0.1
    port: 3306
    database: essentials
    user: essentials
    password: 'strong-password'