Shopkeepers

Set up custom villager shopkeepers that sell exactly what you want them to sell and for what price. You can set up admin shops, which have infinite supply, and you can also set up player shops, which pull supply from a chest.
It will also prevent any other trades with non-shopkeeper villagers, if you want it to.
For those who are simply looking for a convenient way to modify the trades of vanilla villagers (as an alternative to using complex Minecraft commands), the plugin also includes a graphical editor for regular villagers and wandering traders.
Basic Features
- Easily create villager shopkeepers that trade the items you want them to trade.
- Admins shops with infinite supplies.
- Player shops which pull supplies from a chest.
- Different types of player shops: selling, buying, trading, and selling books.
- Various supported mob types to represent your shopkeeper, sign shops, and Citizens (NPC) shops.
- Editor for regular villagers and wandering traders.
- Many configuration options.
- Translatable messages.
- Open source (Source code on GitHub)
Supported server versions
Shopkeepers supports the latest versions of Bukkit / Spigot.
Note that this plugin is created to work with CraftBukkit (or alternatively Spigot). Bukkit does not have an API for some of the things necessary to make this plugin work. This means that other server software (Tekkit, Forge, Cauldron, etc.) will not work with this plugin.
Other CraftBukkit or Spigot derivatives/forks might work, but are not officially supported. So if you run into issues while using those, try to reproduce your issue on a fresh and up-to-date Spigot server first.
Getting started
All documentation can be found in the wiki:
- Downloads and changelogs for all files
- Installation
- Translations
- Configuration
- Permissions
- Creating shops
- Commands
- Frequently Asked Questions
Showcase
Admin shops:
Configure the trades via the in-game inventory menu:

Resulting trading menu:

Player shops (ex. selling items):
Fill the shop chest with supplies:

Configure the trades via the in-game inventory menu:

Resulting trading menu:

Video Tutorials
More video tutorials can be found in the wiki: https://github.com/Shopkeepers/Shopkeepers-Wiki/wiki/Video-Tutorials
Tutorial by Donnie, explaining the setup of the different shop types:
Tutorial by Fan Staaff showing the setup of the different shop types in detail:
Tutorial by LastKing2X,showing the setup of the different shop types:
Spanish tutorial by Ajneb97, also mentioning placeholder items and various config options:
Statistics
This plugin uses bStats to collect anonymous plugin usage statistics. This helps me to determine how many servers are using the plugin, which Minecraft versions it is used with the most, and to which degree the different features are used.
Here is a list of all currently tracked information:
- Common information: The number of servers using the plugin, the number of players on these servers, online mode, Minecraft version, plugin version, core count, system arch, operating system, server country, Java version.
- Shopkeepers specific information: Whether specific related plugins are used (Citizens, Towny, WorldGuard, Gringotts, other Vault economy plugins), number of shops, whether player shops are used, whether certain features are enabled in the config (ex. WorldGuard/Towny compatibility, Citizens shops, delayed saves, colored names, chest protection, removal of inactive shops, tax rate, strict item comparison, purchase logging, disabling of other villagers, ..), the number of worlds containing shops.
- All information can be publicly viewed here: https://bstats.org/plugin/bukkit/Shopkeepers/
If you want to disable bStats for all plugins on your server, edit the file plugins/bStats/config.yml, or alternatively disable it only for Shopkeepers by setting 'enable-metrics' to 'false' inside the Shopkeepers config.
Known potential issues
A list of known potential issues of the latest version of Shopkeepers can be found in the wiki: This documents differences between Minecraft/Spigot versions, and existing Minecraft/Spigot issues related to Shopkeepers.
If you run into an issue, check if this list already contains and maybe offers information on how to handle it.
Have issues or further questions?
If you have a pressing issue or simple question, you can join the discord server and ask other plugin users for help:
But submitting a ticket is the best way to get help or report a problem with the plugin.
Before submitting a ticket:
- Check if your question is already answered in:
- The documentation (wiki).
- The FAQ.
- The Known Issues.
- Check if there is already another ticket for your issue.
Before reporting an issue:
- Try to reproduce your issue when using:
- The latest versions of Spigot and Shopkeepers.
- No other plugins.
- No kinds of other server or client mods.
When reporting an issue:
- Provide the versions you are using of Minecraft, Spigot and Shopkeepers.
- Provide a detailed description of your problem and add as much information as possible which could help reproducing the issue.
- If possible, include step-by-step instructions on how to reproduce the issue on a fresh Spigot server.
Donations
If you like this plugin, consider supporting its developers by making a donation:
- To blablubbabc (current maintainer: Dec 2013 - today)
- To nisovin (former author: Aug 2012 - Dec 2013)
A big "thank you" to everybody who is keeping the motivation up through donations!
| Minecraft-Servers-Listing.com | TRS Game Servers | terminalserver.us |
| Minewind | mercurialmusic | timitimitimi |
| FatherWh0 (merchantvillages.com) | lukeeexd (tws-mc.com) | PapaJuan |
| EmeraldHaze (Ninjalette) | Espen | kbtalkin |
| Dimo (Beyond Vanilla) | RefugiaCraft | Frilioth |
| Tabletopcheese | Observant Minecraft Server | Ren B. |
| BadWolfMC | Michael M. | Alejandro A. |
| Michael B. |
Want to help?
Whether you are a programmer or not, there are many ways in which you can contribute! For example:
- Help users with issues and questions on Github, Discord, or the comment section.
- Create and update translations.
- Keep the documentation (the wiki) up-to-date with plugin updates.
- Write or maintain add-on plugins (see the open Github issues).
If you are interested or have other ideas on how you can contribute, feel free to contact me via PM.
Add-On Plugins
Sometimes, a feature is either to specific to include directly into the Shopkeepers plugin, or I did not yet have the time to add something similar myself. You can find a list of both official and third-party add-on plugins that extend the functionality of the Shopkeepers plugin in the wiki: https://github.com/Shopkeepers/Shopkeepers-Wiki/wiki/Add-On-Plugins
If you have also written an add-on plugin that you want to add to the list, let me know!

-
View User Profile
-
Send Message
Posted May 14, 2016Loved this plugin - in the past back using 1.7.10 - 1.8. This is the best shop plugin (a classic) Going to try this with Gringots + HeadHunter + Spigot 1.9.2 / 1.9.4
Any chance HEADS included in the item list ???? (can't remember if there was a reason heads couldn't be used)
Congrats and thank you for updating / maintaining this ..............
-
View User Profile
-
Send Message
Posted May 11, 2016@franticTech
You could let the default config regenerate and see if it works then.
If you can't figure out the issue, please create a ticket and attach your config there.
-
View User Profile
-
Send Message
Posted May 10, 2016Amazing Plugin been using it for a long while. With the current version I can't create player entity shops. I don't know why? I can only select the sign shop which doesn't really suit my needs. What am I missing? I have all the same permissions that I had back on 1.9 but updated the config to the current and feel like I am most likely overlooking the setting I need.
-
View User Profile
-
Send Message
Posted May 10, 2016@Liphian1
Curse stuff first has to approve the file, before it becomes publicly visible.
You can however subscribe to file updates (see the 'Subscriptions' tab), that way you will get a notification together with a download link whenever I upload a new file in the future.
-
View User Profile
-
Send Message
Posted May 10, 2016@blablubbabc
Is the new version ready for download yet?
-
View User Profile
-
Send Message
Posted May 10, 2016@Liphian1 @efektPL @frizzbee30
v1.73 for MC 1.9.x, 1.8.x, 1.7.10
-
View User Profile
-
Send Message
Posted May 10, 2016@Liphian1
Might be spigot itself, as it has just gone live, no doubt a few quick patches will follow :) if not I'm sure the dev will push an update very soon :)
edit Like Minecraft 1.9, this release is not protocol compatible with previous versions, great fun! :P
-
View User Profile
-
Send Message
Posted May 10, 2016@Liphian1
can confirm + server logs:
-
View User Profile
-
Send Message
Posted May 10, 20161.9.4 breaks the plugin (shows up as red in /plugins)
-
View User Profile
-
Send Message
Posted May 2, 2016@blablubbabc
No problem. Im my case the Problem is, that there is no posibility to place the Shopkeeper away form the chest while using the command. Therefor the version with the Spawnegg is a much better one in the cases of shop design and usability.
The command-solution is a simple and easy way to keep the system running whilst the issue with spawneggs isn't fixed, but the eggs are much more convinient in the way we use the plugin.
-
View User Profile
-
Send Message
Posted May 2, 2016@derFlo1909
Could you explain the issue to me? Creating player shopkeepers via command is as easy as:
Optionally you can use the command arguments to create different shops. Ex. to create a buying shop instead: '/shopkeeper buying'. Or to create a normal selling shop with a cow: '/shopkeeper cow'. Or a buying shop with a cow: '/shopkeeper buying cow'. Etc.
-
View User Profile
-
Send Message
Posted May 2, 2016@papaguii
Hey, I'm having the same issue. Could you explain how you got that fixed?
Tanks! :)
-
View User Profile
-
Send Message
Posted May 1, 2016@papaguii
I am not completely sure what issue you have, but apparently you have solved it somehow yourself.
Regarding creating player shops via commands: You have to enable that first in the config ('create-player-shop-with-command') and then target a chest while performing the command. It should then tell you what went wrong.
If you still have any issues or are convinced of any inconsistencies in the commands, please create a ticket for each of your issues with as many details as possible (what you are doing step by step, what you expect to see, what you see instead).
-
View User Profile
-
Send Message
Posted May 1, 2016I am using Spigot 1.9.2 with this plugin, right clicking looking to the sky doesnt do anything with the item set in the config, also the help menu doesnt tell me how to use the commands, dont tell me the shop types, and appear to be showing the arguments in the wrong order, when I create a villager, I have to type /shopkeeper villager or /shopkeeper doesnt matter what I wirte after that its pretty much the same command that spawns an admin villager shop, without a chest, I am trying to create players shop, even using /shopkeeper sign aiming to the chest it doesnt count the chest and just act as an admin shop. How do I create players shop?
EDIT
I noticed you posted an update I will try it and see if it fixes my problems, I might be just confused, I am pretty sure I was able to create players stores once, but now the command seems to not work anymore. Thank you very much! This plugin is great!
EDIT
Apparently my problem could be related with a setting simulate-right-click-on-command: I got it fixed.
-
View User Profile
-
Send Message
Posted May 1, 2016v1.72 for MC 1.9.x, 1.8.x, 1.7.10
This update contains a change, which might require you to update your permissions.
-
View User Profile
-
Send Message
Posted Apr 26, 2016@boushwa
I was more a comparison of using the virtual chest vs using a 'real' chest placed in the world. With the chest being in the world, an admin would have to link it,and the plugin would have to protect the chest (similar to player shop chests), and maybe react to admins changing the chest contents. However, shopkeepers wouldn't have to store the contents itself in the save file then.
They would see the trades for which the stock had enough items for when they opened the trading window. Similar to the trading window of player shops.
One could also have multiple commands: One for viewing (and maybe even modifying) the currently remaining stock (/shopkeeper stock). This could maybe also be available for players to access their player shop chest via command. And one for viewing and editing the stock-refilling ('/shopkeeper stock source' or similar..). And then '/shopkeeper stock refill' (or 'refresh') to manually refresh the stock, and '/shopkeeper stock rate 24' or similar to set the refresh rate in hours.
-
View User Profile
-
Send Message
Posted Apr 26, 2016@blablubbabc
If the chest solution could work out, there is no preference as to opening a virtual chest based on a command or button click. Whichever is easiest and works best.
I would assume viewing the contents of the chest should show the stock which automatically gets refilled if it is for an admin's eyes only and then when a player clicks the actual shopkeeper then they can see what is actually the current remaining stock - could it potentially work like that?
-
View User Profile
-
Send Message
Posted Apr 26, 2016@boushwa
I would really prefer the 'limit number of trades' option currently (instead of limiting the number of items), because detecting how many items were actually traded is currently not that trivial as it seems, due to all the different inventory clicking actions the player can perform. That's one reason why for player shops there are certain special clicks (shift clicking, etc.) prevented, because there it matters to know how many items were actually traded.
However, I can see if I am maybe able to improve the 'traded items'-detection to calculate the amount of traded items depending on the used clicking action, the clicked item, the current items on the cursor, etc. Which would also be required to properly log trades, and it would maybe allow lowering the player-shop restrictions.
So if that works out, then the chest solution would probably be most convenient. It could even be a virtual chest which opens via command or button click only. Not sure what is prefered.
However, would the chest display the shop's current remaining stock, or the stock which gets automatically refilled? The first would be needed to see how many items the shop has left, while the second would be needed to configure the shops total stock.
-
View User Profile
-
Send Message
Posted Apr 25, 2016@blablubbabc
Would it be easier to connect an admin shop to a chest and have the overall contents of the chest auto-replenish after a set number of hours/days?
-
View User Profile
-
Send Message
Posted Apr 25, 2016@boushwa
Setting it up per item/per trade might be difficulty to do via command currently. The trades don't have any persistent id currently, which would allow me to reference additional data like this with them (and I don't like trying to squize it into the current recipes data). I will have to refactor this part before something like this could be added.
Anyways, best you create a ticket for your request, including command recommendations or similar, so I don't lose track of it.