Skip to content

Hero Class Format

Required data

In order to make functional hero class you also need:

  • Adventure animation (1 def file)
  • Battle animation, male and female version (2 def files)

Format

// Unique identifier of hero class, camelCase
"myClassName" :
{
    // Various hero animations
    "animation"
    {
        "battle" : 
        {
            // Battle animation for female heroes
            "female" : "myMod/battle/heroFemale",

            // Battle animation for male heroes, can be same as female
            "male"   : "myMod/battle/heroMale"
        }
    },

    // Description of map object representing this hero class.
    "mapObject" : {
        // Optional, hero ID-base filter, using same rules as building requirements
        "filters" : {
            "mutare" : [ "anyOf", [ "mutare" ], [ "mutareDrake" ]]
        },

        // List of templates used for this object, normally - only one is needed. See map template format for details
        "templates" : {
            "normal" : { "animation" : "AH00_.def" }
        }
    },

    // Translatable name of hero class
    "name" : "My hero class",

    // Identifier of faction this class belongs to
    "faction" : "myFaction",

    // Identifier of creature that should be used as commander for this hero class
    // Can be a regular creature that has shooting animation
    "commander" : "mage",

    // Affinity of this class, might or magic
    "affinity" : "might",

    // Initial primary skills of heroes
    "primarySkills" :
    {
        "attack"     : 2,
        "defence"    : 0,
        "spellpower" : 1,
        "knowledge"  : 2
    },

    // Chance to get specific primary skill on level-up, applicable for levels less than 10
    "lowLevelChance" :
    {
        "attack"     : 15,
        "defence"    : 10,
        "spellpower" : 50,
        "knowledge"  : 25
    },

    // Chance to get specific primary skill on level-up, applicable for levels starting from 10
    "highLevelChance" :
    {
        "attack"     : 25,
        "defence"    : 5,
        "spellpower" : 45,
        "knowledge"  : 25
    },

    // Chance to get specific secondary skill on level-up
    // All missing skills are considered to be banned, including universities
    "secondarySkills" :
    {
        "pathfinding"  : 3.
        "archery"      : 6.
         ...
        "resistance"   : 5,
        "firstAid"     : 4
    },

    // Chance for a this hero class to appear in a town, creates pair with same field in town format 
    // Used for situations where chance was not set in "tavern" field, chance will be determined as:
    // square root( town tavern chance * hero class tavern chance )
    "defaultTavern" : 5,

    // Chance for this hero to appear in tavern of this factions.
    // Reversed version of field "tavern" from town format
    // If faction-class pair is not listed in any of them
    // chance set to 0 and the class won't appear in tavern of this town
    "tavern" :
    {
        "castle"     : 4,
         ...
        "conflux"    : 6
    }
}