{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/acidicoala/SmokeAPI/refs/tags/v3.1.6/res/SmokeAPI.schema.json", "title": "SmokeAPI configuration", "type": "object", "additionalProperties": false, "properties": { "$schema": { "type": "string", "description": "URL of a JSON Schema that corresponds to this config.", "x-default": "[SmokeAPI.schema.json](res/SmokeAPI.schema.json)", "x-valid-values": "URL to a valid SmokeAPI config JSON schema." }, "$version": { "type": "integer", "description": "Reserved for use by tools like GUI config editors.", "const": 4, "x-valid-values": "Integer numbers from 1 and beyond." }, "logging": { "type": "boolean", "default": false, "x-packaged-default": true, "description": "Enables logging to SmokeAPI.log.log file.", "x-valid-values": "`true` or `false`." }, "log_steam_http": { "type": "boolean", "default": false, "description": "Toggles logging of SteamHTTP traffic", "x-valid-values": "`true` or `false`." }, "default_app_status": { "type": "string", "description": "Specifies default DLC status.", "default": "unlocked", "$ref": "#/$defs/AppStatus", "x-valid-values": "`\"unlocked\"` or `\"locked\"` or `\"original\"`." }, "override_app_status": { "type": "object", "default": {}, "description": "Overrides the status of all DLCs that belong to a specified app ID.", "patternProperties": { "^\\d{1,10}$": { "$ref": "#/$defs/AppStatus" } }, "additionalProperties": false, "x-valid-values": "An object with `\"key\": \"value\"` pairs, where key is App ID and value is App status." }, "override_dlc_status": { "type": "object", "default": {}, "description": "Overrides the status of individual DLCs, regardless of the corresponding app status.", "patternProperties": { "^\\d{1,10}$": { "$ref": "#/$defs/AppStatus" } }, "additionalProperties": false, "x-valid-values": "An object with `\"key\": \"value\"` pairs, where key is DLC ID and value is DLC status." }, "auto_inject_inventory": { "type": "boolean", "default": true, "description": "Specifies whether SmokeAPI should automatically inject a list of all registered inventory items, when a game queries user inventory", "x-valid-values": "`true` or `false`." }, "extra_inventory_items": { "type": "array", "default": [], "description": "A list of inventory item IDs that will be added in addition to the automatically injected items.", "items": { "type": "integer", "minimum": 0 }, "x-valid-values": "An array of integer App IDs." }, "extra_dlcs": { "type": "object", "default": {}, "description": "See [Extra info](#-how-smokeapi-works-in-games-with-large-number-of-dlcs) to understand the use case for this option.", "patternProperties": { "^\\d{1,10}$": { "$ref": "#/$defs/App" } }, "additionalProperties": false, "x-valid-values": "An object with `\"key\": \"value\"`, where the key is App ID and value is an object with `\"dlcs\"` property. See the complete example for more." } }, "$defs": { "AppStatus": { "description": "Unlock status for apps or DLCs.", "type": "string", "enum": [ "original", "unlocked", "locked" ] }, "App": { "type": "object", "additionalProperties": false, "properties": { "dlcs": { "type": "object", "default": {}, "description": "Map of DLC IDs to human-readable DLC names.", "patternProperties": { "^\\d{1,10}$": { "type": "string" } }, "additionalProperties": false } } } }, "examples": [ { "$schema": "https://raw.githubusercontent.com/acidicoala/SmokeAPI/refs/tags/v3.1.6/res/SmokeAPI.schema.json", "$version": 4, "logging": true, "log_steam_http": true, "default_app_status": "unlocked", "override_app_status": { "1234": "original", "4321": "unlocked" }, "override_dlc_status": { "1234": "original", "4321": "unlocked", "5678": "locked" }, "auto_inject_inventory": true, "extra_inventory_items": [ 9876, 8765, 7654 ], "extra_dlcs": { "1234": { "dlcs": { "56789": "Example DLC 1" } }, "4321": { "dlcs": { "98765": "Example DLC 2", "98766": "Example DLC 3" } } } } ] }