Skip to content
Valheim world disk and Tiwaz rune emblem
Valheim Map Wiki 1.0 Deep North

Valheim 1.0 Dedicated Server Setup Guide

Host a Valheim 1.0 dedicated server: install the server tool (AppID 896660), open UDP 2456-2457, set admin lists, and fix Switch 2 crossplay workaround.

Quick Answer Valheim 1.0 · community reference

Install Valheim's Dedicated Server (AppID 896660), forward UDP 2456-2457, edit start_headless_server.bat or start_server.sh. Access: adminlist.txt, bannedlist.txt, permittedlist.txt (filled = invite-only). Worlds pair WorldName.db with WorldName.fwl. Linux needs libatomic1, libpulse-dev, libpulse0, SteamAppId=892970. Hotfix 1.0.12 accepts Steam_ and V_ IDs.

Self-hosting a Valheim 1.0 dedicated server comes down to a handful of concrete moves: install the free Valheim Dedicated Server tool on Steam (AppID 896660), forward UDP 2456–2457 to the host machine, point a start script at your world name and a password of at least five characters, and back up the matching .db / .fwl world-file pair. This guide walks through each step - plus the 1.0.12 hotfix changes for ban IDs and Switch 2 crossplay - and follows Iron Gate’s official support documentation, the official 1.0 announcement, and the 1.0.12 hotfix notes.

The seven-step flow at a glance:

  1. Install the server tool via SteamCMD (AppID 896660).
  2. Configure the start script with your world name, password, and port (exact file names and parameters are in Step 2 below).
  3. Forward UDP 2456–2457 - or your custom -port and the port immediately above it - if you use the Steam backend.
  4. Manage access through adminlist.txt, bannedlist.txt, and permittedlist.txt next to the world files.
  5. Move or back up a world by copying the matching WorldName.db + WorldName.fwl pair together.
  6. On Linux, install the required runtime libraries and set the SteamAppId environment variable (details in Step 6 below).
  7. Keep the server tool updated so it matches the 1.0 client players launch.

Before You Start: What the Official Docs Say

Iron Gate publishes an official guide to dedicated servers at valheimgame.com/support. Two details from it matter most:

The 1.0 announcement separately confirms the new chunk-based save architecture, which splits world data across chunks to reduce serialized data and make saves more resilient.

ParameterOfficial / Baseline SettingSource & Notes
Steam Dedicated Tool AppID896660Confirmed (Steam Store)
Base Game Client AppID892970Confirmed (Steam Store)
Default Port RangeUDP 2456–2457 (game + Steam query on the next higher port)Confirmed (Official Support Guide)
Crossplay Parameter-crossplay (PlayFab relay)Confirmed (Official Support Guide)
Save Architecture1.0 Chunk-based multi-file saveConfirmed (Official 1.0 Patch Notes)
Memory Baseline8 GB RAM baseline for small groupsAttributed (Community host baseline)

Step 1: Install the Dedicated Server Tool

The dedicated server is a separate free tool on Steam, AppID 896660, under the name Valheim Dedicated Server. On a headless machine the standard method is SteamCMD:

  1. Install SteamCMD on your machine.

  2. Run:

    steamcmd +force_install_dir ./valheim_server +login anonymous +app_update 896660 validate +quit
    
  3. Confirm the install directory contains the server binary and the default startup scripts (start_headless_server.bat on Windows, start_server.sh on Linux).

Official tip: make a copy of the startup script and edit the copy. The original file is reset each time the server updates through Steam, which would wipe your settings.

Step 2: Configure Startup Arguments

Every Valheim server setting is a launch parameter on the start line - there is no server config file. The official command list and corroborating host guides agree on these:

valheim_server.exe -nographics -batchmode -name "MyVikingRealm" -port 2456 -world "Valheim1_0_World" -password "SecretViking99" -public 1 -crossplay -saveinterval 900 -preset normal
ParameterDefaultWhat it does
-name "Name"none (required)Server name shown in the browser.
-port 24562456Game port. The server also uses the next higher port (2457) for Steam queries.
-world "Name"none (required)World to load or create.
-password "Secret"noneJoin password. At least 5 characters, and it must not appear in the server/world name.
-savedir [PATH]game defaultWhere worlds and permission files are read/written.
-public 111 lists the server in the browser; 0 hides it (join by IP/code only).
-logFile [path]console onlyWrites the server log to a file.
-saveinterval 18001800Seconds between autosaves (default 30 min). Lower = less lost on crash, more stutter.
-backups 44How many rolling world backups to keep.
-backupshort 72007200Age of the first automatic backup (2h).
-backuplong 4320043200Spacing of later backups (12h).
-crossplayoffEnables the PlayFab crossplay backend (console join codes, no port forwarding).
-instanceid "text"noneOnly needed when several crossplay servers share one public IP.
-preset [name]normalWorld-modifier preset: Normal, Casual, Easy, Hard, Hardcore, Immersive, Hammer.
-modifier [name] [value]noneFine-tunes one modifier (Combat, DeathPenalty, Resources, Raids, Portals).
-setkey [name]noneToggles a checkbox modifier: nobuildcost, playerevents, passivemobs, nomap.

-nographics -batchmode are headless flags that should stay on for a server. To bake the same difficulty and world rules a single-player world can set (portal item-transfer, raid frequency, resource rates) into your dedicated world at launch, use -preset and -modifier so everyone joins identical rules. Note that the Hammer preset counts as a temporary cheat state in 1.0, so achievements stop unlocking while it is on.

Step 3: Port Forwarding (Steam Backend Only)

If you use the Steam backend, external players need to reach the server:

  1. Log in to your router’s admin panel.
  2. Open the Port Forwarding or Virtual Server section.
  3. Add a rule forwarding the range 2456-2457 as UDP to the host machine’s internal IP. (If you set a custom -port, forward that port and the next higher port.)
  4. If a software firewall is active on the host, allow inbound UDP on that range.

Valheim uses UDP only - there is no TCP listener and no RCON. With the Crossplay backend, the server connects out to a relay instead, so those port rules are not required for console players to join.

Step 4: Server Permission Files (adminlist / bannedlist / permittedlist)

Access control lives in three plain-text files in the default save directory, next to worlds_local:

Each file holds one Platform User ID per line, in the case-sensitive format [Platform]_[UserID] (for example Steam_76561198000000000, or the newer V_123456789 format introduced in 1.0). You can read a player’s ID from the in-game F2 panel or from the server log as they connect. Bans written through the in-game ban command persist in bannedlist.txt automatically.

The in-game admin commands (open the console with F5) are:

These take the player name; the permission files take the Platform User ID. That asymmetry is intentional - names are what you see in the moment, IDs survive a rename. The official guide states the files are read at startup, so stop the server, edit, then restart for changes to apply.

1.0.12 note: the new V_123456789 ID format made older Steam_123456789 entries stop matching. Hotfix 1.0.12 accepts both formats, so existing entries work again.

Step 5: World Files - the .db / .fwl Pair

A Valheim world is two files that must travel together, sharing the same base name:

The seed lives in the .fwl. This has a useful consequence: to put a specific seed on a server without importing an existing world, upload only the .fwl and let the server generate the .db itself. To move an existing world, upload both files together with identical base names, and set the server’s -world to that base name (not the display name inside the .fwl).

Practical rules:

Step 6: Linux Dependencies

On Linux, the dedicated server needs the SteamCMD client libraries plus a few extras the official support guide calls out specifically:

Without these, the server may start but PlayFab registration fails and no crossplay join code is ever printed. Your start script must also export the environment variable SteamAppId=892970 - the game’s app ID, not the server’s 896660. This trips up almost everyone who writes their own script.

The dedicated server has minimum library requirements of GLIBC_2.29 and GLIBCXX_3.4.26. If your distribution is older, one alternative to upgrading is to run via Docker: the server ships with docker_start_server.sh, which builds a container with the correct runtime. Linux runs valheim_server.x86_64; stop it with CTRL+C, never kill -9, because Valheim saves on shutdown and a hard kill discards everything since the last autosave.

Step 7: Keep It Online and Healthy

A dedicated server only needs to keep running:

Hotfix 1.0.12 Notes for Server Admins

The 11 September 2026 hotfix changed two things server owners will notice:

Banlist and whitelist ID formats. Valheim 1.0 introduced a new player ID format (V_123456789), which made older ban and whitelist entries written as Steam_123456789 stop matching. Hotfix 1.0.12 accepts both formats, so existing entries work again and you can keep either style when adding new ones.

Switch 2 crossplay. The hotfix could not be uploaded to Switch 2, so Switch 2 players cannot currently join other platforms’ servers. If you run the Steam dedicated server tool, you can restore Steam-to-Switch 2 crossplay by right-clicking Valheim Dedicated Server in Steam → Properties → Game Versions & Betas → select default_old, then update. The trade-off: you run without the 1.0.10/1.0.12 fixes. There is no workaround for PlayStation 5 or Xbox servers connecting to Switch 2.

Also from 1.0.12: items on armour and item stands no longer lose durability or upgrade level in worlds that have not been loaded since 1.0. If your server’s world has been played on 1.0, advise players not to remove high-level items from stands without a world backup, since a complete fix is still in the works.

Hosting Architecture: Self-Hosted vs. Cloud Dedicated Server Comparison

When establishing a permanent 1.0 Viking realm, server hosts choose between running on personal hardware or leasing an external managed game server. Each route carries practical trade-offs:

DimensionSelf-Hosted (Home Hardware / Homelab)Managed Cloud Game Server
Setup ComplexityHigh (Requires router port forwarding for UDP 2456–2457, firewall rules, and script management)Low (Instant deployment via web control panel)
Uptime & AvailabilityDependent on home electrical grid and local PC remaining powered onHigh datacenter uptime with automated crash recovery
DDoS ProtectionLimited to standard residential ISP protectionsEnterprise-grade carrier DDoS mitigation included
Network & LatencyConstrained by home residential upload bandwidthLow-latency backbone connections
Maintenance & UpdatesManual SteamCMD updates and script adjustments on every patchAutomated background updates with simple mod management
Cost ProfileZero subscription fees; host incurs local electricity and hardware wearPredictable monthly hosting subscription

Sizing and Hardware Recommendations for 1.0

Iron Gate has not published an official hardware tier table because world performance depends heavily on terraforming volume, instance counts, and player density. Based on operational baselines from community server admins:

If you are evaluating a seed before opening a server, see the Seed guide or our Seed Viewer. For the coordinate and teleport commands that help scout a world, see the Console Commands guide.

Frequently Answered Questions

What ports must be forwarded for a Valheim dedicated server?

Iron Gate's official dedicated server guide states that the default port range the server uses is 2456-2457. The server listens on the port you set (default 2456) and on that port plus one (2457) for Steam server queries, so forward both as UDP to the host's internal IP. If you set a custom -port, forward that port and the next higher port. With the Crossplay backend no port forwarding is needed because traffic is relayed.

How does crossplay work on a Valheim dedicated server?

Iron Gate's official server guide describes two backends. With the Steam backend you port-forward the default range. With the Crossplay backend (enabled by -crossplay) the server transmits data through a PlayFab relay and uses a join code, which is how console players connect to a community server without port forwarding.

Where are Valheim 1.0 save files stored?

World files live in the IronGate Valheim save directory: worlds_local on Windows (AppData/LocalLow/IronGate/Valheim) and the equivalent path on Linux (~/.config/unity3d/IronGate/Valheim). Each world is a pair - WorldName.db and WorldName.fwl - kept together. Backup the pair rather than the whole install.

Why do my banlist or whitelist entries stop working after 1.0?

Valheim changed the player ID format for bans and whitelists in 1.0. Hotfix 1.0.12 made the old format work again: entries such as Steam_123456789 are now accepted alongside the new V_123456789 format, so servers no longer need to re-add legacy entries.

Can Switch 2 players join my dedicated server?

Not at the moment. The 1.0.12 hotfix could not be uploaded to Switch 2, so crossplay between Switch 2 and other platforms is temporarily unavailable. Steam servers can restore Steam-to-Switch 2 crossplay by selecting the default_old beta branch on the dedicated server tool, at the cost of missing the 1.0.10/1.0.12 fixes; there is no workaround for PlayStation 5 or Xbox to Switch 2.

What do the adminlist, bannedlist, and permittedlist files do?

They are three plain-text files in the save directory that control server access. adminlist.txt grants admin commands (kick, ban, unban, banned) to the listed players. bannedlist.txt blocks the listed players. permittedlist.txt is an allowlist - but as soon as it contains any entry, everyone NOT on it is refused, so a server with one permitted name becomes invite-only. Each holds one Platform User ID per line, in the case-sensitive [Platform]_[UserID] format.