Where Vintage Story Stores Server Crash Logs
Vintage Story writes its own log set under the game's data directory, completely separate from the OS-level stderr.log that catches process-level failures. If you are looking for "the crash log" and the panel's console pane is empty, the actual file is one directory over.
The two log layers
Every Vintage Story server on a Supercraft node produces two parallel log streams:
| Layer | Where | What it catches |
|---|---|---|
| OS / process supervisor | vst/process-control/stderr.log |
JVM/native crashes, OOM kills, missing-library errors, signal terminations. |
| Game's own logger | vst/data/Logs/ |
In-game events, mod errors, world generation issues, network errors, and per-incident crash dumps. |
Most "I need the crash log" requests want the game's own logger. The OS-level stream is only useful when the process never got far enough to write to its own log directory.
What lives under data/Logs/
vst/data/Logs/
├── server-main.txt # main server log, normal startup output
├── server-event.txt # in-game events (deaths, joins, leaves, chunk loads)
├── server-debug.txt # verbose debug, only if enabled in serverconfig
├── server-chat.txt # chat history
├── server-build.txt # block placement history
├── server-audit.txt # admin actions
└── server-crash-<timestamp>.txt # one file per crash, rotated automatically
The two you will use most are server-main.txt (what was happening before things went wrong) and server-crash-<timestamp>.txt (the actual exception dump).
What's in a crash file
A server-crash-*.txt file contains, in order:
- The exception type and message.
- The full managed stack trace from the .NET runtime that powers Vintage Story.
- The game version, mod versions, and OS info at the moment of crash.
- The last few lines from
server-main.txtfor context.
The structure is straightforward: scroll to the bottom for the game version, scroll to the top for the exception. The first non-engine stack frame usually names the mod or the world subsystem that triggered the crash.
Rotation policy
Vintage Story does not delete old crash files automatically. They accumulate in data/Logs/ until you remove them. The standard non-crash logs (server-main.txt et al) are overwritten on each server start unless you have enabled append mode in serverconfig.json, so if you want to keep yesterday's server-main.txt you have to copy it before restarting.
Common crash signatures
| First line of stack | Likely cause |
|---|---|
References a mod namespace (e.g. VSSurvivalMod.X.Y) |
Mod incompatibility after a game update. Update or remove the named mod. |
References Vintagestory.Server.ServerMain |
Likely a config file with bad JSON. Validate serverconfig.json. |
References WorldGen or ChunkGenerator |
World generation hit an edge case. Often resolves after a restart; if not, a mod that adds blocks is conflicting. |
References NetworkChannel or PacketHandler |
A client sent a malformed packet (often modded clients on a vanilla server, or version skew). |
OutOfMemoryException or stderr shows signal 9 |
Heap ceiling reached. See reading stderr.log. |
If data/Logs/ is empty after a crash
If the panel shows the server stopped and there are no recent crash files in data/Logs/, the process died before the game's logger initialised. In that case:
- Open
vst/process-control/stderr.log. - If stderr is also silent, open
vst/process-control/run_watch.stderr.logfor the exit code and signal. - A
signal 9is an out-of-memory kernel kill: increase RAM. A non-zero exit with no further output usually points at a missing native library; reinstall.
The general procedure is documented in When your game server exits silently: read stderr.log.
Sharing a crash log for support
When you open a support ticket, the useful files are (in order):
- The most recent
server-crash-<timestamp>.txt. - The last 200 lines of
server-main.txtfrom the same run. - Your
serverconfig.jsonwith the password redacted.
That trio is enough to diagnose 90% of crashes without follow-up questions.
Quick rule: if the panel console is empty after a crash, look in data/Logs/server-crash-*.txt first, not process-control/stderr.log. Vintage Story crashes write to its own log directory, not to stdout.
Vintage Story hosting with logs you can actually find
On Supercraft Vintage Story hosting, data/Logs/ is browsable from the panel's file manager and live-tailable from the console. Pair this with the admin commands reference to act on what the log tells you.