DND Engine Registry

armor

Registers under Armor · source: modules/armor/v1

`icon_id`: filename stem of this piece'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). `resistances` maps a resistanceGroupId or individual DamageType id to a Resistance% contribution (see combat-engine-readme.md → Typed Resistance — the engine sums these the same way regardless of granularity). `stat_modifiers` maps a subset of {"agility", "vitality", "evasiveness"} to a +/- percentage modifier — Content- assigned per piece, never derived from slot/tier by the engine (see combat-engine-readme.md → Agility & Movement). `class_matched_bonus`, if set, is `{"class_id": ..., "effects": [...]}` — reuses the same skill-tree effect-kind vocabulary as Set Bonuses (see modules/set_bonus/v1), rather than a flat bonusPercent: a stronger bonus this piece grants only while worn by that specific class (see Gear → Armor); intentionally never surfaced to the player as a label. Resolution is stateless (see bot/engine_bridge.py's character_effect_sources) — recomputed from currently-equipped armor + currently-active class every time, no separate tracking. `set_id`, if set, groups this piece with others sharing the same id for a full-set bonus (armor-only; accessories never carry one) — see modules/set_bonus/v1 for the bonus's own required-piece-count and effects, authored as a separate record keyed by this same id.

Example Usage

resource "leather_boots" {
  source: modules/armor/v1
  id: "leather_boots"
  name: "Leather Boots"
  slot: "boots"
  tier: "common"
  can_be_in_shop: true
  description: "Worn leather boots. Light enough not to slow you down."
  icon_id: "leather_boots"
  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 - (Required) Valid options are boots, chestplate, gauntlets, helm and leggings. community
  • resistances - (Optional) `resistances` maps a resistanceGroupId or individual DamageType id to a Resistance% contribution (see combat-engine-readme.md → Typed Resistance — the engine sums these the same way regardless of granularity). Defaults to None. developer
  • stat_modifiers - (Optional) `stat_modifiers` maps a subset of {"agility", "vitality", "evasiveness"} to a +/- percentage modifier — Content- assigned per piece, never derived from slot/tier by the engine (see combat-engine-readme.md → Agility & Movement). Defaults to None. developer
  • class_matched_bonus - (Optional) `class_matched_bonus`, if set, is `{"class_id": ..., "effects": [...]}` — reuses the same skill-tree effect-kind vocabulary as Set Bonuses (see modules/set_bonus/v1), rather than a flat bonusPercent: a stronger bonus this piece grants only while worn by that specific class (see Gear → Armor); intentionally never surfaced to the player as a label. Defaults to None. developer
  • set_id - (Optional) `set_id`, if set, groups this piece with others sharing the same id for a full-set bonus (armor-only; accessories never carry one) — see modules/set_bonus/v1 for the bonus's own required-piece-count and effects, authored as a separate record keyed by this same id. Defaults to None. community
  • can_be_in_shop - (Optional) Defaults to False. community
  • shop_price - (Optional) Defaults to 0.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 piece's art in assets/items/ — pure display data, see bot/item_icons.py. community
  • tier - (Optional) Valid options are common, legendary and rare. 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 to None. community