DND Engine Registry

Module Registry

Reference docs for every module a .resource file can target — arguments, what's community-settable, and example usage.

Beyond one block per file

A .resource file isn't limited to one resource "label" { } block — a single file can define several things together that belong together (a class and its skill tree and the class action that uses it; a dungeon and its own enemies and loot). Three pieces make that work:

  • resource.<label>.<field> — references an earlier block in the same file, resolved once that block is built. e.g. class_id: resource.skylancer.id. Different from a plain quoted string, which always means an id already in the catalog.
  • catalog.<id> — references something already registered elsewhere entirely (e.g. catalog.warrior). Sugar for a plain quoted "warrior", except a typo'd id is caught right here at build time instead of failing silently later.
  • Nested sub-blocks — for the handful of fields no flat key: value line can express: a skill_node { } inside a character_class block, or combat_node { }/choice_node { }/reward_node { }/terminal_node { } inside a dungeon block. The parent block's own id is auto-injected — never hand-typed, never a place to typo the wrong parent.

Any module doc page below whose Example Usage notes "this real example file builds more than one record" is using one or more of these — read it for a real, working demonstration.

Community vs. developer arguments

Every argument on a module's own page is tagged one of two ways:

  • community — settable from a .resource file. This is the full surface a community author can reach for this module.
  • developer — the real Python factory accepts it, but it isn't on this module's own COMMUNITY_SCHEMA, so it's only reachable from trusted Python content (a content/*.py file), never from a .resource file.

Both tags call the exact same factory — there is no separate "community version" of a module. The tag marks which parameters are reachable from which authoring path, never a difference in authority over the module itself.

ModuleRegisters under
accessory Accessories
armor Armor
backdrop Backdrops
character_class Classes
class_action Class Actions
consumable Consumables
damage_type Damage Types
dungeon Dungeons
enemy_encounter Enemy Encounters
essence_type Essence Types
race Races
skill_node Skill Nodes
weapon Weapons
weapon_category Weapon Categories