Quickstart Catalog
The files in src/etc define Nexus startup defaults:
game.json: quickstart catalog for downloadable mod dataservers.ini: default launch template copied on first runclient/autoexec.cfg+client/nexquake.cfg: default client cfg files bundled intoindex.dataand seeded on first browser loadarena/server.cfg: Rocket Arena server config, referenced as a local path ingame.jsonffa/server.cfg+ffa/ffa.txt: ffa server config and map rotation list, referenced as local paths ingame.jsonfvf/server.cfg: Future vs Fantasy server config, referenced as a local path ingame.json
Use QUICKSTART=<name[,name...]> to include extra catalog entries at startup.
If QUICKSTART is unset, Nexus uses QUICKSTART=ffa.
Any catalog entry with a base field is always included.
How It Works
- Nexus loads
CFG_DIR/game.json. - If
GAME_DIR/servers.iniis missing, Nexus copiesCFG_DIR/servers.iniand appends onenqserver @def -game <name>line per validQUICKSTARTgame entry (ffaby default). - Nexus parses
GAME_DIR/servers.inifor-gamevalues and then always adds allbaseentries to the quickstart install set. - For each selected game, Nexus installs
common,server, andclientlayer assets intoGAME_DIR/<mod>/<layer>/. - A non-empty layer directory is skipped unless that catalog entry sets
"force": true.
Client cfg seed flow:
- During client build, client/autoexec.cfg and client/nexquake.cfg are bundled into index.data.
- On the first browser launch only, the client copies them into /NexQuake/game/<base-game>/ and writes a marker so this never repeats.
Built-In Catalog Entries
| Game | QUICKSTART value |
What You Get |
|---|---|---|
id1 |
n/a (base entry) |
Quake 1.06 shareware pak0.pak plus LibreQuake-based pak1.pak. |
arena |
arena |
Rocket Arena assets and server package. |
ctf |
ctf |
3Wave CTF 4.x assets plus 4.21d server package. |
ffa |
ffa (default) |
Stock server config with deathmatch 1 rules. |
fortress |
fortress |
Team Fortress 2.8 server and client assets. |
fvf |
fvf |
Future vs Fantasy 4.2R server and client assets. |
QUICKSTART Behavior
QUICKSTARTsupports comma-separated catalog names:QUICKSTART=ctf,arena- If unset,
QUICKSTARTdefaults toffa QUICKSTART=allincludes everygameentry ingame.json- Unknown names are ignored
- Entries with a
basefield are always included
game.json Schema
[
{
"base": "id1",
"common": ["https://example.com/pak0.zip", "https://example.com/pak1.zip"],
"server": [],
"force": false
},
{
"game": "mymod",
"common": ["https://example.com/mymod.zip"],
"server": ["https://example.com/mymod-server-cfg.zip"]
}
]
| Field | Type | Required | Description |
|---|---|---|---|
game |
string | one of game/base |
Target game directory name (for example ctf, arena). |
base |
string | one of game/base |
Base game directory that is always included (for example id1). |
common |
string[] | no | URLs or relative file paths for assets shared by client and server. |
client |
string[] | no | URLs or relative file paths for client-only assets. |
server |
string[] | no | URLs or relative file paths for server-only assets (for example configs, .ent). |
force |
bool | no | Overwrite even when the destination layer already has files. Default false. |
At least one of common, client, or server must be non-empty.
URLs/paths can point to .zip files (extracted into the layer) or direct files (copied by source filename).
Local paths without a URI scheme are resolved relative to CFG_DIR (for example ffa/server.cfg).
Asset Repository
The built-in URLs in game.json primarily point to 0xBrsm/QuakeAssets, with additional upstream mirrors when needed.