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 17, 2014@blablubbabc
Shopkeepers 1.36 throws an exception for trying to register a task when disabling, should be an easy fix.
-
View User Profile
-
Send Message
Posted Dec 17, 2014@blablubbabc
Ah, I've noticed some issues with Spigot's serialization myself - objects with tile entities such as chests or furnaces seem to save properly but then can't be loaded (lose lore, names, whatnot) using the BukkitObjectOut/InputStream.
On 1.35 I'm getting save times of 18-22ms with the occasional 30-odd mixed in. The timings are very reasonable now - looks like the task is averaging 22ms per save.
For now I've just negated the book shopkeeper creation node. I'll get back to you with the 1.36 timings
when I next restartnow, apparently.Wonderful results, data packaging of 1-4 ms averaging 2, async i/o of 21-28ms with occasional outliers of 40-odd. May not be more efficient total time wise, but this is huge in terms of server performance. Thanks so much!
-
View User Profile
-
Send Message
Posted Dec 17, 2014@Jikoo_K
v1.36 for MC 1.7 and 1.8
Also please take a look at the changelogs of the versions since v1.20 for all not yet fully documented changes!
-
View User Profile
-
Send Message
Posted Dec 17, 2014@Jikoo_K
The book page duplicating seems to be an issue with spigot. I guess they will fix it soon.
However in the meantime, for the case that your issue would have originated from long file io times caused by a large save file caused by a large number of shopkeepers, I attempted to run parts of the data saving asynchronous. I guess I will keep this in nevertheless now.
If you update to version 1.36, which I upload any moment now, let me know how long saving takes for your 74 shopkeepers (it displays the times in the debug logging).
-
View User Profile
-
Send Message
Posted Dec 17, 2014@blablubbabc
Right you are. The book shopkeeper in question has only 1 book, and that book appears to have had its pages duplicated to an insane size - I have 74 shopkeepers, and it alone is 99% of the file. I'll just go kill it off.
Edit: Killed it, save.yml is down to 5300 lines from 922800. Thanks!
-
View User Profile
-
Send Message
Posted Dec 17, 2014@Jikoo_K
How large is your save file and how many shopkeepers do you have setup? Do you have any shopkeepers which sell books? If you update to shopkeepers v1.35 and enable debug mode it should tell you in the log how long it takes for each save.
-
View User Profile
-
Send Message
Posted Dec 17, 2014@codiaz
They fixed the custom name for items (not for mobs), as far as I interpret the comments there.
-
View User Profile
-
Send Message
Posted Dec 17, 2014Getting some horrendous lag spikes with Shopkeepers v1.33 http://timings.aikar.co/?url=9552586
Ignore Multiverse-Inventories there, swapping to MultiInv as soon as Tux2 fixes importing :V
Here's one post-restart with 0 players: http://timings.aikar.co/?url=9552653
The task causing all the lag appears to be the chunkLoadSaveTask
-
View User Profile
-
Send Message
Posted Dec 17, 2014@blablubbabc
Euhm you do know that bug has been fixed xD It even says so, the link you gave me.
-
View User Profile
-
Send Message
Posted Dec 17, 2014@MasterMithrandir
v1.35 for MC 1.7 and 1.8
Also please take a look at the changelogs of the versions since v1.20 for all not yet fully documented changes!
-
View User Profile
-
Send Message
Posted Dec 17, 2014@Lextocinator
See my comment below: this feature was removed from minecraft in MC 1.8 :(
-
View User Profile
-
Send Message
Posted Dec 17, 2014Could you make it possible that the Shopkeeper's name is always shown? So that you don't have to look at it. This is nice for when you have multiple shopkeeper's next to each other and you put the resource they sell in their name. Thanks! Love the plugin!
-
View User Profile
-
Send Message
Posted Dec 16, 2014@Zombiemold
I assume this is an issue spigot has to fix.
@codiaz
Seems like this was intentionally removed in MC 1.8 for mobs :(
@MasterMithrandir
I will be looking into it later today.
-
View User Profile
-
Send Message
Posted Dec 16, 2014There seems to be a quite a dangerous bug with either Spigot, Minecraft 1.8, or Shopkeepers involving written books and duped data that leads to crashes, exploding file sizes, and potentially data loss.
This bug is noticeable in Shopkeepers with simple tests.
A way to reproduce it is to make some shopkeepers that trade written books, then reload shopkeepers or the server a few times. The pages within a book are duped within the "save.yml". If this happens often enough, the books start to get massive (depending on the size of the books, an the amount stored in save.yml). If the books get too massive enough, clients crash who access the shopkeepers that trade the books, shopkeepers will massively lag the server, etc.
Edit: Confirmed to be a spigot issue. Still a concerning issue for ShopKeepers users.
-
View User Profile
-
Send Message
Posted Dec 16, 2014@MasterMithrandir
Use the "player-shopkeeper-inactive-days: 7" or does that not work?
-
View User Profile
-
Send Message
Posted Dec 16, 2014@blablubbabc
Also "always-show-nameplates" is not working :)
-
View User Profile
-
Send Message
Posted Dec 16, 2014@blablubbabc
Just as reminder, I would appreciate if you could consider readding the inactive shops feature. My factions map is starting to get full of shopkeepers whith inactive owners who just leave them there, no one wants to claim lands whith dead shopkeepers on them xD
-
View User Profile
-
Send Message
Posted Dec 16, 2014@codiaz
v1.34 for MC 1.7 and 1.8
Also please take a look at the changelogs of the versions since v1.20 for all not yet fully documented changes!
-
View User Profile
-
Send Message
Posted Dec 16, 2014@codiaz
I will test the setForHire command later.
Regarding your addon plugin: You could take a look at the source code here. Hopefully that helps.
-
View User Profile
-
Send Message
Posted Dec 16, 2014shopkeeper setforhire does not work :/
Is there also an API for this? So another plugin can hook into this, I want to create my own plugin that allows players to buy a shop for an amount of days