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 Jun 8, 2016Update to 1.10 :)
[04:18:27] [Server thread/INFO]: [Shopkeepers] Enabling Shopkeepers v1.74 [04:18:27] [Server thread/ERROR]: [Shopkeepers] Potentially incompatible server version: v1_10_R1 [04:18:27] [Server thread/ERROR]: [Shopkeepers] Shopkeepers is trying to run in 'compatibility mode'. [04:18:27] [Server thread/INFO]: [Shopkeepers] Check for updates at http://dev.bukkit.org/bukkit-plugins/shopkeepers/ [04:18:27] [Server thread/ERROR]: [Shopkeepers] Incompatible server version: Shopkeepers cannot be enabled.
-
View User Profile
-
Send Message
Posted Jun 8, 20161.10 breaks shopkeepers, Not sure why other than incompatible server version. Wondering how soon the plugin could be rolled out and updated to work with 1.10.
Don't mean to pester you, Just trying to be informative!!
-
View User Profile
-
Send Message
Posted Jun 8, 2016@Jikoo_K
Thanks, will be fixed in the next update.
Doesn't it print the failing permission nodes?
Could you tell me what permissions plugin your are using, together with an (minimal) example configuration, with which I might be able to reproduce this?
There seem to be more people having permissions-related problems, though I wasn't yet able to reproduce them with PEX, nor with GroupManager.
@Aluin13
I am currently can't remember any changed to the for-hire feature. Setup is done by targeting the chest and executing the '/shopkeeper setForHire' command. After you have setup the shop for hire, then you can right click it and hire it.
I just tested on my 1.9.4 test server with the latest version of shopkeepers, and that seemed to work fine for me.
-
View User Profile
-
Send Message
Posted Jun 8, 2016I'm having an issue with this plugin on Spigot 1.9.4 regarding for-hire shops. When I try to create such a shop in survival mode by right clicking a villager spawner on a freshly-created chest, nothing happens. I've tried regenerating my config file and enabled debug mode and absolutely nothing happens in-game or in the console.
Permissions seem fine and I can generate an admin shop using /shopkeeper without issue. I'm likely just not following instructions correctly. About a year ago I was able to set up multiple shops just fine. Since then, they've gone missing at some point and I'd just like to set them back up. Any help would be appreciated!
-
View User Profile
-
Send Message
Posted Jun 8, 2016Whenever I attempt to make a shop, I get the no permission message. I updated to 1.9.4 and Shopkeepers 1.74 from 1.9.2 and 1.70, regenerated and redid config. I've verified that I do have permission to create the shops in enabled-living-shops and I do have permission to create shops of most types.
After a read of the source, I have no clue what's wrong. ShopkeepersPlugin#hasCreatePermission is obviously returning false - I don't get the creation instructions when swapping to the creation item in hotbar, but it is the correct item because I get the no permission message when right clicking.
Debug output doesn't help, unfortunately. Here's my config (mostly - I removed several more allowed entity types, but the majority of the safer ones are still present).
Unrelated to my issue, you missed converting the new permission to lower case in the wildcard permission.
-
View User Profile
-
Send Message
Posted Jun 5, 2016@MasterMithrandir
Oh, you are right. Seems like it was printing only the x coordinate 3 times in a row. Will be fixed in the next version.
-
View User Profile
-
Send Message
Posted Jun 5, 2016@blablubbabc
By the way, is this a normal coordinate?:
[22:13:34 WARN]: [Shopkeepers] Failed to spawn shopkeeper at PVP-EVENT,397,397,397
"397,397,397"
-
View User Profile
-
Send Message
Posted Jun 5, 2016@Roadhog360
If you are seeking help, you might want to create a ticket and attach your server log there.
-
View User Profile
-
Send Message
Posted Jun 5, 2016Does not work. 0/10. 1.8 version on 1.8. /shopkeeper puts errors in console. It doesn't do anything. Boo.
-
View User Profile
-
Send Message
Posted Jun 5, 2016@MasterMithrandir
The plugin would only need to let you specify and keep track of the WorldGuard region together with a boolean flag, which indicates whether or not creation of living entity shopkeepers shall get blocked.
If I would have some time I would look into it, but I don't currently :(
-
View User Profile
-
Send Message
Posted Jun 5, 2016@blablubbabc
The thing is, I don't want entity shops in that area. (I've tried it in the past, and the frame rate lag is considerable when near too many shopkeeper npc's in one place.)
Therefore, I BLOCK entity spawning in the area. I'm causing my own issue, but it's much better than having lag. (This also caused noise excess in the past, but thankfully this has been solved on 1.9). This allows only sign shops to be generated (Which are more neat), while any other shop established is blocked unless the player removes it.
I can't imagine not attempting to generate the shop any more, if it fails on creation, doing any harm.
I understand your point. So if I can't convince you, I guess I'll just be removing the shops manually every time I see spam on console, or I'll have to think of something else (Which In a whole year I haven't managed to fix on my side yet). Maybe I should rethink about my trading center project's base concept.
-
View User Profile
-
Send Message
Posted Jun 5, 2016@Liphian1
Take a look at the default config file here: http://dev.bukkit.org/bukkit-plugins/shopkeepers/pages/default-config-file/
The 'disabled-living-shops' isn't used anymore, as it was replaced with the 'enabled-living-shops'.
Best you remove your config file and let shopkeepers regenerate it. The villagers should be enabled by default.
-
View User Profile
-
Send Message
Posted Jun 5, 2016Great plugin! Only downside; some villagers spawn in the ground for a couple seconds...
-
View User Profile
-
Send Message
Posted Jun 4, 2016Included VILLAGER in the [ ] and it still placed signs when doing /shopkeeper. Tried disabling sign shops and that only gives me the "You don't have permission to do that" error. I tried VILLAGER without the [ ] and also checked if VILLAGER is disabled which wasn't. I'll include the pastebin of the config file.
http://pastebin.com/rBu8V2uF
-
View User Profile
-
Send Message
Posted Jun 4, 2016@Liphian1
Make sure you have VILLAGER as entry in 'enabled-living-shops'.
@MasterMithrandir
Usually the spawning of the shop entities should not get blocked in the first place. The purpose of this setting kind of contradicts the purpose of having the 'bypass-spawn-blocking' setting.
That's why I was considering it for cleanup purposes. However, it might be more useful to instead figure out the situations in which the shops can get stuck and preventing the 'issue at its root'. Also, adding it and not knowing how the shops can get into this 'stuck' state leaves the possibility open for abuse of this feature by players against other players' shops.
I don't want to add features which are only of use in some very specific context ('feature creep'). That's why I suggested that you can let someone create a small and simple addon plugin, which uses shopkeeper's already available API to prevent the shop creation in your very specific situation.
I am not sure what you mean by 'avoid a shop from generating'.
-
View User Profile
-
Send Message
Posted Jun 4, 2016@blablubbabc
Not sure which config option it is but I have the following that came up when searching for 'villager':
disable-other-villagers: false hire-other-villagers: false block-villager-spawns: false
Also everyone has all the default permissions including: shopkeeper.player
(I'm using PEX)
-
View User Profile
-
Send Message
Posted Jun 4, 2016@blablubbabc
"When the player creates a shop and it cannot be initially spawned, remove it again and let the player know immediately."
Sounds like the perfect solution. Can you think of anything wrong with this?
Player shops can get permanently stuck in any other context. If they don't know of the shopkeeper remove command (Because they don't feel like reading) their shop will just keep trying to spawn eternally.
I'm sorry to ask for this though. Keep in mind it's still optional. I'll deal with the consequences on my side, if I decide to activate this option.
Also, I'm just wondering, what do you have in mind which could be used by a player in order to avoid a shop from generating?
-
View User Profile
-
Send Message
Posted Jun 4, 2016@MasterMithrandir
While this could be added for clean up purposes (though it might be potentially dangerous, see here), I think I mentioned this earlier already, that I don't think that this would be an appropiate solution for your issue.
What you really want is to prevent your players from being able to create those shops there in the first place. Otherwise you potentially create inconvenience and confusion among your players, which are not aware of this restriction.
Alternatives I could think of:
Though I have not much time currently, so I can't look into it currently.
Also the last suggestion would only work, if you disable the 'bypass-spawn-blocking' setting, which can cause other issues. This might not be a problem for your setup, but it definitely can for other servers.
Why can the npcs not spawn there? Maybe you could allow them to spawn there? What other plugins is preventing the shopkeeper entities from spawning? Have you tried enabling the 'bypass-spawn-blocking' setting?
Shopkeepers does not have any per-area features currently, and to me it sounds that your are trying to get this very specific addition into the plugin only to work around that limitation. I really don't want to add a feature which only makes sense in your very specific situation. If I add something I want that to have a very clear and justified purpose. Otherwise this results in a lot of 'feature-creep'.
-
View User Profile
-
Send Message
Posted Jun 4, 2016@blablubbabc
Awesome plugin as always. I've been using it for years :P
But there's been one thing I've asked for some time ago, and was never granted. I'd just like an (optional) option for shops which fail to spawn X times to get removed...
Please consider blablubbabc :)
Otherwise, how would I go about creating an area where only sign shops can be generated? Because the issue here is that npc's cannot spawn, therefore the shops won't load... and I'm not fond of adding more plugins for this purpose.
-
View User Profile
-
Send Message
Posted Jun 4, 2016@Liphian1
Check your permissions setup, and check if you have enabled villager shops in the config.