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.
1.0 launch note: Valheim 1.0 and the Deep North arrive on September 9, 2026. Before that 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 | Accepted by the server binary but not described in the manual. | |
-demomode | none | Accepted by the server binary but not described in the manual. | |
-joincode | none | Accepted by the server binary but not described in the manual. | |
-joinserverwithcharacter | none | Accepted by the server binary but not described in the manual. | |
-resetmodifiers | none | Accepted by the server binary but not described in the manual. | |
-simulationdistance | none | Accepted by the server binary but not described in the manual. |
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 | String, max 100 chars | -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.
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. Others in the same enum that operators reach for include
nobossportals, nocraftcost, noworkbench,
nobuildingfall and allrecipesunlocked. The key is
matched without regard to case.
Admin/Access Control
| Setting | Type | Default | Description |
|---|---|---|---|
adminlist |
List | No | adminlist.txtOne Platform User ID per line, format [Platform]_[User ID], case sensitive. Steam users read Steam_7656...; the ID is shown in the server log and on the in-game F2 panel. |
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.
- Raise the data rate cap first. The stock send-rate limit is tuned for small groups and is the root cause of most desync on a busy server. The exact change and the numbers behind it are in the desync and performance guide - it is the single biggest win, and it matters 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 the file pair to copy; do it before you update to 1.0 in particular.
| Setting | Type | Default | Description |
|---|---|---|---|
bepinex |
Boolean | No | Enable BepInEx mod loader Valid values: false |
Frequently Asked Questions
How do I change the difficulty in Valheim?
To change difficulty in Valheim, navigate to the Configuration panel in Supercraft and locate the 'Difficulty' or 'Preset' setting under Gameplay Settings. Select your preferred difficulty level and save your configuration. Restart your server for changes to take effect.
How do I set a password for my Valheim server?
Set a server password in the Basic Server Settings section. Enter your desired password in the 'Server Password' field. Leave it empty for a public server without password protection. Save and restart your server.
How do I configure admin access?
Admin access can be configured through the Admin/Access Control settings. Add Steam IDs or usernames to the admin list, depending on your game's authentication system. Consult the specific admin list documentation for your game.
How do I set a custom world seed?
Set a custom world seed in the World Settings section before first starting your server. Enter your desired seed value in the 'World Seed' or 'Map Seed' field. Note that changing the seed after world generation will not affect existing worlds.
Why aren't my configuration changes applying?
Configuration changes require a server restart to take effect. After saving your settings in the Supercraft panel, restart your server. If changes still don't apply, verify the configuration file syntax is correct and check server logs for errors.
Can I upload a custom configuration file?
Yes, you can upload custom configuration files through the Supercraft file manager. Navigate to the configuration directory, upload your file, and restart the server. Ensure your file follows the correct format for your game.
Do I need to restart the server after changing settings?
Yes, most configuration changes require a server restart to take effect. Some games support hot-reloading for specific settings, but it's recommended to always restart after making configuration changes.
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
Ensure you've restarted the server after saving configuration changes. Most settings require a full server restart. Check the server logs for any configuration errors that might prevent the server from starting.
Configuration file validation errors
Verify that your configuration file follows the correct format for your game. Check for syntax errors like missing quotes, incorrect separators, or invalid values. Use the Supercraft configuration panel to validate settings before applying them.
Server won't start after config change
Revert to the previous working configuration using the Supercraft file manager's backup feature. Check server logs for specific error messages. Common issues include invalid port numbers, malformed file paths, or out-of-range numeric values.