Module:HeroData/doc

From Heroes of Might and Magic: Olden Era Official Wiki
Revision as of 20:28, 25 May 2026 by akesha.taladim (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This is the documentation page for Module:HeroData

This module allows for the dynamic extraction of all hero data parameters, asset references, and translated profiles stored within the wiki's Cargo database (specifically from the Hero and Translation tables). It automatically handles localized fallback to English if a translation in the requested language is missing.

Basic Syntax

To fetch a data field, use the following syntax:

{{#invoke:HeroData|get|HERO_ID|VARIABLE|LANGUAGE_CODE}}
  • HERO_ID : The technical identifier of the hero (e.g., dungeon_hero_3).
  • VARIABLE : The keyword for the specific data field you want to display (see the full index below).
  • LANGUAGE_CODE : (Optional) The localization code (e.g., en, fr, pl). Defaults to English (en).

---

Technical Reference Index

📝 Text & Translations (Language-Dependent)

These fields query the Translation table. They dynamically adapt to the requested language code and fallback to English seamlessly if missing.

Variable Description Database Filter Relation
name The localized name of the hero. type="hero"
description The localized official biography or lore text of the hero. type="hero"
motto The hero's localized specific quote or battle motto. type="hero_motto"

⚔️ Split Starting Skills (Virtual Fields)

Instead of returning a raw comma-separated string from the database, the module automatically slices the data array into distinct outputs for clean wiki markup nesting:

Variable Description Fallback Behavior
start_skill_1 Returns the technical ID of the hero's primary starting skill. Always returns the first value found.
start_skill_2 Returns the technical ID of the hero's secondary starting skill. Returns an empty string ("") if the hero only has one starting skill.
start_magic_1 Returns the technical ID of the hero's primary starting spell/magic. Returns an empty string ("") if the hero has no starting magic.
start_magic_2 Returns the technical ID of the hero's secondary starting spell/magic. Returns an empty string ("") if the hero has fewer than two spells.

⚙️ Core Technical Properties

Standard database values extracted directly from the primary Hero table records.

Variable Description Example Value
class_id Technical ID linking to the hero's mechanical class archetype. might_dungeon
faction The alignment group or city archetype the hero is drafted under. dungeon
class_type Archetype category profiling orientation. might or magic
icon The filename token assigned to the hero portrait graphic asset. hero_dungeon_3_Stinger
specialization_id Points to the unique combat skill perk assigned to this specific hero unit. dungeon_hero_3_specialization
source_path The file path location of the original repository data dump JSON. DB/heroes/dungeon/dungeon_hero_3.json
start_skills Raw comma-separated list of all starting skill IDs. skill_faction_dungeon,skill_battle_artistry
start_magics Raw comma-separated list of all starting spell or magic IDs. day_16_magic_arinas_chosen_special

Practical Examples

Example 1: Rendering Hero Portrait Images Dynamically

To render a hero portrait using their explicit database-defined icon file:

[[File:{{#invoke:HeroData|get|dungeon_hero_3|icon}}.png|64px]]

Example 2: Parsing Layout Blocks Conditionals via Virtual Fields

You can use the native MediaWiki parser to change your layouts depending on whether a hero has a secondary starting skill or any starting magic:

{{#if:{{#invoke:HeroData|get|dungeon_hero_3|start_skill_2}}
  | This hero starts with two skills. Secondary skill ID: {{#invoke:HeroData|get|dungeon_hero_3|start_skill_2}}
  | This hero starts with a single skill only!
}}

{{#if:{{#invoke:HeroData|get|dungeon_hero_3|start_magic_1}}
  | This hero has a starting spell: {{#invoke:HeroData|get|dungeon_hero_3|start_magic_1}}
  | This hero does not know any magic at the start.
}}

Example 3: Cross-Module Integration Chaining

Pass the technical ID returned by this module directly into your skill formatting templates or modules to fetch human-readable information automatically:

The primary starting skill name is: {{#invoke:SkillData|get|{{#invoke:HeroData|get|dungeon_hero_3|start_skill_1}}|name|fr}}