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 Binden |
Want to help?
The less I have to do myself, the more time I have to write plugins. Therefore I am looking for someone who would be willing to get involved in the project. That could for example mean:
- Keeping the documentation (the wiki) up-to-date with plugin updates.
- Improving the existing documentation.
- Creating and maintaining translations.
- Help managing issues and answering questions of users.
If you are a programmer with experience in writing bukkit plugins, or have ideas on how you can contribute to the project beyond that, let me know as well! If you are interested, feel free to contact me via PM.
Beyond that, everybody is invited to help others with issues and questions in the issue tracker, comment section, and the discord channel! Also consider contributing translations!
Third-Party Add-On Plugins
Sometimes a feature is either to specific to include it directly into the Shopkeepers plugin, or I did not yet have the time to add something similar myself. The plugins listed here extend the functionality of the Shopkeepers plugin.
These plugins are maintained by other community members. If you run into issues while using any of these add-ons, try to first reproduce your problem without any add-ons before you report it.
ShopkeepersNavAddon(abandoned): Adds inventory-based GUIs that allow you to browse all player shops, all admin shops, and to find shops that trade a specific type of item. You can teleport to a particular shopkeeper by clicking a button inside the GUI.
This plugin also integrates support for trading with Vault-based currency, but does so by replacing Shopkeepers' normal trade handling.
If you have also written an add-on plugin and want it listed here, let me know!
In reply to KnifeKat:
v2.3.0 for MC 1.13
This update brings support for MC 1.13:
(This update is marked as 1.12 compatible, only because there is no tag yet for 1.13)
Some important notices to begin with:
Migration procedure:
Item data values have been removed and various material (item/block) names have changed to be more in-line with vanilla minecraft names. So this update require a migration of existing configs and shopkeepers data.
Updating is only supported from version v2.2.1 and MC 1.12.2:
Other changes related to the update:
Other changes:
Known potential issues: See here.
Donations
If you like this plugin, consider making a donation.
Thanks!
For anyone wondering about an update for MC 1.13:
With spigot's 1.13-pre7 release I started doing some preparations, but due to other more important duties I might either have no time to finish this in the next weeks (until around 18.08.2018), or might only be able to release something highly experimental without being able to fix any issues that come up in the meantime.
The current state of the update looks as follows:
* Backwards compatibility for any versions below 1.13 will be dropped.
* I take this chance to also remove a bunch of older migration and compatibility code. This however means that the update to 1.13 will only be supported if you are updating from MC 1.12.2 and Shopkeepers version 2.2.1! So if you intend to update to 1.13, make sure that you first update to MC 1.12.2 and Shopkeepers v2.2.1!
* Currently there is at least one remaining Spigot issue that needs to be resolved, before I can proceed with the update.
I will push the current state of the update to the github repository, in case someone wants to work on a quicker update. A snapshot that seems to work, but is missing any importing/conversion of shopkeeper data, is available on the maven repository for anyone wanting to experiment with it.
Thanks for your patience.
@blablubbabc
Ever considered opening a Discord server? Many plugin devs are doing it
Anyway just came in to ask if it would be possible to set custom currencies with special lore and name (Ideally setting large and small currency through a command that takes whatever is in my hand), since it would be really usefull if it wasn't only limited to minecraft item ID:DATA.
This is the last piece for a plan I have on my server to make xrays useless (Not stopping them, just making them useless xD), so it would really be helpfull >_<!!
The main thing which makes an item customizable for me, and different from another identic ID is it's lore.
In reply to MasterMithrandir:
v2.2.1 for MC 1.12, 1.11, 1.10, 1.9, 1.8
If you are updating, please read through the changelogs of the previous beta versions! They may also contain updating hints (ex. regarding changed messages). The easiest way to update your messages and config is to remove it, let the plugin regenerate it, and then re-apply you custom changes.
Known potential issues: See here.
Donations
If you like this plugin, consider making a donation.
Thanks!
v2.2.0 for MC 1.12, 1.11, 1.10, 1.9, 1.8
Since there have been no reported issues with the previous beta versions, I mark this version as 'release' to get a few more people to use it. If you are updating, please read through the changelogs of the previous beta versions! They may also contain updating hints (ex. regarding changed messages). The easiest way to update your messages and config is to remove it, let the plugin regenerate it, and then re-apply you custom changes.
Known potential issues: See here.
Donations
If you like this plugin, consider making a donation.
Thanks!
Hello!
I was wondering if there is a way to set up a shop with a player skin? So just a normal shop but with a players skin and name? If not, would there be support for this in the future?
Thanks :)
In reply to Forge_User_97321766:
Spigot 1.12.2 latest
Shopkeepers 2.1.0-beta
Denizen 1.0.2-b322
Citizens 2.0.22-b1547
Updated from 1.86 to 2.1.0-beta, with appropriate changes to config.yml. On startup, the following exception was generated. Is this an issue with Shopkeepers or Denizen (or Citizens)?
In reply to SlimeDog:
v2.1.0-beta for MC 1.12, 1.11, 1.10, 1.9, 1.8
Major internal changes to the way shopkeepers get created and their data gets saved:
Major restructuring of command handling:
Other changes:
Due to the various message related changes, you will have to update your messages. The easiest way to do this, it to remove all messages from the config and let the plugin generate the defaults on the next server start.
Since the impact of these changes is rather high, I marked this update as 'beta' for now. Please try it out and report back any issues and inconsistencies you encounter.
Thanks.
Please also take a look at the changes of the previous beta versions.
Known potential issues: See here.
Donations
If you like this plugin, consider making a donation.
Thanks!
v2.0.0-beta for MC 1.12, 1.11, 1.10, 1.9, 1.8
Major change to Shopkeepers' mob behavior:
Impact on performance:
Other related changes:
Note on MC version differences:
Various improvements when running on a not yet supported version of minecraft:
Other changes:
Major internal restructuring (affects the API) and version bump to 2.0:
Other API related changes:
Since the impact of these changes is rather high, I marked this update as 'beta' for now. Please try it out and report back any issues and inconsistencies you encounter.
Thanks.
Please also take a look at the changes of the previous beta version: v1.87
Known potential issues: See here.
Donations
If you like this plugin, consider making a donation.
Thanks!
When I try to name my Shopkeeper it says that the name is not valid and It appears as %s %s in chat Please Help!
In reply to the_ender_lord_0:
v1.87 for MC 1.12, 1.11, 1.10, 1.9, 1.8
Major rewrite of the processing of trades:
Shopkeepers is now implementing the inventory actions that might trigger trades itself.
Previously, trading with player shopkeepers only allowed simple left clicks of the result slot. We predicted the trading outcome (rather simple when only allowing left clicking..) and then let minecraft handle the click like normal. Any other inventory actions (ex. shift-clicks) were prevented, because so far we weren't able to predict the outcome of those.
I finally took the time to dive into minecraft's and craftbukkit's internals to figure out, how it processes the various clicking types and resulting inventory actions, how those can trigger trades, and how minecraft processes those trades.
Supporting more advanced inventory actions for trading requires at minimum being able to reliably predict the outcome of those inventory actions, and by that already requires re-implementing of large parts of the vanilla logic (which is one of the reasons why this wasn't done so far). The step to also apply those predicted inventory changes ourselves then isn't that much of an additional effort on top, but has a few advantages:
For one, we can be quite sure that the predicted outcome of a trade actually matches what gets applied in the end. This should reduce the risk of inconsistencies between minecraft's behaviour and our predictions resulting in bugs (also with future minecraft updates in mind).
Secondly, when relying on minecraft's implementation we are only able to allow or cancel the inventory action as a whole. The shift-clicking inventory action however is able to trigger multiple successive trades (possibly even using different trading recipes). By implementing this ourselves, we are able to apply as many trades as are possible with regards to available stock and chest capacity.
Implementing the trading ourselves has a few advantages, but also comes with caveats:
Caveats:
Neutral:
I could manually replicate some of these, but since these are custom trades anyways I don't see the need for it right now. But if there is a justified interest in this, let me know and I might add a config option for it.
Advantages:
Other changes in this update:
Too large to post. Please see the changelog.
Since the impact of these changes is rather high, I marked this update as 'beta' for now. Please try it out and report back any issues and inconsistencies you encounter.
Thanks.
Known potential issues: See here.
Donations
If you like this plugin, consider making a donation.
Thanks!
i was talking about the /shopkeeper remove admin and ok
It was working before but suddenly stopped, there are no errors though.
I tried to reinstall the plugin and it didn't help.
They are admin shops as i need to run the delete admin npc command to remove them
In reply to JTGgamer:
When i try to add items to a villager they just glitch back into my inventory