Template:HeroSubClassDef
From Heroes of Might and Magic: Olden Era Official Wiki
A named prestige class — Swashbuckler, Paragon, Grand Inquisitor, Ascendant, etc. — that a hero unlocks by hitting **5 specific skill thresholds**. 24 rows total: 4 per faction × 6 factions, split 2 might + 2 magic per faction.
The bot emits each sub-class at Data:HeroSubClass/<id> carrying:
{{HeroSubClassDef | id=… | activation_skill_1_sid=… | …}}— main row with the 5 activation thresholds inline.- N ×
{{TranslationDef | type=hero_sub_class | target_id=<id> | language=… | …}}— name/description, one row per language. - N ×
{{HeroSubClassBonus | sub_class_id=<id> | ordinal=N | …}}— the unlocked passive bonuses (~2 per sub-class, 46 total).
Schema
This template defines the table "HeroSubClass". View table.
{{HeroSubClassDef
| id = String <!-- sub_class_<faction>_<might|magic>_<1|2> -->
<!-- Localization references — display text lives in the Translation table, type='hero_sub_class' -->
| name_sid = String
| desc_sid = String
| icon = String
| faction = String (allowed values=human,undead,dungeon,nature,demon,unfrozen)
| class_type = String (allowed values=might,magic)
<!-- 5 activation thresholds, flattened. Every sub-class has exactly 5
in the 2026-05-03 corpus. Each pair references a future Skill SID
and the rank the hero must reach. subSkillSids (always empty in
2026-05-03) is dropped. -->
| activation_skill_1_sid = String
| activation_skill_1_level = Integer
| activation_skill_2_sid = String
| activation_skill_2_level = Integer
| activation_skill_3_sid = String
| activation_skill_3_level = Integer
| activation_skill_4_sid = String
| activation_skill_4_level = Integer
| activation_skill_5_sid = String
| activation_skill_5_level = Integer
| source_path = String
}}
Field notes
idmatches the L10n SID prefix (e.g.sub_class_human_might_1→ "Swashbuckler").name_sid/desc_sidpoint at<id>_name/<id>_desc, surfaced for traceability. Full 16-language coverage.- Display name / description for every language (English included) live in the Translation table,
type='hero_sub_class'. - Activation conditions are joined by AND — the hero must hit all 5 skill thresholds to unlock the sub-class.
- Per-faction-class matchup: every (faction × class_type) cell has exactly 2 sub-classes. Looking up "what sub-classes are available to a magic Demon hero?" →
WHERE faction='demon' AND class_type='magic'→ 2 rows (Progenitor, Lord of Chaos).
Related tables
- Hero — joins via
Hero.faction = HeroSubClass.faction AND Hero.class_type = HeroSubClass.class_type. Each hero qualifies for the 2 sub-classes in their faction × class_type cell. - HeroClass — same join; HeroSubClass is the prestige progression on top of the broader HeroClass.
- HeroSubClassBonus — joined on
id = sub_class_id(1:N). - Skill — joined on
activation_skill_<N>_sid = Skill.id. - Translation — display text in every language (English included), joined on
id = Translation.target_id WHERE Translation.type='hero_sub_class' AND Translation.language='en'(1:N, one row per language).


