mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-14 10:12:59 +02:00
e07340b531
Should detect invalid config in all sources of settings - vcmi config, mods, random map templates
300 lines
9.1 KiB
JSON
300 lines
9.1 KiB
JSON
{
|
|
"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",
|
|
"$ref" : "gameSettings.json"
|
|
},
|
|
"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" }
|
|
},
|
|
"biomes" : {
|
|
"type" : "array",
|
|
"description" : "List of configuration files for biomes",
|
|
"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" }
|
|
}
|
|
}
|
|
}
|