-
Notifications
You must be signed in to change notification settings - Fork 23
/
schema.txt
94 lines (93 loc) · 5.21 KB
/
schema.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/* mod.json schema */
// Created by ngld, m!m and Hellzed
// Inspired by Goober's text files (http://www.hard-light.net/wiki/index.php/FSO_Installer_Text_Files)
{
"mods": [
{
"id": "...", // required, internal *unique* identifier, should be URL friendly, never shown to the user
"title": "...", // required, a UTF-8 compatible string, displayed to the user
"version": "...", // required, http://semver.org/
"stability": "<stable|rc|nightly>", // optional, only applies to type == engine and indicates whether this is a stable release, nightly or RC, default: stable
"description": "...", // optional, should match the mod.ini's description
"logo": "<path to image>", // optional, default: null, will be extracted from the archive if null
"tile": "<path to image>", // optional, default: null, Used in the library view. If null, the logo is used instead
"release_thread": "<link>", // optional, default: null, Will display a button in the launcher which opens the given link
"videos": ["<link>", "..."], // optional, default: [], A list of video links (the links will be loaded in an iframe to display the videos)
"notes": "...", // optional, these will be displayed during the installation.
"folder": "<mod folder>", // optional, This folder will be created in the FS2 directory. default: mod ID
"first_release": "YYYY-MM-DD", // optional, default: null, the first release formatted in ISO 8601
"last_update": "YYYY-MM-DD", // optional, default: null, the latest update formatted in ISO 8601
"cmdline": "<flags>", // optional, allows the modder to specify a default cmdline for this mod
/*
optional, default: mod
Tells the client if this mod depends on retail files (mod), contains executables (engine / tool) or is a
Total Conversion (tc). ext is not yet finished.
*/
"type": "<mod|tc|engine|tool|ext>",
"packages": [ // optional
{
"name": "...", // required
"notes": "...", // optional
/*
optional, default: "recommended"
A feature can be:
- "required" (always installed with the mod, in fact these are the base files of the mod),
- "recommended" (automatically selected for installation, but the user can skip them),
- "optional" (not automatically selected, but user can add them during the install process)
*/
"status": "<required|recommended|optional>",
"dependencies": [ // optional
{
"id": "<mod ID>", // required
"version": "1.2.*", // required, https://getcomposer.org/doc/01-basic-usage.md#package-versions
"packages": [] // optional, specifies which optional and recommended packages are also required
},
...
],
"environment": "", // optional, boolean expression like "X86_64 && (sse || sse2)"
"is_vp": true, // optional, whether Knossos should pack the files in a VP on upload, default: false
"executables": [ // optional
{
"file": "...", // required, path to the executable (*.exe file on Windows), relative to the mod folder
"label": "", // optional, should be empty for release builds and contain the name for others (i.e. "Fast Debug" or "FRED")
"properties": {
"x64": false, // optional
"sse2": false, // optional
"avx": false, // optional
"avx2": false // optional
}
}
],
"files": [
{
"filename": "...",
"dest": "<destination path>",
"checksum": ["sha256", "..."],
"filesize": "<size in bytes>",
"urls": ["<URL1>", "<URL2>"], // The URLs are full URLs (they contain the filename).
}
],
"filelist": [
{
"filename": "<file path>",
"archive": "...",
"orig_name": "<name in archive>",
"checksum": ["sha256", "..."]
},
...
]
},
...
]
},
...
],
"includes": [ // optional, These will be processed when generating repo files and should be relative paths.
"<repo file 1>",
"..."
],
"remote_includes": [ // optional, These will be kept and should be full URLs.
"<URL1>",
"..."
]
}