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 Apr 25, 2016@blablubbabc
Thank you for responding to my comment. Personally speaking, a simple command like that would work for me as an admin user with the following caveats:
The reason I'd like to see something like this implemented is due to supply and demand. I'd like to have the ability to let the admin shop run out of stock and remain out of stock for the duration of a day, 3 days, a week or whatever period of time and then restock automatically with no action on my part as admin.
I feel this would allow player shops to take advantage of the admin shops being out of stock. They can take advantage of the market situation by raising their prices and potentially selling more items to other players who frequent the admin shops.
As someone who wishes to have both admin shops and player shops, having an infinite inventory at the admin shop puts limits on the potential of the player shops.
-
View User Profile
-
Send Message
Posted Apr 25, 2016@Bodyash
They should get teleported back every 10 second nevertheless though.
However, I will try to prevent shopkeepers from entering vehicles in the next version. Thanks!
@boushwa
Nope there is nothing like this available currently. Just curious: How would you expect setting this up for a shopkeeper? Would a command that sets a limit of number of trades (optionally with a specific time) for the shopkeeper be sufficient for something like this? Something like '/shopkeeper maxTrades 10 24' to limit the amount of trades the shopkeeper accepts in 24 hours to 10.
-
View User Profile
-
Send Message
Posted Apr 24, 2016Perhaps I've missed this but is there a way to set up an Admin Shopkeeper to have a limited amount of inventory per a given period of time? For example - a stock of 25 diamonds available every 24 hours that auto-resets?
-
View User Profile
-
Send Message
Posted Apr 24, 2016What, if u put Shopkeepers in boat (1.9)
http://cs630224.vk.me/v630224595/3446e/BUs1NH4USw0.jpg http://cs630224.vk.me/v630224595/344f0/yvY-J9vfV0Y.jpg
Yeap, u can steal them! :D
-
View User Profile
-
Send Message
Posted Apr 19, 2016@blablubbabc
My fault, as usual. I was attempting to trade with my own shop. So yeah, just ignore xD
-
View User Profile
-
Send Message
Posted Apr 18, 2016@MasterMithrandir
You could turn on debug mode any see what it prints to the log when you try those trades again. Shopkeepers will prevent some types of 'special' clicks, because there are either duplication issues possible or the plugin wouldn't be able to reliable determine how many items were actually traded.
So if it says in the log 'Prevented special click in trading window' then try again with pure single left clicks, and also make sure that no client mods are running.
The message in the default config will be fixed in the next update, thanks!
I am currently also thinking whether or not I should change the new permission node 'shopkeeper.setTradePerm' to 'shopkeeper.settradeperm': all lower-case, to match the other permission nodes.. Can't make a clear mind on that yet though.
-
View User Profile
-
Send Message
Posted Apr 18, 2016https://youtu.be/DbHAVNj74Kw
Saw some issues with Exchange and Book selling shops on v.1.70 with MC 1.9.2 I'll be updating and reporting if I still have these issues.
Also I noticed this misspelled on config: "msg-trade-term-removed", maybe you mean "perm"?
Please don't move the config so much xD it's a headacke getting it updated :(
-
View User Profile
-
Send Message
Posted Apr 12, 2016@blablubbabc
oh no sorry I was trying to help snore <3 I dont have many issues with it atm. Just had to update and saw his post! your awsome for taking care of things man ty!
-
View User Profile
-
Send Message
Posted Apr 12, 2016@shaliquinn
Are you running the latest version of shopkeepers?
There were issues with heads in the past which could cause your save file to get wiped due to a bukkit bug. However, I have made some changes in the meantime so that it would not clear your complete save file but only the affected trade in case it runs into this issue. And also spigot made some changes as well to (partly) fix the above issue (so that it should at least no longer trigger any error).
So if you still have issues, please create a ticket, and attach your server log including any errors. And also describe how you create those player heads items (ex. which plugin/command/etc. you use for creating them).
-
View User Profile
-
Send Message
Posted Apr 12, 2016@Snorpenbass73
I have myself run into this. I found Shopeepers struggle with PLAYERS HEADS and as such when I add them it clears the save file resetting them. Might be part of the issue?
-
View User Profile
-
Send Message
Posted Apr 11, 2016@Snorpenbass73
Please create a ticket and attach your server log there, including those errors.
-
View User Profile
-
Send Message
Posted Apr 10, 2016Hi!
I run up to a problem & it has not hapen just once, 3 times my now! Im running a 1.9 spigot server... After been running it with no problems for a while several days this happen: What has happen when i arranged a number of shopkeepers (about 10-20). After the server restarted all Shopkeepers become ordinary villagers & the shopkeeper plugin stoped working & showed error in the console. To help this out i had to uninstall/remove all of the plugins file & then reinstall it... I realy enjoy this plugin, thats why i will tell you this cause i realy want it to work!
-
View User Profile
-
Send Message
Posted Apr 10, 2016@CrsAurelio
Shopkeepers isn't handling the spawning of the citizens npc shopkeepers. Are other citizen npcs behaving the same way? You could try running '/citizens save': Some time ago I noticed that the npcs didn't seem to persist without running that command.
-
View User Profile
-
Send Message
Posted Apr 10, 2016When I used Citizens NPC and Shopkeepers, when I relog the npcs are gone. But when I type /npc list, the npcs are listed
Help?
-
View User Profile
-
Send Message
Posted Apr 7, 2016v1.71 for MC 1.9.x, 1.8.x, 1.7.10
This update contains a few changes, which might require you to update/reset your config and language file.
My current guess on the problem is, that: The shopkeeper entities get saved to disk when the world gets saved. Shopkeepers removes a shop entity, respawns the entity (this replaces the old 'last-entity-uuid'). This does not necessarily have to happen at the same time or for all entities, but it does occur when shopkeepers is for ex. getting reloaded. Now if the server closes (ex. due to a crash) without another world save taking place, the old shop entity is still saved in the chunk data of the world, but we cannot identify it as shop entity on the next server start, because we remembered the entity-uuid of the last entity we spawned, which is not the same as the last entity which was saved to disk.
This workaround: Whenever the world gets saved (at least whenever WorldSaveEvent gets triggered) all shopkeepers get temporarily unloaded (and by that removed from the world) and loaded (respawned) again shortly after the world-save. With this the shop entities will hopefully no longer get stored to the chunk data. You will notice a short flicker of shop entities, but trading etc. should keep working, even during world-saves. If you have debug-mode enabled in the config, you will get a rather large block of debugging output everytime all your worlds get saved.
-
View User Profile
-
Send Message
Posted Apr 6, 2016@PAINmatrix
There is a setting for that in the config.
-
View User Profile
-
Send Message
Posted Apr 6, 2016Very nice plugin but it prevents players from trading with normal villagers (not NPCs).
-
View User Profile
-
Send Message
Posted Apr 6, 2016@FreddyGB
Can you send me that timings report? Also, how large is your save.yml file.
Also, how much memory do you use, what are your server's xms and xmx start parameters?
And how do you meassure the memory usage of shopkeepers? How you you make the conclusion that shopkeepers is having a memory leak (and not something else on your server)? The timings reports don't include any memory profiling information as far as I am aware.
As I have no problems with shopkeepers running on my own server, I need further information to look into.
If you have further information for me, then please create a ticket for this and attach that information there.
-
View User Profile
-
Send Message
Posted Apr 6, 2016@nisovin Hello, i am having a problem with this plugin, a pretty big one aswell, so, basically the plugin is having a memory leakage, i checked from the /timings merged command, and it had the most time running or whatever, but is there any way u can make a patch for that, its eating my memory super quickly, and i dont want to always pay for memory, since it costs a lot. Thank you - FreddyGB
-
View User Profile
-
Send Message
Posted Apr 3, 2016surely there must be some workaround to check if its a villager egg