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 areboots,chestplate,gauntlets,helmandleggings. 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 toNone. 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 toNone. 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 toNone. 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 toNone. community -
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 piece'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