addOns
The addOns array contains objects that represent add-ons, like downloadable content
(DLC) for a title. You can bundle add-ons together, and assign them to
specific sets.
In the following example, required properties are highlighted. The values are for example only.
"addOns": [
{
"name": "Some Video Game - DLC 2 (USA) (v1.2)",
"container": "auto",
"requiresId": ["123456", "456122"],
"id": "456123",
"comments": "Something relevant about the add-on",
"files": [
...
]
},
{
"name": "Some Video Game - DLC 1 (USA)",
"container": "auto",
"requiresId": ["123456"],
"id": "456122",
"comments": "Something relevant about the add-on",
"files": [
...
]
},
{
"name": "Some Video Game - DLC 2 (USA) (v1.1)",
"container": "auto",
"requiresId": ["123456"],
"superseded": true,
"id": "456121",
"comments": "Something relevant about the add-on",
"files": [
...
]
}
]
Required properties
-
namepattern stringrequiredThe name of the add-on, in UTF-8. This is used for the name of the archive or folder of the contained add-on:
Names can't end with a period or space, start with a path separator, or use the following invalid path characters:
Path separators are represented Linux-style, with
/instead of\. Don't use absolute paths, paths are relative to a path the user sets.Expand for developer details
Invalid path characters are found with the following regular expression:
Non-UTF-8 characters are found with the following regular expressions:
[\xC0-\xC1] [\xF5-\xFF] \xE0[\x80-\x9F] \xF0[\x80-\x8F] [\xC2-\xDF](?![\x80-\xBF]) [\xE0-\xEF](?![\x80-\xBF]{2}) [\xF0-\xF4](?![\x80-\xBF]{3}) (?<=[\x00-\x7F\xF5-\xFF])[\x80-\xBF] (?<![\xC2-\xDF]|[\xE0-\xEF]|[\xE0-\xEF][\x80-\xBF]|[\xF0-\xF4]|[\xF0-\xF4][\x80-\xBF]|[\xF0-\xF4][\x80-\xBF]{2})[\x80-\xBF] (?<=[\xE0-\xEF])[\x80-\xBF](?![\x80-\xBF]) (?<=[\xF0-\xF4])[\x80-\xBF](?![\x80-\xBF]{2}) (?<=[\xF0-\xF4][\x80-\xBF])[\x80-\xBF](?![\x80-\xBF]) -
filesobject arrayrequiredThe files in the add-on and their properties. Read more about the
filesarray.
Optional properties
-
commentsstringoptionalComments related to the add-on.
-
containerstringoptionalThe container that the DAT application should use for the file set. Must be one of the following values:
-
auto: Store the files in whatever container the user chooses in the DAT application. For example, a ZIP file, a 7Z file, a folder, or no container. The base file name of the container matches the add-onname. -
folder: Store the files in a folder named after the add-onname. -
null: Don't store the files in any container. Useful for keeping files by themselves, or for treating archives as files.
If this property isn't present, the DAT application assumes the value is
auto. -
-
idstringoptionalA gobally unique ID for the add-on. Usually a database ID to ease lookups for DAT file maintainers. Might be referenced by a DAT application when finding dependencies for other add-ons, or when present in a
containsarray. -
requiresIdstringoptionalWhich titles and updates the specific add-on requires to function, as identified by their globally unique IDs.
This way if a title gets selected during filtering, its relevant add-ons can be selected too. Conversely, if a title gets filtered out, there's an opportunity to remove its add-ons as well.
Add-ons are considered to be valid for all
sets.Expand for developer details
The most optimal behavior here is likely first walking the
addOnsarray for the required ID, and then on a miss going up one level tocollections, and walking thetitlesarray for the required ID. -
supersededbooleanoptionalAdd-ons kept for archival purposes, that are no longer required to update a title to its latest version.
If this property isn't present, the DAT application assumes the value is
false.