Get your free server today! View Plans →
Home Plans Blog About Contact Panel Join Discord
Minecraft

Building a Minecraft economy with Vault and EssentialsX

Build a real in game economy on your Paper or Spigot server using free plugins. Currency, balances, player payments and working shops, explained step by step.

Building a Minecraft economy with Vault and EssentialsX

By the end of this guide you'll have a working in game economy on your Paper or Spigot Minecraft server. Players will be able to earn money, check their balance, pay each other, and buy or sell items at shops. This is written for anyone running a survival or SMP server who wants a real currency without paying for a premium plugin.

The setup uses three pieces: EssentialsX (which holds the actual money and runs the commands), Vault (which lets other plugins read those balances), and a shop plugin so players have something to spend their coins on. All three are free, and the whole thing takes about twenty minutes if you go step by step.

How Vault fits into the picture

It helps to understand what each plugin actually does before you start dropping jar files into a folder. A common mistake is thinking Vault is the economy. It isn't. Vault stores no money at all.

Vault is a bridge. It sits in the middle and gives every other plugin one shared way to ask questions like "how much does this player have" or "take 50 coins from this player." Without Vault, a shop plugin would need custom code for every economy plugin on earth. With Vault, the shop just talks to Vault, and Vault talks to whatever economy you installed.

EssentialsX is the part that holds the money. It's the economy provider. When a shop charges a player, the chain looks like this:

Shop plugin asks Vault to take money. Vault forwards the request to EssentialsX. EssentialsX updates the player's balance.

So you need both. EssentialsX to store and manage the cash, Vault so your shops and other plugins can reach it.

Step 1: Install Vault and EssentialsX

You'll need three jar files to begin. Grab the latest builds of each one. EssentialsX comes as a few separate downloads, and the main one is called EssentialsX. The economy lives inside that main jar, so you do not need a separate economy add on.

Stop your server first. Then upload all the jars into the plugins folder. If you're on a panel like the one at panel.bytte.cloud, open the file manager, go into plugins, and drag the files in. Over SFTP it's the same idea:

plugins/
  Vault.jar
  EssentialsX-2.20.1.jar

Now start the server back up. Watch the console as it boots. You're looking for lines that confirm both plugins loaded:

[Server thread/INFO]: [Vault] Enabling Vault v1.7.3-b131
[Server thread/INFO]: [Essentials] Enabling Essentials v2.20.1
[Server thread/INFO]: [Vault][Economy] Essentials found: Loaded

That last line is the one that matters most. It means Vault detected EssentialsX as the economy provider and hooked into it. If you see it, the hard part is done.

Step 2: Confirm the economy is actually working

Don't trust the startup log alone. Test it live. Join your server and run:

/balance

You should get something back like Balance: $0.00. If you set a starting balance (next step), it'll show that amount instead. As an operator you can also confirm Vault picked an economy with:

/vault-info

Look for an Economy line that names Essentials. If it says no economy is loaded, jump to the troubleshooting section, because nothing else will work until that's fixed.

Step 3: Learn the core money commands

EssentialsX gives you a handful of commands that cover almost everything. Here are the ones you'll use constantly.

CommandWhat it doesWho uses it
/balanceShows your own moneyEveryone
/balance SteveShows another player's moneyStaff (needs a permission)
/pay Alex 100Sends money to another playerEveryone
/eco give Steve 500Creates money and gives it to a playerAdmins only
/eco take Steve 200Removes money from a playerAdmins only
/eco set Steve 1000Sets a player's balance to an exact numberAdmins only
/baltopShows the richest playersEveryone

The difference between /pay and /eco give trips people up. /pay moves money that already exists from one player to another. /eco give mints brand new money out of nothing, which is why only admins should have it. Use /eco give for things like staff rewards or fixing a mistake, not for everyday play.

Step 4: Set a starting balance for new players

By default everyone joins with zero coins, which makes the first few hours boring. Give new players a small float so they can buy a starter tool or two. Open the EssentialsX config file at plugins/Essentials/config.yml and find the starting-balance line:

starting-balance: 100

Set it to whatever feels right for your server. A hundred coins is sensible if a stack of cobblestone sells for a coin or two. While you're in that file, you can also rename the currency and pick its symbol:

currency-symbol: '$'
minimum-pay-amount: 0.001
max-money: 10000000000000

Save the file, then reload Essentials so the change takes effect without a full restart:

/ess reload

Existing players keep their current balance. Only people joining for the first time after this change get the starting amount.

Step 5: Add shops so money has a purpose

An economy with nothing to buy is just a number. You have two main ways to add shops, and most servers end up using both.

Option A: EssentialsX sign shops

Sign shops are built into EssentialsX, so there's nothing extra to install. You place a sign, write a few lines on it, and it becomes a working shop. Here's the format for a sign that sells dirt:

[line 1] [Buy]
[line 2] 64
[line 3] 10:5
[line 4] dirt

That sign sells 64 dirt for a buy price of 10 and a sell price of 5. The third line is buy price then sell price separated by a colon. To make these signs work, a player (or admin) needs the right permission:

essentials.signs.buy.create
essentials.signs.sell.create
essentials.signs.use

And you have to enable the sign types in config.yml. Find the enabledSigns section and make sure buy and sell are listed:

enabledSigns:
  - buy
  - sell
  - trade

Sign shops are great for a central server store run by staff. They're a bit clunky for player run shops because every item needs its own sign.

Option B: QuickShop for chest shops

For player shops, a chest shop plugin is much nicer. QuickShop (the Hikari or Reremake fork) lets a player point at a chest, set a price, and instantly have a shop. Drop the jar into plugins and restart. On first boot it creates its own config and confirms it found Vault:

[QuickShop] Selected economy bridge: Vault
[QuickShop] Economy provider: Essentials

To create a shop, a player holds the item they want to sell, left clicks a chest, and types a price in chat when prompted. Done. The chest now shows the item, the price, and how many are in stock. Buyers right click the chest to purchase.

Admin shops versus player shops

This is an important distinction. A player shop draws from a real chest with real items, and the money goes to that player. When the chest runs empty, the shop stops selling. A player shop is limited by actual stock, which keeps the economy honest.

An admin shop has unlimited stock and never runs out. Money spent there vanishes from the economy instead of going to a person, and money earned there appears from nowhere. In QuickShop, a staff member with quickshop.create.admin can convert a shop to admin mode. Use admin shops carefully. Too many of them flood the server with cash and cause inflation. A good rule is to use admin shops only for a few core items players cannot easily produce, and let player shops handle the rest.

Step 6: Hand out the right permissions

If you run a permissions plugin like LuckPerms, you'll want to give your default group the basic economy nodes and reserve the powerful ones for staff. A sensible starting set for normal players looks like this:

/lp group default permission set essentials.balance true
/lp group default permission set essentials.pay true
/lp group default permission set essentials.baltop true
/lp group default permission set quickshop.create.sell true
/lp group default permission set quickshop.create.buy true

And the admin only nodes, which you should keep off the default group:

essentials.eco          (covers /eco give, take, set)
essentials.balance.others
quickshop.create.admin

Without a permissions plugin, EssentialsX falls back to giving operators everything and regular players the basics, which works for a tiny server but gets messy fast. We'd recommend LuckPerms once you have more than a few people.

Troubleshooting

A few problems show up again and again. Here's how to clear the common ones.

No economy found, or "Vault found no economy provider"

This is the big one. It almost always means EssentialsX failed to load before Vault checked for it, or it didn't load at all. Check your console for an Essentials error during startup. Common causes are a Java version that's too old for the EssentialsX build you downloaded, or a corrupted jar from an interrupted upload. Re-download the jar, make sure your server's Java matches what EssentialsX needs, and confirm both Vault and EssentialsX sit directly in plugins and not in a subfolder. Restart fully rather than reloading, because a reload won't re-hook the economy.

Shop prices not saving

If sign shop or QuickShop prices reset or vanish after a restart, the usual culprit is file permissions on the data folder. The server process needs write access to plugins/QuickShop or the EssentialsX userdata. On a Linux box, check ownership and fix it if the panel user can't write there. Also make sure you're stopping the server cleanly with /stop or /end so plugins get a chance to save. Killing the process can drop unsaved shop data.

"You do not have permission" on a command that should work

Permission node typos are everywhere. Double check the exact node, since essentials.balance and essentials.balance.others are two different things. If a player can check their own balance but not someone else's, they're missing the .others node. After changing permissions in LuckPerms, run /lp sync or have the player rejoin so the change applies.

Money shows as a weird symbol or the wrong currency name

If your currency symbol renders as a box or question mark, the config file was probably saved in the wrong encoding. Save config.yml as UTF-8 and stick to a plain symbol like $ if you keep hitting trouble. Run /ess reload afterward.

/pay says a player has no account

EssentialsX only creates a money account the first time a player joins after the economy is active. If someone played before you installed it, have them log in once and the account appears. You can force it with /eco set Steve 0 while they're online.

Where to go from here

You now have a currency, working commands, a starting balance for newcomers, and shops where coins actually mean something. The next things worth adding are a way to earn money beyond trading, like job or mob bounty plugins, and a quick rules sign in spawn explaining how the shops work. Keep an eye on your admin shops in the first couple of weeks, since that's where most economies go wrong. Start prices a little high, watch what players actually trade, and adjust from there. A balanced economy is something you tune over time, not something you set once and forget.

Common questions

Do I need both Vault and EssentialsX for an economy?

Yes. EssentialsX stores and manages the money, while Vault acts as a bridge so shops and other plugins can read those balances. EssentialsX provides the economy, and Vault on its own holds no money at all.

Why does Vault say no economy provider was found?

It usually means EssentialsX failed to load or loaded after Vault checked. Confirm both jars are directly in the plugins folder, your Java version matches the EssentialsX build, and do a full restart instead of a reload.

What is the difference between /pay and /eco give?

/pay moves money that already exists from one player to another. /eco give creates brand new money out of nothing, so only admins should have access to it.

What is the difference between an admin shop and a player shop?

A player shop draws from a real chest with real stock and pays the owner. An admin shop has unlimited stock, so money spent there leaves the economy and money earned there appears from nowhere. Use admin shops sparingly to avoid inflation.

How do I give new players starting money?

Open plugins/Essentials/config.yml, set the starting-balance value to an amount like 100, then run /ess reload. Only players joining for the first time after the change receive it.

ML
Marcus Lee
Infrastructure Lead at Bytte.cloud

Part of the Bytte.cloud team. We run game servers, bots and websites for a living, and we write these guides from what we see day to day in support and on our own servers.

Want to try this on real hardware?

Bytte.cloud has free plans for game servers, bots and websites. No credit card, set up in seconds.

Start for free See the plans