Shopkeeper
🧭 Overview
The Shopkeeper is a core game mechanic that allows players to purchase items during the preparation phase. Items are grouped into categories to make browsing and purchasing fast and intuitive.
📦 Items
All items are stored inside the /items/ folder.
Each item has its own file and configuration.
Every item file is made up of modules, which define how the item behaves in the shop.
📚 Categories
Permanent / Upgrades
Items that persist and can be upgraded (e.g., swords, armor).
Consumables
Items that can be purchased repeatedly (e.g., Golden Apples, Ender Pearls).
Eggs
Special items that spawn minions when right-clicked.
TNT
Throwable explosives activated by left-clicking.
🛠 Creating Items
Open the
/items/directory.Choose an existing item file as a template.
Duplicate it.
Rename the copy to your new item’s name.
Edit the configuration to define your item’s behavior.
🧩 Item Modules
Each module defines a specific part of how the item works.
🪄 Mythic Module
mythic:
is-mythic: trueMarks the item as Mythic, linking it to mythic-related features (e.g., augments, rare effects).
💰 Purchase Module
purchase:
gold-cost: 750
round-unlock: 1
consumable: true
category: "SUMMONS"Defines purchase details and availability.
gold-cost
How much gold the item costs.
round-unlock
Round number when the item becomes available.
consumable
Whether it can be bought multiple times.
category
The category this item belongs to.
🔼 Upgrade Module
upgrade:
shared-id: "chestplate"
upgrade-tier: 2Items with the same shared-id form an upgrade path.
Higher upgrade-tier values = better versions.
✨ Enchant Module
Example 1 (basic):
enchant:
is-enchant: true
max-purchases: 2
cost-increase-per-purchase: 25
apply-to:
- BOW
apply-enchants:
- "enchant{PUNCH} power{1}"Example 2 (advanced, per-item):
enchant:
is-enchant: true
apply-to:
LEATHER_BOOTS:
- "enchant{FEATHER_FALLING} power{4}"
DIAMOND_CHESTPLATE:
- "enchant{PROTECTION} power{1}"cost-increase-per-purchase is a percentage increase per buy.
Example with 25% increase:
Level 1: 500 Gold
Level 2: 625 Gold
Level 3: 750 Gold
🧱 Equipment Builder Module
equipment-builder:
39:
ignore-slot: false
lore:
- "&8Permanent"
type: IRON_HELMET
amount: 1
damage: 0
model: 0
glint: false
attributes:
- "attribute{ARMOR} operation{ADD_NUMBER} value{2.5}"
- "attribute{ARMOR_TOUGHNESS} operation{ADD_NUMBER} value{1.0}"Controls what item is given, its visuals, and stats.
ignore-slot
Whether the slot should be ignored when given.
type
The item type (e.g., IRON_HELMET).
attributes
Attribute modifiers (armor, damage, etc.).
enchants
Optional enchantments.
lore
Text lines shown in the tooltip.
💡 Examples
⚔️ Iron Sword
purchase:
gold-cost: 500
round-unlock: 5
consumable: false
category: "WEAPONS"
upgrade:
shared-id: "sword"
upgrade-tier: 2
equipment-builder:
0:
ignore-slot: false
lore:
- "&8Permanent"
type: IRON_SWORD
attributes:
- "attribute{ATTACK_DAMAGE} operation{ADD_NUMBER} value{5.0}"
- "attribute{ATTACK_SPEED} operation{ADD_NUMBER} value{-2.6}"🧪 Potion
purchase:
gold-cost: 500
round-unlock: 1
consumable: true
category: "POTIONS"
equipment-builder:
0:
ignore-slot: true
lore:
- "&8Consumable"
type: SPLASH_POTION
potions:
- "effect{HASTE} duration{200} amplifier{0} ambient{false} particles{true}"🪄 Breeze Egg
purchase:
gold-cost: 750
round-unlock: 1
consumable: true
category: "SUMMONS"
equipment-builder:
0:
ignore-slot: true
lore:
- "&8Consumable"
type: BREEZE_SPAWN_EGG🌟 Sharpness Enchant
purchase:
gold-cost: 500
round-unlock: 1
category: "ENCHANTS"
enchant:
is-enchant: true
max-purchases: 5
cost-increase-per-purchase: 25
apply-to:
- WOODEN_SWORD
- STONE_SWORD
- IRON_SWORD
- DIAMOND_SWORD
- NETHERITE_SWORD
enchants:
- "enchant{SHARPNESS} power{1}"🃏 Random Augment
mythic:
is-mythic: true
enchant:
is-enchant: true
command:
- "console->al player {PLAYER} ROLL_AUGMENT PRISMATIC"
equipment-builder:
0:
name: "&cRandom Augment"
type: PAPER
model: 11205302🧩 ItemsAdder Integration
purchase:
gold-cost: 500
round-unlock: 5
consumable: false
category: "WEAPONS"
upgrade:
shared-id: "sword"
upgrade-tier: 2
equipment-builder:
0:
ignore-slot: false
custom: "namespace:id"Last updated