
EnchantShop
A simple, powerful, and fully configurable GUI-based shop for enchanting items using your server's economy.
EnchantShop
A complete enchanting system with a GUI shop, a high-stakes enchantment gambler, a disenchanter, and powerful admin tools.

After a long battle with the code demons, EnchantShop has emerged victorious! This plugin provides a seamless way for your players to spend their hard-earned in-game money to get the exact enchantments they want, bypassing the randomness of the vanilla enchanting table. (YES I'M PUTTING THIS BECAUSE THIS IS MY FIRST PLUGIN AND I WANT TO SHOW YOU HOW HARD IT WAS)
Features ✨
- NEW! Enchantment Gambler: A high-stakes "double or nothing" system! Players can wager the existing enchantments on an item for a chance to win a new random enchant, but risk losing them all if the gamble fails!
- Intuitive GUI Menu (
/eshop): A main menu lets players choose between the classic, safe Enchant Shop and the risky new Gambler. - Enchanted Book Support: The shop works for both enchanting items directly and creating tradable Enchanted Books.
- Disenchanting System (
/disenchant): A separate GUI allows players to remove enchantments for a configurable refund. - Powerful Admin Tools:
/enchanter <player> <enchant> <level>: Instantly apply any enchant./eshop reload: Reload the config on the fly.
- Deep Configuration: Control everything from costs, gamble chances, blacklisted enchants, and max level overrides to all messages and sounds.
Installation ⚙️
Important: If updating from a previous version, you must delete your old config.json to allow the new gambling settings to generate.
- Stop your server.
- Download the latest
EnchantShop.jarfrom the Modrinth page. - Install the dependencies: You must have Vault and an economy plugin (like EssentialsX) installed.
- Place all
.jarfiles into your server's/pluginsfolder. - Start your server to generate the new
config.json. - Edit the
config.jsonto your liking, then use/eshop reload!
How to Use 🎮
For Players:
/eshop: Hold an item to open the main menu, then choose "Enchant Item" or "Gamble Item"./disenchant: Hold an enchanted item to open the disenchanting menu.
For Admins:
/eshop reload: Reloads the configuration file./enchanter <player> <enchant> <level>: Gives an enchant to a player.
Configuration 🔧
You can configure every aspect of the shop in the plugins/EnchantShop/config.json file. The file is automatically generated with sane defaults.
{
"costFormula": "base_cost * (level * level)",
"enchantmentBaseCosts": {
"minecraft:sharpness": 1000.0,
"minecraft:mending": 10000.0
},
"mainMenuTitle": "&8Main Menu",
"successSound": "ENTITY_PLAYER_LEVELUP",
"failSound": "ENTITY_VILLAGER_NO",
"gambleTickSound": "BLOCK_NOTE_BLOCK_HAT",
"gambleWinSound": "ENTITY_FIREWORK_ROCKET_TWINKLE",
"gambleLoseSound": "ENTITY_VILLAGER_DEATH",
"gambleDoubleSound": "UI_TOAST_CHALLENGE_COMPLETE",
"gambleChanceToWinPercent": 50,
"gambleChanceForSecondEnchantPercent": 20,
"messages": {
"prefix": "&8[&6EnchantShop&8] &r",
"gamble_no_enchants": "&cThe item you are holding must have at least one enchantment to gamble!",
"gamble_win": "&a&lVICTORY! &fYour item has been enchanted with &e{enchant} {level}&f!",
"gamble_win_extra": "&6&lJACKPOT! &fYou won an &eEXTRA&f random enchantment!",
"gamble_lose": "&c&lDEFEAT! &fAll enchantments on your item have been &cWIPED&f!"
},
"perEnchantPermissions": false,
"enchantmentBlacklist": [
"minecraft:binding_curse"
],
"maxLevelOverrides": {},
"disenchantRefundPercentage": 50.0
}
Permissions 🛡️
EnchantShop has a robust permission system for ultimate control.
enchantshop.disenchant: Allows use of the/disenchantcommand. (Default: true)enchantshop.reload: Allows use of the/eshop reloadsubcommand. (Default: op)enchantshop.enchanter: Allows use of the/enchanteradmin command. (Default: op)enchantshop.buy.<enchant_name>: Required to buy an enchant ifperEnchantPermissionsis enabled.enchantshop.admin: A parent node that grants all administrative permissions.
Join Our Community! 💬
Have a question, a suggestion, or just want to hang out? Join the official Duckalds' Mods Discord server! Click the banner below to join.

