A Vintage Story dedicated server is the VintagestoryServer program that comes with every copy of the game, running your world on its own so friends can join around the clock. To host one, run it on a Windows or Linux PC with about 1 GB of RAM plus 300 MB per player, open port 42420 for both TCP and UDP, whitelist your friends (servers are invite-only since 1.20) and set the rest in serverconfig.json. Below is every setup step for Windows, Linux and Docker, then ports, saves, updates and fixes for the errors people actually hit.
Dedicated server, Open to LAN or Open to Internet?
You can play Vintage Story multiplayer without a dedicated server. Open a singleplayer world, press Escape and click Open to LAN for people on your network, or Open to Internet to let the game try to open your router by itself. Both close the moment you quit. A dedicated server keeps the world running without you, which is what any group on different schedules needs.
| Open to LAN | Open to Internet | Dedicated server | |
|---|---|---|---|
| Who can join | Same home network only | Anyone with your IP | Anyone you whitelist |
| Host has to stay in the game | Yes | Yes | No |
| Router setup | None | Automatic via UPnP, when it works | Forward port 42420 (TCP + UDP) |
| Reliability | Good | The developers estimate 50–60% success; failure shows “Internet hosting failed” | Good once the port is open |
| Settings and admin | Your singleplayer settings | Your singleplayer settings | Full serverconfig.json, roles, whitelist |
If Open to Internet fails and you can’t forward ports, the official self-hosting page suggests a VPN that puts everyone on one virtual LAN. A Hamachi server setup works that way (the wiki also has a Radmin guide), but every player has to install the same software.
Vintage Story server requirements: how much RAM?
The developers’ own estimate for a Vintage Story server is 1 GB of RAM plus about 300 MB per player, 4 CPU threads, and 1 GHz of clock speed plus 150 MHz per player. That puts a small group at 2–4 GB and a full 16-player server near 6 GB. Mods and a widely explored map push it higher, so leave headroom.
| Players online | RAM by the official formula | What to give it |
|---|---|---|
| 4 | 2.2 GB | 4 GB |
| 8 | 3.4 GB | 4 GB |
| 16 (the default cap) | 5.8 GB | 6 GB |
| 24 | 8.2 GB | 8 GB or more |
| Any count with a big mod list | Add the mods’ share on top | Watch /stats and add RAM |
- OS: Windows or Linux (x64). An ARM64 build exists but is experimental.
- Runtime: Vintage Story runs on .NET, not Java. Version 1.22 needs the .NET 10 runtime, 1.21 needs .NET 8, and older versions .NET 7. The Windows installer handles this; on Linux you install it yourself.
- Disk: an SSD. The world autosaves every 300 seconds and each save causes a second or two of lag, less on fast storage. The server shuts itself down below 400 MB of free space (
DieBelowDiskSpaceMb) to protect the save. - Network: a stable upload and a router you can forward ports on. The official troubleshooting guide warns that players on another continent will feel the latency.
Hosting on the same PC you play on works for a few friends, but the game itself needs at least 4 GB of free RAM on top of the server. No spare machine? Vintage Story server hosting gives you one sized by the GB.
Vintage Story server download: where the server files are
You already have the server if you own the game. The Windows install puts VintagestoryServer.exe next to Vintagestory.exe in %AppData%\Vintagestory. For a separate machine, log in at account.vintagestory.at, open Downloads and click “Show all available downloads”: there is a server-only Linux .tar.gz and a server-only Windows .zip for every release.
- Linux:
vs_server_linux-x64_<version>.tar.gz(about 51 MB for 1.22.7) - Windows:
vs_server_win-x64_<version>.zip
Unless you have a reason to run an older version, take the latest stable release (1.22.7 at the time of writing) so it matches your players.
How to host a Vintage Story server on Windows
On Windows, setting up a Vintage Story dedicated server takes four steps: give the server its own data folder, allow it through the firewall, start it, and forward the port. The separate data folder matters if you also play on that PC, because otherwise the server shares saves, mods and settings with your singleplayer game.
- Make a data folder, for example
C:\Users\YourName\AppData\Roaming\VSserverData. - Create a shortcut to
VintagestoryServer.exe, open its Properties, and add--dataPath="C:\Users\YourName\AppData\Roaming\VSserverData"to the end of the Target field. A.batfile with the same line works too. - Allow it through Windows Defender Firewall: Inbound Rules → New Rule → Program → browse to
VintagestoryServer.exe→ Allow the connection. - Start it from the shortcut. A console window opens and creates
serverconfig.json, aModsfolder and the rest inside your data folder. The server is ready when the console printsDedicated Server now running on Port 42420 and all ips! - Whitelist yourself and make yourself admin by typing these in the console:
/whitelist add YourName /op YourName - Forward port 42420 on your router for friends outside your home (see the port section).
If the console closes straight away, another copy of Vintage Story is probably still running. Close it and try again.
Vintage Story Linux server setup
A Vintage Story Linux server runs from the server-only .tar.gz with the bundled server.sh script, which keeps it running in a screen session. You need the .NET 10 runtime for 1.22, plus screen and pgrep (from the procps package). Never run it as root: give it its own user.
# tools the script needs (Debian/Ubuntu)
sudo apt update && sudo apt install procps screen
# a dedicated user
sudo useradd vintagestory -m
sudo su -l vintagestory
# download and unpack the server (copy the current link from your account's Downloads page)
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_*.tar.gz
chmod +x server/server.sh
Open server/server.sh and set the three paths at the top. The script ships with DATAPATH='/var/vintagestory/data'; keeping data next to the server is simpler:
USERNAME=vintagestory
VSPATH=/home/vintagestory/server
DATAPATH=/home/vintagestory/data
Open the port in the firewall (pick the line for your system), then start the server and let yourself in:
sudo ufw allow 42420/tcp
sudo ufw allow 42420/udp
# or: sudo firewall-cmd --permanent --zone=public --add-port=42420/tcp (and /udp), then --reload
server/server.sh start
server/server.sh command "/whitelist add YourName"
server/server.sh command "/op YourName"
Other script commands: stop, restart, status and command "…". To reach the live server console, run screen -r vintagestory_server as the server user and press Ctrl+A, then D, to leave it running. If you plan to use mods, check that ModPaths in data/serverconfig.json lists your data folder’s Mods directory, and keep the first "Mods" entry, which loads the base game.
Prefer systemd? The official wiki’s unit file runs dotnet VintagestoryServer.dll --dataPath /srv/gameserver/data/vs as a non-root user with Restart=always, and a cron line such as 30 4 * * * systemctl restart vintagestoryserver.service gives you a nightly restart.
Crashes “out of memory” on Linux with RAM to spare? The developers’ fix is sudo sysctl -w vm.max_map_count=262144.
Vintage Story server in Docker
The official guides cover Windows, Linux x64 and ARM64, not Docker. Community-made images run the same Linux server inside a container. Whichever image you pick, keep the data folder on a volume so the world survives the container being replaced, publish 42420 for both TCP and UDP, and make sure the image’s .NET version matches the game version (.NET 10 for 1.22).
ARM64 (Raspberry Pi and similar)
An experimental ARM64 server is published on the developers’ GitHub with an install script. The catch: code mods that use Harmony patching don’t work on it, so it suits vanilla or light mod lists.
Vintage Story server port: 42420, TCP and UDP
The Vintage Story server port is 42420. Since 1.20 the game uses it for both TCP and UDP, so forward both protocols on your router to the PC running the server. Make two separate rules: the wiki notes that a combined “TCP/UDP” rule is unlikely to work, although logically it should. Players outside your home then join with your public IP.
| Port | Protocol | What it’s for |
|---|---|---|
| 42420 | TCP | Game connection (default) |
| 42420 | UDP | Game traffic, required since 1.20 |
- Let the server try UPnP: type
/serverconfig upnp 1in the console and it attempts the port forward itself. The developers put the odds at about 50%. - Use a different port: change
"Port": 42420inserverconfig.json, forward that one instead, and tell players to add it to the address (203.0.113.25:42421). - Hide the port behind a domain: an SRV record such as
_vintagestory._tcp.play.example.com. IN SRV 10 10 42421 server.example.com.lets players typeplay.example.comwith no port. - Your public IP changes: unless you pay your ISP for a static IP, it will change now and then. If everyone suddenly can’t connect, check it again.
Whitelist, password and admin rights
Since 1.20, a Vintage Story dedicated server is private out of the box: whitelisting is on and the server doesn’t advertise itself in the public list. Nobody gets in, you included, until they’re whitelisted. Add players with /whitelist add Name or /player Name whitelist on; no restart needed. Then decide whether you also want a password.
- Password:
/serverconfig password yourword(no spaces), or set"Password"inserverconfig.json./serverconfig nopasswordremoves it. - Turn the whitelist off (anyone with the address can join):
/serverconfig whitelistmode off, or"WhitelistMode": 1in the file. The wiki calls the whitelist “significantly more secure” than a password. - Admin:
/op Namein the console. No console access? Set"StartupCommands": "/op Name"inserverconfig.jsonand restart. - Visitors only: set
"DefaultRoleCode": "suvisitor"so newcomers can look and chat but not build until you promote them.
Every other option, from PvP to view distance, is in Vintage Story server settings explained, and the full admin list is in Vintage Story server commands.
How to join a Vintage Story server
To join, open Multiplayer from the main menu, click Add New Server, type any name, put the address in Host / IP Address and the password (if there is one) in the password field, then save and click the server to connect. Players on your home network use the server PC’s local IP; everyone else uses your public IP.
- Address: just the IP when the server uses port 42420; add
:portfor anything else. - Not whitelisted yet? Connecting fails until the host adds you.
- On a modded server the game offers to download the server’s mod list. Accept, and it stores those mods in a per-server folder under
VintagestoryData\ModsByServer, separate from your own.
Public servers, official servers and listing your own
Vintage Story has a public server list. Click Browse public servers in the Multiplayer menu, or use servers.vintagestory.at, which filters by whitelist, password, location and more. Community servers of every kind advertise there, including RP and civilization servers. To list your own, turn advertising on and give the server a proper name.
- List your server:
/serverconfig advertise on(or"AdvertiseServer": true), with aServerNameof 4–80 characters. The port has to be reachable from outside, because the server registers with the master server, which checks it. Success prints “Registration at the master server successfull and external connections are working!” - The official public server (TOPS): run by the developers and busy enough that players often queue for it. The wiki also suggests the Official Public Test Server as a quick way to check that your own game can connect to anything at all.
- The developers’ own hosting: they sell a simple in-game server for up to 8 players (16 with an upgrade), hosted in Central Europe. Its store page says it doesn’t support third-party mods or uploading a world yet, which is why the wiki keeps a list of third-party hosts.
Saves, backups and resetting the server
A Vintage Story server keeps its world in one SQLite file, Saves/default.vcdbs in the data folder, and autosaves it every 300 seconds. /autosavenow saves on demand, and /genbackup copies the world into the Backups folder without pausing the server. To restore, stop the server and copy a backup into Saves.
- Vintage Story server save location:
<data folder>/Saves/. Player roles, bans and the whitelist live inPlayerdata/, logs inLogs/. - Bring a singleplayer world: with the server stopped, copy its
.vcdbsintoSavesand either rename itdefault.vcdbsor point"SaveFileLocation"at it. Creating the world in singleplayer first is the easiest way to get custom world-generation settings. - How to reset a Vintage Story server: stop it, move
default.vcdbssomewhere safe, adjust theWorldConfigblock if you want different rules, and start it. The server creates a fresh world when the save file doesn’t exist. - Pause the server when it’s empty: it already does. With
PassTimeWhenEmptyoff (the default) the calendar stops when the last player leaves, so the seasons wait for you.
How to update a Vintage Story server
Players can only join a server running the same game version as them, so update the server whenever your group updates the game. Back up the data folder, stop the server, replace the program files with the new version, and start it again. Never delete the data folder: it holds the world, config and player data.
- Back up the whole data folder (or at least
Savesandserverconfig.json). - Stop the server.
- Windows: install the new game version (the server exe updates with it), or unpack the new server
.zipover a clean folder.
Linux:server.sh updateonly prints the steps, because auto-update is disabled as unreliable. Copyserver.shaside, delete the old install files (not your data folder), download and extract the new.tar.gz, putserver.shback and start. - Update your mods to releases for the new version at the same time.
Version notes worth knowing: 1.20 made servers whitelisted and unlisted by default and added the UDP port; 1.21 moved to .NET 8; 1.22 needs .NET 10.
Vintage Story server modding
Server mods come from the official ModDB. Drop the mod’s .zip into the data folder’s Mods folder (don’t unzip it) or run /moddb install modid, then restart. Players are offered the server-side and universal mods automatically when they join. Client-side mods, the folder rules and version matching are covered in how to add mods to a Vintage Story server.
Common Vintage Story server problems and fixes
Most Vintage Story server problems are one of three things: the port isn’t reachable (unable to connect), the whitelist or version doesn’t match (rejected on join), or the server is overloaded (lag and “host not responding”). The exact message tells you which. Server-side messages are in Logs/server-main.log; the table maps each one to its fix.
| Message or symptom | Most likely cause | Fix |
|---|---|---|
| Unable to connect to server: “connected host has failed to respond” | Port forward missing or wrong | Separate TCP and UDP rules for 42420; recheck your public IP |
| Can’t connect: “host has actively refused” | Firewall on the server PC | Allow VintagestoryServer.exe (or the port) through it |
| “The server closed down the socket without response. The server may be password protected or whitelisted” | Not whitelisted, or wrong password | /whitelist add Name; re-enter the password |
| “This server only allows whitelisted players to join. You are not on the whitelist.” | Whitelist is on (the 1.20+ default) | Whitelist the player |
| “Could not connect to master server” or “Registration at the master server was not successfull, external connections probably blocked by firewall” | Advertising is on but the server can’t be reached from outside | Open TCP and UDP 42420, or turn advertising off for a private server |
| “Could not register to master server, master server says: …” | The master server refused the registration; its reason follows the colon | Act on that reason. If it reads “port not opened”, the master server couldn’t reach your port: fix the port forward, then restart |
| “Unable to connect to auth server” (on the player’s game) | No internet, or a firewall blocking the game | Allow Vintagestory.exe; as a last resort delete clientsettings.json (resets keybinds and your server list) |
| Auth server offline, or “Failed requesting mp token from auth server” | The login service is down or unreachable | Check status.vintagestory.at and try later |
| “Server overloaded. A tick took 1200ms to complete.” | World generation, too many creatures, or a heavy mod | /debug logticks 100 to log slow ticks, /wgen pregen to generate terrain ahead of time, more RAM or a faster CPU |
| “Host not responding” and lag spikes | Overloaded server, autosave, or players on another continent | Better hardware or a closer location; lower MaxChunkRadius |
| Crashing when joining a server | A stale or mismatched mod on the player’s side | Delete that server’s folder in ModsByServer and rejoin to re-download |
| “Disconnected, modded server with lacking mods on the client side” | The player declined or failed the mod download | Rejoin and accept the download |
| Can’t join after an update | Server and game on different versions | Update the server (or install the matching game version) |
| Server stops on boot: “Failed to read serverconfig.json” | A typo in the JSON, usually a missing comma or quote | Fix the line named in server-main.log |
| Server down after an out-of-memory crash on Linux | Memory map limit | sudo sysctl -w vm.max_map_count=262144 |
“You were disconnected from this server” on its own is generic; the reason usually follows it, or sits in the server log.
Skip the setup: rent a Vintage Story server
Running it yourself means a PC that stays on, two port forwards, a whitelist and a JSON file that stops the server over one missing comma. If you’d rather spend that time playing, Vintage Story server hosting on GameTeam is ready in minutes: you pay per GB of RAM (from $0.49/GB a week, or $1.99/GB billed monthly), slots are unlimited, there’s nothing to forward, and the built-in AI copilot does the fiddly parts. Tell it “whitelist my two friends, turn PvP off and install Carry On” and it runs the commands and edits serverconfig.json; ask “why won’t the server start?” and it reads server-main.log and tells you.
FAQ
How much RAM is needed for a Vintage Story server?
About 1 GB plus 300 MB per player, by the developers’ estimate: 4 GB covers most small groups, and a 16-player server wants around 6 GB. Mods and a widely explored map need more.
Can you self host a Vintage Story server?
Yes. The server comes with the game for free, runs on Windows or Linux, and only needs port 42420 forwarded (TCP and UDP) for friends outside your home. Your only costs are the hardware and keeping it on.
Is there a free Vintage Story server option?
Self-hosting is free, and so is Open to LAN or Open to Internet from a singleplayer world. Joining public community servers is free too. A server that stays online without your PC means paying for hosting.
Can you play Vintage Story with friends without a server?
Yes: open a singleplayer world to LAN or to the internet. The catch is that the world exists only while your game is open, and Open to Internet depends on UPnP working on your router.
How do I set up a dedicated server?
Start VintagestoryServer.exe (or server.sh start on Linux) with its own --dataPath, allow it through the firewall, forward TCP and UDP 42420, then run /whitelist add and /op for yourself in the console. The sections above have every step.
What should I look for in Vintage Story server hosting?
Mod support (the developers’ own hosting doesn’t take third-party mods yet), a location near your players, enough RAM for your player count and mods, direct access to serverconfig.json and the logs, and backups. GameTeam’s copilot adds the option of making changes by just asking.
Do players need a game account to join?
Yes. With VerifyPlayerAuth on (the default), the server checks that every player who joins is logged in with a valid, purchased game account.
