# Monster Catalog (Balanced v1) This document is the reference snapshot for monster balance after the combat-system rewrite. Source of truth for runtime values remains PostgreSQL (`enemies` table). This file is a readable, versioned reference for future balancing and regressions. ## Fields - `enemyType`: DB archetype key (`enemies.type`). - `catalogId`: content-contract ID from `docs/specification-content-catalog.md`. - `baseLevel`: archetype baseline level in DB. - `levelVariance`: spawn variability around base level (`+/-` percent). - `maxHeroLevelDiff`: absolute clamp versus hero level. - `baseStats`: `maxHp/attack/defense/speed/critChance` stored on archetype row. - `perLevel`: per-level progression values from DB. - `abilities`: special abilities from DB. ## Snapshot Template Fill this table from DB after each balancing pass. | enemyType | catalogId | baseLevel | levelVariance | maxHeroLevelDiff | baseStats (hp/atk/def/spd/crit) | perLevel (hp/atk/def/xp/gold) | abilities | |---|---|---:|---:|---:|---|---|---| | wolf | enemy.wolf_forest | - | - | - | - | - | - | | boar | enemy.boar_wild | - | - | - | - | - | - | | zombie | enemy.zombie_rotting | - | - | - | - | - | - | | spider | enemy.spider_cave | - | - | - | - | - | - | | orc | enemy.orc_warrior | - | - | - | - | - | - | | skeleton_archer | enemy.skeleton_archer | - | - | - | - | - | - | | battle_lizard | enemy.lizard_battle | - | - | - | - | - | - | | fire_demon | enemy.demon_fire | - | - | - | - | - | - | | ice_guardian | enemy.guard_ice | - | - | - | - | - | - | | skeleton_king | enemy.skeleton_king | - | - | - | - | - | - | | water_element | enemy.element_water | - | - | - | - | - | - | | forest_warden | enemy.guard_forest | - | - | - | - | - | - | | lightning_titan | enemy.titan_lightning | - | - | - | - | - | - | ## Export Workflow (recommended) 1. Run balance simulations and update `enemies` rows. 2. Export current rows into a CSV/JSON report. 3. Paste the finalized values into this document. 4. Commit both DB migration/change and this snapshot in one PR.