Valheim dedicated server setup guide for 1.0 on Linux and Windows
Tutorials

How to Set Up a Valheim Dedicated Server (1.0): Linux, Windows & Crossplay

The complete 1.0 dedicated server guide for Linux and Windows: SteamCMD install, every launch argument, the crossplay flag console players need, the password rules that silently stop a server, systemd, updates and admin lists.

September 10, 202610 min read
Share

On This Page

Valheim left Early Access on 9 September 2026, and 1.0 changed one thing about dedicated servers that matters more than everything else combined: if you want PlayStation 5, Xbox or Nintendo Switch 2 friends in your world, the server has to be started with the crossplay flag. Everything else — SteamCMD, the launch arguments, the password rules, the port — is the same server people have been running for years, just on a new build. This guide walks through the full setup on Linux, written from running the 1.0 server in production the day it shipped, with the Windows version in its own section further down. The launch arguments, password rules, ports and crossplay flag are identical on both.

What you need before you start

  • A Linux machine (or VPS) with a public IP, 4GB of RAM to spare for the server, and a couple of GB of disk. The 1.0 server files are a little over 2GB installed.
  • No copy of Valheim. The dedicated server is a free, separate Steam app (896660) and installs with an anonymous SteamCMD login.
  • One open UDP port (2456 by default) forwarded to the machine. If you want the server to show in Steam's own server browser you also need the next port up (2457), but crossplay joins and direct IP joins do not need it.

About to spend an evening on this? We do it in 60 seconds.

The same 1.0 dedicated server, already installed: crossplay on, password set, world name and public toggle editable from the panel. From $7.99/mo, online in 60 seconds.

Start a Valheim server

Step 1: install SteamCMD and the server

On Debian or Ubuntu:

sudo dpkg --add-architecture i386 sudo apt update sudo apt install -y steamcmd lib32gcc-s1

Then pull the server into a folder of its own:

mkdir -p ~/valheim && cd ~/valheim steamcmd +force_install_dir ~/valheim +login anonymous +app_update 896660 validate +quit

That downloads valheim_server.x86_64, the linux64/ runtime folder, and Iron Gate's own start_server.sh — which is a good reference but not the script you'll run.

Step 2: write the start script

Create run.sh next to the binary:

#!/bin/bash export templdpath=$LD_LIBRARY_PATH export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH export SteamAppId=892970 ./valheim_server.x86_64 -nographics -batchmode \ -name "Odin's Rest" \ -port 2456 \ -world "Midgard" \ -password "changeme1" \ -public 1 \ -savedir "$HOME/valheim/saves" \ -crossplay export LD_LIBRARY_PATH=$templdpath

Every setting a Valheim server has is a launch argument; there is no config file. The ones that matter:

ArgumentWhat it does
-nameServer name shown in the in-game list and on the join screen
-portUDP port. The game also uses port+1 for Steam queries
-worldWorld name. If the save doesn't exist, the server generates it
-passwordRequired. At least 5 characters, and it must not appear anywhere in the world name — the server refuses to start otherwise
-public 1List the server in the in-game Community tab; 0 for invite-only
-savedirWhere worlds and the admin/permitted/banned lists live. Set it, so you always know where your saves are
-crossplayRegister the server with the crossplay backend so console players can join. Omit it and console players cannot see or join the server at all
-saveintervalSeconds between world saves (default 1800)
-backups, -backupshort, -backuplongThe game's own rolling backups: how many to keep and how often

World rules — difficulty presets, raids, portals, no-map — are launch arguments too; they have their own guide.

Make it executable and run it:

chmod +x run.sh && ./run.sh

Step 3: read the console — the lines that matter

A first boot generates a new world. On a 4GB machine that took us just under 20 seconds from ZNet Start to Loading: Done. The lines to look for, in order:

Valheim version: l-1.0.7 (network version 39)
DungeonDB Start
Load world: Midgard (Midgard)
Game server connected
Opened PlayFab server
Session "Odin's Rest" registered with join code 665832
Session "Odin's Rest" with join code 665832 and IP 203.0.113.10:2456 is active with 0 player(s)

The registered with join code line is the one that tells you crossplay worked. Console players type those six digits from the Join Game screen; PC players can use the code too or connect directly by IP and port. The code changes on every restart — plan for that if you run scheduled restarts.

If the server stops right after the version line with no obvious error, check the password: shorter than five characters, or contained in the world name, are the two silent killers.

Step 4: keep it running

Run it under systemd so it survives reboots and restarts cleanly:

[Unit] Description=Valheim dedicated server After=network-online.target [Service] User=valheim WorkingDirectory=/home/valheim/valheim ExecStart=/home/valheim/valheim/run.sh Restart=on-failure KillSignal=SIGINT TimeoutStopSec=60 [Install] WantedBy=multi-user.target

KillSignal=SIGINT is important: the server saves the world on a clean interrupt. A hard kill skips the save.

Step 5: updates

Iron Gate ships patches after a launch this size. Players update through Steam or their console store automatically; your server does not. Until you re-run the SteamCMD line from Step 1, anyone on the new client gets a version-mismatch error. Script it into your restart:

steamcmd +force_install_dir ~/valheim +login anonymous +app_update 896660 +quit

Console platforms sometimes receive a patch a few hours after Steam. If your group is mixed, hold the server update until everyone has the new version, or the console players are the ones locked out.

Setting up the dedicated server on Windows

The server is the same program on Windows; only the install and the start script differ.

  1. Install it. In the Steam client, open your Library, switch the filter to include Tools, and install Valheim Dedicated Server. It is a free tool. On a machine without the Steam client (or an account that does not own the game), use SteamCMD for Windows instead: steamcmd +force_install_dir C:\valheim +login anonymous +app_update 896660 validate +quit.
  2. Copy the start script. In the install folder, copy start_headless_server.bat to a new name such as start_my_server.bat. Steam overwrites the original on every update, and your settings with it.
  3. Edit your copy. The line that matters takes exactly the arguments from the table above:
valheim_server -nographics -batchmode -name "Odin's Rest" -port 2456 -world "Midgard" -password "changeme1" -public 1 -crossplay
  1. Open the ports. Allow inbound UDP 2456–2457 in Windows Defender Firewall, and forward the same range on your router to the PC's local IP.
  2. Start it, and stop it properly. Double-click your .bat. When you are done, press Ctrl+C in the server window and let it finish — that is what saves the world. Closing the window with the X skips the save.

Without a -savedir argument, a Windows server keeps its worlds in %USERPROFILE%\AppData\LocalLow\IronGate\Valheim\worlds_local\, next to your single-player saves — which is also the quickest way to put an existing world on it.

Check it from outside your network

A server that works from the same house proves very little. Before you tell the group it is up:

  • Have someone outside your network join — by the six-digit code if you started with -crossplay, or by public IP and port.
  • If the code works but IP does not, the port forward or firewall rule is wrong. If neither works, read the console for the registered with join code line; without it the server never finished registering.
  • Ask a console player to try last. If PC friends can join and they cannot, the -crossplay flag is missing or their console's privacy settings block crossplay.

Admins, allowed players and bans

Three text files in your -savedir, one ID per line:

  • adminlist.txt — who can open the F5 console and use admin commands
  • permittedlist.txt — if it has any entries, only listed players can join
  • bannedlist.txt — who cannot join

Read each player's ID from the in-game player list (F2) and add exactly what it shows. 1.0 introduced a new ID format (V_123…); since patch 1.0.12 the lists accept old-style IDs such as Steam_123… again as well, but on the launch build an existing list could stop matching. A Steam ID will never match a PlayStation, Xbox or Switch player — console players have their own. The commands themselves, and why devcommands is refused on a dedicated server, are in Valheim admin commands.

Bringing an existing world

1.0 keeps pre-1.0 worlds, and the Deep North generates in any part of the map nobody has explored. A world that has been played on 1.0 is a folder named after the world; a world last saved before 1.0 is a <World>.db + <World>.fwl pair, which the 1.0 server converts on first load. Copy the folder (or the pair) from the old location into <savedir>/worlds_local/, set -world to the same name, and start. The default locations on a PC are %USERPROFILE%\AppData\LocalLow\IronGate\Valheim\worlds_local\ on Windows and ~/.config/unity3d/IronGate/Valheim/worlds_local/ on Linux and Mac.

Sizing: how much RAM?

A fresh world idles around 1.3GB on the 1.0 server. Memory grows with what your group builds and explores — every placed object and every visited chunk lives in memory — not with player count. 4GB is comfortable for a new world and a small group; hosts recommend 6GB once a full ten-player crew has a sprawling base, and 8GB for very old worlds or anyone experimenting with mods. Detail in how much RAM a Valheim server needs.

Frequently Asked Questions

Do I need to own Valheim to run a dedicated server?

No. The dedicated server is a separate free Steam app (896660) and installs with login anonymous.

Can console players join my Linux or Windows dedicated server?

Yes, as long as it was started with -crossplay. They join with the six-digit code from the console. See how console players join a Valheim server.

Can I run a Valheim dedicated server on Windows?

Yes. Install Valheim Dedicated Server from the Tools section of your Steam library, copy start_headless_server.bat, put your name, world, password and -crossplay on its launch line, and open UDP 2456–2457. The arguments are the same as on Linux.

Why won't my server start?

Nine times out of ten it's the password rule: fewer than 5 characters, or the password appears inside the world name. Fix it and restart.

How many players can join?

Ten. That is Valheim's own limit on every server; a bigger machine doesn't raise it.

Do mods work on the 1.0 server?

There's no Steam Workshop, and Iron Gate has said mods may break at 1.0. Run vanilla first; if you add BepInEx later, back up the world and expect breakage after patches. More in why Valheim mods broke after 1.0.


Or skip the whole evening: Valheim server hosting from Connect deploys the same 1.0 dedicated server in about 60 seconds with crossplay already on, a password already set, and the join code waiting in your panel console.

You've just read the manual. We do it in 60 seconds.

The same 1.0 dedicated server, already installed: crossplay on, password set, world name and public toggle editable from the panel. From $7.99/mo, online in 60 seconds.

Start a Valheim server

Or see plans, specs and regions on Valheim server hosting.

Related Help Articles

Need step-by-step instructions? Check out these guides in our Help Center.