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!
I dont get any 'no permission' message. I dont see any errors in the startup log. My server is running with spigot.
All I want is just to create a normal shopkeeper who is a villager and I can decide which items he can sell. Perhaps there is another way to make it and not with the egg. Maybe with a command? I literally have no idea how to fix it! If you cant fix it - nobody can... :(
Please don't post giant configs, logs, stacktraces etc. directly in the comment section. They spam a lot. In the future either create a ticket and attach those there, or upload them somewhere and leave only the link to it here.
Please edit your comment to remove the config part. Otherwise I might have to remove it..
Anyways, I don't see any issue with your config.
Make sure that the villager egg you are using doesn't have any display name or lore.
Otherwise I cannot think of any other reason why it shouldn't work. On my testing server it works fine, so there has to be some difference in your setup or in what you are doing..
If nothing helps: You can create admin shops via the /shopkeeper command. And you can also create player shopkeepers via command, but you will have to first enabled that in the config. See the documentation above regarding how the commands work.
I made sure that the egg doesn't have any display name or lore but it still doesnt work.
Could you tell me how to enable it in the config so I can create player shopkeepers?
Could you tell me which command should I use to create my shopkeeper too? I also have no idea how to attach the shopkeeper to a chest.
The command usage is described in the documentation above.
The name of the config option for that should be self-explanatory as well.
I give up. I tried every single command. None of them work.The only command which worked was /shopkeeper. It creates a regular villager which I cant control. I tried. It just says: No shopkeeper found with that name or id.
Ok! I have good news! After a lot of working and searching for the problem why it doesnt work I finally found it! ( I didnt give up) The plugin doesnt support 1.9. Because I changed my server's version and it worked on 1.10 but not in 1.9. So could you fix that,please? I really want to use this plugin!
It should support 1.9 though. Maybe you are using some build of 1.9 which does not work for some reason, so try it with the latest available version of 1.9.
If you can't get it working, please create a ticket and attach your server log there and the exact version of spigot you are using.
Edit: I just tried it on git-Spigot-4af49dc-c5e9a16 (MC: 1.9.4) and shopkeeper creation works fine there, with the egg and via command. So it has to be an issue specific to your version of 1.9.
Hello! I've found a plugin collision between Shopkeepers and AttributeHider. You are unable to make a trade even with "use-strict-item-comparison: false". I'm using AttributeHider for hiding modified items. Do you think it would be possible to make a trade and bypass attribute restriction? Thanks.
The trades are handled by minecraft itself. Minecraft requires that the items you offer and the items the trade requires to perfectly match, including item attributes. I cannot change that. At least not easily, and therefore I won't.
So your custom items would probably also not be accepted by a default minecraft villager trade.
You will have to ask the author of AttributeHider to fix that, or not hide attributes in villager trades.
Okay, thanks for quick reply :)
How do I disable all other villie types besides the trading one? I need this for players.
There is a config setting which lets you disable trading with normal villagers on your server.
If you mean the shopkeeper types: Each type has a permissions node, which you can remove from your players. You can find the permissions nodes in the documentation above. Regarding how to remove permissions from your players, you will have to check the documentation of your permissions plugin.
I am usingPEX for my permissions, the problem is that you set the villager types like (buying,trading,books etc.) to everyone. I need to only give them access to the "trading" type, I have tried /pex group default remove shopkeeper.player.normal but that still lets them create a normal shopkeeper. So I need to disable all of the types besides trading.
If you have properly removed the shopkeeper.player.normal permission they should no longer be able to create normal (selling) shopkeepers. Also make sure that you don't assign shopkeeper.player to your players, because that also includes permission to all shop types.
PEX should have a way to let you check if a player has a certain permission. As long as they still have it, there is something wrong with your permissions setup.
disable-other-villagers: true
this disables all Minecraft villaageres (vanilla tradings)
U also can setup this Option:
block-villager-spawns: false
if this is true then Vanilla npcs dont spawn anymore.
Note if u disable it, then u disable villager tradings in all worlds...
i wish there would be worldlist for the disabled ones.:\
same with not spawn of other villagers.. a worldlist would be cooler here then disabling it for all worlds...
Can you make more than 8 trades for the villager?
There is already a ticket open about this. Currently I don't have the time to look into it.
This would be possible by double the current chestgui. Just think this would need a little reworte of the current menue :3
But yes as long as u dont oversize the doublechest size (63 slots) this is possible without bigger code changes or adding to much new code.
I was half expecting the plugin to not work with attribute modifiers , but unlike other plugins , this one works with attribute modifiers :D
There's only one thing that's not working properly and it's that one of my shopkeepers has a habit of randomly jumping , but i decided to rename him "slighly dumb shopkeeper" so that's not a problem :3
His spawn location is probably 1 block above. You probably placed him on top of grass or some other block he can fall through. Or the block he was originally placed on was removed. Every 10 seconds the plugin checks if the shopkeepers is still in the correct location, and if not, it teleports him back.
I might improve that in a future update to take blocks like grass into account.