Menu
 

Server Configuration Guide | Vintage Story Wiki

Vintage Story Server Configuration: serverconfig.json

Checked on 14 October 2026 against a default serverconfig.json written by the Vintage Story 1.22.7 server.

A Vintage Story dedicated server keeps nearly all of its settings in one JSON file, serverconfig.json. This page covers where it is, how it is laid out, the real defaults of the settings people change most, and the one rule behind most "my settings don't apply" questions: world settings are copied into the save when the world is created, and after that they are changed with /worldconfig, not in this file.

Where serverconfig.json lives

  • Dedicated server: in its data folder, the one given with --dataPath. Without that option it is the normal VintagestoryData folder: %APPDATA%\VintagestoryData on Windows, ~/.config/VintagestoryData on Linux.
  • Created on first start: if the file is missing, the server writes one with default values. --genconfig writes a fresh default file and exits, and deletes the existing one.
  • Shared with single player: the file's own first line warns that it is also loaded when you start a single player world from the same data folder, which is why the developers recommend running a dedicated server from its own folder.
  • On Supercraft: it is in the Config section of the file manager.

How the file is laid out

Three parts matter:

  • Top-level keys are server settings: name, port, password, player limit, whitelist mode and so on.
  • WorldConfig describes the world: Seed, SaveFileLocation (which save file to load), WorldName, PlayStyle, WorldType and WorldConfiguration, the gameplay rules such as death punishment and temporal storms.
  • Roles lists the nine stock player roles and their privileges, from suvisitor to admin.
{
  "ServerName": "Vintage Story Server",
  "Port": 42420,
  "MaxClients": 16,
  ...
  "WorldConfig": {
    "Seed": null,
    "SaveFileLocation": ".../Saves/default.vcdbs",
    "WorldName": "A new world",
    "PlayStyle": "surviveandbuild",
    "WorldType": "standard",
    "WorldConfiguration": { "deathPunishment": "keep" }
  },
  ...
}

World keys only work inside WorldConfig. The server ignores a SaveFileLocation or WorldConfiguration placed at the top level, and drops it the next time it rewrites the file.

Server settings people change most

SettingDefaultWhat it does
ServerName"Vintage Story Server"Name shown to players.
ServerDescriptionemptyDescription for the public server list.
WelcomeMessage"Welcome {0}, may you survive well and prosper"Message on join; {0} is the player name.
Port42420TCP and UDP port.
IpemptyAddress to bind to; empty means all.
MaxClients16Player limit.
PasswordemptyJoin password.
AdvertiseServerfalseList the server on the public master server.
WhitelistModeDefaultOn a dedicated server the default means only whitelisted players can join.
DefaultRoleCode"suplayer"Role given to new players.
AllowPvPtruePlayer versus player damage.
PassTimeWhenEmptyfalseIf true, the calendar keeps running with nobody online. Left false, the world clock pauses when the last player leaves, which freezes crops, food spoilage and mechanical power such as windmills.
MaxChunkRadius12How many chunks around each player the server sends.
SpawnCapPlayerScaling0.5How much creature spawn caps grow with each extra player.
ServerLanguage"en"Language for server messages.
StartupCommandsemptyConsole commands to run at every start, one per line.
ModIdBlackList, ModIdWhiteListemptyMods players may not use, or the only client mods they may use.
AntiAbuse0 (Off)Anti-cheat level.
LogBlockBreakPlacefalseWrite every placed and removed block to server-build.log.
CorruptionProtectiontrueKeeps a write-ahead log on the save database so a bad shutdown is far less likely to damage it.
DieBelowDiskSpaceMb400Stop the server when free disk space drops below this.
DieAboveMemoryUsageMb50000Stop the server when it uses more memory than this.

World settings

PlayStyle picks the preset: surviveandbuild (standard survival), exploration, wildernesssurvival, homosapiens or creativebuilding. WorldType is standard unless you want a superflat creative world. Inside WorldConfiguration go the gameplay rules; a few of the most asked, with their defaults:

KeyDefaultValues
deathPunishmentdropdrop, keep
droppedItemsTimer600Seconds before dropped items despawn.
spawnRadius50How far from spawn new players start, in blocks.
graceTimer0Days before hostile creatures spawn.
playerlives-1Lives per player; -1 is unlimited.
creatureHostilityaggressiveaggressive, passive, off
temporalStormssometimesoff to veryoften
daysPerMonth93 to 30.
worldWidth, worldLength1024000World size in blocks.
allowLandClaimingtrueWhether players can claim land.

These are only read when the world is created; each preset also sets its own values on top of these defaults. After that the world keeps them in its save. To change one on an existing world, use /worldconfig <key> <value>; the server answers Ok, value ... set. Restart game world or server to apply changes. The worldconfig command reference lists the keys.

Changing settings while the server runs

/serverconfig reads and changes server settings from the console or in game, for example /serverconfig password, nopassword, name, maxclients, maxchunkradius, passtimewhenempty, advertise, allowpvp, whitelistmode, antiabuse, modwhitelist and modblacklist. The server saves those changes into serverconfig.json itself. The autosave interval, 300 seconds by default, is changed the same way with /serverconfig autosaveintervall <seconds>, spelled with two Ls.

Launch options

  • --dataPath: the data folder, and with it the location of serverconfig.json.
  • --port, --ip, --maxclients: override those settings for this run.
  • --withconfig="{ key: value }": merges values into the config and starts the server.
  • --setconfig="{ key: value }": sets values, writes the file and exits.
  • --genconfig: writes a fresh default file and exits, deleting the old one.

Frequently Asked Questions

Where is serverconfig.json?

In the server's data folder: the folder given with --dataPath, otherwise VintagestoryData (%APPDATA%\VintagestoryData on Windows, ~/.config/VintagestoryData on Linux). The server creates it with default values on its first start. On Supercraft it is in the Config section of the file manager.

How do I set a password for my Vintage Story server?

Run /serverconfig password <password> in the server console, or stop the server and set "Password" in serverconfig.json. /serverconfig nopassword removes it.

How do I set a custom world seed?

Set "Seed" inside the WorldConfig block before the world is created. An existing world keeps the seed it was made with, so a new seed means a new world: point SaveFileLocation at a new file name and start the server.

Why aren't my configuration changes applying?

Usually one of four reasons. You edited the file while the server was running, and the server wrote its own copy back over it. You changed a world setting after the world was created; those live in the save from then on and need /worldconfig. You put a world key at the top level of the file instead of inside WorldConfig, where the server ignores it and drops it when it rewrites the file. Or it is a mod setting, which lives in that mod's file in ModConfig.

Do I need to restart the server after changing settings?

After editing the file, yes: the server reads it when it starts. Many /serverconfig changes apply while it runs. A /worldconfig change answers "Restart game world or server to apply changes", so restart after those.

An open report on the developers' issue tracker, issue 7676 from 1.21.6, describes server settings "reverting". The first reply from a project collaborator asks whether the config was changed before or after the world was launched, which is the difference described above.

Troubleshooting

The server stops right after a config edit

Look for Failed to read serverconfig.json. Did you modify it? See server-main.log for the affected line. Will stop the server. The file is not valid JSON; the error just above it in server-main.log gives the line and position. A missing comma or quote is the usual cause.

A value is accepted but nothing changes

Check that world keys sit inside WorldConfig, and that the world was not already created; on an existing world use /worldconfig. If the server rewrote the file after your edit, your change was made while it was running: stop it, edit, start.

Performance settings

  • MaxChunkRadius (12): fewer chunks per player means less memory and traffic.
  • SpawnCapPlayerScaling (0.5): lower it if many players online fill the world with creatures.
  • RandomBlockTicksPerChunk (16), BlockTickChunkRange (5) and BlockTickInterval (300): how much random block updating, such as crop growth, the server does around players.
  • TickTime (33.333 ms, about 30 ticks a second): leave it alone.

Looking for managed Vintage Story server hosting? Supercraft runs Vintage Story dedicated servers with daily backups, instant setup, and 4 region options.

Build it the easy way: our free Vintage Story World Configuration Generator turns presets plus a simple form into a ready-to-paste WorldConfiguration for serverconfig.json, plus the matching live /worldconfig commands. Paste an existing config to see how it differs from a preset.

Launch a Vintage Story server with this setup

Pick a preset and your new server boots preconfigured - rates, rules and mods already dialed in. Change anything later in the panel.

Browse all Vintage Story recipes →

Vintage Story Creative Builder

Peaceful builder preset: creative game-mode allowed, passive creatures, no temporal storms, doubled harvest, …

Vintage Story Hardcore Survival

High-stress survival preset: aggressive creatures, frequent temporal storms, slower harvest acceleration, per…

Tired of fighting this issue every patch?

Run a managed Vintage Story server with us. We handle the patches, mod-version pinning, save backups, and DDoS protection. Set up in minutes, multiple datacenter regions, no contract.

See Vintage Story hosting plans →
Top