---
title: "Vintage Story Dedicated Server: .NET Versions, Updates and Whitelist"
description: "Vintage Story dedicated server guide: .NET 10 for 1.22, updating by reinstall, the default whitelist, joining with IP:port, and self-hosting on Linux."
url: "https://www.gameserverkings.com/knowledge-base/vintage-story/vintage-story-dedicated-server/"
category: "Vintage Story"
category_url: "https://www.gameserverkings.com/knowledge-base/vintage-story/"
published: "2026-09-28T04:25:11.247Z"
updated: "2026-09-28T04:25:11.247Z"
source_format: "markdown"
site: "GameServerKings"
---

# Vintage Story Dedicated Server: .NET Versions, Updates and Whitelist

A Vintage Story dedicated server is the same `VintagestoryServer` program that ships with every copy of the game, run by itself with its own data folder instead of as part of a single-player world. It's small (the 1.22.7 Linux server download is about 51 MB) and it runs on Windows or Linux. Anyone can connect to it at any hour, not only while the host is playing. The official wiki suggests budgeting 1 GB of RAM plus 300 MB per player, and 4 CPU threads.

Most problems people hit with a Vintage Story dedicated server come from three things: the .NET version, the whitelist, and updating. This guide covers all three for a GameServerKings server, then gives the self-hosting steps for Linux.

> [!NOTE] Checked against
> Vintage Story **1.22.7** (current stable when we checked, 28 September 2026), the official wiki's dedicated server guide, and the GameServerKings Vintage Story server configuration.

## How your GameServerKings server runs Vintage Story

Your server starts the game like this:

```text
./VintagestoryServer --dataPath ./data --port=<your port> --maxclients=<Max Clients> <Start options>
```

That tells you where everything lives. The program files are in the server's root folder. Everything that belongs to your world is under `data/`:

| Path | What's in it |
|---|---|
| `data/serverconfig.json` | Server settings: name, password, whitelist mode, roles, world config |
| `data/Saves/` | The world file (`default.vcdbs` unless you've renamed it) |
| `data/Mods/` | Server mods, as `.zip` files |
| `data/Logs/` | Server logs, the first place to look when something goes wrong |
| `data/Backups/` | The game's own backups. SQLite also uses it for temporary files (see below) |

`--port` and `--maxclients` override the values in `serverconfig.json`. The game's own help text describes both as "overwrites configured value". So change the player limit on the **Startup** tab, not in the file, and leave the port alone. Our [serverconfig.json guide](/knowledge-base/vintage-story/configuration-overview/) covers every other setting.

## The Startup tab, setting by setting

| Setting | Default | What it's for |
|---|---|---|
| **Release branch** | `stable` | `stable`, `unstable` (release candidates) or `pre` (pre-releases) |
| **Release version** | `latest` | `latest`, or an exact version such as `1.21.7` to stay on an older release. The `pre` branch always needs an exact version |
| **Max Clients** | `16` | Player slots, up to 256 |
| **Start options** | empty | Extra launch arguments, up to 200 characters |
| **Sqlite temporary files directory** | `/home/container/data/Backups` | Read-only. It gives the `/db vacuum` command room to work, because the default temporary folder is small and in memory |
| **Docker image** | – | Which .NET runtime the server runs on: **Dotnet 8**, **Dotnet 9** or **Dotnet 10**. See the next section |

**Release branch** and **Release version** only take effect when the game is installed. Changing them doesn't update a running server. See "Updating" below.

## Match the .NET version to the game version

Vintage Story needs a specific .NET runtime, and 1.22 moved to .NET 10:

| Game version | .NET runtime | Pick this Docker image |
|---|---|---|
| 1.22.0 and later | .NET 10 | **Dotnet 10** |
| 1.21.x | .NET 8 | **Dotnet 8** |

You can confirm this from the server files themselves. 1.22.7's `VintagestoryServer.runtimeconfig.json` targets `net10.0`, and the game's own `server.sh` refuses to start with *"I require dotnet 10.0"*.

New servers can start out on the **Dotnet 8** image, which is too old for 1.22. If your server doesn't start, or the console stops right after start-up with a message saying .NET needs to be installed or updated, open **Startup**, set **Docker Image** to **Dotnet 10**, and restart. If it still won't start, contact support with the console output.

## Updating to a new Vintage Story version

Your server doesn't update itself. The game files are downloaded when it's installed, so updating means installing again:

1. **Stop** the server and take a [backup](/knowledge-base/general/how-to-create-a-backup/), so you can go back if the new version or a mod misbehaves.
2. Check your mods on the ModDB. Mods built for an older major version often fail to load on a new one.
3. On **Startup**, leave **Release version** on `latest` (or enter the exact version you want). Switch **Docker Image** to Dotnet 10 if you're moving to 1.22.
4. In **Settings**, choose **Reinstall Server**. The installer replaces the game's `assets/` and `Lib/` folders and the program files. It doesn't touch `data/`, so your world, config and mods stay where they are.
5. Start the server and watch the console for `Dedicated Server now running on Port`.

Players need the same game version as the server. If someone gets a version-mismatch error, either they or the server is on the wrong release.

## First login: get past the whitelist

Since 1.20, dedicated servers **enforce the whitelist by default**. On a fresh server, not even the owner can get in until they're whitelisted. Use the panel console, which accepts server commands directly:

```text
/whitelist add YourPlayerName
```

Then give yourself admin rights. Our [Vintage Story commands guide](/knowledge-base/vintage-story/how-to-add-admins-and-commands-vintage-story/) covers roles and privileges, and how to switch the whitelist off if you want an open server. That isn't recommended: the official guide calls the whitelist "significantly more secure than a password".

## How players connect

1. In Vintage Story, go to **Multiplayer** > **Add new server**.
2. Enter any name, then the IP address **and port** from your panel (for example `203.0.113.10:25612`). The official guide says you can usually leave the port off, but that only works on the default port 42420. Your server uses its own port.
3. Enter the password if you've set one, then click **Create** and join.

On their first join, players are offered the server's mod list. If they accept, the game downloads every server-side and universal mod into its `ModsByServer` folder, so nobody installs server mods by hand. The [mods guide](/knowledge-base/vintage-story/how-to-install-mods/) has the details.

Want the server in the public list? `AdvertiseServer` defaults to `false`. Set it to `true` in `serverconfig.json` while the server is stopped.

## Self-hosting a Vintage Story dedicated server on Linux

The official wiki's Linux method, in short:

1. Install the .NET runtime that matches your game version (.NET 10 for 1.22).
2. Create a user for the server, then download and unpack the server archive:

```bash
wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_linux-x64_1.22.7.tar.gz
mkdir server && tar -C server -xzf vs_server_linux-x64_1.22.7.tar.gz
```

3. Edit `USERNAME`, `VSPATH` and `DATAPATH` at the top of the included `server.sh`, make it executable, and start the server with it. Or run `./VintagestoryServer --dataPath /path/to/data` directly, or as a systemd service.
4. Open port **42420** for **TCP and UDP** (UDP is needed from 1.20 on).

On Windows, `VintagestoryServer.exe` is in the game's install folder already. Start it with `--dataPath` pointing at an empty folder so it doesn't mix its files with your single-player saves.

## Troubleshooting

- **The console stops at startup with a .NET error.** Wrong Docker image. See the .NET section above.
- **"You are not whitelisted".** Run `/whitelist add <name>` in the panel console.
- **Friends can't connect but you can.** They left the port off the address. Use the full `IP:port` from the panel.
- **Your `serverconfig.json` edit disappeared.** You edited it while the server was running and the server saved over it. Stop the server first, or use `/serverconfig` commands instead.
- **Installing a `pre` version fails.** The pre-release branch needs an exact version number in **Release version**.

## 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 world basics
- [Vintage Story server settings and world config](/knowledge-base/vintage-story/configuration-overview/): `serverconfig.json` in depth
- [Vintage Story commands and cheats](/knowledge-base/vintage-story/how-to-add-admins-and-commands-vintage-story/): admin roles, whitelist and privileges
- [How to install mods for Vintage Story](/knowledge-base/vintage-story/how-to-install-mods/): server mods and the ModDB

---

Made with 💜 by GameServerKings
