2013-04-02 20:06:43 +03:00
{
2023-05-19 20:14:01 +02:00
"type" : "object" ,
"$schema" : "http://json-schema.org/draft-04/schema" ,
2013-04-02 20:06:43 +03:00
"title" : "VCMI mod file format" ,
"description" : "Format used to define main mod file (mod.json) in VCMI" ,
2023-05-19 20:04:31 +02:00
"required" : [ "name" , "description" , "modType" , "version" , "author" , "contact" ] ,
2022-12-26 00:03:00 +02:00
"definitions" : {
2024-09-30 21:26:22 +02:00
"fileListOrObject" : {
"oneOf" : [
{
"type" : "array" ,
"items" : { "type" : "string" , "format" : "textFile" }
} ,
{
"type" : "object"
}
]
} ,
2023-01-07 16:15:45 +02:00
"localizable" : {
2023-05-19 20:14:01 +02:00
"type" : "object" ,
2022-12-26 00:03:00 +02:00
"additionalProperties" : false ,
2023-02-12 19:50:55 +02:00
"required" : [ "name" , "description" ] ,
2023-05-19 20:14:01 +02:00
"properties" : {
"name" : {
"type" : "string" ,
"description" : "Short name of your mod. No more than 2-3 words"
2022-12-26 00:03:00 +02:00
} ,
2023-05-19 20:14:01 +02:00
"description" : {
"type" : "string" ,
"description" : "More lengthy description of mod. No hard limit"
2022-12-26 00:03:00 +02:00
} ,
"author" : {
2023-05-19 20:14:01 +02:00
"type" : "string" ,
"description" : "Author of the mod. Can be nickname, real name or name of team"
2022-12-26 00:03:00 +02:00
} ,
2023-05-19 20:04:31 +02:00
"changelog" : {
2023-05-19 20:14:01 +02:00
"type" : "object" ,
"description" : "List of changes/new features in each version" ,
2023-05-19 20:04:31 +02:00
"additionalProperties" : {
"type" : "array" ,
2023-05-19 20:14:01 +02:00
"items" : { "type" : "string" }
2023-05-19 20:04:31 +02:00
}
} ,
2023-03-07 00:06:22 +02:00
"skipValidation" : {
2023-05-19 20:14:01 +02:00
"type" : "boolean" ,
"description" : "If set to true, vcmi will skip validation of current translation json files"
2023-03-07 00:06:22 +02:00
} ,
2023-05-19 20:14:01 +02:00
"translations" : {
"description" : "List of files with translations for this language" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2022-12-26 00:03:00 +02:00
}
}
}
} ,
2013-04-11 22:24:14 +03:00
"additionalProperties" : false ,
2023-05-19 20:14:01 +02:00
"properties" : {
"name" : {
"type" : "string" ,
"description" : "Short name of your mod. No more than 2-3 words"
2013-04-02 20:06:43 +03:00
} ,
2023-05-19 20:14:01 +02:00
"description" : {
"type" : "string" ,
"description" : "More lengthy description of mod. No hard limit"
2013-04-02 20:06:43 +03:00
} ,
2013-08-19 14:50:53 +03:00
"modType" : {
2023-05-19 20:14:01 +02:00
"type" : "string" ,
2023-10-21 22:55:20 +02:00
"enum" : [ "Translation" , "Town" , "Test" , "Templates" , "Spells" , "Music" , "Maps" , "Sounds" , "Skills" , "Other" , "Objects" , "Mechanics" , "Interface" , "Heroes" , "Graphical" , "Expansion" , "Creatures" , "Compatibility" , "Artifacts" , "AI" ] ,
2023-05-19 20:14:01 +02:00
"description" : "Type of mod, e.g. Town, Artifacts, Graphical."
2013-08-19 14:50:53 +03:00
} ,
"author" : {
2023-05-19 20:14:01 +02:00
"type" : "string" ,
"description" : "Author of the mod. Can be nickname, real name or name of team"
2013-08-19 14:50:53 +03:00
} ,
2023-09-09 15:24:52 +02:00
"downloadSize" : {
"type" : "number" ,
"description" : "Approximate size of mod, compressed by zip algorithm, in Mb"
} ,
2023-05-19 20:04:31 +02:00
"contact" : {
2023-05-19 20:14:01 +02:00
"type" : "string" ,
"description" : "Home page of mod or link to forum thread"
2023-05-19 20:04:31 +02:00
} ,
2014-03-23 15:08:01 +03:00
"licenseName" : {
2023-05-19 20:14:01 +02:00
"type" : "string" ,
"description" : "Name of the license, recommended is Creative Commons Attribution-ShareAlike"
2014-03-23 15:08:01 +03:00
} ,
"licenseURL" : {
2023-05-19 20:14:01 +02:00
"type" : "string" ,
"description" : "Url to license text, e.g. http://creativecommons.org/licenses/by-sa/4.0/deed"
2014-03-23 15:08:01 +03:00
} ,
2023-05-19 20:04:31 +02:00
"version" : {
2023-05-19 20:14:01 +02:00
"type" : "string" ,
"description" : "Current mod version, up to 3 numbers, dot-separated. Format: A.B.C"
2013-04-02 20:06:43 +03:00
} ,
2023-05-19 20:04:31 +02:00
"changelog" : {
2023-05-19 20:14:01 +02:00
"type" : "object" ,
"description" : "List of changes/new features in each version" ,
2023-05-19 20:04:31 +02:00
"additionalProperties" : {
"type" : "array" ,
2023-05-19 20:14:01 +02:00
"items" : { "type" : "string" }
2023-05-19 20:04:31 +02:00
}
2013-04-02 20:06:43 +03:00
} ,
2022-12-18 16:03:47 +02:00
"compatibility" : {
2023-05-19 20:14:01 +02:00
"type" : "object" ,
"description" : "Supported versions of vcmi engine" ,
2022-12-19 12:20:33 +02:00
"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
}
2022-12-18 16:03:47 +02:00
}
} ,
2023-05-19 20:14:01 +02:00
"depends" : {
"type" : "array" ,
"description" : "List of mods that are required to run this one" ,
"items" : { "type" : "string" }
2023-05-19 20:04:31 +02:00
} ,
2024-10-25 17:21:32 +02:00
"softDepends" : {
"type" : "array" ,
"description" : "List of mods if they are enabled, should be loaded before this one. This mod will overwrite any conflicting items from its soft dependency mods" ,
"items" : { "type" : "string" }
} ,
2023-05-19 20:14:01 +02:00
"conflicts" : {
"type" : "array" ,
"description" : "List of mods that can't be enabled in the same time as this one" ,
"items" : { "type" : "string" }
2023-05-19 20:04:31 +02:00
} ,
2014-03-23 15:08:01 +03:00
"keepDisabled" : {
2023-05-19 20:14:01 +02:00
"type" : "boolean" ,
"description" : "If set to true, mod will not be enabled automatically on install"
2014-03-23 15:08:01 +03:00
} ,
2023-05-19 20:04:31 +02:00
"settings" : {
2023-05-19 20:14:01 +02:00
"description" : "List of changed game settings by mod" ,
2024-09-30 21:26:22 +02:00
"oneOf" : [
{
"type" : "object" ,
"$ref" : "gameSettings.json"
} ,
{
"type" : "array" ,
"items" : { "type" : "string" , "format" : "textFile" }
} ,
]
2023-05-19 20:04:31 +02:00
} ,
2023-05-19 20:14:01 +02:00
"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" ,
2023-05-19 20:04:31 +02:00
"description" : "list of data sources attached to this mount point" ,
2023-05-19 20:14:01 +02:00
"items" : {
"type" : "object" ,
2023-05-19 20:04:31 +02:00
"additionalProperties" : false ,
2023-05-19 20:14:01 +02:00
"properties" : {
"path" : {
"type" : "string" ,
"description" : "Path to data source"
2023-05-19 20:04:31 +02:00
} ,
2023-05-19 20:14:01 +02:00
"type" : {
2023-05-19 20:04:31 +02:00
"type" : "string" ,
"enum" : [ "dir" , "lod" , "snd" , "vid" , "map" , "zip" ] ,
"description" : "Type of data source"
}
}
}
}
} ,
"language" : {
2023-05-19 20:14:01 +02:00
"type" : "string" ,
"description" : "Base language of the mod, before applying localizations. By default vcmi assumes English" ,
2023-07-28 02:34:28 +02:00
"enum" : [ "czech" , "chinese" , "english" , "finnish" , "french" , "german" , "hungarian" , "italian" , "korean" , "polish" , "portuguese" , "russian" , "spanish" , "swedish" , "turkish" , "ukrainian" , "vietnamese" ]
2023-06-29 22:13:36 +02:00
} ,
"czech" : {
"$ref" : "#/definitions/localizable"
2023-05-19 20:04:31 +02:00
} ,
2023-03-08 02:01:56 +02:00
"chinese" : {
"$ref" : "#/definitions/localizable"
} ,
2022-12-26 00:03:00 +02:00
"english" : {
2023-01-07 16:15:45 +02:00
"$ref" : "#/definitions/localizable"
2022-12-26 00:03:00 +02:00
} ,
2023-07-16 11:13:32 +02:00
"finnish" : {
"$ref" : "#/definitions/localizable"
} ,
2023-06-29 22:13:36 +02:00
"french" : {
"$ref" : "#/definitions/localizable"
} ,
2022-12-26 00:03:00 +02:00
"german" : {
2023-01-07 16:15:45 +02:00
"$ref" : "#/definitions/localizable"
2022-12-26 00:03:00 +02:00
} ,
2023-07-01 14:35:34 +02:00
"hungarian" : {
"$ref" : "#/definitions/localizable"
} ,
2023-06-29 22:13:36 +02:00
"italian" : {
"$ref" : "#/definitions/localizable"
} ,
2023-03-08 02:01:56 +02:00
"korean" : {
"$ref" : "#/definitions/localizable"
} ,
2022-12-26 00:03:00 +02:00
"polish" : {
2023-01-07 16:15:45 +02:00
"$ref" : "#/definitions/localizable"
2022-12-26 00:03:00 +02:00
} ,
2023-07-16 11:13:32 +02:00
"portuguese" : {
"$ref" : "#/definitions/localizable"
} ,
2022-12-26 00:03:00 +02:00
"russian" : {
2023-01-07 16:15:45 +02:00
"$ref" : "#/definitions/localizable"
2022-12-26 00:03:00 +02:00
} ,
2023-03-16 17:39:35 +02:00
"spanish" : {
"$ref" : "#/definitions/localizable"
} ,
2023-07-16 11:13:32 +02:00
"swedish" : {
"$ref" : "#/definitions/localizable"
} ,
"turkish" : {
"$ref" : "#/definitions/localizable"
} ,
2022-12-26 00:03:00 +02:00
"ukrainian" : {
2023-01-07 16:15:45 +02:00
"$ref" : "#/definitions/localizable"
2022-12-26 00:03:00 +02:00
} ,
2023-07-28 02:34:28 +02:00
"vietnamese" : {
"$ref" : "#/definitions/localizable"
} ,
2023-05-19 20:14:01 +02:00
"translations" : {
"description" : "List of files with translations for this language" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"factions" : {
"description" : "List of configuration files for towns/factions" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"heroClasses" : {
"description" : "List of configuration files for hero classes" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"heroes" : {
"description" : "List of configuration files for heroes" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"skills" : {
"description" : "List of configuration files for skills" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"creatures" : {
"description" : "List of configuration files for creatures" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"artifacts" : {
"description" : "List of configuration files for artifacts" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"spells" : {
"description" : "List of configuration files for spells" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"objects" : {
"description" : "List of configuration files for objects" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
2024-04-12 10:25:13 +02:00
"biomes" : {
"description" : "List of configuration files for biomes" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2024-04-12 10:25:13 +02:00
} ,
2023-05-19 20:14:01 +02:00
"bonuses" : {
"description" : "List of configuration files for bonuses" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"terrains" : {
"description" : "List of configuration files for terrains" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"roads" : {
"description" : "List of configuration files for roads" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"rivers" : {
"description" : "List of configuration files for rivers" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"battlefields" : {
"description" : "List of configuration files for battlefields" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"obstacles" : {
"description" : "List of configuration files for obstacles" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"templates" : {
"description" : "List of configuration files for RMG templates" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2023-05-19 20:14:01 +02:00
} ,
"scripts" : {
"description" : "List of configuration files for scripts" ,
2024-09-30 21:26:22 +02:00
"$ref" : "#/definitions/fileListOrObject"
2013-04-02 20:06:43 +03:00
}
}
}