How to Set Up a Vintage Story Dedicated Server

A Vintage Story dedicated server keeps your world and its seasons going whether or not you are playing. There are three ways to run one: by hand, in Docker, or managed on Flux.

Option 1: by hand on Linux

The server is a free download from Anego Studios, no login needed: vs_server_linux-x64_<version>.tar.gz, about 51 MB, from cdn.vintagestory.at (the release list is at api.vintagestory.at/stable.json). It is a .NET program: version 1.22 needs the .NET 10 runtime.

  1. Install the .NET 10 runtime (Microsoft's packages or its tarball) and check it with dotnet --list-runtimes.
  2. Unpack the server into a folder of its own; keep your data elsewhere (--dataPath), so an update never touches your worlds.
  3. Start it: dotnet VintagestoryServer.dll --dataPath /srv/vs-data. The first start writes serverconfig.json and creates the world.
  4. Stop it and edit serverconfig.json: ServerName, Password, MaxClients, and WhitelistMode (since 1.20 a new server only lets whitelisted players in), or use /serverconfig commands in the console.
  5. Open port 42420 for TCP and UDP in your firewall and forward it on your router. If the server crashes out of memory on Linux, Anego suggests sudo sysctl -w vm.max_map_count=262144.

Option 2: Docker

runonflux/vintagestory-server-flux, our image (source on GitHub, RunOnFlux/vintagestory-server-flux), downloads the version you ask for and writes serverconfig.json from environment variables: VS_NAME, VS_PASSWORD, VS_MAX_CLIENTS, VS_WHITELIST, VS_ADVERTISE, VS_ADMINS, VS_MODS, VS_VERSION, VS_PORT, and the first world's VS_PLAYSTYLE, VS_SEED, VS_WORLD_SIZE and VS_WORLD_NAME.

  • Mount /mnt/vs/data on a volume (worlds, serverconfig.json, players, mods, backups) and /mnt/vs/server on another (the game itself, re-downloadable).
  • It saves on docker stop (under 2 seconds measured), restarts a crashed server in place, follows new releases, and backs the world up every 6 hours with the game's own /genbackup.
  • flux-console and flux-vs inside the container drive the game's console and print the world settings, players, mods and backups as JSON.

Option 3: managed on Flux

Deploy a Vintage Story server on the Flux decentralized cloud, on that same image, with the setup as a form, the port opened and routed for you, DDoS protection included, and a dashboard with every world setting, new worlds, ModDB mods, roles, the whitelist and bans, backups, a live console and a file browser. Plans start at $4.99 a month.

  1. Pick the 8, 16 or 24-player plan.
  2. Choose a region close to your players.
  3. Name the server, set a password, pick the first world's play style (and a seed if you have one) and deploy. It is up in about a minute.
  4. In the game, open Multiplayer, Add Server, and paste the address and port from the dashboard.

Frequently asked questions

Is the Vintage Story server free?

Yes: the server download is free and needs no login. Every player needs their own Vintage Story account to join, and what costs money is the machine that runs it.

Does the Vintage Story server run on Linux?

Yes, natively, on .NET. Version 1.22 needs the .NET 10 runtime.

Why can nobody join my new server?

Since 1.20 a new dedicated server only lets whitelisted players in, and is not listed publicly. Turn the whitelist off (/serverconfig whitelistmode off) or add your players to it. Our image starts with it off unless you ask for it.

Related Vintage Story guides