// This is schema for checking game settings from settings.json // Any new settings should be added in this file for correct serialization and initialization { "type" : "object", "$schema": "http://json-schema.org/draft-04/schema", "required" : [ "general", "video", "adventure", "pathfinder", "battle", "server", "logging", "launcher" ], "definitions" : { "logLevelEnum" : { "type" : "string", "enum" : [ "trace", "debug", "info", "warn", "error" ] } }, "additionalProperties" : false, "properties": { "general" : { "type" : "object", "default": {}, "additionalProperties" : false, "required" : [ "playerName", "showfps", "music", "sound", "encoding", "language", "swipe", "saveRandomMaps", "saveFrequency", "notifications", "extraDump" ], "properties" : { "playerName" : { "type":"string", "default" : "Player" }, "showfps" : { "type" : "boolean", "default" : false }, "music" : { "type" : "number", "default" : 88 }, "sound" : { "type" : "number", "default" : 88 }, "encoding" : { "type" : "string", "default" : "auto" }, "swipe" : { "type" : "boolean", "default" : true }, "saveRandomMaps" : { "type" : "boolean", "default" : false }, "lastMap" : { "type":"string", "default" : "Maps/Arrogance" }, "language" : { "type":"string", "default" : "english" }, "lastSave" : { "type":"string", "default" : "NEWGAME" }, "lastCampaign" : { "type":"string", "default" : "" }, "saveFrequency" : { "type" : "number", "default" : 1 }, "notifications" : { "type" : "boolean", "default" : false }, "extraDump" : { "type" : "boolean", "default" : false } } }, "video" : { "type" : "object", "additionalProperties" : false, "default": {}, "required" : [ "screenRes", "bitsPerPixel", "fullscreen", "realFullscreen", "softwareCursor", "spellbookAnimation", "driver", "showIntro", "displayIndex" ], "properties" : { "screenRes" : { "type" : "object", "additionalProperties" : false, "required" : [ "width", "height" ], "properties" : { "width" : { "type" : "number" }, "height" : { "type" : "number" } }, "default": {"width" : 800, "height": 600 } }, "bitsPerPixel" : { "type" : "number", "default" : 32 }, "fullscreen": { "type": "boolean", "default": false }, "realFullscreen" : { "type" : "boolean", "default" : false }, "softwareCursor" : { "type" : "boolean", "default" : false }, "showIntro" : { "type" : "boolean", "default" : true }, "spellbookAnimation" : { "type" : "boolean", "default" : true }, "driver":{ "type" : "string", "default" : "opengl", "description" : "preferred graphics backend driver name for SDL2" }, "displayIndex" : { "type" : "number", "default" : 0 } } }, "adventure" : { "type" : "object", "additionalProperties" : false, "default": {}, "required" : [ "heroSpeed", "enemySpeed", "scrollSpeed", "heroReminder", "quickCombat" ], "properties" : { "heroSpeed" : { "type" : "number", "default" : 2 }, "enemySpeed" : { "type" : "number", "default" : 2 }, "scrollSpeed" : { "type" : "number", "default" : 1 }, "heroReminder" : { "type" : "boolean", "default" : true }, "quickCombat" : { "type" : "boolean", "default" : false } } }, "pathfinder" : { "type" : "object", "additionalProperties" : false, "default": {}, "required" : [ "teleports", "layers", "oneTurnSpecialLayersLimit", "originalMovementRules", "lightweightFlyingMode" ], "properties" : { "layers" : { "type" : "object", "additionalProperties" : false, "default": {}, "required" : [ "sailing", "waterWalking", "flying" ], "properties" : { "sailing" : { "type" : "boolean", "default" : true }, "waterWalking" : { "type" : "boolean", "default" : true }, "flying" : { "type" : "boolean", "default" : true } } }, "teleports" : { "type" : "object", "additionalProperties" : false, "default": {}, "required" : [ "twoWay", "oneWay", "oneWayRandom", "whirlpool", "castleGate" ], "properties" : { "twoWay" : { "type" : "boolean", "default" : true }, "oneWay" : { "type" : "boolean", "default" : true }, "oneWayRandom" : { "type" : "boolean", "default" : false }, "whirlpool" : { "type" : "boolean", "default" : true }, "castleGate" : { "type" : "boolean", "default" : false } } }, "oneTurnSpecialLayersLimit" : { "type" : "boolean", "default" : true }, "originalMovementRules" : { "type" : "boolean", "default" : false }, "lightweightFlyingMode" : { "type" : "boolean", "default" : false } } }, "battle" : { "type" : "object", "additionalProperties" : false, "default": {}, "required" : [ "animationSpeed", "mouseShadow", "cellBorders", "stackRange", "showQueue", "queueSize" ], "properties" : { "animationSpeed" : { "type" : "number", "default" : 0.63 }, "mouseShadow" : { "type":"boolean", "default" : true }, "cellBorders" : { "type" : "boolean", "default" : false }, "stackRange" : { "type" : "boolean", "default" : true }, "showQueue" : { "type" : "boolean", "default" : true }, "queueSize" : { "type" : "string", "default" : "auto", "enum" : [ "auto", "small", "big" ] } } }, "server" : { "type" : "object", "additionalProperties" : false, "default": {}, "required" : [ "server", "port", "localInformation", "playerAI", "friendlyAI","neutralAI", "enemyAI", "reconnect", "uuid", "names" ], "properties" : { "server" : { "type":"string", "default" : "127.0.0.1" }, "port" : { "type" : "number", "default" : 3030 }, "localInformation" : { "type" : "number", "default" : 2 }, "playerAI" : { "type" : "string", "default" : "VCAI" }, "friendlyAI" : { "type" : "string", "default" : "BattleAI" }, "neutralAI" : { "type" : "string", "default" : "StupidAI" }, "enemyAI" : { "type" : "string", "default" : "BattleAI" }, "reconnect" : { "type" : "boolean", "default" : false }, "uuid" : { "type" : "string", "default" : "" }, "names" : { "type" : "array", "default" : [], "items": { "type" : "string", "default" : "" } } } }, "logging" : { "type" : "object", "additionalProperties" : false, "default" : {}, "required" : [ "console", "file", "loggers" ], "properties" : { "console" : { "type" : "object", "default" : {}, "required" : [ "format", "threshold", "coloredOutputEnabled", "colorMapping" ], "properties" : { "format" : { "type" : "string", "default" : "%m" }, "threshold" : { "$ref" : "#/definitions/logLevelEnum", "default" : "info" }, "coloredOutputEnabled" : { "type" : "boolean", "default" : true }, "colorMapping" : { "type" : "array", "default" : [ { "domain" : "global", "level" : "trace", "color" : "gray"}, { "domain" : "global", "level" : "debug", "color" : "white"}, { "domain" : "global", "level" : "info", "color" : "green"}, { "domain" : "global", "level" : "warn", "color" : "yellow"}, { "domain" : "global", "level" : "error", "color" : "red"} ], "items" : { "type" : "object", "additionalProperties" : false, "default" : {}, "required" : [ "domain", "level", "color" ], "properties" : { "domain" : { "type" : "string" }, "level" : { "$ref" : "#/definitions/logLevelEnum" }, "color" : { "type" : "string", "enum" : [ "default", "green", "red", "magenta", "yellow", "white", "gray", "teal" ] } } } } } }, "file" : { "type" : "object", "additionalProperties" : false, "default" : {}, "required" : [ "format" ], "properties" : { "format" : { "type" : "string", "default" : "[%c] %l %n - %m" } } }, "loggers" : { "type" : "array", "default" : [ { "domain" : "global", "level" : "trace" } ], "items" : { "type" : "object", "additionalProperties" : false, "required" : [ "level", "domain" ], "properties" : { "domain" : { "type" : "string" }, "level" : { "$ref" : "#/definitions/logLevelEnum" } } } } } }, "launcher" : { "type" : "object", "default": {}, "additionalProperties" : false, "required" : [ "repositoryURL", "enableInstalledMods", "extraResolutionsModPath", "autoCheckRepositories", "updateOnStartup", "updateConfigUrl", "lobbyUrl", "lobbyPort", "lobbyUsername", "connectionTimeout" ], "properties" : { "repositoryURL" : { "type" : "array", "default" : [ "https://raw.githubusercontent.com/vcmi/vcmi-mods-repository/develop/github.json" ], "items" : { "type" : "string" }, }, "enableInstalledMods" : { "type" : "boolean", "default" : true }, "extraResolutionsModPath" : { "type" : "string", "default" : "/vcmi-extras/Mods/extraResolutions/Content/config/resolutions.json" }, "autoCheckRepositories" : { "type" : "boolean", "default" : true }, "updateOnStartup" : { "type" : "boolean", "default" : true }, "updateConfigUrl" : { "type" : "string", "default" : "https://raw.githubusercontent.com/vcmi/vcmi-updates/master/vcmi-updates.json" }, "lobbyUrl" : { "type" : "string", "description" : "ip address or web link to remote proxy server", "default" : "beholder.vcmi.eu" }, "lobbyPort" : { "type" : "number", "description" : "connection port for remote proxy server", "default" : 5002 }, "lobbyUsername" : { "type" : "string", "description" : "username for the client on the remote proxy server", "default" : "" }, "connectionTimeout" : { "type" : "number", "description" : "maximum time in ms, should be enough to establish socket connection to remote proxy server.", "default" : 2000 } } } } }