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 Oct 26, 2015Hey, im using citisens NPCs with this plugin and everytime I reload the shops reset! Please help.
-
View User Profile
-
Send Message
Posted Oct 26, 2015@blablubbabc
Tested and works! Thank you very much!
-
View User Profile
-
Send Message
Posted Oct 25, 2015v1.65 for MC 1.7.x, 1.8.x
@codiaz
Please try again. I think it didn't work for you because you where running it with a newer version of WorldGuard? WorldGuard 6.1 doesn't seem to be API compatible here, so I updated Shopkeepers to require WorldGuard 6.1 now, and it seemed to work then. I also added the mentioned setting, but I didn't test it yet.
-
View User Profile
-
Send Message
Posted Oct 25, 2015@blablubbabc
Euhm XD This kinda does not help at all XD This only made it possible to create shops in regions where they could not build, but do want to create a shop :P Nice update tho, would only like a config option like you mentioned :P (where they can only create a shop if the flag is set)
EDIT:
BTW it doesn't seem to work? I set the flag allow shop to true, and I still could not create a shop.
So I thought maybe my code was wrong, so I tested it but no, so I tested your code and it should give back true, Idk if it does but I know it does not create a shop :P
Maybe a suggestion, have you added worldedit as dependency?
-
View User Profile
-
Send Message
Posted Oct 23, 2015v1.64 for MC 1.6.2, 1.7.x, 1.8.x
Players should now also be allowed to place a shopkeeper if the region they are in has WorldGuard's ALLOW_SHOP flag set (regardless if they can build in that region). However, in order for players to provide the supplies for their shopkeeper they will still require chest access. So make sure that your WorldGuard region also has the appropiate flags set to allow that.
@codiaz
Please let me know if this works as intended: If this successfully allows players to setup and use player shops in 'market regions' with (pre-setup chests) where they are not allowed to build normally.
Edit: However, players will still be able to create shops outside of your town with this update! In order to not break old behavior, the change with this update is that players will be allowed to create shops not only in regions where they are allowed to build (old behavior) but also where the allow-shops flag is set.
Maybe it might be a good idea to add another setting for your suggested scenario: not allowing players shops, except if the allow-shop flag is set ..
-
View User Profile
-
Send Message
Posted Oct 23, 2015WorldGuardHandler needs instead of the canbuild boolean this:
WorldGuardPlugin wgp = (WorldGuardPlugin) plugin; if (!wgp.getRegionManager(player.getWorld()).getApplicableRegions(loc).allows(DefaultFlag.ENABLE_SHOP)) return false; return true;
Well... that is the code to make it work so they cannot make shops if the flag is not set 2 true... But I srrsly never worked with maven, and I don't understand NMS, yet! So I can't change it or build the plugin D:
I hope an update for this comes soon, I really want to enable player shops for their own, but not outside my small town :)
-
View User Profile
-
Send Message
Posted Oct 15, 2015@ZwPBerserk
Maybe some other plugin is preventing them from spawning. You could turn on debug mode and check if it prints anything useful to the console once the shopkeepers should get loaded / once the chunk in which they are are loaded.
Also make sure that the bypass-spawn-blocking setting is set to true in the config.
And make sure that you didn't rename your world.
-
View User Profile
-
Send Message
Posted Oct 15, 2015Hey,
My shopkeepers stopped appearing. In the config the coords look fine but I cant see the villagers.
Anything I have to do to make them show again?
Gr,
-
View User Profile
-
Send Message
Posted Oct 7, 2015@DuckweedVN
If this is about the shopkeeper accepting any pumpkin regardless of the item lore: i think there is a setting 'strict item comparison' or something like that. Alternatively, on minecraft 1.8 you don't have this behavior.
-
View User Profile
-
Send Message
Posted Oct 6, 2015@blablubbabc
Thanks for the reply. Oh no we can use it . Sorry , I did not make one video details, you can review here: https://www.youtube.com/watch?v=9Z365BQRT0s . But if can't group items will not happen any errors .
-
View User Profile
-
Send Message
Posted Oct 6, 2015@DuckweedVN
I assume that the first time you try to trade, you are using some click-combination which is blocked by shopkeepers, because it can cause item-duplication bugs in certain situations.
The diamonds which you see in your inventory are not really there: The client thinks the trade succeeded and assumes that you got those diamonds, but on the server the trade was interrupted and you didn't really receive those diamonds (and should not be able to use them, like drop them, etc.). After some time or some inventory interactions the diamond stack gets updated to the correct amount. I don't think I can prevent this 'temporary visual glitch'..
The second time you are using a click-combination which is not blocked and you get the correct amount of diamonds, if I saw it correctly.
-
View User Profile
-
Send Message
Posted Oct 6, 2015The shopkeeper is a great plugin but In my server bug diamond players accused by shopkeeper . I have filmed a video specifically about this : https://www.youtube.com/watch?v=8hnFwc7tZx4 . Help me please: (
-
View User Profile
-
Send Message
Posted Oct 5, 2015@xCaptMorganx
There is a setting for this. I agree, that it might be a good idea to change the default value for this setting to 'false' though.
-
View User Profile
-
Send Message
Posted Oct 5, 2015Is this supposed to turn off regular-vanilla trading with NPC's? With this plugin installed, it's no longer possible to conduct regular trading with server bred NPC's - right-click and the vanilla trading interface does not open. Trading can only be done via the plugin and manually spawned shopkeepers. Remove the plugin and vanilla trading can once again commence.
Spigot, 1.8.8.
Thanks- let me know if you require any further information..
-
View User Profile
-
Send Message
Posted Sep 29, 2015@blablubbabc Thanks you very munch and remember this : YOU ARE THE BEST
-
View User Profile
-
Send Message
Posted Sep 29, 2015@Hugi21
Check out the source code of shopkeepers here.
@CloudeLecaw
It looks like HideItemAttributes is outdated. It tries to modify parts of the outgoing trading packet(s) which no longer exists / were changed in newer minecraft versions.
-
View User Profile
-
Send Message
Posted Sep 29, 2015Hi I make a plugin and I need how to custome villager's trade. I have tried to use an Api but this is not update for 1.8 can you give me the class where you change trades thank you to anvance. Hugi21
-
View User Profile
-
Send Message
Posted Sep 28, 2015@IKFFxRaPzZ
Try turning on debug mode , then right click the villager once and check the server console log if it prints anything useful. In case some other plugin is blocking interaction with the shopkeeper, try setting 'bypass-shop-interaction-blocking' to true in the config.
-
View User Profile
-
Send Message
Posted Sep 28, 2015whenever i create a shopkeeper, i cant edit it, i crouch and right click but nothing happens
-
View User Profile
-
Send Message
Posted Sep 23, 2015@codiaz
I am currently not working on any uppdate, nope. You can find shopkeepers on github in case you decide to add some feature and create a pull request for it.
However, I cannot guarantee that it gets included into shopkeepers right away, because I will still have to verify it, check if it's reasonable to add and that it's not breaking any old features, or if I can think of a better way of doing it.
So in case you decide to write a pull request, try to keep changes small and related to the pull request.