{"id":3839,"date":"2026-10-27T17:12:45","date_gmt":"2026-10-27T14:12:45","guid":{"rendered":"https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/"},"modified":"2026-10-27T17:12:45","modified_gmt":"2026-10-27T14:12:45","slug":"vintage-story-dedicated-server-guide","status":"publish","type":"post","link":"https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/","title":{"rendered":"Vintage Story Dedicated Server: Setup, Requirements and Ports (1.22 Guide)"},"content":{"rendered":"<p><strong>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.<\/strong> 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 <code>serverconfig.json<\/code>. Below is every setup step for Windows, Linux and Docker, then ports, saves, updates and fixes for the errors people actually hit.<\/p>\n<h2 id=\"dedicated-server-open-to-lan-or-open-to-internet\">Dedicated server, Open to LAN or Open to Internet?<\/h2>\n<p>You can play Vintage Story multiplayer without a dedicated server. Open a singleplayer world, press Escape and click <em>Open to LAN<\/em> for people on your network, or <em>Open to Internet<\/em> 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.<\/p>\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>Open to LAN<\/th>\n<th>Open to Internet<\/th>\n<th>Dedicated server<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Who can join<\/td>\n<td>Same home network only<\/td>\n<td>Anyone with your IP<\/td>\n<td>Anyone you whitelist<\/td>\n<\/tr>\n<tr>\n<td>Host has to stay in the game<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td>Router setup<\/td>\n<td>None<\/td>\n<td>Automatic via UPnP, when it works<\/td>\n<td>Forward port 42420 (TCP + UDP)<\/td>\n<\/tr>\n<tr>\n<td>Reliability<\/td>\n<td>Good<\/td>\n<td>The developers estimate 50\u201360% success; failure shows &#8220;Internet hosting failed&#8221;<\/td>\n<td>Good once the port is open<\/td>\n<\/tr>\n<tr>\n<td>Settings and admin<\/td>\n<td>Your singleplayer settings<\/td>\n<td>Your singleplayer settings<\/td>\n<td>Full <code>serverconfig.json<\/code>, roles, whitelist<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>If Open to Internet fails and you can&#8217;t forward ports, the official self-hosting page suggests a VPN that puts everyone on one virtual LAN. A <strong>Hamachi server<\/strong> setup works that way (the wiki also has a Radmin guide), but every player has to install the same software.<\/p>\n<h2 id=\"vintage-story-server-requirements-how-much-ram\">Vintage Story server requirements: how much RAM?<\/h2>\n<p>The developers&#8217; own estimate for a Vintage Story server is <strong>1 GB of RAM plus about 300 MB per player<\/strong>, 4 CPU threads, and 1 GHz of clock speed plus 150 MHz per player. That puts a small group at 2\u20134 GB and a full 16-player server near 6 GB. Mods and a widely explored map push it higher, so leave headroom.<\/p>\n<table>\n<thead>\n<tr>\n<th>Players online<\/th>\n<th>RAM by the official formula<\/th>\n<th>What to give it<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>4<\/td>\n<td>2.2 GB<\/td>\n<td>4 GB<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>3.4 GB<\/td>\n<td>4 GB<\/td>\n<\/tr>\n<tr>\n<td>16 (the default cap)<\/td>\n<td>5.8 GB<\/td>\n<td>6 GB<\/td>\n<\/tr>\n<tr>\n<td>24<\/td>\n<td>8.2 GB<\/td>\n<td>8 GB or more<\/td>\n<\/tr>\n<tr>\n<td>Any count with a big mod list<\/td>\n<td>Add the mods&#8217; share on top<\/td>\n<td>Watch <code>\/stats<\/code> and add RAM<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<ul>\n<li><strong>OS:<\/strong> Windows or Linux (x64). An ARM64 build exists but is experimental.<\/li>\n<li><strong>Runtime:<\/strong> 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.<\/li>\n<li><strong>Disk:<\/strong> 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 (<code>DieBelowDiskSpaceMb<\/code>) to protect the save.<\/li>\n<li><strong>Network:<\/strong> 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.<\/li>\n<\/ul>\n<p>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? <a href=\"https:\/\/gameteam.io\/vintage-story-server-hosting\">Vintage Story server hosting<\/a> gives you one sized by the GB.<\/p>\n<h2 id=\"vintage-story-server-download-where-the-server-files-are\">Vintage Story server download: where the server files are<\/h2>\n<p>You already have the server if you own the game. The Windows install puts <code>VintagestoryServer.exe<\/code> next to <code>Vintagestory.exe<\/code> in <code>%AppData%\\Vintagestory<\/code>. For a separate machine, log in at account.vintagestory.at, open Downloads and click &#8220;Show all available downloads&#8221;: there is a server-only Linux <code>.tar.gz<\/code> and a server-only Windows <code>.zip<\/code> for every release.<\/p>\n<ul>\n<li>Linux: <code>vs_server_linux-x64_&lt;version&gt;.tar.gz<\/code> (about 51 MB for 1.22.7)<\/li>\n<li>Windows: <code>vs_server_win-x64_&lt;version&gt;.zip<\/code><\/li>\n<\/ul>\n<p>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.<\/p>\n<h2 id=\"how-to-host-a-vintage-story-server-on-windows\">How to host a Vintage Story server on Windows<\/h2>\n<p>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.<\/p>\n<ol>\n<li><strong>Make a data folder<\/strong>, for example <code>C:\\Users\\YourName\\AppData\\Roaming\\VSserverData<\/code>.<\/li>\n<li><strong>Create a shortcut<\/strong> to <code>VintagestoryServer.exe<\/code>, open its Properties, and add <code>--dataPath=\"C:\\Users\\YourName\\AppData\\Roaming\\VSserverData\"<\/code> to the end of the Target field. A <code>.bat<\/code> file with the same line works too.<\/li>\n<li><strong>Allow it through Windows Defender Firewall:<\/strong> Inbound Rules \u2192 New Rule \u2192 Program \u2192 browse to <code>VintagestoryServer.exe<\/code> \u2192 Allow the connection.<\/li>\n<li><strong>Start it from the shortcut.<\/strong> A console window opens and creates <code>serverconfig.json<\/code>, a <code>Mods<\/code> folder and the rest inside your data folder. The server is ready when the console prints <code>Dedicated Server now running on Port 42420 and all ips!<\/code><\/li>\n<li><strong>Whitelist yourself and make yourself admin<\/strong> by typing these in the console:\n<pre><code>\/whitelist add YourName\n\/op YourName<\/code><\/pre>\n<\/li>\n<li><strong>Forward port 42420<\/strong> on your router for friends outside your home (see <a href=\"#port\">the port section<\/a>).<\/li>\n<\/ol>\n<p>If the console closes straight away, another copy of Vintage Story is probably still running. Close it and try again.<\/p>\n<h2 id=\"vintage-story-linux-server-setup\">Vintage Story Linux server setup<\/h2>\n<p>A Vintage Story Linux server runs from the server-only <code>.tar.gz<\/code> with the bundled <code>server.sh<\/code> script, which keeps it running in a <code>screen<\/code> session. You need the .NET 10 runtime for 1.22, plus <code>screen<\/code> and <code>pgrep<\/code> (from the procps package). Never run it as root: give it its own user.<\/p>\n<pre><code># tools the script needs (Debian\/Ubuntu)\nsudo apt update &amp;&amp; sudo apt install procps screen\n\n# a dedicated user\nsudo useradd vintagestory -m\nsudo su -l vintagestory\n\n# download and unpack the server (copy the current link from your account's Downloads page)\nwget https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_linux-x64_1.22.7.tar.gz\nmkdir server &amp;&amp; tar -C server -xzf vs_server_linux-x64_*.tar.gz\nchmod +x server\/server.sh<\/code><\/pre>\n<p>Open <code>server\/server.sh<\/code> and set the three paths at the top. The script ships with <code>DATAPATH='\/var\/vintagestory\/data'<\/code>; keeping data next to the server is simpler:<\/p>\n<pre><code>USERNAME=vintagestory\nVSPATH=\/home\/vintagestory\/server\nDATAPATH=\/home\/vintagestory\/data<\/code><\/pre>\n<p>Open the port in the firewall (pick the line for your system), then start the server and let yourself in:<\/p>\n<pre><code>sudo ufw allow 42420\/tcp\nsudo ufw allow 42420\/udp\n# or: sudo firewall-cmd --permanent --zone=public --add-port=42420\/tcp (and \/udp), then --reload\n\nserver\/server.sh start\nserver\/server.sh command \"\/whitelist add YourName\"\nserver\/server.sh command \"\/op YourName\"<\/code><\/pre>\n<p>Other script commands: <code>stop<\/code>, <code>restart<\/code>, <code>status<\/code> and <code>command \"\u2026\"<\/code>. To reach the live server console, run <code>screen -r vintagestory_server<\/code> as the server user and press Ctrl+A, then D, to leave it running. If you plan to use mods, check that <code>ModPaths<\/code> in <code>data\/serverconfig.json<\/code> lists your data folder&#8217;s <code>Mods<\/code> directory, and keep the first <code>\"Mods\"<\/code> entry, which loads the base game.<\/p>\n<p>Prefer systemd? The official wiki&#8217;s unit file runs <code>dotnet VintagestoryServer.dll --dataPath \/srv\/gameserver\/data\/vs<\/code> as a non-root user with <code>Restart=always<\/code>, and a cron line such as <code>30 4 * * * systemctl restart vintagestoryserver.service<\/code> gives you a nightly restart.<\/p>\n<p><strong>Crashes &#8220;out of memory&#8221; on Linux with RAM to spare?<\/strong> The developers&#8217; fix is <code>sudo sysctl -w vm.max_map_count=262144<\/code>.<\/p>\n<h3 id=\"vintage-story-server-in-docker\">Vintage Story server in Docker<\/h3>\n<p>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&#8217;s .NET version matches the game version (.NET 10 for 1.22).<\/p>\n<h3 id=\"arm64-raspberry-pi-and-similar\">ARM64 (Raspberry Pi and similar)<\/h3>\n<p>An experimental ARM64 server is published on the developers&#8217; <a href=\"https:\/\/github.com\/anegostudios\/VintagestoryServerArm64\">GitHub<\/a> with an install script. The catch: code mods that use Harmony patching don&#8217;t work on it, so it suits vanilla or light mod lists.<\/p>\n<h2 id=\"port\"><span id=\"vintage-story-server-port-42420-tcp-and-udp\">Vintage Story server port: 42420, TCP and UDP<\/span><\/h2>\n<p>The Vintage Story server port is <strong>42420<\/strong>. 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 &#8220;TCP\/UDP&#8221; rule is unlikely to work, although logically it should. Players outside your home then join with your public IP.<\/p>\n<table>\n<thead>\n<tr>\n<th>Port<\/th>\n<th>Protocol<\/th>\n<th>What it&#8217;s for<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>42420<\/td>\n<td>TCP<\/td>\n<td>Game connection (default)<\/td>\n<\/tr>\n<tr>\n<td>42420<\/td>\n<td>UDP<\/td>\n<td>Game traffic, required since 1.20<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<ul>\n<li><strong>Let the server try UPnP:<\/strong> type <code>\/serverconfig upnp 1<\/code> in the console and it attempts the port forward itself. The developers put the odds at about 50%.<\/li>\n<li><strong>Use a different port:<\/strong> change <code>\"Port\": 42420<\/code> in <code>serverconfig.json<\/code>, forward that one instead, and tell players to add it to the address (<code>203.0.113.25:42421<\/code>).<\/li>\n<li><strong>Hide the port behind a domain:<\/strong> an SRV record such as <code>_vintagestory._tcp.play.example.com. IN SRV 10 10 42421 server.example.com.<\/code> lets players type <code>play.example.com<\/code> with no port.<\/li>\n<li><strong>Your public IP changes:<\/strong> unless you pay your ISP for a static IP, it will change now and then. If everyone suddenly can&#8217;t connect, check it again.<\/li>\n<\/ul>\n<h2 id=\"whitelist-password-and-admin-rights\">Whitelist, password and admin rights<\/h2>\n<p>Since 1.20, a Vintage Story dedicated server is private out of the box: whitelisting is on and the server doesn&#8217;t advertise itself in the public list. Nobody gets in, you included, until they&#8217;re whitelisted. Add players with <code>\/whitelist add Name<\/code> or <code>\/player Name whitelist on<\/code>; no restart needed. Then decide whether you also want a password.<\/p>\n<ul>\n<li><strong>Password:<\/strong> <code>\/serverconfig password yourword<\/code> (no spaces), or set <code>\"Password\"<\/code> in <code>serverconfig.json<\/code>. <code>\/serverconfig nopassword<\/code> removes it.<\/li>\n<li><strong>Turn the whitelist off<\/strong> (anyone with the address can join): <code>\/serverconfig whitelistmode off<\/code>, or <code>\"WhitelistMode\": 1<\/code> in the file. The wiki calls the whitelist &#8220;significantly more secure&#8221; than a password.<\/li>\n<li><strong>Admin:<\/strong> <code>\/op Name<\/code> in the console. No console access? Set <code>\"StartupCommands\": \"\/op Name\"<\/code> in <code>serverconfig.json<\/code> and restart.<\/li>\n<li><strong>Visitors only:<\/strong> set <code>\"DefaultRoleCode\": \"suvisitor\"<\/code> so newcomers can look and chat but not build until you promote them.<\/li>\n<\/ul>\n<p>Every other option, from PvP to view distance, is in <a href=\"https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/\">Vintage Story server settings explained<\/a>, and the full admin list is in <a href=\"https:\/\/gameteam.io\/blog\/vintage-story-server-commands\/\">Vintage Story server commands<\/a>.<\/p>\n<h2 id=\"how-to-join-a-vintage-story-server\">How to join a Vintage Story server<\/h2>\n<p>To join, open <em>Multiplayer<\/em> from the main menu, click <em>Add New Server<\/em>, type any name, put the address in <em>Host \/ IP Address<\/em> 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&#8217;s local IP; everyone else uses your public IP.<\/p>\n<ol>\n<li>Address: just the IP when the server uses port 42420; add <code>:port<\/code> for anything else.<\/li>\n<li>Not whitelisted yet? Connecting fails until the host adds you.<\/li>\n<li>On a modded server the game offers to download the server&#8217;s mod list. Accept, and it stores those mods in a per-server folder under <code>VintagestoryData\\ModsByServer<\/code>, separate from your own.<\/li>\n<\/ol>\n<h2 id=\"public-servers-official-servers-and-listing-your-own\">Public servers, official servers and listing your own<\/h2>\n<p>Vintage Story has a public server list. Click <em>Browse public servers<\/em> 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.<\/p>\n<ul>\n<li><strong>List your server:<\/strong> <code>\/serverconfig advertise on<\/code> (or <code>\"AdvertiseServer\": true<\/code>), with a <code>ServerName<\/code> of 4\u201380 characters. The port has to be reachable from outside, because the server registers with the master server, which checks it. Success prints &#8220;Registration at the master server successfull and external connections are working!&#8221;<\/li>\n<li><strong>The official public server (TOPS):<\/strong> 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.<\/li>\n<li><strong>The developers&#8217; own hosting:<\/strong> 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&#8217;t support third-party mods or uploading a world yet, which is why the wiki keeps a list of third-party hosts.<\/li>\n<\/ul>\n<h2 id=\"saves-backups-and-resetting-the-server\">Saves, backups and resetting the server<\/h2>\n<p>A Vintage Story server keeps its world in one SQLite file, <code>Saves\/default.vcdbs<\/code> in the data folder, and autosaves it every 300 seconds. <code>\/autosavenow<\/code> saves on demand, and <code>\/genbackup<\/code> copies the world into the <code>Backups<\/code> folder without pausing the server. To restore, stop the server and copy a backup into <code>Saves<\/code>.<\/p>\n<ul>\n<li><strong>Vintage Story server save location:<\/strong> <code>&lt;data folder&gt;\/Saves\/<\/code>. Player roles, bans and the whitelist live in <code>Playerdata\/<\/code>, logs in <code>Logs\/<\/code>.<\/li>\n<li><strong>Bring a singleplayer world:<\/strong> with the server stopped, copy its <code>.vcdbs<\/code> into <code>Saves<\/code> and either rename it <code>default.vcdbs<\/code> or point <code>\"SaveFileLocation\"<\/code> at it. Creating the world in singleplayer first is the easiest way to get custom world-generation settings.<\/li>\n<li><strong>How to reset a Vintage Story server:<\/strong> stop it, move <code>default.vcdbs<\/code> somewhere safe, adjust the <code>WorldConfig<\/code> block if you want different rules, and start it. The server creates a fresh world when the save file doesn&#8217;t exist.<\/li>\n<li><strong>Pause the server when it&#8217;s empty:<\/strong> it already does. With <code>PassTimeWhenEmpty<\/code> off (the default) the calendar stops when the last player leaves, so the seasons wait for you.<\/li>\n<\/ul>\n<h2 id=\"how-to-update-a-vintage-story-server\">How to update a Vintage Story server<\/h2>\n<p>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.<\/p>\n<ol>\n<li>Back up the whole data folder (or at least <code>Saves<\/code> and <code>serverconfig.json<\/code>).<\/li>\n<li>Stop the server.<\/li>\n<li><strong>Windows:<\/strong> install the new game version (the server exe updates with it), or unpack the new server <code>.zip<\/code> over a clean folder.<br \/>\n      <strong>Linux:<\/strong> <code>server.sh update<\/code> only prints the steps, because auto-update is disabled as unreliable. Copy <code>server.sh<\/code> aside, delete the old install files (not your data folder), download and extract the new <code>.tar.gz<\/code>, put <code>server.sh<\/code> back and start.<\/li>\n<li>Update your mods to releases for the new version at the same time.<\/li>\n<\/ol>\n<p>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.<\/p>\n<h2 id=\"vintage-story-server-modding\">Vintage Story server modding<\/h2>\n<p>Server mods come from the official ModDB. Drop the mod&#8217;s <code>.zip<\/code> into the data folder&#8217;s <code>Mods<\/code> folder (don&#8217;t unzip it) or run <code>\/moddb install modid<\/code>, 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 <a href=\"https:\/\/gameteam.io\/blog\/vintage-story-server-mods\/\">how to add mods to a Vintage Story server<\/a>.<\/p>\n<h2 id=\"common-vintage-story-server-problems-and-fixes\">Common Vintage Story server problems and fixes<\/h2>\n<p>Most Vintage Story server problems are one of three things: the port isn&#8217;t reachable (unable to connect), the whitelist or version doesn&#8217;t match (rejected on join), or the server is overloaded (lag and &#8220;host not responding&#8221;). The exact message tells you which. Server-side messages are in <code>Logs\/server-main.log<\/code>; the table maps each one to its fix.<\/p>\n<table>\n<thead>\n<tr>\n<th>Message or symptom<\/th>\n<th>Most likely cause<\/th>\n<th>Fix<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Unable to connect to server: &#8220;connected host has failed to respond&#8221;<\/td>\n<td>Port forward missing or wrong<\/td>\n<td>Separate TCP and UDP rules for 42420; recheck your public IP<\/td>\n<\/tr>\n<tr>\n<td>Can&#8217;t connect: &#8220;host has actively refused&#8221;<\/td>\n<td>Firewall on the server PC<\/td>\n<td>Allow <code>VintagestoryServer.exe<\/code> (or the port) through it<\/td>\n<\/tr>\n<tr>\n<td>&#8220;The server closed down the socket without response. The server may be password protected or whitelisted&#8221;<\/td>\n<td>Not whitelisted, or wrong password<\/td>\n<td><code>\/whitelist add Name<\/code>; re-enter the password<\/td>\n<\/tr>\n<tr>\n<td>&#8220;This server only allows whitelisted players to join. You are not on the whitelist.&#8221;<\/td>\n<td>Whitelist is on (the 1.20+ default)<\/td>\n<td>Whitelist the player<\/td>\n<\/tr>\n<tr>\n<td>&#8220;Could not connect to master server&#8221; or &#8220;Registration at the master server was not successfull, external connections probably blocked by firewall&#8221;<\/td>\n<td>Advertising is on but the server can&#8217;t be reached from outside<\/td>\n<td>Open TCP and UDP 42420, or turn advertising off for a private server<\/td>\n<\/tr>\n<tr>\n<td>&#8220;Could not register to master server, master server says: \u2026&#8221;<\/td>\n<td>The master server refused the registration; its reason follows the colon<\/td>\n<td>Act on that reason. If it reads &#8220;port not opened&#8221;, the master server couldn&#8217;t reach your port: fix the port forward, then restart<\/td>\n<\/tr>\n<tr>\n<td>&#8220;Unable to connect to auth server&#8221; (on the player&#8217;s game)<\/td>\n<td>No internet, or a firewall blocking the game<\/td>\n<td>Allow <code>Vintagestory.exe<\/code>; as a last resort delete <code>clientsettings.json<\/code> (resets keybinds and your server list)<\/td>\n<\/tr>\n<tr>\n<td>Auth server offline, or &#8220;Failed requesting mp token from auth server&#8221;<\/td>\n<td>The login service is down or unreachable<\/td>\n<td>Check status.vintagestory.at and try later<\/td>\n<\/tr>\n<tr>\n<td>&#8220;Server overloaded. A tick took 1200ms to complete.&#8221;<\/td>\n<td>World generation, too many creatures, or a heavy mod<\/td>\n<td><code>\/debug logticks 100<\/code> to log slow ticks, <code>\/wgen pregen<\/code> to generate terrain ahead of time, more RAM or a faster CPU<\/td>\n<\/tr>\n<tr>\n<td>&#8220;Host not responding&#8221; and lag spikes<\/td>\n<td>Overloaded server, autosave, or players on another continent<\/td>\n<td>Better hardware or a closer location; lower <code>MaxChunkRadius<\/code><\/td>\n<\/tr>\n<tr>\n<td>Crashing when joining a server<\/td>\n<td>A stale or mismatched mod on the player&#8217;s side<\/td>\n<td>Delete that server&#8217;s folder in <code>ModsByServer<\/code> and rejoin to re-download<\/td>\n<\/tr>\n<tr>\n<td>&#8220;Disconnected, modded server with lacking mods on the client side&#8221;<\/td>\n<td>The player declined or failed the mod download<\/td>\n<td>Rejoin and accept the download<\/td>\n<\/tr>\n<tr>\n<td>Can&#8217;t join after an update<\/td>\n<td>Server and game on different versions<\/td>\n<td>Update the server (or install the matching game version)<\/td>\n<\/tr>\n<tr>\n<td>Server stops on boot: &#8220;Failed to read serverconfig.json&#8221;<\/td>\n<td>A typo in the JSON, usually a missing comma or quote<\/td>\n<td>Fix the line named in <code>server-main.log<\/code><\/td>\n<\/tr>\n<tr>\n<td>Server down after an out-of-memory crash on Linux<\/td>\n<td>Memory map limit<\/td>\n<td><code>sudo sysctl -w vm.max_map_count=262144<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#8220;You were disconnected from this server&#8221; on its own is generic; the reason usually follows it, or sits in the server log.<\/p>\n<h2 id=\"skip-the-setup-rent-a-vintage-story-server\">Skip the setup: rent a Vintage Story server<\/h2>\n<p>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&#8217;d rather spend that time playing, <a href=\"https:\/\/gameteam.io\/vintage-story-server-hosting\">Vintage Story server hosting<\/a> 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&#8217;s nothing to forward, and the built-in AI copilot does the fiddly parts. Tell it &#8220;whitelist my two friends, turn PvP off and install Carry On&#8221; and it runs the commands and edits <code>serverconfig.json<\/code>; ask &#8220;why won&#8217;t the server start?&#8221; and it reads <code>server-main.log<\/code> and tells you.<\/p>\n<h2 id=\"faq\">FAQ<\/h2>\n<h3 id=\"how-much-ram-is-needed-for-a-vintage-story-server\">How much RAM is needed for a Vintage Story server?<\/h3>\n<p>About 1 GB plus 300 MB per player, by the developers&#8217; estimate: 4 GB covers most small groups, and a 16-player server wants around 6 GB. Mods and a widely explored map need more.<\/p>\n<h3 id=\"can-you-self-host-a-vintage-story-server\">Can you self host a Vintage Story server?<\/h3>\n<p>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.<\/p>\n<h3 id=\"is-there-a-free-vintage-story-server-option\">Is there a free Vintage Story server option?<\/h3>\n<p>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.<\/p>\n<h3 id=\"can-you-play-vintage-story-with-friends-without-a-server\">Can you play Vintage Story with friends without a server?<\/h3>\n<p>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.<\/p>\n<h3 id=\"how-do-i-set-up-a-dedicated-server\">How do I set up a dedicated server?<\/h3>\n<p>Start <code>VintagestoryServer.exe<\/code> (or <code>server.sh start<\/code> on Linux) with its own <code>--dataPath<\/code>, allow it through the firewall, forward TCP and UDP 42420, then run <code>\/whitelist add<\/code> and <code>\/op<\/code> for yourself in the console. The sections above have every step.<\/p>\n<h3 id=\"what-should-i-look-for-in-vintage-story-server-hosting\">What should I look for in Vintage Story server hosting?<\/h3>\n<p>Mod support (the developers&#8217; own hosting doesn&#8217;t take third-party mods yet), a location near your players, enough RAM for your player count and mods, direct access to <code>serverconfig.json<\/code> and the logs, and backups. GameTeam&#8217;s copilot adds the option of making changes by just asking.<\/p>\n<h3 id=\"do-players-need-a-game-account-to-join\">Do players need a game account to join?<\/h3>\n<p>Yes. With <code>VerifyPlayerAuth<\/code> on (the default), the server checks that every player who joins is logged in with a valid, purchased game account.<\/p>\n","protected":false},"excerpt":{"rendered":"A Vintage Story dedicated server is the VintagestoryServer program that comes with every copy of the game, running&hellip;\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[185],"tags":[],"class_list":["post-3839","post","type-post","status-publish","format-standard","category-vintage-story-tutorials","vision-entry","vision-video-wrap"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Vintage Story Dedicated Server: Setup, Requirements and Ports (1.22 Guide) - GameTeam - Blog<\/title>\n<meta name=\"description\" content=\"Set up a Vintage Story dedicated server on Windows or Linux: RAM per player, the 1.22 download, port 42420 TCP and UDP, whitelist, updates and fixes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vintage Story Dedicated Server: Setup, Requirements and Ports (1.22 Guide) - GameTeam - Blog\" \/>\n<meta property=\"og:description\" content=\"Set up a Vintage Story dedicated server on Windows or Linux: RAM per player, the 1.22 download, port 42420 TCP and UDP, whitelist, updates and fixes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"GameTeam - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-27T14:12:45+00:00\" \/>\n<meta name=\"author\" content=\"gameteam\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"gameteam\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-dedicated-server-guide\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-dedicated-server-guide\\\/\"},\"author\":{\"name\":\"gameteam\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#\\\/schema\\\/person\\\/0cc694e709c1805f635ede3a5e1dbf83\"},\"headline\":\"Vintage Story Dedicated Server: Setup, Requirements and Ports (1.22 Guide)\",\"datePublished\":\"2026-10-27T14:12:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-dedicated-server-guide\\\/\"},\"wordCount\":3004,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#organization\"},\"articleSection\":[\"Vintage Story Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-dedicated-server-guide\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-dedicated-server-guide\\\/\",\"url\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-dedicated-server-guide\\\/\",\"name\":\"Vintage Story Dedicated Server: Setup, Requirements and Ports (1.22 Guide) - GameTeam - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#website\"},\"datePublished\":\"2026-10-27T14:12:45+00:00\",\"description\":\"Set up a Vintage Story dedicated server on Windows or Linux: RAM per player, the 1.22 download, port 42420 TCP and UDP, whitelist, updates and fixes.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-dedicated-server-guide\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-dedicated-server-guide\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-dedicated-server-guide\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Minecraft Tutorials\",\"item\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/category\\\/minecraft-tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Vintage Story Dedicated Server: Setup, Requirements and Ports (1.22 Guide)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/\",\"name\":\"GameTeam - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#organization\",\"name\":\"GameTeam - Blog\",\"url\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/gameteam.io\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/image_2023-11-04_031100865.png?fit=837%2C167&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/gameteam.io\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/image_2023-11-04_031100865.png?fit=837%2C167&ssl=1\",\"width\":837,\"height\":167,\"caption\":\"GameTeam - Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#\\\/schema\\\/person\\\/0cc694e709c1805f635ede3a5e1dbf83\",\"name\":\"gameteam\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/image_2023-11-17_210836342-96x96.png\",\"url\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/image_2023-11-17_210836342-96x96.png\",\"contentUrl\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/image_2023-11-17_210836342-96x96.png\",\"caption\":\"gameteam\"},\"sameAs\":[\"https:\\\/\\\/gameteam.io\\\/blog\"],\"url\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/author\\\/gameteam\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Vintage Story Dedicated Server: Setup, Requirements and Ports (1.22 Guide) - GameTeam - Blog","description":"Set up a Vintage Story dedicated server on Windows or Linux: RAM per player, the 1.22 download, port 42420 TCP and UDP, whitelist, updates and fixes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/","og_locale":"en_US","og_type":"article","og_title":"Vintage Story Dedicated Server: Setup, Requirements and Ports (1.22 Guide) - GameTeam - Blog","og_description":"Set up a Vintage Story dedicated server on Windows or Linux: RAM per player, the 1.22 download, port 42420 TCP and UDP, whitelist, updates and fixes.","og_url":"https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/","og_site_name":"GameTeam - Blog","article_published_time":"2026-10-27T14:12:45+00:00","author":"gameteam","twitter_card":"summary_large_image","twitter_misc":{"Written by":"gameteam","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/#article","isPartOf":{"@id":"https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/"},"author":{"name":"gameteam","@id":"https:\/\/gameteam.io\/blog\/#\/schema\/person\/0cc694e709c1805f635ede3a5e1dbf83"},"headline":"Vintage Story Dedicated Server: Setup, Requirements and Ports (1.22 Guide)","datePublished":"2026-10-27T14:12:45+00:00","mainEntityOfPage":{"@id":"https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/"},"wordCount":3004,"commentCount":0,"publisher":{"@id":"https:\/\/gameteam.io\/blog\/#organization"},"articleSection":["Vintage Story Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/","url":"https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/","name":"Vintage Story Dedicated Server: Setup, Requirements and Ports (1.22 Guide) - GameTeam - Blog","isPartOf":{"@id":"https:\/\/gameteam.io\/blog\/#website"},"datePublished":"2026-10-27T14:12:45+00:00","description":"Set up a Vintage Story dedicated server on Windows or Linux: RAM per player, the 1.22 download, port 42420 TCP and UDP, whitelist, updates and fixes.","breadcrumb":{"@id":"https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gameteam.io\/blog\/"},{"@type":"ListItem","position":2,"name":"Minecraft Tutorials","item":"https:\/\/gameteam.io\/blog\/category\/minecraft-tutorials\/"},{"@type":"ListItem","position":3,"name":"Vintage Story Dedicated Server: Setup, Requirements and Ports (1.22 Guide)"}]},{"@type":"WebSite","@id":"https:\/\/gameteam.io\/blog\/#website","url":"https:\/\/gameteam.io\/blog\/","name":"GameTeam - Blog","description":"","publisher":{"@id":"https:\/\/gameteam.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gameteam.io\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/gameteam.io\/blog\/#organization","name":"GameTeam - Blog","url":"https:\/\/gameteam.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gameteam.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/gameteam.io\/blog\/wp-content\/uploads\/2023\/11\/image_2023-11-04_031100865.png?fit=837%2C167&ssl=1","contentUrl":"https:\/\/i0.wp.com\/gameteam.io\/blog\/wp-content\/uploads\/2023\/11\/image_2023-11-04_031100865.png?fit=837%2C167&ssl=1","width":837,"height":167,"caption":"GameTeam - Blog"},"image":{"@id":"https:\/\/gameteam.io\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/gameteam.io\/blog\/#\/schema\/person\/0cc694e709c1805f635ede3a5e1dbf83","name":"gameteam","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gameteam.io\/blog\/wp-content\/uploads\/2023\/11\/image_2023-11-17_210836342-96x96.png","url":"https:\/\/gameteam.io\/blog\/wp-content\/uploads\/2023\/11\/image_2023-11-17_210836342-96x96.png","contentUrl":"https:\/\/gameteam.io\/blog\/wp-content\/uploads\/2023\/11\/image_2023-11-17_210836342-96x96.png","caption":"gameteam"},"sameAs":["https:\/\/gameteam.io\/blog"],"url":"https:\/\/gameteam.io\/blog\/author\/gameteam\/"}]}},"_links":{"self":[{"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/posts\/3839","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/comments?post=3839"}],"version-history":[{"count":0,"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/posts\/3839\/revisions"}],"wp:attachment":[{"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/media?parent=3839"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/categories?post=3839"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/tags?post=3839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}