For most Paper survival servers the answer is QuickShop-Hikari if you want shops that new players can make without reading anything, and ChestShop if you want a sign format that is explicit, compact and hard to misread. EssentialsX sign shops are fine for a spawn shop run by staff and weak as a player market. All three need Vault and exactly one economy provider underneath. The plugin choice matters less than three decisions around it: what the server itself buys, how shop chests are protected, and whether every sale leaks a little money out of the economy. Get those right and players will set prices for you; get them wrong and somebody's sugar cane farm becomes the central bank.
The economy layer itself - Vault, EssentialsX balances, worth.yml, command costs and database-backed providers - is covered in Minecraft economy with EssentialsX and Vault. This post starts where that one stops: the shops.
Three kinds of shop, and which one to pick#
Shop plugins differ less in features than in how a player makes a shop and how a buyer reads one.
| ChestShop | QuickShop-Hikari | |
|---|---|---|
| Make a shop | Write four sign lines | Hit a chest with the item, type a price |
| What buyers see | The sign text | A floating item and an info panel in chat |
| Storage | Signs and chests in the world | A database (local file by default) |
| Learning curve | Players must learn the format | Almost none |
| Admin shops | Admin Shop on line 1 | /qs unlimited on a shop |
EssentialsX sits in a different category. Its [Buy] and [Sell] signs are server shops with infinite stock, and its [Trade] sign is a player shop with no chest at all - the stock lives inside the sign. That makes Essentials signs good for a handful of staff-built shops at spawn and awkward for a market of fifty player stalls.
A practical rule: pick one player shop plugin and stick with it. Running ChestShop and QuickShop side by side works technically, but players then have to know two systems, staff have two sets of permissions to audit, and the price data you want for balancing is split across two places.
The other thing worth deciding early is whether you want a central market at all. Chest shops scattered across player bases are charming and almost useless as a market, because nobody walks twenty minutes to compare prices. Most servers that keep a living economy build a market district near spawn with protected plots, and QuickShop-Hikari's /qs find (search for nearby shops selling an item) helps in either layout.
What every shop plugin needs first#
None of these plugins store money. They ask Vault for whatever economy provider is registered and move balances through it. So before you install a shop:
- Install Vault (or the maintained VaultUnlocked if your plugin list asks for it - never both).
- Install exactly one economy provider. EssentialsX is the usual one.
- Restart and run
vault-infoin the console.
[Vault] Vault vX.Y.Z Information[Vault] Economy: Essentials Economy [Essentials Economy][Vault] Permission: LuckPerms [LuckPerms]If the economy line is empty, every shop plugin will either disable itself or load and then fail on the first transaction. If it names an economy you did not mean to install - some all-in-one plugins register one quietly - remove it, because two providers means /balance and the shop are reading different numbers.
The other prerequisite is permissions. Shop plugins split creation from use, and you almost always want them on different groups: everyone can buy, members who have played a while can create, and only one staff group can create admin shops. The LuckPerms guide covers group inheritance, which is where a moderator rank accidentally picks up an admin-shop node.
ChestShop: sign shops on chests#
ChestShop is the older of the two and still maintained. A shop is a sign placed on or next to a chest, and the four lines of the sign are the whole configuration:
Line 1: (leave blank - your name is filled in)Line 2: 16Line 3: B 20:12 SLine 4: Oak LogReading it line by line:
- Line 1 is the owner. Leave it blank and ChestShop writes your name.
- Line 2 is the quantity per transaction.
- Line 3 is the price.
B 20means a customer can buy 16 logs for 20.S 12means a customer can sell 16 logs to the shop for 12.B 20:12 Sdoes both. Usefreeinstead of a number to give items away. - Line 4 is the item. Write
?and ChestShop fills it in from the first item in the chest, which avoids most spelling problems.
Item names longer than a sign line are abbreviated. /iteminfo (alias /iinfo) with the item in hand prints the exact name ChestShop expects, including the code it uses for enchanted or renamed items.
By default a customer right-clicks the sign to buy and left-clicks to sell. REVERSE_BUTTONS in the config swaps them, which some servers do because left-click is also "break block" and new players trying to buy end up selling.
The spread on line 3 is your first anti-exploit check. A shop that sells for 12 and buys for 20 can be drained in a loop by anyone with money: buy at 12, sell back at 20, repeat until the owner is broke. Recent ChestShop builds can refuse such shops; check your generated config for an option that does, and teach players that the B number should always be the larger one.
ChestShop admin shops and config
An admin shop is a sign with Admin Shop on line 1, created by someone with ChestShop.admin. It has unlimited stock and unlimited money - it does not draw from or pay into any player's balance. The text is set by ADMIN_SHOP_NAME in the config.
The settings that matter for the economy live in plugins/ChestShop/config.yml. Key names below are from ChestShop 3.x; check your own generated file, since options are added between releases.
ADMIN_SHOP_NAME: Admin ShopSERVER_ECONOMY_ACCOUNT: ''TAX_AMOUNT: 5SERVER_TAX_AMOUNT: 0SHOP_CREATION_PRICE: 250SHOP_REFUND_PRICE: 0REVERSE_BUTTONS: falseWhat each of those does:
TAX_AMOUNTis a percentage taken from player shop transactions. Default 0. A few percent is the single most effective money sink you can add to a player market, because it scales with how much trade happens.SERVER_TAX_AMOUNTis the same for admin shop transactions.SERVER_ECONOMY_ACCOUNTnames an account that admin shop money and taxes go to. Left empty, money paid to an admin shop simply leaves the economy, which is usually what you want - a sink is a sink. Set it only if staff need a real treasury to spend from, and then treat that account's balance as a faucet you control.SHOP_CREATION_PRICEandSHOP_REFUND_PRICEcharge for making a shop and refund on breaking one. A creation fee with no refund is a one-off sink and discourages players from scattering dozens of junk shops.
Permissions follow the obvious pattern: ChestShop.shop.create.buy and ChestShop.shop.create.sell to make shops, ChestShop.shop.buy and ChestShop.shop.sell to use them, ChestShop.admin for admin shops and full access to other people's shops, and ChestShop.mod for staff who need to look inside shops without owning them.
QuickShop-Hikari: click a chest, type a price#
QuickShop-Hikari is the maintained fork of the QuickShop line, and it is the plugin to choose when you would rather not explain sign formats to every new player. Creating a shop is:
- Place a chest and stock it.
- Hold the item you want to sell and left-click the chest.
- Type the price per item in chat.
The plugin puts a sign on the chest and a floating display of the item above it. A new shop is in selling mode: customers buy from it. The owner switches it with /qs buy (the shop buys from customers) and back with /qs sell. Note that QuickShop's naming is from the shop's point of view, and ChestShop's B and S are from the customer's. Players moving between servers mix these up constantly.
| Command | What it does |
|---|---|
/qs price <amount> | Change the price of the shop you are looking at |
/qs buy / /qs sell | Switch the shop's mode |
/qs staff add <player> | Let another player restock and manage it |
/qs unlimited | Admin: infinite stock and money |
/qs find <item> | Find the nearest shop selling an item |
/qs remove | Remove the shop you are looking at |
/qs is an alias for /quickshop; the plugin also registers /shop, which collides with menu-shop plugins that use the same command. Check the alias list in its config if /shop opens the wrong thing.
Permissions: quickshop.use for anything at all, quickshop.create.sell and quickshop.create.buy to make each kind, and the umbrella quickshop.player that grants the ordinary player set. Keep the unlimited and admin nodes on one staff group.
Storage, displays and versions
Unlike ChestShop, QuickShop keeps its shops in a database: a local file database by default, or MySQL if you point it at one. On a single server the default is fine. If you would rather keep shop data next to your other plugin tables, the game plan's database slot works - MySQL for Minecraft plugins covers the connection details and table prefixes. Either way, shop data is now in two places: chests and signs in the world files, and shop records in the database. Back them up together, or a restore leaves shops pointing at chests that no longer hold what the database thinks they hold.
The floating display item deserves a look. Early QuickShop versions displayed it as a real dropped item, and real items are something hoppers, players and other plugins can sometimes pick up - historically a duplication source. Modern Hikari offers non-entity display modes; check which one your config uses and prefer the one that does not spawn an entity. It is also kinder to entity counts on a busy market, which matters if you already run entity cleanup that might try to remove "dropped items".
Hikari tracks recent Paper releases closely and has raised its minimum Java version over time. Match the plugin build to your server version from its download page, and update it as part of every version upgrade rather than afterwards.
EssentialsX signs: Buy, Sell and Trade#
EssentialsX ships signs as part of the base jar, but they only work for types listed under enabled-signs in plugins/Essentials/config.yml. Creating each type needs essentials.signs.create.<type> and using it essentials.signs.use.<type>.
[Buy] and [Sell] are server shops with infinite stock:
[Buy] [Sell]16 16oak_log oak_log$20 $12Line 2 is the amount, line 3 the item, line 4 the price. A [Buy] sign takes money and creates items; a [Sell] sign takes items and creates money. That second one is a faucet with no upper limit, and it deserves exactly the same caution as any admin shop - see the next section.
[Trade] is the player shop:
[Trade]$2016 oak_log:256(owner, filled in)Line 2 is what the customer pays, line 3 is what they receive and the total stock loaded into the sign, and line 4 becomes the owner's name when the syntax is accepted. Either line can be money or items, so a trade sign can sell for money, buy for money, or barter diamonds for logs. The owner restocks by right-clicking the sign with the item and collects takings the same way.
Trade signs have one real advantage - no chest, so nothing to break into or drain with a hopper - and two disadvantages. Buyers cannot see stock without clicking, and a market of trade signs gives you no searchable list of prices. For anything bigger than a few stalls, a chest shop plugin is the better tool. Essentials signs and a chest shop plugin coexist without trouble; many servers use [Buy] signs at spawn and QuickShop everywhere else.
Admin shops without printing money#
Every serious economy problem on a Minecraft server comes back to an admin shop that buys something. An infinite buyer at a fixed price turns any farmable item into money at a rate limited only by how many farms players build. Iron farms, gold farms, sugar cane, bamboo, kelp, melons and mob drops all qualify, and players are very good at building farms.
The safe pattern is an admin shop that mostly sells:
- Sell what players cannot make. Spawn eggs if you allow them, name tags, cosmetic blocks, elytra if your End is scarce. These are sinks: money leaves the economy and does not come back.
- Sell basics at a high price. An admin shop selling oak logs at 5 each sets a price ceiling. Players can undercut it, which is what you want, but nobody is ever stuck without logs.
- Buy only what cannot be automated, and cap it. If the server must buy something - say, to give new players an income - choose items that need active play, and price them low enough that it is a bootstrap, not a career.
- Never buy what you also sell. An admin shop that sells at 5 and buys at 6 is an infinite money loop. It sounds like an obvious mistake; it happens every time someone edits prices in two different plugins.
Player-to-player trade is the healthy middle of that picture. Money moves between balances without being created, and stock is finite because somebody had to gather it. The only way trade alone grows the money supply is through dupes, which is the next problem.
Stopping dupes before they reach a shop#
A duplication exploit on a server without a market is a nuisance. On a server with a market it is a counterfeit press: the duped items are sold to anyone who will buy them, and if an admin shop buys them, straight into new money. Most dupes fall into three groups.
Vanilla mechanics. TNT duplication, carpet and rail duplication with pistons, and bedrock breaking are all fixed or disabled on Paper by default. They come back if someone flips the switches in config/paper-global.yml:
unsupported-settings: allow-piston-duplication: false allow-permanent-block-break-exploits: false allow-headless-pistons: falseTechnical-minded communities sometimes ask for these. If you turn them on, do not have an admin shop that buys TNT, carpet, rails or anything they feed into.
Shop chest edge cases. A shop chest with a hopper underneath, a hopper minecart passing below, a second chest placed beside it to make a double chest, or a piston pushing the sign away. Modern versions of both ChestShop and QuickShop-Hikari handle the common cases, but protection plugins, region flags and other plugins all interact. Test it yourself as a second account before launch: try to open someone else's shop chest, break its sign, place a hopper under it, and run a hopper minecart beneath it. Land claims add a second layer - grief protection and anti-cheat covers GriefPrevention and WorldGuard.
Plugin bugs. Shop plugins, backpack plugins, custom-item plugins and auction houses have all shipped dupes at some point. Keep them updated, read changelogs for the word "dupe", and do not run abandoned forks.
When a dupe happens, evidence is what lets you fix it without a wipe. With CoreProtect installed, /co lookup u:<player> t:3d a:container shows what a player put into and took out of containers, and /co inspect on a shop chest shows its history. Combine that with EssentialsX's economy.log and you can usually see the exact moment items appeared and where the money went. Remove the items and the money from the accounts involved, rather than rolling the whole world back - a world rollback also undoes three days of honest trade.
Balancing a player economy#
Once player shops exist, most prices are set by players, and your job changes from setting prices to controlling the money supply around them. The levers, in order of usefulness:
- Tax every shop sale. A 3-5%
TAX_AMOUNTon ChestShop, or the equivalent tax setting in QuickShop-Hikari, removes money in proportion to activity. A busy economy pays more, a quiet one less, and you never have to re-tune it. - Charge to create shops. A one-off fee, refunded partly or not at all. It is a small sink and it keeps the market tidy.
- Limit shops per player. QuickShop-Hikari has a shop limit you can tie to permission groups; for ChestShop, land claim size is usually the effective limit. Unlimited shops per player encourages one person to corner a market with fifty chests.
- Keep admin shops as ceilings and floors, not markets. The admin sell price is the most anyone will pay; any admin buy price is the least anyone will accept. Leave a wide gap between them so players trade inside it.
- Make the income side boring and capped. Jobs, vote rewards and playtime payouts should give a new player enough to start, not enough to retire.
A worked example. Ten players, a starting balance of 100, no admin buy shop, a 5% tax on player shops and /home costing 10. Player-to-player trade moves money around and burns 5% of everything sold; teleports burn a steady trickle. Without any income at all, the money supply would slowly shrink and prices would fall - deflation is as bad as inflation, because nobody wants to sell. So add one faucet you control: a daily playtime reward, or a Jobs payout set low. Watch /baltop weekly. If the total keeps rising faster than the player count, cut the faucet; if it falls, raise it. That is the whole of central banking, and it works on a Minecraft server for the same reason it works anywhere: you adjust the one number you control and let the market sort out the rest.
Things that look like balancing and are not: editing every player shop price by decree, capping prices in config, or banning a player who got rich legitimately. Fix the faucet that made them rich and their wealth inflates away.
If you plan to sell anything for real money on top of this, read rank stores and the Minecraft commercial rules first; in-game currency sold for cash is exactly what the rules restrict.
Running shops on a hosted server#
On RE:NODE, Minecraft plans run Paper with the matching Java version, so the plugins above install as jar files uploaded through the file manager or SFTP into plugins/, followed by a restart. There is no one-click plugin installer and no list of allowed plugins - you bring the jars you want. Every game plan includes one database slot, created in the panel with its host, user and password generated, which is enough for QuickShop-Hikari's MySQL storage if you want it there. Backups run on demand or from the Schedules tab and restore with one button, which is how you take the single, consistent snapshot of world, plugin files and shop data that the warning above asks for - see backups in the guides.
Shops themselves cost little CPU. A busy market district costs more through the things around it: dropped-item displays, hopper chains feeding shop chests and the farms that supply them. If a market starts to lag, villager and mob farm lag is the usual cause rather than the shop plugin.
Troubleshooting#
The shop plugin disables itself at startup. No economy provider registered. Run vault-info; if the economy line is empty, look higher in the log for the economy plugin's own error.
A ChestShop sign stays as plain text. The format was rejected. Usually line 4 has an item name ChestShop does not recognise - use ? or the name from /iteminfo - or the player lacks ChestShop.shop.create.buy or .sell.
Customers sell when they meant to buy. Left-click versus right-click on ChestShop. Explain it on a sign at the market entrance, or set REVERSE_BUTTONS.
QuickShop asks for a price and nothing happens. The chat message was taken by a chat plugin or a pending command. Check that a chat formatting or anti-spam plugin is not cancelling the message before QuickShop sees it, and that the player typed only a number.
Essentials `[Trade]` sign will not accept stock. The item in hand does not match line 3 exactly, or trade is missing from enabled-signs.
A shop sells stock it does not have. Admin mode is on (/qs unlimited, or Admin Shop on a ChestShop sign). Check before blaming a dupe.
Prices are meaningless after a month. An admin shop is buying something farmable. Find it in economy.log - one item will account for most of the income.
FAQ#
Which is better, ChestShop or QuickShop-Hikari?
Neither is better at the economy; they differ in how players use them. QuickShop-Hikari is easier for new players and searchable with /qs find. ChestShop is more explicit, needs no database, and its signs show the full deal at a glance. Pick by your players, not by the feature list.
Do shop plugins work without EssentialsX?
Yes, as long as some economy provider is registered with Vault. EssentialsX is the common provider, but any Vault-compatible economy plugin works the same way from the shop's point of view.
Should the server run its own shop at all?
A small one that mostly sells, yes - it guarantees basics and sets a price ceiling. A server shop that buys farmable items at fixed prices is the most common cause of runaway inflation, so keep its buy list short or empty.
Can I move shops from ChestShop to QuickShop?
Not with a built-in converter that we can vouch for. The practical route is announcing a date, letting players empty their ChestShop chests, removing the plugin and letting them create new shops. Converting by hand is rarely worth the risk to stock.
How do I find out who duped items into a shop?
Block and container logging. CoreProtect's container lookups show what went into a chest and who put it there, and the EssentialsX economy log shows where the money went afterwards. Without logging installed before the dupe, you are guessing.


