{ "type" : "object", "$schema" : "http://json-schema.org/draft-04/schema", "title" : "VCMI mod file format", "description" : "Format used to define main mod file (mod.json) in VCMI", "required" : [ "name", "description", "modType", "version", "author", "contact" ], "definitions" : { "localizable" : { "type" : "object", "additionalProperties" : false, "required" : [ "name", "description" ], "properties" : { "name" : { "type" : "string", "description" : "Short name of your mod. No more than 2-3 words" }, "description" : { "type" : "string", "description" : "More lengthy description of mod. No hard limit" }, "author" : { "type" : "string", "description" : "Author of the mod. Can be nickname, real name or name of team" }, "changelog" : { "type" : "object", "description" : "List of changes/new features in each version", "additionalProperties" : { "type" : "array", "items" : { "type" : "string" } } }, "skipValidation" : { "type" : "boolean", "description" : "If set to true, vcmi will skip validation of current translation json files" }, "translations" : { "type" : "array", "description" : "List of files with translations for this language", "items" : { "type" : "string", "format" : "textFile" } } } } }, "additionalProperties" : false, "properties" : { "name" : { "type" : "string", "description" : "Short name of your mod. No more than 2-3 words" }, "description" : { "type" : "string", "description" : "More lengthy description of mod. No hard limit" }, "modType" : { "type" : "string", "enum" : [ "Translation", "Town", "Test", "Templates", "Spells", "Music", "Maps", "Sounds", "Skills", "Other", "Objects", "Mechanics", "Interface", "Heroes", "Graphical", "Expansion", "Creatures", "Compatibility", "Artifacts", "AI" ], "description" : "Type of mod, e.g. Town, Artifacts, Graphical." }, "author" : { "type" : "string", "description" : "Author of the mod. Can be nickname, real name or name of team" }, "downloadSize": { "type" : "number", "description" : "Approximate size of mod, compressed by zip algorithm, in Mb" }, "contact" : { "type" : "string", "description" : "Home page of mod or link to forum thread" }, "licenseName" : { "type" : "string", "description" : "Name of the license, recommended is Creative Commons Attribution-ShareAlike" }, "licenseURL" : { "type" : "string", "description" : "Url to license text, e.g. http://creativecommons.org/licenses/by-sa/4.0/deed" }, "version" : { "type" : "string", "description" : "Current mod version, up to 3 numbers, dot-separated. Format: A.B.C" }, "changelog" : { "type" : "object", "description" : "List of changes/new features in each version", "additionalProperties" : { "type" : "array", "items" : { "type" : "string" } } }, "compatibility" : { "type" : "object", "description" : "Supported versions of vcmi engine", "additionalProperties" : false, "properties" : { "min" : { "type" : "string", "description" : "minimal compatible vcmi engine version in a format major.minor.patch. When specified, earlier versions won't be supported" //"pattern" : "^\\d+\\.\\d+\\.\\d+$" // Not implemented in schema support }, "max" : { "type" : "string", "description" : "maximum compatible vcmi engine version in a format major.minor.patch. When specified, later versions won't be supported" //"pattern" : "^\\d+\\.\\d+\\.\\d+$" // Not implemented in schema support } } }, "depends" : { "type" : "array", "description" : "List of mods that are required to run this one", "items" : { "type" : "string" } }, "conflicts" : { "type" : "array", "description" : "List of mods that can't be enabled in the same time as this one", "items" : { "type" : "string" } }, "keepDisabled" : { "type" : "boolean", "description" : "If set to true, mod will not be enabled automatically on install" }, "settings" : { "type" : "object", "description" : "List of changed game settings by mod", "additionalProperties" : { "type" : "object", "properties" : { "type" : "object" } } }, "filesystem" : { "type" : "object", "description" : "Optional, description on how files are organized in your mod. In most cases you do not need to use this field", "additionalProperties" : { "type" : "array", "description" : "list of data sources attached to this mount point", "items" : { "type" : "object", "additionalProperties" : false, "properties" : { "path" : { "type" : "string", "description" : "Path to data source" }, "type" : { "type" : "string", "enum" : [ "dir", "lod", "snd", "vid", "map", "zip" ], "description" : "Type of data source" } } } } }, "language" : { "type" : "string", "description" : "Base language of the mod, before applying localizations. By default vcmi assumes English", "enum" : [ "czech", "chinese", "english", "finnish", "french", "german", "hungarian", "italian", "korean", "polish", "portuguese", "russian", "spanish", "swedish", "turkish", "ukrainian", "vietnamese" ] }, "czech" : { "$ref" : "#/definitions/localizable" }, "chinese" : { "$ref" : "#/definitions/localizable" }, "english" : { "$ref" : "#/definitions/localizable" }, "finnish" : { "$ref" : "#/definitions/localizable" }, "french" : { "$ref" : "#/definitions/localizable" }, "german" : { "$ref" : "#/definitions/localizable" }, "hungarian" : { "$ref" : "#/definitions/localizable" }, "italian" : { "$ref" : "#/definitions/localizable" }, "korean" : { "$ref" : "#/definitions/localizable" }, "polish" : { "$ref" : "#/definitions/localizable" }, "portuguese" : { "$ref" : "#/definitions/localizable" }, "russian" : { "$ref" : "#/definitions/localizable" }, "spanish" : { "$ref" : "#/definitions/localizable" }, "swedish" : { "$ref" : "#/definitions/localizable" }, "turkish" : { "$ref" : "#/definitions/localizable" }, "ukrainian" : { "$ref" : "#/definitions/localizable" }, "vietnamese" : { "$ref" : "#/definitions/localizable" }, "translations" : { "type" : "array", "description" : "List of files with translations for this language", "items" : { "type" : "string", "format" : "textFile" } }, "factions" : { "type" : "array", "description" : "List of configuration files for towns/factions", "items" : { "type" : "string", "format" : "textFile" } }, "heroClasses" : { "type" : "array", "description" : "List of configuration files for hero classes", "items" : { "type" : "string", "format" : "textFile" } }, "heroes" : { "type" : "array", "description" : "List of configuration files for heroes", "items" : { "type" : "string", "format" : "textFile" } }, "skills" : { "type" : "array", "description" : "List of configuration files for skills", "items" : { "type" : "string", "format" : "textFile" } }, "creatures" : { "type" : "array", "description" : "List of configuration files for creatures", "items" : { "type" : "string", "format" : "textFile" } }, "artifacts" : { "type" : "array", "description" : "List of configuration files for artifacts", "items" : { "type" : "string", "format" : "textFile" } }, "spells" : { "type" : "array", "description" : "List of configuration files for spells", "items" : { "type" : "string", "format" : "textFile" } }, "objects" : { "type" : "array", "description" : "List of configuration files for objects", "items" : { "type" : "string", "format" : "textFile" } }, "bonuses" : { "type" : "array", "description" : "List of configuration files for bonuses", "items" : { "type" : "string", "format" : "textFile" } }, "terrains" : { "type" : "array", "description" : "List of configuration files for terrains", "items" : { "type" : "string", "format" : "textFile" } }, "roads" : { "type" : "array", "description" : "List of configuration files for roads", "items" : { "type" : "string", "format" : "textFile" } }, "rivers" : { "type" : "array", "description" : "List of configuration files for rivers", "items" : { "type" : "string", "format" : "textFile" } }, "battlefields" : { "type" : "array", "description" : "List of configuration files for battlefields", "items" : { "type" : "string", "format" : "textFile" } }, "obstacles" : { "type" : "array", "description" : "List of configuration files for obstacles", "items" : { "type" : "string", "format" : "textFile" } }, "templates" : { "type" : "array", "description" : "List of configuration files for RMG templates", "items" : { "type" : "string", "format" : "textFile" } }, "scripts" : { "type" : "array", "description" : "List of configuration files for scripts", "items" : { "type" : "string", "format" : "textFile" } } } }