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!
Hey blab.
We found a compatibility issue with GriefPrevention.
Basically GP prevents interaction with protected mobs. Mobs are automatically protected as owned by the GP claim owner, so that includes mobs generated as shopkeepers by Shopkeepers.
Basically you can't interact with mob shopkeepers if they're inside a GP claim.
I'll let the GP developer know this if you find it appropiate.
In reply to MithrandirMage:
Are you using the v2.8.0 snapshot of Shopkeepers?
There seems to be an older ticket with someone running into a similar issue with GP: https://github.com/TechFortress/GriefPrevention/issues/290
I will add a loadbefore entry for GriefPrevention which might fix this (as long as you don't perform any plugin or config reloads), however the in my opinion cleaner / more stable solution would be for GP to listen on a later event priority, so that other plugins have a chance to circumvent them in specific cases.
Snapshot available here: https://nexus.lichtspiele.org/repository/snapshots/com/nisovin/shopkeepers/Shopkeepers/2.8.0-SNAPSHOT/Shopkeepers-2.8.0-20190808.214354-7.jar
In reply to blablubb:
I can't use your snapshot, I have a 1.13.2 server:
There's an api error.
In reply to MithrandirMage:
If you are using an older version of Shopkeepers, try enabling the setting "bypass.shop-interaction-blocking" and see if the trading menu opens then.
In reply to blablubb:
That kinda does it.
I hope no other issues emerge from it. Thanks!
In reply to MithrandirMage:
You might still get the 'you cannot interact with that'-message though. I made some changes for v2.8.0 which should resolve this, at least for WorldGuard. But GP works slightly different, so that either config/plugin reloads need to be avoided or GP makes some changes in their future GPv20 version.
Hello Developer,
how can I move my Villager from one place to another, because I don't want to setup them again.
In reply to Forge_User_38501169:
You currently can't.
There is an open ticket about this here: https://github.com/Shopkeepers/Shopkeepers/issues/361
Your only workaround would be to manually edit the save.yml file and change the shopkeepers coordinates there. Make sure to create a backup first though!
Can you change the item in the cost window to another in the player store?
In reply to 하눌삵:
The selling and buying shop only allow using the configured low and high cost items. However, your players could also create trading shopkeeper, which allow using any item for the costs.
Suggestion: Add a (toggleable) config option that enables left click too to trade with shopkeepers (instead of only right click)
In reply to zaino60:
Created a ticket for it: https://github.com/Shopkeepers/Shopkeepers/issues/602
Maybe you can elaborate why this is needed? Is this a common thing for players to assume that left clicking is treated as interaction (which is odd, since it is right clicking as well for all other things in minecraft, including the vanilla villagers)?
hey dude is there a way where you can use currency from the popular economy plugin vault to buy and sell things from shopkeepers, and if there's not could this be something you could implement =)
In reply to Forge_User_55000319:
This shop plugin is purely item based. You could add a plugin for exchanging between your virtual vault economy and an item representation, or you use an item based economy plugin such as Gringotts which creates the link between an item based economy and plugins requiring vault for economy access.
But this is out of scope to include in this plugin; you will have to find or create a different plugin for this task.
How much ram does this plug-in use (with around 3-4 admin shops)?/is this plugin a very ram consuming plugin?
In reply to Forge_User_72077299:
You will have to do the measuring yourself, but I doubt it will be anything more than a few MB at most. Hardly something you will have to worry about.
While this is no proper measuring, I quickly printed the memory used by java with and without the plugin running, with 4 loaded shopkeepers (but no players on the server) right after startup and I could not see any difference (roughly 213.9 MB vs 214.9 MB, which might very well be in the range of random fluctuation).
What does "villager level" do?
Also, does ShopKeepers have an API? trying to get a custom plugin made and it would need to read off shopkeepers, unless you can add the feature I need :o
In reply to Forge_User_23917930:
Villager level changes the color of the villager's badge: https://minecraft.gamepedia.com/File:Minecraft_villager_level_badges.png
The API is still quite limited. You will likely have to rely on the implementation for some things, and run into blockers for other things: https://github.com/Shopkeepers/Shopkeepers/tree/master/src
In reply to blablubb:
Have you got a discord or anywhere else I can contact you?
In reply to Forge_User_23917930:
Just created one freshly, not sure if that works: https://discord.gg/AEggNnw