The following requirements are unofficial, but are the general consensus amongst official Helpers in the Valheim Discord. You may still be able to run a dedicated server using less than the listed requirements. This is just a guided starting point. Note that the more players you have, the higher these requirements will need to be to sustain performance.
- 2vCPU or higher
- At least 4 GB RAM
- Windows (the Windows OS uses more resources, so requirements will be higher than Linux)
- 2 GHz Quad Core CPU or higher
- At least 8 GB RAM
Setting up and running the Server
1. Download the Valheim Dedicated Server Tool
- When you purchased Valheim, the "Valheim Dedicated Server" tool was also added to your Steam library. Download and install the "Valheim Dedicated Server" tool
2. Configure the Server
- Go to the "Valheim Dedicated Server" application folder. If you installed it from Steam, you can right-click "Valheim Dedicated Server" in your library and select Manage > Browse Local Files
- Note: The Valheim Dedicated Server Manual PDF file in this folder is also a good resource
- In the folder there is a BAT file named "start_headless_server"
- This file will be overwritten by Steam if it updates, so make a copy of it
- Right-click and edit the copy using Notepad (Alternatively, use Notepad++)
- Change the following values on the last line of this file
- -name “My server”: The name of your server as it appears on the in-game community server browser. Leave this as "My server" or change to something else of your liking
- -world “Dedicated”: The name of the Valheim World you wish to host on the server. This is also the name of the world file located in %UserProfile%\AppData\LocalLow\IronGate\Valheim\worlds. If you already have a world in mind, use its name here
- -port 2456: This is the port that Valheim will connect to the server on. Leave this as its default value unless you know what you're doing
- -password “secret”: The password used to access the Valheim world. Minimum password length is 5 characters
- (Optional) -savedir [PATH]: Overrides the default save path where worlds and permission files (e.g. adminlist.txt) are stored
- Example: -savedir "C:/Games/Valheim"
- Default path for WINDOWS: “../%USERPROFILE%/AppData/LocalLow/ IronGate/Valheim”
- Default path for LINUX: “~/.config/unity3d/IronGate/Valheim”
- (Optional) -public 1: This shows (1) or hides (0) your server from the community server browser. Since 1 is the default, there is no need to include it. In other words, setting -public 1 is functionally meaningless. However, setting -public 0 will hide your server from the server browser and require players to connect to it using the "Join IP" button.
- Save your changes
3. Start the Server
- Double-click the copied start_headless_server file you made in step #2 to run the server
To allow other players to connect to your server from the internet you will need to set up port forwarding. This is usually configured on your router so consult its documentation or read a guide to find the steps on how to do this. There is a website (https://portforward.com) that is a useful resource for this. The port numbers you need to forward are 2456-2457.
Connecting to the Server
- Start Valheim
- Select your character
- From the select world window, select the "Join Game" tab near the top
- Find your server's name in the Community servers list and connect to it, or...
- Select "Join IP"
- Enter the server IP and forwarded port
- If you're playing the game on the same computer you are hosting the server on, use 127.0.0.1:2456
- If you're playing the game and hosting it on two different computers, use the LAN (local) IP of the server computer. This usually starts with 192.168 and can be found in your router's list of connected devices. (Example: 192.168.0.2:2456)
- If you're connecting to someone else's server, you may find their server name in the in-game server browser. Or, the host will need to provide the public IP and forwarded port. The host can discover their public IP by visiting https://whatismyipaddress.com/ and selecting the IPv4 address or by Googling "my ip"
- Select "Connect"
- Enter the server password
Admins, Bans, and Whitelist
Server hosts are able to whitelist, ban, and make an admin of any users with the permittedlist.txt, bannedlist.txt, and adminlist.txt files located in %UserProfile%\AppData\LocalLow\IronGate\Valheim.
Each file uses the steamID64 of a user to accurately identify their Steam account. This number can be found in several ways:
- While in-game on your server, press F2 to bring up a menu that will show you connected players and their steamID64
- Use a 3rd party tool like steamid.io to find a player's steamID64 using their name
- In the server console, you will see clients and "session requests" from players using their steamID64's
Being an admin allows only the use of admin-specific console commands to manage your server (kick, ban, etc). It does not give access to any other commands such as cheats or debugmode. To make yourself an admin on your server, find your steamID64 using one of the above steps and add it to the adminlist.txt.
For example, if your steamID64 is "1234567890123456", the file should look like the following:
// List admin players ID ONE per line 1234567890123456
Currently, the server will create a random seed and give it the name you specify in the -world parameter of the start_headless_server.bat file detailed above, so if you want to host a server with a specific seed:
- Create the seed in singleplayer using a unique world name. For example,
- Name: "Dedicated"
- Seed: "pangea"
- Make sure to start this new world at least once to get the game to create the necessary files
- Change the -world parameter in your copied start_headless_server.bat to your chosen world name (not the seed name). In this example, "Dedicated"
If your server is a different computer, you can find the world files in %UserProfile%\AppData\LocalLow\IronGate\Valheim\worlds. Using the example above, they will be named Dedicated.db and Dedicated.fwl. Simply copy/paste these files to the same directory on your server and update your start_headless_server.bat file's -world parameter to your chosen world name (not the seed name).
Every time the game updates, you will also need to update your dedicated server. If the dedicated server version does not match the game version then players cannot connect. It is sufficient (in recent patches) simply to update the Valheim Dedicated Server tool in Steam - no need to use third party tools.
Backups and Transferring Worlds
[Disclaimer: the information below is from my personal experience with this and self-troubleshooting - I am not a programmer]
(Windows): Your worlds are stored in [Drive Letter]:\%UserProfile%\AppData\LocalLow\IronGate\Valheim\worlds. This folder is used by the dedicated server tool and the Valheim game's own system. You can interchangeably choose to play using the dedicated server or the game hosting. It is not suggested to do this simultaneously with the same world - critical errors may occur.
There are two files which constitute all of the data in your world - they should be copied and backed up as a package:
- [WORLD NAME].db - this contains all of the data in your world which is your "progress" i.e. any player activity which modifies the generated seed - the more exploration or building your do, the larger this file will be.
- [WORLD NAME].fwl - this contains the metadata of your world which are the seed, generator version, world name, and a unique identifier for map progression. This file is needed in order to generate and load a world, and thus missing it will cause the game to create a new one and wipe your data in the .db even if you have progress in that.
The most obvious indication that there is a data mismatch is that your world name will be displayed in the world list with a different seed than you expect. Other notable indication is when your world looks exactly the same as you expect, but missing your buildings and progression, in that case your DB file was transferred incorrectly. In both case, you need to retrieve your files from a backup, and use BINARY transfer if you upload/download it from a remote storage.
There are also files with a further extension of .old - these are automatically created backup files which will be created every 20 minutes of uptime. To restore from an .old file, simply remove the .old extension and it will work.
You can back up your world and progress simply by copying the .db and .fwl files for your world and placing them in a folder. Additionally, to transfer your world and progress to another player (such as your friend who wants to host a dedicated server), simply transfer both the .db and .fwl files. Make sure you either compress them or use BINARY mode for your transfer!
Notes on Steam Cloud Interaction:
Steam Cloud (if enabled) will automatically upload all of the files in the "worlds" folder in AppData to the Steam Cloud when you exit Valheim. You can place a backup subfolder in the worlds folder which will then be backed up using Steam Cloud. You can manually download Steam Cloud files here: https://store.steampowered.com/account/remotestorage
Steam Cloud will also automatically download all files from the "worlds" folder in Steam Cloud to your AppData folder when you open Valheim. I suggest that if you receive a message that there is a file mismatch, DO NOT CLICK ANY BUTTON UNTIL YOU HAVE BACKED UP BOTH SETS OF FILES - THIS CAN LEAD TO YOUR WORLD BECOMING IRRETRIEVABLY BROKEN IF YOU DID NOT BACK UP PROPERLY.