This python package provides utilities for hosting DayZ servers on both Windows and Linux machines.
Servers are configured in a JSON file with the structure listed below.
The outermost object defines key-value pairs of server names and server objects.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "ServerList",
"description": "List of servers",
"type": "object",
"patternProperties": {
"*": {
"type": "Server"
}
}
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Server",
"description": "Configuration for a single server",
"type": "object",
"properties": {
"basedir": {
"description": "The path to the server's base directory",
"type": "string"
},
"appId": {
"description": "The server's Steam app ID",
"type": "integer"
},
"wine": {
"description": "Wrap server and steamcmd wth wine",
"type": "boolean"
},
"params": {
"description": "Additional parameters for the server",
"type": "ServerParams"
},
"mods": {
"description": "Mods for the server",
"type": "ModList"
},
"serverMods": {
"description": "Mods for the server only that are not propagated to clients",
"type": "ModList"
}
},
"required": ["basedir"]
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "ServerParams",
"description": "Additional start parameters for a server",
"type": "object",
"properties": {
"config": {
"description": "The name of the config file to load",
"type": "string"
},
"doLogs": {
"description": "Add -doLogs flag",
"type": "boolean"
},
"adminLog": {
"description": "Add -adminLog flag",
"type": "boolean"
},
"netLog": {
"description": "Add -netLog flag",
"type": "boolean"
},
"srcAllowFileWrite": {
"description": "Add -srcAllowFileWrite flag",
"type": "boolean"
},
"noFilePatching": {
"description": "Add -noFilePatching flag",
"type": "boolean"
},
"freezeCheck": {
"description": "Add -freezeCheck flag",
"type": "boolean"
},
"port": {
"description": "Override port",
"type": "integer"
},
"profiles": {
"description": "Override profiles",
"type": "string"
},
"cpuCount": {
"description": "Override cpuCount",
"type": "integer"
}
}
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "ModList",
"description": "List of Mods",
"type": "array",
"items": {
"type": "Mod"
},
"minItems": 0,
"uniqueItems": true
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Mod",
"description": "A single Mod",
"type": "object",
"properties": {
"id": {
"description": "The steam workshop ID",
"type": "integer"
},
"name": {
"description": "A human-readable name",
"type": "string"
}
},
"required": ["id"]
}
Mods with IDs < 0 will be filtered out.
So you can disable mods on a server by prefixing their ID with -
, i.e. making the ID negative.
The default servers file location differs based on the operating system.
On Windows the default servers file is expected to be under %PROGRAMFILES%\dzsrv\servers.json
.
On POSIX Systems the default servers file is expected to be under /etc/dzservers.json
.
The server utilities ship the two following command line programs:
A wrapper script to start a dedicated server. Use
$ dzdsw -h
to get further information.
A utility script to update a dedicated server and / or its mods. Use
$ dzdsu -h
to get further information.