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
stock: Global pool shared by all players. Once 0 items remain, no one can buy.per-player-limit: Each player can buy at most this many (tracked per player).
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.