---
title: "Vintage Story Server Settings and World Config"
description: "Vintage Story server settings explained: serverconfig.json, live /serverconfig changes, the roles and land-claim system, and /worldconfig for world rules."
url: "https://www.gameserverkings.com/knowledge-base/vintage-story/configuration-overview/"
category: "Vintage Story"
category_url: "https://www.gameserverkings.com/knowledge-base/vintage-story/"
published: "2026-07-02T22:04:55.477Z"
updated: "2026-08-07T21:09:32.447Z"
source_format: "markdown"
site: "GameServerKings"
---

# Vintage Story Server Settings and World Config

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.

```json title="serverconfig.json"
{
  "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"
}
```

| 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 |

> [!IMPORTANT] `Port` belongs to your allocation, not to you
> `42420` is Vintage Story's stock port. Your [managed Vintage Story server](/games/vintage-story/) 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.

> [!WARNING] 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:

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

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 |

> [!TIP] 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:

```text
/worldconfig deathPunishment keep
/worldconfig creatureHostility passive
/worldconfig graceTimer 10
/worldconfig daysPerMonth 12
/worldconfig temporalStorms rare
```

| 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.

> [!IMPORTANT] 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 |

## What to read next

- [Getting started with your Vintage Story server](/knowledge-base/vintage-story/getting-started-with-your-vintage-story-server/) — first boot and connecting
- [Vintage Story Admin Setup](/knowledge-base/vintage-story/how-to-add-admins-and-commands-vintage-story/) — granting yourself privileges
- [Installing Mods on Vintage Story](/knowledge-base/vintage-story/how-to-install-mods/) — the mod database and installs
- [How to use your server panel](/knowledge-base/general/how-to-use-your-server-panel/) — where the Network and File Manager tabs live

## 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
