EnchantShop
PluginMIT

EnchantShop

A simple, powerful, and fully configurable GUI-based shop for enchanting items using your server's economy.

172
Downloads
1
Followers
8 months ago
Updated
📦
5
Versions

📖About EnchantShop

EnchantShop

A complete enchanting system with a GUI shop, a high-stakes enchantment gambler, a disenchanter, and powerful admin tools.

Logo

Requires Vault
Built for Paper

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.

  1. Stop your server.
  2. Download the latest EnchantShop.jar from the Modrinth page.
  3. Install the dependencies: You must have Vault and an economy plugin (like EssentialsX) installed.
  4. Place all .jar files into your server's /plugins folder.
  5. Start your server to generate the new config.json.
  6. Edit the config.json to 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 /disenchant command. (Default: true)
  • enchantshop.reload: Allows use of the /eshop reload subcommand. (Default: op)
  • enchantshop.enchanter: Allows use of the /enchanter admin command. (Default: op)
  • enchantshop.buy.<enchant_name>: Required to buy an enchant if perEnchantPermissions is 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.

Join Our Discord!