RysPlayerShops
Chest shops for Spigot 1.21+. Players put items in a chest, price them, and other players buy them.
Requirements
Trading is disabled if Vault or the economy plugin is missing.
Install
Config changes need a restart. Reload won't pick them up.
Making a shop
Place a chest, then put a sign on it:
[shop]
buy
Line 2 sets the direction and can be buy, sell, or dual. Leave it blank for buy.
Right-click the sign to open the manage screen. Click "Add stock" to open the chest and drop items in. Then click an item in the manage screen to set its price.
Items without a price don't show up for customers.
You can also use /shop create buy and then click a chest, if you don't want a sign.
Prices
In the pricing screen:
Bundle size is how many items move per trade. The price covers the whole bundle.
Commands
/shop (also /shops, /pshop)
/shop search {item} find shops selling or buying something
/shop top busiest shops on the server
/shop top profit ranked by profit instead
/shop menu browse the shop you're looking at
/shop manage manage your shop
/shop list list your shops
/shop info prices and stock
/shop create {type} make a shop without a sign
/shop additem {buy price} list the item you're holding
/shop removeitem {number} remove a listing
/shop buy {number} buy without the GUI
/shop sell {number} sell without the GUI
/shop open start trading
/shop close stop trading
/shop remove delete the shop you're looking at
additem also takes an optional sell price and bundle size after the buy price.
buy and
sell take an optional bundle count.
/shopadmin (needs rysplayershops.admin)
/shopadmin inspect shop details and ids
/shopadmin setadmin server shop: infinite stock, minted income
/shopadmin unsetadmin back to a normal shop
/shopadmin scan find shops whose chest is gone
/shopadmin repair delete broken shops (asks twice)
/shopadmin purge {player} delete a player's shops (asks twice)
/shopadmin diag shop counts, pending writes, memory
/shopadmin flush force pending writes to disk
/shopadmin audit path to the audit log
repair only deletes shops it can confirm are broken. Shops in unloaded worlds or chunks are listed but never touched.
Admin actions are logged to plugins/RysPlayerShops/audit.log
Permissions
rysplayershops.use trade with shops (default: everyone)
rysplayershops.create create shops (default: everyone)
rysplayershops.search shop search (default: everyone)
rysplayershops.teleport teleport from search (default: nobody)
rysplayershops.admin manage any shop (default: op)
rysplayershops.limit.5 own up to 5 shops
rysplayershops.limit.unlimited no limit (default: op)
The limit node takes any number. If a player has more than one, the highest applies.
Config
Storage
SQLite is the default and needs no setup. The database file is created in the plugin folder.
For a network, set the storage type to MYSQL and fill in the connection details in config.yml. MySQL needs a driver on the server classpath and hasn't been tested yet, so SQLite is recommended for now.
Shops
shops:
default-limit: 3
min-price: 0.01
max-price: 1000000.0
allowed-containers:
- CHEST
- TRAPPED_CHEST
- BARREL
require-container-ownership: true
lock-containers: true
allowed-containers can be left empty to allow any container.
require-container-ownership means a shop can only go on a chest the player placed. Turn it off and anyone can claim any unowned chest and sell what's inside it.
Note: placements are only recorded once the plugin is installed, so chests that already existed can't be claimed. Players need to break and re-place them.
lock-containers makes right-clicking a shop chest open the shop instead of the chest, including for the owner. Owners restock with the "Add stock" button. Set it to false for normal chest access.
Economy
economy:
buy-tax-percent: 0.0
sell-tax-percent: 0.0
Tax comes out of what the owner receives. The price a customer sees is what they pay.
Protection
protection:
enabled: true
Stops hoppers, explosions and pistons from getting at shop chests and signs.
Displays
displays:
enabled: true
show-text: true
text-height: 1.6
text-scale: 0.9
Floating shop name above each shop.
Land protection plugins
WorldGuard, Towny, Lands and GriefPrevention work without setup. A shop needs a chest the player placed, so if they can't build there, they can't make a shop.
Placeholders
Needs PlaceholderAPI. All start with rysplayershops_
shops shops owned
limit shop cap
slots_left shops remaining
listings priced listings
revenue money taken in
spending money paid out
profit revenue minus spending and tax
tax tax paid
transactions total trades
visitors unique visitors
balance player balance
total_shops shops on the server
So the full placeholder for shops owned is %rysplayershops_shops%
Money values are cached and refresh in the background. They show three dots until first loaded.
Common problems
Item doesn't show in the shop.
It has no price for the direction the shop trades. A sign with a blank second line makes a buy shop, so it needs a buy price. The manage screen marks anything customers can't see.
Can't make a shop on a chest.
You didn't place it, or it's older than the plugin. Break and re-place it.
"No economy plugin is available".
Vault or the economy plugin didn't load.
Right-clicking my chest opens a menu.
That's the lock-containers setting. Use "Add stock" or turn it off.
Sign went blank.
The shop was deleted. Place a new sign to make a new one.
Chest shops for Spigot 1.21+. Players put items in a chest, price them, and other players buy them.
Requirements
- Spigot or Paper 1.21+
- Java 21
- Vault and an economy plugin (EssentialsX, CMI, etc.)
- PlaceholderAPI (optional)
Trading is disabled if Vault or the economy plugin is missing.
Install
- Install Vault and an economy plugin.
- Put the jar in your plugins folder.
- Start the server.
- Edit plugins/RysPlayerShops/config.yml and restart.
Config changes need a restart. Reload won't pick them up.
Making a shop
Place a chest, then put a sign on it:
Code (Text):
[shop]
buy
Right-click the sign to open the manage screen. Click "Add stock" to open the chest and drop items in. Then click an item in the manage screen to set its price.
Items without a price don't show up for customers.
You can also use /shop create buy and then click a chest, if you don't want a sign.
Prices
In the pricing screen:
- Click the price to type an exact number in chat
- Use the plus and minus buttons for quick changes
- Shift-click the price to turn that direction off
Bundle size is how many items move per trade. The price covers the whole bundle.
Commands
/shop (also /shops, /pshop)
Code (Text):
/shop search {item} find shops selling or buying something
/shop top busiest shops on the server
/shop top profit ranked by profit instead
/shop menu browse the shop you're looking at
/shop manage manage your shop
/shop list list your shops
/shop info prices and stock
/shop create {type} make a shop without a sign
/shop additem {buy price} list the item you're holding
/shop removeitem {number} remove a listing
/shop buy {number} buy without the GUI
/shop sell {number} sell without the GUI
/shop open start trading
/shop close stop trading
/shop remove delete the shop you're looking at
/shopadmin (needs rysplayershops.admin)
Code (Text):
/shopadmin inspect shop details and ids
/shopadmin setadmin server shop: infinite stock, minted income
/shopadmin unsetadmin back to a normal shop
/shopadmin scan find shops whose chest is gone
/shopadmin repair delete broken shops (asks twice)
/shopadmin purge {player} delete a player's shops (asks twice)
/shopadmin diag shop counts, pending writes, memory
/shopadmin flush force pending writes to disk
/shopadmin audit path to the audit log
Admin actions are logged to plugins/RysPlayerShops/audit.log
Permissions
Code (Text):
rysplayershops.use trade with shops (default: everyone)
rysplayershops.create create shops (default: everyone)
rysplayershops.search shop search (default: everyone)
rysplayershops.teleport teleport from search (default: nobody)
rysplayershops.admin manage any shop (default: op)
rysplayershops.limit.5 own up to 5 shops
rysplayershops.limit.unlimited no limit (default: op)
Config
Storage
SQLite is the default and needs no setup. The database file is created in the plugin folder.
For a network, set the storage type to MYSQL and fill in the connection details in config.yml. MySQL needs a driver on the server classpath and hasn't been tested yet, so SQLite is recommended for now.
Shops
Code (Text):
shops:
default-limit: 3
min-price: 0.01
max-price: 1000000.0
allowed-containers:
- CHEST
- TRAPPED_CHEST
- BARREL
require-container-ownership: true
lock-containers: true
require-container-ownership means a shop can only go on a chest the player placed. Turn it off and anyone can claim any unowned chest and sell what's inside it.
Note: placements are only recorded once the plugin is installed, so chests that already existed can't be claimed. Players need to break and re-place them.
lock-containers makes right-clicking a shop chest open the shop instead of the chest, including for the owner. Owners restock with the "Add stock" button. Set it to false for normal chest access.
Economy
Code (Text):
economy:
buy-tax-percent: 0.0
sell-tax-percent: 0.0
Protection
Code (Text):
protection:
enabled: true
Displays
Code (Text):
displays:
enabled: true
show-text: true
text-height: 1.6
text-scale: 0.9
Land protection plugins
WorldGuard, Towny, Lands and GriefPrevention work without setup. A shop needs a chest the player placed, so if they can't build there, they can't make a shop.
Placeholders
Needs PlaceholderAPI. All start with rysplayershops_
Code (Text):
shops shops owned
limit shop cap
slots_left shops remaining
listings priced listings
revenue money taken in
spending money paid out
profit revenue minus spending and tax
tax tax paid
transactions total trades
visitors unique visitors
balance player balance
total_shops shops on the server
Money values are cached and refresh in the background. They show three dots until first loaded.
Common problems
Item doesn't show in the shop.
It has no price for the direction the shop trades. A sign with a blank second line makes a buy shop, so it needs a buy price. The manage screen marks anything customers can't see.
Can't make a shop on a chest.
You didn't place it, or it's older than the plugin. Break and re-place it.
"No economy plugin is available".
Vault or the economy plugin didn't load.
Right-clicking my chest opens a menu.
That's the lock-containers setting. Use "Add stock" or turn it off.
Sign went blank.
The shop was deleted. Place a new sign to make a new one.
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft version listed: 1.21
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
Ry's PlayerOwnedShops is a free Minecraft Java mod. Compatible with Minecraft 1.21. Downloaded 7 times (via Spigot). Download it and open it directly in the game.