Server Configuration Guide
Valheim offers server settings for passwords, public visibility, crossplay, world names, seeds, and world modifiers. This guide explains the common launch arguments and how to configure them through the Supercraft panel or directly in the dedicated-server command.
Patch day note: Valheim 1.0 and the Deep North arrived on September 9, 2026, and patches have kept coming (1.0.17 on 6 October). Before any update, verify your backup, branch, crossplay flag, world name, and mod profile. Use the server-admin launch checklist for the complete update sequence.
Hosting for PS5 players too? See our Valheim PS5 crossplay setup guide for the extra steps needed to accept console clients alongside PC.
Looking for managed Valheim server hosting? Supercraft runs Valheim dedicated servers with daily backups, instant setup, and 4 region options.
Configuration Overview
Valheim uses Command-line arguments for server configuration. Settings can be adjusted through the Supercraft configuration panel or by editing files directly.
Basic Server Settings
Valheim has no settings file. Every server option is a launch argument on the
valheim_server line in start_server.sh, and the
authoritative list is Iron Gate's Dedicated Server Manual, which ships inside
the server package. The table below is read from that manual and from the
server assembly itself: sixteen arguments the manual documents, with their
defaults where the manual states one, plus six more the binary parses that the
manual does not mention.
| Argument | Default | Example | What it does |
|---|---|---|---|
-name | none | My server | Enter the name of your server that will be visible in the Server list. |
-port | 2456 | 2456 | Choose the Port which you want the server to communicate with. Please note that this has to correspond with the Port Forwarding settings on your Router. Valheim uses the specified Port AND specified Port+1. Default Ports are 2456-2457. If you’re using the Crossplay backend (enabled using the “-crossplay” argument), you do not need to do Port Forwarding on your Router. The Port number is still used to distinguish between multiple servers on the same public IP address. |
-world | none | Dedicated | A World with the name entered will be created. You may also choose an already existing World by entering its name. |
-password | none | Secret | Set the password. |
-savedir | none | [PATH] | Overrides the default save path where Worlds and permission-files are stored. Default path WINDOWS: “../%USERPROFILE%/AppData/LocalLow/ IronGate/Valheim” LINUX: “ ~/.config/unity3d/IronGate/Valheim ” |
-public | 1 | 1 | Set the visibility of your server. 1 is default and will make the server visible in the browser. Set it to 0 to make the server invisible and only joinable via the ‘Join IP’-button. Setting public to 0 is a good option if you wish to run a local LAN server, where players can join via the local IP of the server. |
-logfile | none | d:\log.txt | Sets the location to save the log file. |
-saveinterval | 1800 | 1800 | Change how often the world will save in seconds. Default is 30 minutes (1800 seconds). |
-backups | 4 | 4 | Sets how many automatic backups will be kept. The first is the ‘short’ backup length, and the rest are the ‘long’ backup length. By default that means one backup that is 2 hours old, and 3 backups that are 12 hours apart. |
-backupshort | 7200 | 7200 | Sets the interval between the first automatic backups. Default is 2 hours (7200 seconds). |
-backuplong | 43200 | 43200 | Sets the interval between the subsequent automatic backups. Default is 12 hours (43200 seconds). |
-crossplay | none | Runs the Server on the Crossplay backend (PlayFab), which lets users from any platform join. If you do not include this argument, the Steam backend is used, which means only Steam users can see and join the Server. | |
-instanceid | none | 1 | If you’re hosting multiple servers with the same port from the same MAC address, write something unique here for each server to ensure that they get unique PlayFab IDs. |
-preset | none | hard | Sets world modifier preset. Setting a preset will overwrite any other previous modifiers. Valid values are: Normal, Casual, Easy, Hard, Hardcore, Immersive, Hammer. |
-modifier | none | raids none | Sets chosen world modifier with value. If combined with a preset should be set after. Valid modifiers and values are: Combat : veryeasy, easy, hard, veryhard DeathPenalty : casual, veryeasy, easy, hard, hardcore Resources : muchless, less, more, muchmore, most Raids : none, muchless, less, more, muchmore Portals : casual, hard, veryhard |
-setkey | none | nomap | Sets a world modifier checkbox key. Valid values are: nobuildcost, playerevents, passivemobs, nomap |
-console | none | A game client option the shared start-up code also reads; it has no use on a dedicated server. | |
-demomode | none | A game client option the shared start-up code also reads; it has no use on a dedicated server. | |
-joincode | none | A game client option (join a crossplay server by code at start); no use on a dedicated server. | |
-joinserverwithcharacter | none | A game client option (join a server with a given character at start); no use on a dedicated server. | |
-resetmodifiers | none | Clears the world's modifier keys first, so the -preset, -modifier and -setkey options that follow start from a clean slate. The way to remove a key the world has kept. | |
-simulationdistance | none | 0 to 6. Caps the Draw distance of every player on the server, so it limits how many zones each player keeps running. Without it the server uses 2, the distance the game always had. |
Two things the table makes visible. Only six arguments have a documented
default, and they are the ones people misquote: the port is 2456
and the server also uses port plus one, so 2456 to
2457; the world saves every 1800 seconds; and backups
run four deep, the first 7200 seconds after a save and the rest
43200 seconds apart. The other thing is the six arguments at the
bottom. They are in the server's own parser and in no vendor documentation,
which is why guides never mention -simulationdistance or
-resetmodifiers: nothing told them to.
World Settings
| Setting | Type | Default | Description |
|---|---|---|---|
mapName |
String | The game's own world list allows 20 characters | -worldWorld name: creates it, or loads it if it already exists. |
worldseed |
not an argument | set at world creation | There is no -worldseed. It is in neither the manual's sixteen arguments nor the twenty-two the server assembly parses; the seed belongs to the world file and is fixed when the world is first generated. To run a specific seed, create the world with it and point -world at the name. |
preset |
Select | See presets below | -presetOne of normal, casual, easy, hard, hardcore, immersive, hammer. |
World Modifiers
Each modifier category accepts its own set of values, and the sets are not
interchangeable: casual is valid for death penalty and portals
and rejected for combat. These are the manual's own lists:
| Category | Accepted values | Argument |
|---|---|---|
| Combat | veryeasy, easy, hard, veryhard | -modifier combat <value> |
| DeathPenalty | casual, veryeasy, easy, hard, hardcore | -modifier deathpenalty <value> |
| Portals | casual, hard, veryhard | -modifier portals <value> |
| Raids | none, muchless, less, more, muchmore | -modifier raids <value> |
| Resources | muchless, less, more, muchmore, most | -modifier resources <value> |
A -preset (normal, casual, easy, hard, hardcore, immersive or
hammer) sets all five at once, and any -modifier given after it
overrides that one category. Given before the preset, the modifier is
overwritten. Always use the value names: a number is read as the option's position in the
game's list, so -modifier resources 2 sets Less (0.75x), not double.
World Keys/Flags
-setkey switches on one world modifier key per use. The manual
lists four checkbox keys, and they are the four most people want:
| Argument | Effect |
|---|---|
-setkey nobuildcost | Building costs no resources. |
-setkey playerevents | Enable player-triggered events. |
-setkey passivemobs | Creatures do not attack unprovoked. |
-setkey nomap | Disable the map and minimap. |
That list is the manual's, and the manual is not exhaustive. The value
-setkey takes is a member of the game's GlobalKeys
enum, which we read out of the server assembly's own metadata: it has 54
members, and NoPortals is one of them, which is why
-setkey noportals works even though no Iron Gate document lists
it. The key is matched without regard to case.
Know which keys flag the world. The World Modifiers menu itself only ever writes
nomap, noportals, nobossportals, nobuildcost,
passivemobs, playerevents, fire and teleportall, plus its
own death-penalty keys and rate values. Any other key in the enum, such as nocraftcost,
noworkbench, nobuildingfall, allrecipesunlocked,
deathkeepinventory or the Deep North snow keys noheavysnow and
allheavysnow, makes the game treat the world as cheated, and nobody earns achievements there
while the key is set. See the achievements cheat flag page.
Admin/Access Control
| Setting | Type | Default | Description |
|---|---|---|---|
adminlist |
List | No | adminlist.txtOne Platform User ID per line, format [Platform]_[User ID], case sensitive. A Steam player matches Steam_ plus the SteamID64, the bare SteamID64, or the V_ form the in-game F2 panel shows; Xbox, PS5 and Switch 2 players match only their own ID, shown in the F2 panel as X_, S_ or N_ followed by a number. The server rereads the file within about 10 seconds of an edit. |
bannedlist |
List | No | bannedlist.txtBanned Platform User IDs, same format. |
permittedlist |
List | No | permittedlist.txtAllowed Platform User IDs, same format. Adding anyone to this file bans everyone not on it. |
Settings for a Full 8-10 Player Server
Valheim caps at 10 players, so an 8-person group is running the server near its design limit, and the settings that matter change accordingly. None of the world modifiers above affect capacity: what decides whether a full server feels smooth is network send rate, crossplay, and where people build.
- Know the network limits. The 1.0.17 server sends each Steam
connection at a fixed 150 KB/s and only queues more world data for a player while less
than 10 KB is waiting, which is tight for a full server in one area. A network mod
raises both, and
-simulationdistancelowers the load per player; the numbers are in the desync and performance guide, and they matter more the closer you are to 10 players. - Decide crossplay deliberately. Every crossplay session adds the PlayFab relay hop. With 8 players that is 8 relayed connections, and relay congestion hits all of them at once. If the whole group is on Steam, leave crossplay off; enable it only if console players actually need to join. From 1.0 on September 9, 2026, PS5 and Switch 2 players can only join with crossplay on, so mixed groups no longer get a choice: budget for the hop.
- Spread the building out. Ten players in one mega-base strain sync far more than the same ten across separate outposts: each client must process every instance in loaded areas. This is a bigger lever than any config value.
- Back up before patch day. A full server means eight people's progress in one world file. The backup guide covers what to copy; do it before every update.
| Setting | Type | Default | Description |
|---|---|---|---|
bepinex |
Boolean | No | Enable BepInEx mod loader On or off. Switch it on to let the server load BepInEx mods. |
Frequently Asked Questions
How do I change the difficulty in Valheim?
Pick a preset (Normal, Casual, Easy, Hard, Hardcore, Immersive or Hammer) or set the five modifiers one by one. On a Supercraft server both are in the game settings of the configuration tab; anywhere else they are the -preset and -modifier launch options, with every -modifier after the -preset. Restart the server to apply them, or as an admin run setworldmodifier in the F5 console.
How do I set a password for my Valheim server?
It needs at least 5 characters and must not appear inside the world name or the world's seed. A public server, which is the default, will not start with a password that breaks either rule, and its log shows Error bad password. On a Supercraft server, set it in the basic settings of the configuration tab, where it takes 7 to 12 characters, and restart.
How do I configure admin access?
Put each admin's platform ID in adminlist.txt in the save folder, one per line: Steam_ plus the SteamID64 for a Steam player (the bare SteamID64 and the V_ form work too), and for an Xbox, PS5 or Switch 2 player the X_, S_ or N_ ID the F2 panel shows. On a Supercraft server, add them to the Admin List in the access settings of the configuration tab.
How do I set a custom world seed?
The Valheim server has no seed option: a world it creates gets a random seed. Create the world in the game with your seed and upload it, or on a Supercraft server enter the seed together with a new world name; the seed only applies when the server creates that world.
Why aren't my configuration changes applying?
Valheim's options are launch arguments, read once at start, so a change applies at the next restart. The world also keeps its modifiers and puts them back at every start, so a -modifier in the start line wins over a change made in game. If a change still does not show, read the server log: an option the server could not read is logged, for example Could not parse ... as a world modifier.
Can I upload a custom configuration file?
Vanilla Valheim has no settings file to upload; its settings are launch options. What you can upload is a world (the world folder on 1.0, or a .fwl and .db pair from older versions) and, with BepInEx switched on, mod config files in BepInEx/config.
Do I need to restart the server after changing settings?
For launch options, yes. Not for adminlist.txt, bannedlist.txt and permittedlist.txt: the server rereads them within about 10 seconds of an edit.
Using the Supercraft Configuration Panel
Our platform provides a user-friendly interface for managing your Valheim server configuration without editing files manually.
- Log in to your Supercraft panel at https://supercraft.host/my-account/
- Navigate to your Valheim server from the deployments list
- Click the "Configuration" tab
- Adjust settings using the intuitive form controls
- Click "Save Configuration" to apply changes
- Restart your server for changes to take effect
The configuration panel validates your inputs and prevents invalid values, ensuring your server starts correctly.
Troubleshooting
Settings not applying after save
Restart the server after saving: launch options are read once, at start. Then check the log. A preset or modifier the server could not read is logged as Could not parse '...' as a world modifier preset. or Could not parse '...' with a value of '...' as a world modifier., and the server carries on without it.
Server stops at start with "Error bad password"
The password is too short (under 5 characters) or appears inside the world name or seed. A public server checks both at start and quits; pick another password, or start with -public 0, which skips the check.
Server won't start after config change
Undo the last change and read the server log for the line that stopped it. A -port that is not a number, for example, stops the server at start.