Skip to content
TTS-STUDIO docs Discord

Plugins / ShopForge

Shop Format

Shop Format

Each shop is a YAML file in plugins/ShopForge/shops/. Here is the full format reference.


Complete Shop File

# shops/blacksmith.yml
# ─────────────────────────────────────────

id: blacksmith
display-name: "<gray>⚒ Blacksmith"
npc-id: 1                    # Citizens NPC ID (optional)

categories:
  # ── Category: Swords ─────────────────
  swords:
    display-name: "<aqua>⚔ Swords"
    items:
      diamond_sword:
        material: DIAMOND_SWORD
        display-name: "<aqua>Diamond Sword"
        buy-price: 500.0         # Cost to buy; -1 = not buyable
        sell-price: 200.0        # Income from selling; -1 = not sellable
        stock: -1                # Global stock; -1 = infinite
        per-player-limit: -1     # Per-player purchase limit; -1 = no limit
        enchantments:
          SHARPNESS: 3
          UNBREAKING: 2

      iron_sword:
        material: IRON_SWORD
        buy-price: 100.0
        sell-price: 40.0

  # ── Category: Armor ──────────────────
  armor:
    display-name: "<yellow>🛡 Armor"
    items:
      diamond_chestplate:
        material: DIAMOND_CHESTPLATE
        buy-price: 800.0
        sell-price: 350.0
        stock: 10                # Only 10 available globally
        per-player-limit: 1      # Each player can only buy 1

  # ── Category: Special ────────────────
  special:
    display-name: "<gold>⭐ Special"
    items:
      godly_sword:
        material: NETHERITE_SWORD
        display-name: "<gradient:gold:red><bold>Godly Blade</bold></gradient>"
        buy-price: 5000.0
        sell-price: -1           # Cannot be sold back
        stock: 1                 # Only 1 in existence
        per-player-limit: 1
        enchantments:
          SHARPNESS: 5
          FIRE_ASPECT: 2
          UNBREAKING: 3
          MENDING: 1

Item Field Reference

Field Type Default Description
material String Bukkit Material name
display-name String material name MiniMessage display name
buy-price Double Cost to buy; -1 = not buyable
sell-price Double Sell value; -1 = not sellable
stock Integer -1 Global quantity available; -1 = infinite
per-player-limit Integer -1 Max per player; -1 = no limit
enchantments Map {} ENCHANTMENT_NAME: level pairs

Stock vs Per-Player Limit

Example — limited edition item:

legendary_key:
  material: TRIPWIRE_HOOK
  display-name: "<gold>Legendary Key"
  buy-price: 10000.0
  stock: 50              # Only 50 ever available across all players
  per-player-limit: 1    # Each player can only get 1

Home | Commands & Permissions | Configuration


© TTS-Studio · ShopForge is part of the TTS-Studio Minecraft plugin suite.