Skip to content

Vintage Story Server Settings and World Config

Vintage Story server settings explained: serverconfig.json, live /serverconfig changes, the roles and land-claim system, and /worldconfig for world rules.

Updated August 07, 2026
Vintage Story

Vintage Story splits its configuration in a way that catches people out: server settings live in serverconfig.json and can mostly be changed at runtime, while world settings live inside the save and are changed with console commands. Editing the wrong one, or editing at the wrong time, quietly achieves nothing. This guide covers both, plus the roles system that handles permissions.

serverconfig.json

The main config sits at the root of your data folder. The server writes it on first start, and it contains every key the build supports.

{
  "ServerName": "My GSK Vintage Story Server",
  "ServerDescription": "A vintage survival adventure",
  "WelcomeMessage": "Welcome {0}, may you survive well and prosper",
  "Port": 42420,
  "MaxClients": 16,
  "MaxClientsInQueue": 0,
  "Password": null,
  "AdvertiseServer": false,
  "PassTimeWhenEmpty": false,
  "WarnClientsAfterAfkSeconds": 0,
  "KickClientsAfterAfkSeconds": 0,
  "ClientConnectionTimeout": 150,
  "MaxChunkRadius": 12,
  "ServerLanguage": "en"
}
serverconfig.json
Setting Default Notes
ServerName 4–80 characters, shown in the public list
MaxClients 16 Slot cap
MaxClientsInQueue 0 Queue length once full
Password null null for an open server
AdvertiseServer false Off by default — set true to appear in the public list
PassTimeWhenEmpty false Whether time advances with nobody online
WarnClientsAfterAfkSeconds / KickClientsAfterAfkSeconds 0 AFK handling. 0 disables
MaxChunkRadius 12 Chunks loaded per player — the biggest performance dial
ClientConnectionTimeout 150 Seconds before a stalled client is dropped

Port belongs to your allocation, not to you

42420 is Vintage Story's stock port. Your managed Vintage Story server is assigned its own and the firewall is opened for that one only. A hand-edited Port produces a server that starts, logs nothing unusual, and listens where no traffic ever arrives. Your real port is beside the Address on the Console tab and on the Network tab.

Never edit serverconfig.json while the server is running

Vintage Story writes its current in-memory config to disk on shutdown. Edit the file while the server is up and your changes are overwritten the moment it stops — with no error. Stop → edit → start, in that order.

Changing settings without stopping the server

Many of these can be set live from the console, which sidesteps the overwrite problem entirely:

/serverconfig maxclients 12
/serverconfig password MySecret
/serverconfig allowpvp false
text

Not everything is available this way — world generation options and some performance settings still need a file edit and a restart. Run /serverconfig with no arguments to see what your build accepts.

Roles and privileges

This is Vintage Story's permission system, and it is more capable than most. serverconfig.json contains a Roles array defining who can do what, including how much land each group may claim.

The stock roles, in ascending order of privilege:

Role code Can do
suvisitor Visit and chat only. No building or interaction
crvisitor As above, plus fly
limitedsuplayer Build and interact only in permitted areas
limitedcrplayer As above, plus fly and set own game mode
suplayer Build in unprotected areas, claim land
crplayer Build anywhere, fly, larger land claim allowance

Each role carries a PrivilegeLevel, a Privileges list (chat, build, useblock, areamodify, gamemode, freemove, attackplayers, and so on), and land-claim limits:

Field Meaning
LandClaimAllowance Total claimable volume for that role
LandClaimMaxAreas How many separate claims they may hold
LandClaimMinSize Smallest permitted claim
AutoGrant Whether new players receive this role automatically

Land claim limits are a role setting, not a world setting

If players complain they cannot claim enough land, the dial is LandClaimAllowance on their role — not anything in the world config. Raising it for suplayer is the usual fix on a building-focused server.

World settings

World rules are stored inside the save, not in serverconfig.json. They are changed with the /worldconfig console command and take effect after a restart:

/worldconfig deathPunishment keep
/worldconfig creatureHostility passive
/worldconfig graceTimer 10
/worldconfig daysPerMonth 12
/worldconfig temporalStorms rare
text
Command Effect
deathPunishment keep Players keep their items on death
creatureHostility passive Creatures do not attack
graceTimer 10 Delays the first temporal storm by that many days
daysPerMonth 12 Slows the seasons
temporalStorms rare Reduces storm frequency

Run /worldconfig on its own to list every option your server supports — that output is always correct for your build.

Playstyle, seed and world size only apply at generation

PlayStyle, Seed, WorldType and the MapSize values are read when a world is created. Changing them on an existing world does nothing at all. To use a different playstyle you need to generate a new world.

The five playstyles are surviveandbuild, exploration, homosapiens, wildernesssurvival and creativebuilding. WorldType accepts standard or superflat.

Performance tuning

MaxChunkRadius is the setting that matters most. Each connected player loads chunks in that radius, so memory and CPU scale with players × radius:

  • 12 is the default and is right for most servers
  • Drop to 10 if a busy server is struggling
  • Raising it above 14 rarely improves the experience and costs a lot

The block-tick settings (BlockTickChunkRange, RandomBlockTicksPerChunk, BlockTickInterval, MaxMainThreadBlockTicks) control how much world simulation runs each tick. Leave them alone unless you are diagnosing a specific performance problem — they trade world liveliness for frame time, and the defaults are well chosen.

Applying changes

Change How
Most server settings /serverconfig <key> <value> — takes effect live
Everything in serverconfig.json Stop the server, edit, start
World rules /worldconfig <key> <value>, then restart
Playstyle, seed, world size Generate a new world

FAQ

Why do my serverconfig.json edits keep disappearing?

You edited the file while the server was running. Vintage Story overwrites it from memory on shutdown. Stop the server first, or use /serverconfig to change the setting live.

Why is my server not showing in the public list?

AdvertiseServer defaults to false. Set it to true.

How do I change the playstyle on an existing world?

You cannot. PlayStyle is read only when a world is generated — changing it later has no effect. You would need to create a new world.

What is the difference between /serverconfig and /worldconfig?

/serverconfig changes server settings such as slots and password. /worldconfig changes world rules such as death penalty and creature hostility, which are stored in the save itself.

How do I let players claim more land?

Raise LandClaimAllowance on their role in the Roles array. It is a role permission, not a world setting.

My server is lagging with several players online — what should I change first?

MaxChunkRadius. Dropping it from 12 to 10 has a larger effect than any other single setting, because chunk load scales with every connected player.


Made with 💜 by GameServerKings

Need a Vintage Story server?

Deploy an instantly-provisioned Vintage Story server on high-clock hardware — DDoS protected, no contracts, cancel anytime.

From $4.90 /month