Difference between revisions of "Mod file Format"

From VCMI Project Wiki
Jump to: navigation, search
(Fields specific for local file: Update local file JSON format)
(Fix CC url)
Line 22: Line 22:
  
 
     // URL which user can use to see license terms and text
 
     // URL which user can use to see license terms and text
     "licenseURL" : "http://creativecommons.org/licenses/by-sa/4.0/deed",
+
     "licenseURL" : "https://creativecommons.org/licenses/by-sa/4.0/",
  
 
      
 
      

Revision as of 07:02, 12 April 2018

This is description of mod.json file, main file for mods.

Schema in git: config/schemas/mod.json

Fields for local file and repository

 
{
    // Name of your mod. While it does not have hard length limit
    // it should not be longer than ~30 symbols to fit into allowed space
    "name" : "My test mod",

    // More lengthy description of mod. No hard limit. This text will be visible in launcher.
    // This field can use small subset of HTML, see link at the bottom of this page.
    "description" : "My test mod that add a lot of useless stuff into the game",

    // Author of mod. Can be nickname, real name or name of team
    "author" : "Anonymous",

    // Full name of license used by mod. Should be set only if you're author of mod
    // or received permission to use such license from original author
    "licenseName" : "Creative Commons Attribution-ShareAlike",

    // URL which user can use to see license terms and text
    "licenseURL" : "https://creativecommons.org/licenses/by-sa/4.0/",

    
    // Home page of mod or link to forum thread to contact the author
    "contact" : "http://example.com",

    // Type of mod, e.g. "Town", "Artifacts", "Graphical".
    "modType" : "Graphical",

    // List of mods that are required to run this one
    "depends" :
    [
        "baseMod"
    ],
 
    // List of mods that can't be enabled in the same time as this one
    "conflicts" :
    [
        "badMod"
    ],

    //List of changes/new features in each version
    "changelog" :
    {
        "1.0"   : [ "initial release" ],
        "1.0.1" : [ "change 1", "change 2" ],
        "1.1"   : [ "change 3", "change 4" ]
    },

    // If set to true, mod will not be enabled automatically on install
    "keepDisabled" : false
}

Fields specific for local file

These are fields that are present only in local mod.json file

 
{
    // Following section describes configuration files with content added by mod
    // It can be split into several files in any way you want but recommended organization is
    // to keep one file per object (creature/hero/etc) and, if applicable, add separate file
    // with translatable strings for each type of content
    // See "additional links" at the bottom of page for descriptions of each of these formats

    // list of factions/towns configuration files
    "factions" :
    [
        "config/myMod/faction.json"
    ]

    // List of hero classes configuration files
    "heroClasses" :
    [
        "config/myMod/heroClasses.json"
    ],

    // List of heroes configuration files
    "heroes" :
    [
        "config/myMod/heroes.json"
    ],

    // list of creature configuration files
    "creatures" :
    [
        "config/myMod/creatures.json"
    ],

    // List of artifacts configuration files
    "artifacts" :
    [
        "config/myMod/artifacts.json"
    ],

    // List of objects defined in this mod
    "objects" :
    [
        "config/myMod/objects.json"
    ],

    // List of spells defined in this mod
    "spells" :
    [
        "config/myMod/spells.json"
    ],

    // List of RMG templates defined in this mod
    "templates" :
    [
        "config/myMod/templates.json"
    ],

    // Optional, description on how files are organized in your mod
    // In most cases you do not need to use this field
    // Needed mostly to port any existing mods to vcmi (e.g. WoG distributed with Era)
    // Example below is default value, which is "Content" directory that acts as H3 root directory
    "filesystem":
    {
        "":
            [
                {"type" : "dir",  "path" : "/Content"}
            ]
    }
}

Fields present only in repository

This is list of fields that must be added to mod record in repository file

 
{
    // URL which launcher will use to download mod
    "download" : "http://example.com/mods/helloworld.zip",

    // size of mod archive, in kilobytes
    "size" : 12345,

    // list of URL's with screenshots for this mod
    "screenshots" : [
        "http://example.com/images/helloworld_1.png"
    ]
}

Notes

For mod description it is possible to use certain subset of HTML as described here:

http://qt-project.org/doc/qt-5.0/qtgui/richtext-html-subset.html


Modding related articles

Main articles
Modding changelog Modding guidelines Mod Handler


Formats
Mod file Format
Town Format Creature Format Hero Classes Format
Artifact Format Animation Format Hero Format
Bonus Format Object Format Spell Format


Work-in-progress formats
Building bonuses Map format
Bonus Type Format Random map template


Outdated pages
Mod system proposal