Template:SkillLevelDef

From Heroes of Might and Magic: Olden Era Official Wiki

One row per (skill, level) pair. ~342 rows in 2026-05-05 across 102 skills. Most production / arena / campaign skills have 3 levels (Basic / Advanced / Expert mastery); pseudo skills typically have 1.

Each level carries optional name / desc / icon overrides (rare — most levels inherit the parent skill's display fields), the list of sub-skills that become offered at that level, and the bonuses that take effect when the player reaches that level. Per-level bonuses are emitted as {{BonusDef | parent_type=skill_level | parent_id=<skill_id>_L<level> | …}} rows.

Schema

This template defines the table "SkillLevel". View table.

{{SkillLevelDef
| skill_id = String
| level = Integer                          <!-- 1-based; 1..max_level -->
| name_sid = String                        <!-- nullable; per-level override only -->
| desc_sid = String                        <!-- nullable; per-level override only -->
| icon = String                            <!-- nullable; per-level override only -->
| offered_sub_skills = List (,) of String  <!-- sub-skill ids unlocked at this level -->
}}

Field notes

  • Primary key is (skill_id, level).
  • name_sid / desc_sid / icon are sparse — populated only when the level overrides the parent skill's defaults. Most levels leave these null and inherit from the parent Skill. When a level does override, its resolved text for every language (English included) lives in the Translation table as type='skill_level' rows keyed by target_id=<skill_id> + variant=<level>.
  • offered_sub_skills is a Cargo List (,) of String — the sub-skill ids the player can pick from when reaching this level. HOLDS-friendly: WHERE offered_sub_skills HOLDS 'sub_skill_offense' to find every (skill, level) that offers a given perk. Empty for skills whose levels don't offer sub-skills (some pseudo skills, some campaign-only mechanics).
  • No cost column — unlike Law levels, skill levels don't charge a separate spend; they're earned through the hero's general level-up mechanic.

Related tables

  • Skill — joined on skill_id = Skill.id (N:1).
  • SubSkill — joined on offered_sub_skills HOLDS SubSkill.id.
  • BonusDef — joined on parent_type='skill_level' AND parent_id = skill_id || '_L' || level.
  • Translation — per-level name/desc overrides in every language (English included), joined on skill_id = Translation.target_id AND level = Translation.variant WHERE Translation.type='skill_level'; rows exist only for levels that override the parent skill's display fields.