ChestShop (iConomyChestShop)
Acrobot released his first Android game, would you mind giving it a go?
ChestShop
A simple, yet very powerful system for making physical shops using signs and chests.
It's never been that easy to create shops! With features like shop protection and anti-lag protection, you won't have to worry about your server's economy anymore!
"Just works"! ChestShop supports almost all economy plugins by using Vault!
(Versions above 3.9.2 also support economy plugins using the Reserve API)
Some known compatible and incompatible economy plugins.
Please check if there are newer development builds before reporting issues!
If you are upgrading from a previous version of ChestShop please make sure to always read the warnings in the file's changelog!
The plugin by default submits anonymous stats about your server (player count, plugin/server version and type) to a public statistics websites (mcstats.org and bstats.org) in order to provide the developers with usage information. If you wish to opt out, you can do so in the PluginMetrics/config.yml and bstats/config.yml files. It also features an auto-update feature, which can be turned off in the config.
Frequently Asked Questions
Permissions
User-made tutorials
Download the latest stable version
Download the latest development version
Download 1.12.2 version
Download 1.8.8 version
Download older versions
API for plugin developers
Source code on GitHub
Crowdin Localization Project
Thread on Bukkit forums
IRC chat (#chestshop on irc.esper.net)
Discord Channel Joining through that invite auto subscribes you to important update notifications, if you don't want that use this invite.
bStats metrics
Additional modules for ChestShop:
ChestShop LegacyIds - allows usage of numeric and old pre 1.13 string IDs on signs
Notification module - to use with Notifications plugin (outdated)
Towny module - to use with Towny plugin
ChestShop Notifier - records all sales, even when the player is offline (Maintained by Phoenix616)
ChestShopTools - Enchantment info signs and empty shop notifier (Maintained by Phoenix616)
Adda - Item display icons above the chest, transaction limit, Discord alerts, per-player shop limit! (User-made)
ChestIcon - Icons for Chests, just like the Showcase plugin! (User-made, broken on newer versions)
Libelula Auto Shop - easy creation of admin shops, using Essentials (User-made)
ChestShopLimiter+ - limits the number of shops per player (User-made, abandoned)
ChestShopListing - Stores shops and transactions in SQL; adds related features including in-game search (User-made)
ChestShopConfirmation - confirmation screen before buying (User-made)
SearchChestShop - search for shops selling certain items (User-made)
BoltChestShop - Add support for Bolt container protections (Made by the Bolt author)
Using shops
It's easy! Just right-click the sign to buy, left-click to sell. (You can configure the buttons in the config file!)
How to create a shop
Player shop
| Place a chest on the ground | |
| Place a sign 1 block away from the chest (for example, above it) | |
| On the sign, write: | ![]() |
| Leave the first line empty. It will be automatically filled with your name by the plugin (if you have the permission ChestShop.admin then you can create shops with the names of other players) | |
| Second line is the amount of items to buy or sell | |
|
Third line is a combination of buy and sell prices. You need to have a price indicator (like 'B' - price that will apply to items BOUGHT by PLAYERS - or 'S' - the SELL price) near the price - the prices are separated by a colon (:) |
Some of the possible price combinations: "B 5:5 S", "B 5", "S free" |
|
The forth line will hold the id/name of the item. Write ? on the sign and the item will be autofilled with the one from the chest or you can click on the sign with the item afterwards. Optionally you can put the actual name on it. You can find out the name of the item you're holding by doing /iteminfo |
|
| Resulting Shop | ![]() |
| A person can buy 64 diamonds for 10 dollars and sell them back for 5 dollars from Phoenix616 |
If you want you can also take a look at this video tutorial.
Admin Shop - shop with unlimited items
Firstly, you've got to be sure that you've the ChestShop.admin permission or that you are an OP. To make an Admin Shop, simply put "Admin Shop" (configurable in config.yml) on the first line of the sign when creating the shop. Admin Shops do not require a chest!
Translations
- /iteminfo - Get information about the item in your hand
- /iteminfo <id/name> - Get information about the item with the given id or name
- /shopinfo - Get information about the looked-at shop
- /csgive <itemcode> [<amount>] [<player>] - Give item with a unique ChestShop code to a player
- /cstoggle - Toggle buy and sell notificiation messages
- /chestshop version - Display the ChestShop version
- /chestshop reload - Reload the ChestShop config and translation messages. (This might not reload some features)
- /csaccess - Toggles ability to buy/sell on shops while having admin/access permissions and normally being ignored
Permission nodes
| Description | ||
|---|---|---|
| ChestShop.shop.* | shop creation and buying/selling - it contains: | |
| ChestShop.shop.create.* |
create all types of shops |
|
| ChestShop.shop.buy | buy any item from shop | |
| ChestShop.shop.sell | sell any item to shop | |
| ChestShop.mod | open any shop chest | |
| ChestShop.admin | open any shop chest, destroy stores, create (admin) shops |
A full list of permission nodes
Configurations
Useful tips by players
| How not to get bankrupt | A customisable price table |
| Alternative price table |
Compatibility
ChestShop directly hooks into the following plugins to provide additional functionality:
- AuthMe (and forks like AuthMe Reloaded)
- WorldGuard
- Residence
- LWC (and forks like LWCX and Modern-LWC)
- Lockette
- LockettePro
- Deadbolt
- SimpleChestLock
- OddItem
- Heroes
- ShowItem
Metrics
This resource sends metrics data to McStats and bStats. You can opt-out of metrics for all plugins on your server by changing the settings in the PluginMetrics/config.yml and the bStats/config.yml file if you don't want any data to be send.
More info
Even more information can be found in the old plugin thread on the forums.
Got an error or suggestion?
Simply submit a ticket here!
If you have a Github account and have coding knowledge you can also directly open an issue on Github. (You can also fund them via IssueHunt!)
If you just need general help feel free to ask in the comments or join the #chestshop channel on Spigot's IRC network (irc.spi.gt, webchat)
Has ChestShop helped you or your server?
If you want to thank the team in a more materialistic way, feel free to donate or buy Phoeni616 a beer! :)
A shout-out to Acrobot's friend:
We believe that the music he makes is really stunning - you can decide it for yourself!
If you have an issue then please open a ticket on GitHub or post on SpigotMC.org for faster replies to questions!


-
View User Profile
-
Send Message
Posted Sep 26, 2013@GeekTechMedia Server_tax_amount should be a natural number (0-100, no floating point)
-
View User Profile
-
Send Message
Posted Sep 26, 2013Can some please help with this?
2013-09-26 05:21:58 [INFO] [ChestShop] Enabling ChestShop v3.64
2013-09-26 05:21:58 [SEVERE] Error occurred while enabling ChestShop v3.64 (Is it up to date?)
java.lang.IllegalArgumentException: Can not set static int field com.Acrobot.ChestShop.Configuration.Properties.SERVER_TAX_AMOUNT to java.lang.Double
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168)
at sun.reflect.UnsafeStaticIntegerFieldAccessorImpl.set(UnsafeStaticIntegerFieldAccessorImpl.java:96)
at java.lang.reflect.Field.set(Field.java:741)
at com.Acrobot.Breeze.Configuration.Configuration.pairFileAndClass(Configuration.java:44)
at com.Acrobot.ChestShop.ChestShop.onEnable(ChestShop.java:81)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:382)
at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugin(CraftServer.java:286)
at org.bukkit.craftbukkit.v1_6_R2.CraftServer.enablePlugins(CraftServer.java:268)
at net.minecraft.server.v1_6_R2.MinecraftServer.l(MinecraftServer.java:319)
at net.minecraft.server.v1_6_R2.MinecraftServer.f(MinecraftServer.java:296)
at net.minecraft.server.v1_6_R2.MinecraftServer.a(MinecraftServer.java:256)
at net.minecraft.server.v1_6_R2.DedicatedServer.init(DedicatedServer.java:164)
at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:397)
at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
Any help would be greatly appreciated.
-
View User Profile
-
Send Message
Posted Sep 23, 2013@Bbcsto13 Yeah it's unfortunately not something I can really do. If I could, I would stop the checking of the item moved event until the cart's state changes (so it goes within/outside the range of the hopper). However, Bukkit doesn't do that. That leads to the lags you can experience. The only way to prevent them is to turn off the protection entirely, which would mean that people could just steal items from the shops.
@CloudKidZ Yeah, this is a nice idea. Currently, priceLimits.yml file does not have any setting to set the global max buy/sell price. I really believe that it's worthy of its own sub-plugin, rather than to mess with settings.
@RaesWolf Hmm... Are you sure you are really using the latest version of ChestShop? By doing /iteminfo while holding your item, you'll receive the item information, including a special ID to put on the sign.
-
View User Profile
-
Send Message
Posted Sep 23, 2013I have seen videos of players that use chest shop to sell enchanted gears, books etc and it provides codes however when I try /iteminfo with chest shop in 1.6.2 most current version of chest shop I do not get any code. Is there something I am missing?
-
View User Profile
-
Send Message
Posted Sep 23, 2013@Acrobot
Hello,
I created a ticket on my previous ideas, but after going through your config file I figured out a possible easier way to keep Chestshop from being abused on a raiding server, which would only require one small addition - see number 3 below:
1. set a Worldguard region where Chestshop can be used, preventing use of indestructable chests in construction of bases. (great setting in the config file, btw!)
2. set the maximum price for all items, so a player can't fill a chest with nice armor and an inflated price to keep players from buying it and allowing them to store valuable items in indestructable/non-raidable chests.
3. add a config for the number of chestshops a group is allowed to create, to prevent one player from spamming the marketplace area with an excessive number of chests.
The last would also be valuable on non-raiding servers by allowing server owners to use chestshop creation as a perk for donators. Each higher rank could have more total chestshops allowed.
Thank you!
P.S. in the pricelimits.yml, can I put something in the itemID field to make a universal maximum price for all chestshops?
-
View User Profile
-
Send Message
Posted Sep 22, 2013@Acrobot
I have found a major lag source in the plugin, i recreated your listener for hoppers on a debugger plugin and put it on a server. Then had it log to the console each time the specific thing chest shop looks for happened. (source not null, and instance of chest) and then replaced checking for it being a chestshop chest ect, with a console logger of location and stuff
Well i found that this, with about 5 normal hoppers on the server, got logged hundreds of times a second, and the worst part? i filled the hoppers output chest up to the top, so it couldn't even move the item, yet it was still calling the event over and over. I see that this is most likely a problem with bukkit but i thought i'd let you know this is probably why people complain about lag, unless its the economy and someone is spamming shops
-
View User Profile
-
Send Message
Posted Sep 22, 2013@CloudKidZ That is actually a nice idea. Please create a ticket for it (or PM me), because it shall be implemented as a ChestShop module.
@Durand1w Actually, what you get from /iteminfo is probably your best bet. It saves all the item metadata, however the mod might not be fully compatible with Bukkit - that's why it can't be sold.
-
View User Profile
-
Send Message
Posted Sep 20, 2013Unique situation and not sure if it has been brought up before.
We have The Camping Mod loaded and one of the players attempted to sell camping bags. Camping bags have the same item ID, but they are each tied to a unique inventory.
When you try to see them from a chest, it says Out of Stock, as if it can't find the item. I have tried X4360, X4360:2 and X4360:2#1k, all of which resolve but still it is unable to see the item. I'm wondering if it isn't an issue unique to this item because of the unique storage (such that the item is actually X4360:2#1k-<unique string>.
Thoughts?
-
View User Profile
-
Send Message
Posted Sep 20, 2013@Acrobot
Hmm, guess that's true. Any way to keep them from getting their stuff back out of the chest? That's the main problem on raiding servers - players use indestructible chests, like chests on top of locked horses, chestshops, etc. to keep their valuables in so they can't be raided by others, giving them an unfair advantage.
Maybe an option that on sign breakage, chest and items in it are destroyed? Combined with an option that items can not be removed from chestshops. You'd probably also need a "can't buy from my own shop" option, to keep them from just rebuying their items also.
Thanks!
-
View User Profile
-
Send Message
Posted Sep 20, 2013@Klowe10 Yeah. Update.
-
View User Profile
-
Send Message
Posted Sep 19, 2013@Acrobot
3.50-T0053
-
View User Profile
-
Send Message
Posted Sep 19, 2013@Klowe10 Which ChestShop version are you using?
-
View User Profile
-
Send Message
Posted Sep 18, 2013When you try to sell a written book it does not work..
"387#gO"
IT makes the chestshop called "387#go"
So I think that's why it doesnt work.
-
View User Profile
-
Send Message
Posted Sep 18, 2013@Durand1w Yeah, and I have NO IDEA what will happen then. Currently, Minecraft is using a system (an enum) to match item names/IDs to their proper Materials (a class representing an item). When 1.7 rolls out, I have no idea what will happen. It's highly probable that it will still work, just the new items will be needing a work-around, however if something breaks - well, I'll be spending my nights re-coding the plugin ._.
-
View User Profile
-
Send Message
Posted Sep 18, 2013Great plugin! I do have one question about the likely 1.7 changes. From Dinnerbone's twitter feed, block and item IDs will be going away and be dynamic on servers. I'm not sure if anyone has brought this up here or to Dinnerbone, but how will we be able to sell items that have names that are longer than the sign character limit, since we won't be able to use the ID in the future?
-
View User Profile
-
Send Message
Posted Sep 17, 2013@Hilliard20914 Sure.
-
View User Profile
-
Send Message
Posted Sep 17, 2013Has the stacked armor glitch been fixed? When you put non stackables in the chest and make the chop where you buy like 10 it stacks them.
-
View User Profile
-
Send Message
Posted Sep 17, 2013@CloudKidZ Well, if they were able to break the sign, the chest wouldn't be protected anymore, and the player would be able to just take items from the chest, right?
-
View User Profile
-
Send Message
Posted Sep 17, 2013Great plugin!
I was wondering if you could add a couple of features that would make this plugin integrate better into a raiding/factions server economy.
The main abuse of Chestshop on a raiding server is that players use the indestructible chests as safe, unraidable storage for their valuable items, the equivalent of more enderchest storage.
To solve this, an idea we came up with was a permission that did not allow players to remove their items once they were placed in the chest, ensuring that they were items the player truly wanted to sell, not come back for at a later date. If the items were not selling, they would still be able to break and place a new sign with a cheaper price. And for disposal, If items still don't sell, either a 'clear chest' command could be added, or have the items not drop on breaking of the chest.
Currently faction/raiding servers use an auction plugin (very slow on large servers) or safe trading rooms (open to scamming), for players to sell their items. If the changes mentioned above could be added, Chestshop could safely be added to increase options for players to sell their items.
Thank you for an excellent plugin.
-
View User Profile
-
Send Message
Posted Sep 17, 2013@Bbcsto13 Okay, I'll create an option to do that.
@absintoj Thanks!