Command-line flags
zombye-server
Section titled “zombye-server”Modes:
-
zombye-server --mcp— MCP server on stdio. Time only advances when an agent callsstep_ticks, so agent runs are deterministic and reproducible. -
zombye-server --mcp-http [ADDR[:PORT]]— the same MCP server over streamable HTTP (mcp_http.rs), for agents that reach it over the network:POST /mcp, by default on127.0.0.1:8787. One world, shared by everyone who connects. Needs a bearer token (ZOMBYE_MCP_TOKEN, or--mcp-token T;--mcp-token-in-urlalso takes it as/mcp/T) or--mcp-no-auth(open, and then without the debug tools);--mcp-no-devturns the debug tools off with a token too;--mcp-origin ORIGINallows a browser origin. No TLS: put a reverse proxy or a tunnel in front. -
zombye-server --bench [--ticks N] [--players N] [--horde N]— run N ticks and print timing. With no players every zombie heads for a debug goal (all of them stay on the active tier); with players they start on the road west of town (in the forest on a big map), run in circles and make a 60 m noise every 10 s,--horde Nspawns N more zombies round the first, and the report breaks the tick down by tier, and says what the worst tick was made of.--spreadis a realistic server instead: the players on a grid over the whole map, one in four running and making a noise now and then, the rest walking.--bench --bots Nis that bench over the real transport: a server on a loopback TCP port and N headless bots, each its own connection (the players’ places as above, the bots playing them), ticking at the real rate; it reports the whole tick (intents, world, snapshots), the active zombies and what each client was sent. -
zombye-server --host [ADDR[:PORT]]— the multiplayer server (multiplayer.rs,zombye_net::host): game clients join withzombye --connect HOST[:PORT]. Listens on every interface, TCP port 7777, unless told otherwise.--max-players N(default 32, at most 64),--pvp on|off(default on: players can hurt each other; off is co-op),--spawn spread|together(default: spread round the town with PvP, together by the first house without),--name NAME,--password P,--allow-dev(take dev toggles and debug intents from clients),--budget KB(kilobytes a second down to each client, default 32, 8 to 1000: what its snapshots are kept within),--fair-sight on|off(#66: a client is told of another player only while its survivor sees them, and of one it only hears as a sound; default on with PvP, off in co-op),--logout-secs S(default 30: how long a survivor lies in the world, asleep, after its player leaves),--logout-safe-secs S(default 5: the same when it was left somewhere safe),--spawn-protection S(default 10: seconds a new survivor can’t be hurt by other players). New survivors start with the data folder’sstart_kit.ron, or with--start-kit ITEM[:N],ITEM[:N]...(none: nothing).--camera isometric|first-personand--agents off|on|markedare the camera and agents rules (#69: told to every client that joins, and to anyone who asks withzombye --server-info HOST; clients that say they are programs are refused, let in, or let in and marked). With--save PATHthe world is loaded or made, autosaved and saved on shutdown as below, with whose survivor is whose inPATH.players.--admin-mcp [ADDR[:PORT]](admin.rs) adds the operator’s MCP endpoint to the running server, by default on127.0.0.1:8788: list, kick and ban players, save, change settings, set off events, read the log. It always needs a bearer token (ZOMBYE_ADMIN_TOKEN, or--admin-token T);--admin-origin ORIGINallows a browser origin. -
zombye-server --config FILE— the dedicated server (config.rs, docs/self-hosting.md):--hostwith its settings read from one RON file (written with the defaults, commented, if it isn’t there yet;server.example.ronbeside this crate’s manifest). The file stands for the flags above, so a flag on the command line wins over it; its paths are relative to its folder, and its world is saved inworld.zsavethere unless it says otherwise. This is what the Docker image runs (Dockerfile:--config /data/server.ron). -
zombye-server --bots N --connect HOST[:PORT] [--secs S] [--bots-hostile] [--lag MS]— N headless bot clients, each on its own connection, that wander and fight; prints what each costs.--lag MSmakes them play as if that many milliseconds of ping away (lag compensation). -
zombye-server --benchmark list | table | ID | all— the agent survival benchmark (#29,benchmark.rs, docs/benchmark.md): fixed scenarios from the data folder’sscenarios.ron.listprints them; with--mcpor--mcp-http,--benchmark IDserves that scenario’s world to an agent (a player’s tools only, one life, time stops when the run is over) and writes its result as JSON into--results DIR(defaultsaves/benchmark) under--agent NAME;--benchmark ID|all --baseline idle|brawler|runnerplays it with a built-in script instead;tableranks the results in the folder. -
zombye-server --docs DIR [--repo DIR] [--docs-base PATH] [--docs-strict]— write the game’s reference as Markdown pages into DIR (docgen.rs): every MCP tool, every data file with its fields and shipped values, every tuning number and these flags, from the game itself, for the docs site. Says what it found undocumented;--docs-strictexits 1 if anything is.--docs-baseis the site path the pages are served under (default/docs/reference/game).
Common options: --zombies N (default: as many as population.ron gives for the map, about 2,600
on the default map), --seed S (default 1), --map-chunks N (a square
map N × N chunks of 16 m; default 30, so 480 m; 64 is about 1 km), --data DIR (content
folder; default $ZOMBYE_DATA, else the repo’s assets/data, else a data folder beside the
binary: content::installed_data_dir).
Saves: --save PATH loads that save if it exists (the world options are then ignored) or
makes a new world and saves it there; the server then autosaves to it every
--autosave-mins N minutes of real time (default 5; 0 = never) and when it shuts down (stdin
closed, Ctrl-C, SIGTERM or SIGHUP; on Windows also closing the console window). A save made with game data changed since in ways it can’t take (a building
template that changes the map, a weapon it uses removed) is refused unless --load-anyway, which
loads it dropping what no longer fits; compatible changes load with a note. --saves DIR is the folder for the MCP save/load/saves tools
(default: the --save file’s folder, else saves). --bench --save-bench also times saving
and loading the world at the end of the run.
Screenshots (MCP screenshot, screenshot.rs): --client PATH is the game client binary to
render with (default $ZOMBYE_CLIENT, else zombye next to this binary) and
--screenshot-timeout SECS how long a render may take (default 60).
zombye (the game)
Section titled “zombye (the game)”Each flag with what it takes. Most are for testing, pictures and recordings; a plain start needs none.
| Flag | Takes |
|---|---|
--zombies |
N |
--seed |
S |
--time |
HOUR |
--at |
X,Y |
--map-chunks |
N |
--angle |
0..3 |
--turn |
N@SECS[,N@SECS...] |
--opening-hints |
on|off |
--novsync |
|
--zoom |
METRES |
--screenshot |
PATH |
--screenshot-after |
SECS[,SECS...] |
--exit-after |
SECS |
--fight-demo |
|
--weapons-demo |
|
--siege |
|
--pvp |
|
--duel |
|
--autoplay |
|
--sneak |
|
--saves |
DIR |
--load |
NAME|PATH |
--load-anyway |
|
--player |
ID |
--data |
DIR |
--mod |
DIR |
--quicksave-after |
SECS |
--quickload-after |
SECS |
--new-run-after |
SECS |
--render-to |
PATH |
--size |
WxH |
--center |
X,Y |
--hud |
|
--inventory |
|
--find |
TEXT |
--filter |
CATEGORY[,CATEGORY...] |
--tab |
rows|floor |
--sort |
name|type|weight |
--expand |
|
--pick |
N,N |
--pick-range |
A,B[@SECS] |
--drop-picked-after |
SECS |
--menu |
SPEC |
--menu-pick |
N[@SECS] |
--skills |
|
--health |
|
--morning |
|
--graphics-panel |
|
--map |
|
--map-zoom |
PX |
--map-center |
X,Y |
--map-all |
|
--skip-hours |
H |
--hover-tag |
N |
--debug-stats |
|
--god |
|
--ignored |
|
--crowd-vat |
PATH[,PATH...]|DIR|none |
--survivor |
PATH|DIR|none |
--pose |
NAME[:U] |
--mute |
|
--volume |
V |
--music |
V |
--ui-scale |
PCT |
--help-text |
full|short|off |
--old-look |
off|subtle|strong |
--connect |
HOST[:PORT] |
--name |
NAME |
--password |
P |
--agent |
|
--server-info |
HOST[:PORT] |
--server-list |
FILE|URL |
--browser |
|
--browser-join |
N[@SECS] |
--joined |
|
--join-error |
TEXT |
--hotbar |
ID[,ID...] |
--hotbar-press |
K@SECS[,K@SECS...] |
--panel-at |
PANEL:X,Y[;PANEL:X,Y] |
--drag-panel |
PANEL:DX,DY[@SECS] |
--lag |
MS |
--say |
TEXT[@SECS] |
--shout |
TEXT[@SECS] |
--whisper |
TEXT[@SECS] |
--gesture |
NAME[@SECS] |
--talk-demo |
|
--talk-wall |
|
--holdup-demo |
|
--holdup-auto |
|
--graphics |
low|medium|high|ultra|auto |
--vegetation |
off|low|high|N |
--no-post |
LIST |
--msaa |
N |
--shadow-map |
N |
--render-scale |
F |
--frame-bench |
N |
--gun |
ID |
--give |
ID[:N],... |
--walls-up |
|
--zombie-silhouettes |
|
--aim-at |
DX,DY|zombie |
--first-person |
|
--new-game |
|
--new-game-tab |
who|picks|world |
--new-game-from |
PATH |
--background |
ID |
--strengths |
ID[,ID...] |
--flaws |
ID[,ID...] |
--outfit |
ITEM[,ITEM...] |
--difficulty |
ID |
--walk |
X,Y;X,Y;... |