accessory
Registers under Accessories · source: modules/accessory/v1
`icon_id`: filename stem of this item's art in assets/items/ — pure display data, see bot/item_icons.py. `tags`: free-text Catalog-filter labels (e.g. "pixel art") — same pure display status, see modules/ weapon/v1's own docstring for the full reasoning (DND-30, 2026-10-20). `slot` is "ring" or "necklace". `essence_regen` maps an EssenceType id to an `amountRegen` grant (see combat-engine-readme.md → Essence); `essence_cost_reduction` maps an `essenceCost` category (or a specific ability id) to a reduction — both already-defined Essence mechanisms, just noting Accessories as their typical Content-side home. No `set_id` param — accessories never carry set bonuses. `grants_save_on_death`: Death & Recovery's Knocked Down state only triggers with "an active save-on-death effect" (see combat-engine-readme.md → Death & Recovery) — the design doc never pins down what kind of item grants that; an equipped passive accessory is a reasonable, minimal reading (same "passive while equipped" shape as statBonuses/resistances), not a locked decision. See bot/engine_bridge.py's resolve_combat_defeat, the one real consumer.
Example Usage
resource "worn_ring" {
source: modules/accessory/v1
id: "worn_ring"
name: "Worn Ring"
slot: "ring"
tier: "common"
can_be_in_shop: true
description: "A dull band that hums faintly."
icon_id: "worn_ring"
tags: ["pixel art"]
}
Arguments Reference
The following arguments are supported:
-
id- (Required) The unique id this record is registered and referenced under — what a `.resource` file's own filename-independent identity is, and what any other content's foreign-key-style field (a dungeon node's `next`, a skill node's `parent_id`, and so on) points at. community -
name- (Required) The player-facing display label — shown everywhere a player sees this record (shop listings, inventory, character sheet, etc.); the raw id is never shown directly. community -
slot- (Optional) `slot` is "ring" or "necklace". Valid options arenecklaceandring. Defaults to'ring'. community -
stat_bonuses- (Optional) Defaults toNone. developer -
resistances- (Optional) Defaults toNone. developer -
hp_bonus_percent- (Optional) Defaults to0.0. community -
essence_regen- (Optional) `essence_regen` maps an EssenceType id to an `amountRegen` grant (see combat-engine-readme.md → Essence); `essence_cost_reduction` maps an `essenceCost` category (or a specific ability id) to a reduction — both already-defined Essence mechanisms, just noting Accessories as their typical Content-side home. Defaults toNone. developer -
essence_cost_reduction- (Optional) Defaults toNone. developer -
grants_save_on_death- (Optional) `grants_save_on_death`: Death & Recovery's Knocked Down state only triggers with "an active save-on-death effect" (see combat-engine-readme.md → Death & Recovery) — the design doc never pins down what kind of item grants that; an equipped passive accessory is a reasonable, minimal reading (same "passive while equipped" shape as statBonuses/resistances), not a locked decision. Defaults toFalse. developer -
can_be_in_shop- (Optional) Defaults toFalse. community -
shop_price- (Optional) Defaults to0.0. community -
description- (Optional) Flavor text shown to players — pure display data with no effect on game mechanics. community -
icon_id- (Optional) `icon_id`: filename stem of this item's art in assets/items/ — pure display data, see bot/item_icons.py. community -
tier- (Optional) Valid options arecommon,legendaryandrare. Defaults to'common'. community -
tags- (Optional) `tags`: free-text Catalog-filter labels (e.g. "pixel art") — same pure display status, see modules/ weapon/v1's own docstring for the full reasoning (DND-30, 2026-10-20). Defaults toNone. community