# 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 ``` jsonc // 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 } } ```