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 Feb 6, 2012Is there a way to make a "Grab Bag" ChestShop?
I often get a bunch of... "stuff" collected. I'd like to sell it off, but really don't want to make a shop for each item. It would be cool to have the ability to create a shop, that for a set price randomly gives out items in the chest.
So I could create a shop that may give out mostly stacks of cobblestone, but also have an enchanted diamond pickaxe in it. The result being you may spend a fortune to get only cobblestone, but you also may get a cool item.
I'd use this to dump string, arrows, bones, spider eyes, cobblestone, doors, chests, etc in it. I often pick up these items and rather than just storing (or, well, actually crafting with them) I'd like to sell them off.
Also, is there a way to get a .jar only download? Once we have those sample files it makes it much easier to just replace the .jar. Perhaps you could release .jar only versions on the version upgrades that don't require new sample files, in addition to your existing .zip files?
-
View User Profile
-
Send Message
Posted Feb 6, 2012@Acrobot
no I'm not getting any errors so what now?
-
View User Profile
-
Send Message
Posted Feb 6, 2012@Acrobot
Very possible I say, since you can easily get the enchantments of an ItemStack and set them. Lazyness :D
-
View User Profile
-
Send Message
Posted Feb 5, 2012@UnitedFactions Hmm, well, I can make a special toggle for you.
-
View User Profile
-
Send Message
Posted Feb 5, 2012Dear Chestshop,
I have something to ask,
Would it be possible to make chestshops, and make them protected against opening by anyone, but able to blow up with TNT? that would be awesome
hope to hear from you greetings
-
View User Profile
-
Send Message
Posted Feb 5, 2012@iffa2
disable sign protection in essentials config
-
View User Profile
-
Send Message
Posted Feb 5, 2012@iffa2 Yeah, but this is impossible atm :/
@INSAN3CLANFTW Are you getting any errors?
-
View User Profile
-
Send Message
Posted Feb 5, 2012I'm using the latest ChestShop but if i want to buy something it just say [essentialprotect] (user) i also use essentials so what now i can't buy and sell help plz
-
View User Profile
-
Send Message
Posted Feb 5, 2012@Acrobot
Yes, but I just want to have a chest full of enchanted shizz and one sign for each tool/armor, so it would just pick one without giving a shit about enchanting levels
-
View User Profile
-
Send Message
Posted Feb 5, 2012@Chikyuno Something broke, and I don't know why. I'll check that, ATM just disable TOWNY_INTEGRATION
-
View User Profile
-
Send Message
Posted Feb 5, 2012When creating a shop v3.34 now throws:
[SEVERE] Could not pass event org.bukkit.event.block.SignChangeEvent to ChestShop java.lang.NullPointerException at com.Acrobot.ChestShop.Utils.uTowny.isInsideShopPlot(uTowny.java:16) at com.Acrobot.ChestShop.Utils.uTowny.canBuild(uTowny.java:29) at com.Acrobot.ChestShop.Listeners.signChange.onSignChange(signChange.java:93) at org.bukkit.plugin.java.JavaPluginLoader$38.execute(JavaPluginLoader.java:530) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:57) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:453) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:1094) at net.minecraft.server.Packet130UpdateSign.handle(SourceFile:41) at net.minecraft.server.NetworkManager.b(NetworkManager.java:226) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:100) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:537) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:435) at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
Version 3.33 did not.
Maybe my Towny version is too old (v0.77.1.31) but I won't update it now, 'cause that plugin always requires special attention when upgrading...
-
View User Profile
-
Send Message
Posted Feb 5, 2012@asofold Hmm, I have no clue why this would work (probably due to the way PEX hooks into old permissions?), but I'm glad that it works for you.
-
View User Profile
-
Send Message
Posted Feb 4, 2012@Acrobot
Seems to work with lower- case now, PEX 1.18 wihout the "Permission.jar" - it ned not be due to ChestShop though ....
-
View User Profile
-
Send Message
Posted Feb 4, 2012@asofold Hmm, permissions should work fine lower-case and mixed-case. (That's what is checked in code) PEX 1.17 is repported as working by some people, and I'm sorry that something broke.
-
View User Profile
-
Send Message
Posted Feb 4, 2012@Acrobot
Hmm usually superperms seem to work fine , but with ChestShop they don't, currently (i threw out the fake Permissions plugin from PEX).
Ok it seems PEX 1.18 registers a fake Permsision plugin still, and your Permission enum seems to check for that first, and it seems one effectively has to use lower case for the permissions then...
-
View User Profile
-
Send Message
Posted Feb 4, 2012@GameOverRules It's just not possible. Bukkit handles the permissions now, so all I do is check for player.hasPermission("somePermission") - your permission plugin causes the problems.
@imailyou Well, blame Notch (:P) He chose that instead of different IDs, he will use the same vaule other items use for damage :P The base item is, well, INK_SACK -> the colored variants only change their damage vaules, that's why it says "Blue (lapis is blue) ink sac" Also, the plugin is a shop plugin, not a chest locking one. If you want one just to lock your items, use for example LWC or Lockette.
@iffa2 You can. Just do /iteminfo and it will tell you the item id/durability/enchantment string
@Hampi90 Can be possible, but not in ChestShop 3, maybe in the 4th one :P
@brewno2k This is due to the way Bukkit handles permissions. You need to negate the ChestShop.shop.create node (look into your perm plugin's FAQ)
@zssz2 You'd need to give players a ChestShop.shop.create.* permission, not ChestShop.shop.create one for that.
-
View User Profile
-
Send Message
Posted Feb 4, 2012@Acrobot Hey this plugin chest shop has a major problem its not hooking into permissions so it is not working! Please fix asap
-
View User Profile
-
Send Message
Posted Feb 4, 2012iteminfo says blue ink sac when holding lapis lazuli. Is there a fix for that?
Btw. one can use 351:4 as item but the sign is wrong then (works, though)
Thx
-
View User Profile
-
Send Message
Posted Feb 4, 2012Hi,
great plugin, thx!
Just one question: is there a generic item name to put just to lock the chest? E.g. I can set a buying price of 10000000:1 there and diamond, but something like "locked" would probably be more elegant...?
Thx
-
View User Profile
-
Send Message
Posted Feb 3, 2012@Acrobot
Thanks! Some nice statistics there! I just wonder if it sometime in the future would be possible to add a command so you can look up which ones have bought and sold items to a specifik shop. Would be great to have that function sometime. :)