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 Dec 13, 2015@blablubbabc
I understand.
So... I understand Citizens have his own way of saving itemstacks... I hope the feature will be add to the API.
Thank for your answer !
-
View User Profile
-
Send Message
Posted Dec 12, 2015@Almathy
Shopkeepers uses bukkit's/spigot's item serialization API for saving item stacks. This API currently does not work for custom player heads.
I don't want to try to implement and maintain my own way of saving itemstacks, when bukkit is already providing and maintaining that as part of their API (at least for all items except custom player heads..).
-
View User Profile
-
Send Message
Posted Dec 12, 2015@blablubbabc
Hello,
When I read that Shopkeeper can't save 'customs heads', I was sad because customs heads are powerful... But, I remember there is a plugin which can save custom head : NBTEditor. Maybe you could see how it works and do same ? This is just a suggestion, because how I've said sometimes, I love ShopKeeper, and I would love sell customs heads.
I hope I could help you with this 'flash' that I had.
-
View User Profile
-
Send Message
Posted Nov 28, 2015v1.67 for MC 1.7.x, 1.8.x
-
View User Profile
-
Send Message
Posted Nov 28, 2015@Zaohon
The villager names are validated against the regular expression found in the config. This regular expression defines which characters are allowed. So you would have to edit your regular expression in the config to also allow chinese characters.
I have not tested this, but you could try adding '\p{L}' to the regular expression. This should theoretically allow all characters of any language.
Or you can try adding 'p{IsHan}' or 'p{han}', one of those might allow chinese letters.
-
View User Profile
-
Send Message
Posted Nov 27, 2015Hey! Can change the name of villager to Chinese?
-
View User Profile
-
Send Message
Posted Nov 24, 2015v1.66 for MC 1.7.x, 1.8.x
The plan is to remove this restriction again once the bug has been fixed in bukkit/spigot.
A warning is printed to the console when a trade is skipped during saving.
-
View User Profile
-
Send Message
Posted Nov 21, 2015@Coldavior
Cauldron is not officially supported. I have never worked with it so i can't help much with issues.
-
View User Profile
-
Send Message
Posted Nov 21, 2015Everytime I click an item in the GUI Store, it automatically closes! idk why pls help
I'm using cauldron btw
The console says: [Shopkeepers] Closing inventory for ColdedPvP, because differen inventory was expected. Open inventory name: Chest
-
View User Profile
-
Send Message
Posted Nov 6, 2015@blablubbabc
Awesome, thanks. I haven't noticed it mentioned in any changelogs and I recalled it being removed a while back, figured I'd ask.
-
View User Profile
-
Send Message
Posted Nov 6, 2015@Jikoo_K
It should already work again.
-
View User Profile
-
Send Message
Posted Nov 6, 2015Any plans to re-add the configuration option player-shopkeeper-inactive-days? I only keep most player data (protections, etc.) for 6 months before a player is considered gone forever. It would be convenient to be able to enable similar behavior for Shopkeepers without requiring another plugin.
-
View User Profile
-
Send Message
Posted Oct 30, 2015@Bob1nz
If I remember it correctly, nobody receives the hiring costs. Also the /setforhire command is meant for admins only, so it should be exactly what you want.
-
View User Profile
-
Send Message
Posted Oct 30, 2015@blablubbabc
That could work.
Wouldn't that method also result in the admin who setup the shop receiving the money for hiring?
-
View User Profile
-
Send Message
Posted Oct 30, 2015@Bob1nz
Admins can also setup player-shopkeepers for themselves, so you could setup player-shopkeepers which can then be hired (though player's might need to have the permission to create citizens shopkeepers to be able to hire them, not sure right now). If you disable renaming of player npc shops (it's off already by default), npc shops should update their name (and by that their skin) when the owner changes.
@monkeycluffy1
The ender dragon shopkeeper should be disabled by default in the config (together with a bunch of other shop object types which don't properly work yet).
Shutdown your server, create a backup of the save.yml file in the shopkeepers plugin folder, and then open the save.yml file and search for 'ender_dragon' and then carefully remove the shopkeeper section which contains it from the save file.
If something goes wrong you can use the backup to try it again.
-
View User Profile
-
Send Message
Posted Oct 29, 2015question someone on my server shopkeepered then ender dragon and can not edit it or delete can u help
-
View User Profile
-
Send Message
Posted Oct 29, 2015Just curious.
Is there a way to create server owned shopkeepers that can be set for hire?
For example have some citizen NPC's in a shop around spawn that can be hired by the players (the NPC's will then take on the player that hires them skin)
The NPC would already be assigned to a chest for the player to dump their stuff in. I know I could just use another account to create the shopkeepers and ignore the money that gets paid to them but it would be nice to be able to do this if we can't already?
-
View User Profile
-
Send Message
Posted Oct 28, 2015@kopc0801
Nope.
-
View User Profile
-
Send Message
Posted Oct 28, 2015Hey! Is there support for the Cauldron?
For this issue http://dev.bukkit.org/bukkit-plugins/shopkeepers/tickets/289-shop-closes-after-clicking-an-item/
-
View User Profile
-
Send Message
Posted Oct 27, 2015@Toastisgood
Make sure that you saved the citizens npcs via the /citizens save command before reloading. And make sure that you are not using custom player heads in your shopkeeper trades, because there exists a spigot bug which causes saving of the shopkeepers to fail.