Difference between revisions of "Modding guidelines"

From VCMI Project Wiki
Jump to: navigation, search
(Creating mod file)
(Creating mod file)
Line 50: Line 50:
 
     // More lengthy description of mod. No hard limit
 
     // More lengthy description of mod. No hard limit
 
     // TODO: show it in some kind of mod manager
 
     // TODO: show it in some kind of mod manager
     "description" : "My test mods that add a lot of useless stuff into the game",
+
     "description" : "My test mod that add a lot of useless stuff into the game",
  
     // Priority in which your mod will be loaded. Bigger priority will make mod load later
+
     // List of mods that are required to run this one
     // and override whatever changes were made by previous mod
+
    "depends" :
     // Can be modified by user as well as by game so this field is more like a hint
+
    [
     "priority" : 20,
+
        "baseMod"
 +
     ],
 +
 +
     // List of mods that can't be enabled in the same time as this one
 +
     "conflicts" :
 +
    [
 +
        "badMod"
 +
    ],
  
 
     // Following section describes configuration files with content added by mod
 
     // Following section describes configuration files with content added by mod

Revision as of 18:55, 10 January 2013

Creating mod

To make your own mod you need to create subdirectory in "Mods" with name that will be used as identifier for your mod.

Main mod file called mod.json and should be placed into main folder of your mod, e.g. Mods/myMod/mod.json

All content of your mod should go into "Override" directory, e.g. Mods/myMod/Override/

  • TODO: separate content and override folders
  • TODO: support for .zip archives

Example of how directory structure of your mod may look like:

Mods/
     myMod/
           mod.json
           Override/
                    data/    - unorganized files, mostly bitmap images (.bmp, .png, .pcx)
                    config/  - json configuration files
                    maps/    - h3m maps added or modified by mod
                    music/   - music files. Mp3 is fully supported, ogg may be added if needed
                    sounds/  - sound files, in wav format.
                    sprites/ - animation, image sets (H3 .def files or VCMI .json files)
                    video/   - video files, .bik or .smk

Creating mod file

All VCMI configuration files use JSON format so you may want to familiarize yourself with it first.

Example of how mod.json should look like:

 
{
    // This is description on how files are organized in your mod
    // Make sure to replace "myMod" with name of your mod
    // In most cases you do not need to modify anything else in this field
    // TODO: make this entry optional
    "filesystem":
    {
        "":
            [
                {"type" : "dir",  "path" : "ALL/MODS/myMod/Override"}
            ]
    },

    // 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
    // TODO: show it in some kind of mod manager
    "description" : "My test mod that add a lot of useless stuff into the game",

    // 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"
    ],

    // 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"
    ]
}

Additional links