
ChestShop
The original physical shops Bukkit plugin using just signs and chests. Simple, yet very powerful with lots of addons!
- Загрузки
- 9K
- Подписчики
- 39
- Обновлён
- 15 июля 2026 г.
- Лицензия
- LGPL-2.1-or-later
Опубликован 5 февраля 2023 г.
If you are upgrading from a previous version of ChestShop please make sure to always read the warnings in the update note!
ChestShop is an awesome plugin for managing your server's economy. By using chests and signs, you can effectively create your own market! Simple, yet very powerful with lots of addons! Originally created by Acrobot.
It's never been that easy to create shops! With features like shop protection and anti-lag measures, you won't have to worry about your server's economy anymore!
ChestShop is the original physical shops Bukkit plugin originally created in 2011!
"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!
The plugin by default submits anonymous stats about your server (player count, plugin/server version and type) to a public statistics websites (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 development version
Download 1.12.2 version
Download 1.8.8 version
Download older versions
API for plugin developers
Source code on GitHub (LGPL-2.1)
Localization via Crowdin
Language file syntax
Report bugs or request enhancements
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
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)
ChestShopExtras - Share shop access with other players and give per-user discounts
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, abandoned)
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 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 of the item on the forth line. You can find out the name of the item that you're holding by running /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.
Creating an Admin 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! (If there is a chest then they will use the items within and not be unlimited. You can change that with the FORCE_UNLIMITED_ADMIN_SHOP config option)
Translations
The latest builds include translations for many languages. They are shipped with the plugin. If you want to help out translating messages check out the ChestShop Crowdin project!
Commands
/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
ChestShop.shop.*- shop creation and buying/selling - it contains:ChestShop.shop.create.*- create all types of shopsChestShop.shop.create.<itemid>- create shops with a specific item typeChestShop.shop.create.buy.<itemid>- create buy shops for a typeChestShop.shop.create.sell.<itemid>- create sell shops for a typeChestShop.shop.buy- buy any item from shopsChestShop.shop.buy.<itemid>* - buy only specific items from shopsChestShop.shop.sell- sell any item to shopsChestShop.shop.sell.<itemid>- sell only specific item to shopsChestShop.mod- open any shop chestChestShop.admin- open any shop chest, destroy stores, create (admin) shops
A full list of permission nodes
Configurations
Besides defining which shops a player can create via permission you can also configure almost any aspect about the plugin in the automatically generated yml files. The more general settings are in the config.yml (with explaining comments), setting minimum/maximum prices is done via the priceLimits.yml and setting up admin shop discounts is done via the discounts.yml. Messages can be set in the config files in the languages folder for each client language. They use the MineDown syntax for full component support.
Useful tips by players
Compatibility
ChestShop directly hooks into the following plugins to provide additional functionality:
- AuthMe (and forks like AuthMe Reloaded)
- WorldGuard
- PlotSquared
- GriefPrevention
- Residence
- LWC (and forks like LWCX and Modern-LWC)
- Lockette
- LockettePro
- BlockLocker
- Deadbolt
- SimpleChestLock
- ItemBridge
- OddItem
- Heroes
- ShowItem
And of course all Economy plugins that are Vault or Reserve compatible.
License
ChestShop's source code as well as the distributed plugin file are licensed under the terms of the GNU Lesser General Public License 2.1.
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 on 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 Phoenix616 a beer! :)
Acrobot released his first Android game, would you mind giving it a go?
A shout-out to Acrobot's friend: We believe that the music he makes is really stunning - you can decide it for yourself! His SoundCloud account
Ченджлог
3.13-pre-1Бета26.1.1, 26.1.2, 26.2 · 15 июля 2026 г.
This is a pre-release for 3.13 for initial testing and this release note should be considered a draft and is potentially incomplete Use this version with care!
Support Phoenix616 and the continued development of ChestShop here.
Please read all the notes and changes before upgrading!
This update requires at least Java 21!
The current version is tested with 1.13-26.2 but there might still be some minor issues in 26.2. Also seeing as it has been over 4 years since the last version please take extra care when updating. (Like making backups, you should do that regularly) Make sure to test the latest development builds and if you still run into bugs using it please open an issue asap!
Download the new builds here!
Please note that each server update might require a conversion of the items database to ensure that all item data is compatible with the server version you are running. Downgrading the server or plugin is not advised and will most likely lead to errors! Always restore all the plugin files from a backup if you want to downgrade!
What's Changed
- Require Java 21
- Lots of new and fixed messages from our crowdin contributors! (New languages: Slovak, Portuguese, Lithuanian)
- ItemBridge integration to use their custom item names on signs (#361)
- PlotSquared integration (#487)
New config options match WorldGuard:
PLOTSQUARED_INTEGRATION(default:false): Enables the integrationPLOTSQUARED_ONLY_IN_PLOTS(default:true): Only allows shops inside plotsPLOTSQUARED_USE_FLAG(default:false): Only allows shops in plots with the flagallow-chestshop
- New config option
WORLDGUARD_ONLY_IN_REGION(default:true) to only allow shops in regions. (https://github.com/ChestShop-authors/ChestShop-3/issues/520) This is the default behaviour from before whenWORLDGUARD_INTEGRATIONwas set totrue. Splitting this off into a separate config option makes it possible to use theallow-shopflag independently, even without forcing its existance (e.g. to disable shop creation in certain regions) - Amounts in transaction message include taxes by @felipefoschiera in https://github.com/ChestShop-authors/ChestShop-3/pull/534
- Add option to strip price colors
STRIP_PRICE_COLORS(default:false) by @Krakenied in https://github.com/ChestShop-authors/ChestShop-3/pull/553 - Implemented permissions for bypassing min/max sell/buy prices by @Johanmans10 in https://github.com/ChestShop-authors/ChestShop-3/pull/592
ChestShop.nolimit.buy.min: Allows user to bypass the minimal buy price for all itemsChestShop.nolimit.buy.min.(itemType): Allows user to bypass the minimal buy price for itemTypeChestShop.nolimit.buy.max: Allows user to bypass the maximal buy price for all itemsChestShop.nolimit.buy.max.(itemType): Allows user to bypass the maximal buy price for itemTypeChestShop.nolimit.sell.min: Allows user to bypass the minimal sell price for all itemsChestShop.nolimit.sell.min.(itemType): Allows user to bypass the minimal sell price for itemTypeChestShop.nolimit.sell.max: Allows user to bypass the maximal sell price for all itemsChestShop.nolimit.sell.max.(itemType): Allows user to bypass the maximal sell price for itemType
- Allow usage of meta ID as they are on the sign in price restrictions config by @casptyche in https://github.com/ChestShop-authors/ChestShop-3/pull/594
- Make message toggle persistent after logout by @diegonighty in https://github.com/ChestShop-authors/ChestShop-3/pull/602
- Add release update notification (https://github.com/ChestShop-authors/ChestShop-3/issues/541) and move auto updater from CurseForge to Modrinth for downloads (https://github.com/ChestShop-authors/ChestShop-3/issues/586)
Auto updating is disabled by default. Set
TURN_OFF_UPDATEStofalsein theconfig.ymlto enable it. - Add
ShopEditEventwhen a sign is edited directly without destroying it (https://github.com/ChestShop-authors/ChestShop-3/issues/618) - Add
SignValidationEventby @SulkyWhale in https://github.com/ChestShop-authors/ChestShop-3/pull/631 - Add metric multiplier (
K= 1 000 andM= 100 000) by @ForOldYork in https://github.com/ChestShop-authors/ChestShop-3/pull/638 EXCLUDED_ITEM_ATTRIBUTESconfiguration by @vmanijashvili in https://github.com/ChestShop-authors/ChestShop-3/pull/577- Fix that that the tax amount could not be a double (https://github.com/ChestShop-authors/ChestShop-3/issues/578)
- Fix lag from Hoppers moving items on Paper (https://github.com/ChestShop-authors/ChestShop-3/issues/541)
- Fix that editing a sign would not call
ShopDestroyedEvent(onlyShopCreatedEvent) causing no money being refunded but charged for shop creation (https://github.com/ChestShop-authors/ChestShop-3/issues/656) - Fix logger issues (https://github.com/ChestShop-authors/ChestShop-3/issues/551)
- Fix error on teleport when using the plugin with Folia (https://github.com/ChestShop-authors/ChestShop-3/issues/566)
- Fix errors on generating sign item name and general improvement to the robustness of that code (https://github.com/ChestShop-authors/ChestShop-3/issues/557)
- Fix stock counter not being updated by hoppers by @Johanmans10 in https://github.com/ChestShop-authors/ChestShop-3/pull/591
- Fix unexpected exception in ItemDatabase update by @Joo200 in https://github.com/ChestShop-authors/ChestShop-3/pull/563
- Fix Vault No Economy Plugin Found Error by @DerMistkaefer in https://github.com/ChestShop-authors/ChestShop-3/pull/613
- New scripts to support the release process: One to update the version and one to auto-generate the release jars (https://github.com/ChestShop-authors/ChestShop-3/issues/657)
3.13 Milestone: https://github.com/ChestShop-authors/ChestShop-3/milestone/1?closed=1
Full commit history: https://github.com/ChestShop-authors/ChestShop-3/compare/3.12.2...3.13-pre-1
New Code Contributors
- @JLLeitschuh made their first contribution in https://github.com/ChestShop-authors/ChestShop-3/pull/527
- @felipefoschiera made their first contribution in https://github.com/ChestShop-authors/ChestShop-3/pull/534
- @Joo200 made their first contribution in https://github.com/ChestShop-authors/ChestShop-3/pull/563
- @Johanmans10 made their first contribution in https://github.com/ChestShop-authors/ChestShop-3/pull/592
- @casptyche made their first contribution in https://github.com/ChestShop-authors/ChestShop-3/pull/594
- @DerMistkaefer made their first contribution in https://github.com/ChestShop-authors/ChestShop-3/pull/613
- @diegonighty made their first contribution in https://github.com/ChestShop-authors/ChestShop-3/pull/602
- @SulkyWhale made their first contribution in https://github.com/ChestShop-authors/ChestShop-3/pull/631
- @ForOldYork made their first contribution in https://github.com/ChestShop-authors/ChestShop-3/pull/638
- @vmanijashvili made their first contribution in https://github.com/ChestShop-authors/ChestShop-3/pull/577
Crowdin Contributors
Top 5:
| Name | Language(s) | Words |
|---|---|---|
| Róbert (RobiNN1) | Slovak | 511 |
| ice41 ice (ice41pt) | Portuguese | 504 |
| kaimodiss | Lithuanian | 501 |
| Felipe Cardoso (felipecardosoruff) | Portuguese, Brazilian; LOLCAT | 353 |
| dimasaurio | Catalan; Spanish | 131 |
Show rest
| Name | Language(s) | Words |
|---|---|---|
| SnowCutieOwO | Chinese Simplified | 91 |
| sketaful | Swedish | 84 |
| BackSam6348 (backsam6348) | Korean | 74 |
| Recep Emre Ada (AzmeaL) | Turkish | 63 |
| Bohdan Rudyk (lolmaojustmeme) | Ukrainian | 59 |
| RealOnlyVentu | Italian | 56 |
| Axtazer | French | 50 |
| PLKaratusPL | Polish | 49 |
| Bzucak12 | Czech | 49 |
| Juxielle | Norwegian | 48 |
| 778b | Russian | 35 |
| Marmur (marmur2020) | Russian | 14 |
| Kinoko_2K (kinoko2k) | Japanese | 11 |
| Pancho Pelotas (panchopelota19) | Spanish | 10 |
| Arthur Muscardi (arthurmuscardineves) | Portuguese, Brazilian | 10 |
| Robin L. (Firaman3D) | German | 10 |
| Xenomatter (XenoM) | Norwegian | 10 |
| XZSREDGH zAWSERGr (yakisobaatama0108) | Japanese | 8 |
| d9tetra | Japanese | 6 |
| qkrtjdalsz | Korean | 6 |
| okhiokhi | Chinese Traditional | 3 |
| Erlend Pilø (Erlpil) | Norwegian | 1 |
Support the Development
This update has been in development for over 4 years and probably took over 100 hours of unpaid work. I would really appreciate it if you could support further work monetary!
You can also hire Phoenix616 for software development and system administration work. Open-source projects will get a 50% discount!
3.12.2Релиз1.19.1, 1.19.2, 1.19.3 · 5 февраля 2023 г.
If you want to support the development then take a look here.
Please read all the notes and changes before upgrading!
The current version is tested with 1.13-1.19 but there might still be some minor issues in 1.19. Make sure to test the latest development builds and if you still run into bugs using it please open an issue asap!
Download new builds here!
Please note that each server update might require a conversion of the items database to ensure that all item data is compatible with the server version you are running. Downgrading the server or plugin is not advised and will most likely lead to errors! Always restore all the plugin files from a backup if you want to downgrade!
Notable changes and fixes:
- Added new full translations in Ukrainian (by txlbr) and fixed some issues in Italian and some other languages
- Fixed an issue with the partial transaction module (Thanks to Krakenied)
- Removed dependency on apache-commons-lang (as that isn't exposed in the Spigot-API anymore in 1.19) and replaced it's methods with our own utility ones
See the commit history for all changes.
Комментарии
Загружаем…