## Items ```yaml id: bronze_pickaxe name: bronze pickaxe color: "178" # xterm-256 color index (0-255) aliases: ["pick", "pickaxe"] description: "A sturdy bronze pickaxe." value: 10 stackable: false equip_slot: main_hand # optional — where it equips weapon_type: melee # optional — melee or ranged stats: # optional — combat bonuses attack_bonus: 2 strength_bonus: 1 speed: 5 # ticks between attacks tool_type: pickaxe # used by gather behaviors that require "tool: pickaxe" tool_speed: 2 # reduces gather wait time ``` ### Color The `color` field accepts xterm-256 palette indices (0-255) with optional modifiers: ```yaml color: "178" # bronze/gold color: "75 bold" # bold steel blue color: "g:196,208,226" # gradient red → orange → gold ``` In ANSI mode, extended colors (16-255) automatically downgrade to the nearest ANSI color. Use `colortable` in-game to see all 256 colors. Key item (quest token, not equippable): ```yaml id: pass_stub name: pass stub description: "A crumpled slip of paper stamped with the guard's seal." value: 0 stackable: false ``` --- ## Firemaking ```yaml id: logs name: logs fire_level: 1 # firemaking level required fire_xp: 40 # XP for burning/stoking burn_ticks: 24 # how long the fire burns ``` ## Food / Healing ```yaml id: bread name: bread color: "222" description: "A fresh loaf of bread, still warm from the oven." value: 5 heal_value: 5 # positive = heal, negative = damage eat_message: "You eat the bread. Warm and satisfying." ``` ## MadeFrom — Item Combinations Define what items combine to make this item. Used by the `use` command. Combinations run through the production system — players are prompted "How many?" and the action loops with a timer. ```yaml id: bread_dough name: bread dough color: "222" ticks: 2 made_from: - items: [pot_of_flour] qty: 1 byproducts: [empty_pot] - items: [bucket_of_water, pitcher_of_water] qty: 1 byproducts: [empty_bucket, empty_pitcher] ``` Each entry is an ingredient slot. Multiple `items` means any of them works. The first matching item found in inventory is consumed. `ticks` controls how many game ticks each production cycle takes (default 2). ### Byproducts `byproducts` is a list matching the `items` list by index. When `bucket_of_water` (items[0]) is consumed, `empty_bucket` (byproducts[0]) is returned to inventory. When `pitcher_of_water` (items[1]) is consumed, `empty_pitcher` (byproducts[1]) is returned instead. Use `""` for items that produce no byproduct: ```yaml made_from: - items: [pot_of_flour, loose_flour] qty: 1 byproducts: [empty_pot, ""] # pot returns empty_pot, loose flour returns nothing - items: [bucket_of_water] qty: 1 byproducts: [empty_bucket] ``` Omit `byproducts` entirely if no items in that slot produce a byproduct: ```yaml made_from: - items: [pot_of_flour] qty: 1 byproducts: [empty_pot] # returns empty_pot - items: [salt] qty: 1 # no byproducts field — salt is consumed entirely ``` See also `recipes.md` for station-based recipes.