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 May 13, 2014@Darunia18
If it exists, I cannot find it. In the configuration file, this is all I can find for currency
currency-item: 388 currency-item-data: 0 zero-item: 341
high-currency-item: 133 high-currency-item-data: 0 high-currency-value: 9 high-currency-min-cost: 20 high-zero-item: 341
-
View User Profile
-
Send Message
Posted May 13, 2014@My_Name_Was_Stolen
I thought that already existed...because I've had item name, lore, enchantment issues in the past when I wanted it to be any type of item, whatever it was named, any lore, etc.
-
View User Profile
-
Send Message
Posted May 11, 2014Is there any way you could make it so currency has to have a certain name, lore, or enchantment? (Sort of like the item-data option in the configuration file?)
-
View User Profile
-
Send Message
Posted May 11, 2014@chrisbruijnes
Some other plugin is probably removing them. So check your plugins if that is the case and see if you can fix it via their settings.. I probably can't do anything to keep them from removing the villagers besides respawning them continually. There is a setting in the config for that ('enable-spawn-verifier'): if it is enabled it checks the active shops every 10 minutes or so and respawns them if needed.
For the 'internal server error': please create an ticket for that and attach your server log which contains the log of that error.
-
View User Profile
-
Send Message
Posted May 11, 2014I guess I found a bug, hope anyone can help me out. Sometimes some shopkeepers just dissapear and are gone, When I typ /shopkeepers reload, they are back mostly. Also when I typ that command I get an error in-game "An internal error occurred while attempting to perform this command". Then I try that command again and it succesfully reloaded. Anyone any idea? I already noticed that they respawn sometimes..
-
View User Profile
-
Send Message
Posted May 9, 2014@Blue_Angel_1011
Yaou can find an overview over all previously uploaded files here: http://dev.bukkit.org/bukkit-plugins/shopkeepers/files/
-
View User Profile
-
Send Message
Posted May 9, 2014uhm how i watch older versions? i kinda need it
-
View User Profile
-
Send Message
Posted May 8, 2014@jeannen
@NathanWolf
There, currently, is no command or other possibility for that (besides manually editing the save file). I am currently thinking about moving the shopkeeper options into a separate window (to have more space for future options) and adding something for that there then. However I want to perform some internal restructuring and refactoring before doing that.
-
View User Profile
-
Send Message
Posted May 8, 2014@jeannen
Wow! I literally just came here to ask if there was a command for that :)
-
View User Profile
-
Send Message
Posted May 8, 2014Hello :)
Can you add a comand for moving a NPC please ? ^^
-
View User Profile
-
Send Message
Posted May 8, 2014@K3Feedz
If you are talking about player's not being able to open shops if they are located in some sort of region/territory, then either will those land protection plugins have to allow entity/sign interaction inside the territories, or I have to add a setting to ignore those land protections for shop clicking. I guess I can add such a setting for the next update.
-
View User Profile
-
Send Message
Posted May 8, 2014With Factions Plus, People who aren't op or with no permissions says
"You can not do that in another Factions territory" How do you fix this?
-
View User Profile
-
Send Message
Posted May 7, 2014@blablubbabc
Ah, yes, I see it now- "isShopkeeper". thanks!
I'll see if I can fit this in in a generic way (since I soft-depend, I can't just call out to your API anywhere - and this particular code is kind of really deep, in my Lib, for copying areas with entities).
It would be nice to have metadata, though, so I can just generally check for a set of metadata tags to know to leave something alone- so if you ever do add that, I would use it :) Thanks again!
I don't mean to keep flooding your comments, but I am just really excited about this plugin. I love dtlTraders, but for the particular pure-as-possible survival+magic server I'm trying to make, these shopkeepers fit right in, in such a perfect way. As does the idea of a physical economy, though it presents a big challenge for my plugin (in terms of balance and exploitability).
Anyways, I'm very happy, thank you for all your great work :)
-
View User Profile
-
Send Message
Posted May 7, 2014@NathanWolf
You can hook into Shopkeepers: I think there is a method somewhere in the main class to identify shopkeepers. Alternativly, I could probably additionally assign them some metadata key in the future, similar to how citizens does it.
-
View User Profile
-
Send Message
Posted May 7, 2014I'm using your plugin now on my server, and loving it! I am slowly replacing all of my Traders with Shopkeepers and will be encouraging my players to "cash out" and get emeralds before I shut down iConomy.
One hopefully-quick question - would it be possible to have shopkeepers tagged with some metadata, like Citizens NPCs are? Maybe a "Shopkeeper" tag?
I don't want my mages to kill shopkeepers - I normally have them in WG-protected areas so it's not a big deal, but it'd be nice to be able to identify them. Mainly I'm worried I will accidentally kill them using Repair ... Ok, thanks again!
-
View User Profile
-
Send Message
Posted May 7, 2014@MasterMithrandir
It should skip it during the loading, causing it to be removed on the next save. So, yes.
Though, this wasn't much tested since the uuid-update.
Also, did this player join the server since you updated your server to a uuid-version of craftbukkit (1.7.5+)? Does the shop in the save file have an 'owner uuid' entry, as well as that player a minecraft player data file for that uuid (in your servers main world)?
-
View User Profile
-
Send Message
Posted May 7, 2014I set a 14 day limit for shops to be considered inactive (That sould delete shops whose owners excede that ammount of days without connecting to the server right?)
Well, 22 days have passed since one of my players last connected and left his shop active, but allthough there is a 14 day limit for the shop to become inactive, the shop is still active and functioning correctly.
-
View User Profile
-
Send Message
Posted May 6, 2014Hi, me again. I know it'll probably never see the light of day, but for what it's worth I put together a non-hacky CraftBukkit patch that makes your plugin (and creative mode, and probably a zillion other things) completely compatible with mine (and any other plugins that use custom item data).
Anyway, if you're at all curious, here's what a save looks like with this CB patch (and no changes at all to your plugin) - you can see all the data I'm stuffing into the item:
https://gist.github.com/NathanWolf/0ab6c020d746b3044d1d
I'm going to do my best to pursue this as a PR, though I think it will be very tricky and I don't have much hope. I'll stop bugging you in the meantime. :) Thanks!
-
View User Profile
-
Send Message
Posted May 6, 2014@pepper82
If you setup a name for your shopkeeper (via the editor window) it already should automatically get that name above it's head. Also there is a setting in the config to display that name constantly then.
-
View User Profile
-
Send Message
Posted May 6, 2014Can you enable us to give shopkeepers a name above their head?