// 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", "gameTweaks" ], "definitions" : { "logLevelEnum" : { "type" : "string", "enum" : [ "trace", "debug", "info", "warn", "error" ] } }, "additionalProperties" : false, "properties": { "general" : { "type" : "object", "default": {}, "additionalProperties" : false, "required" : [ "playerName", "music", "sound", "language", "swipe", "swipeDesktop", "saveRandomMaps", "saveFrequency", "notifications", "extraDump", "userRelativePointer", "relativePointerSpeedMultiplier", "lastSettingsTab" ], "properties" : { "playerName" : { "type":"string", "default" : "Player" }, "music" : { "type" : "number", "default" : 88 }, "sound" : { "type" : "number", "default" : 88 }, "swipe" : { "type" : "boolean", "default" : true }, "swipeDesktop" : { "type" : "boolean", "default" : false }, "saveRandomMaps" : { "type" : "boolean", "default" : false }, "lastMap" : { "type":"string", "default" : "Maps/Arrogance" }, "language" : { "type":"string", "enum" : [ "chinese", "english", "german", "polish", "russian", "ukrainian" ], "default" : "english" }, "lastSave" : { "type":"string", "default" : "NEWGAME" }, "lastSettingsTab" : { "type" : "number", "default" : 0 }, "lastCampaign" : { "type":"string", "default" : "" }, "saveFrequency" : { "type" : "number", "default" : 1 }, "notifications" : { "type" : "boolean", "default" : false }, "extraDump" : { "type" : "boolean", "default" : false }, "userRelativePointer" : { "type" : "boolean", "default" : false }, "relativePointerSpeedMultiplier" : { "type" : "number", "default" : 1 } } }, "video" : { "type" : "object", "additionalProperties" : false, "default": {}, "required" : [ "screenRes", "bitsPerPixel", "fullscreen", "realFullscreen", "cursor", "spellbookAnimation", "driver", "showIntro", "displayIndex", "showfps", "targetfps" ], "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 }, "cursor" : { "type" : "string", "enum" : [ "auto", "hardware", "software" ], "default" : "auto" }, "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 }, "showfps" : { "type" : "boolean", "default" : false }, "targetfps" : { "type" : "number", "default" : 60 } } }, "adventure" : { "type" : "object", "additionalProperties" : false, "default": {}, "required" : [ "heroMoveTime", "enemyMoveTime", "scrollSpeedPixels", "heroReminder", "quickCombat", "objectAnimation", "terrainAnimation" ], "properties" : { "heroMoveTime" : { "type" : "number", "default" : 150 }, "enemyMoveTime" : { "type" : "number", "default" : 150 }, "scrollSpeedPixels" : { "type" : "number", "default" : 800 }, "heroReminder" : { "type" : "boolean", "default" : true }, "quickCombat" : { "type" : "boolean", "default" : false }, "objectAnimation" : { "type" : "boolean", "default" : true }, "terrainAnimation" : { "type" : "boolean", "default" : true } } }, "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" : [ "speedFactor", "mouseShadow", "cellBorders", "stackRange", "showQueue", "queueSize" ], "properties" : { "speedFactor" : { "type" : "number", "default" : 2 }, "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 } } }, "gameTweaks" : { "type": "object", "default": {}, "additionalProperties": false, "required": [ "showGrid", "forceMovementInfo", "numericCreaturesQuantities", "availableCreaturesAsDwellingLabel", "compactTownCreatureInfo", "skipBattleIntroMusic" ], "properties": { "showGrid": { "type": "boolean", "default": false }, "forceMovementInfo": { "type": "boolean", "default": false }, "numericCreaturesQuantities": { "type": "boolean", "default": false }, "availableCreaturesAsDwellingLabel" : { "type" : "boolean", "default" : false }, "compactTownCreatureInfo" : { "type" : "boolean", "default" : false }, "skipBattleIntroMusic" : { "type" : "boolean", "default" : false } } } } }