On a modded Valheim server, a setting marked as synced belongs to the server. When a player connects, the mod sends the server's values for those settings and the client uses them for the rest of the session, whatever its own config file says. Two libraries do almost all of this: ServerSync, which many mods compile into their own .dll, and Jotunn, which syncs settings its mods mark as admin-only. Both normally come with a lock. With Lock Configuration = On, only the server's file and players on the admin list can change synced values; with it off, behaviour varies by mod and players may be able to change things they should not. If you remember one rule: edit synced settings on the server, never on a client, and expect a client's file to say nothing about what the server is actually enforcing.
Why Valheim mods need config sync at all#
Valheim's multiplayer is not server-authoritative. The server stores the world and relays state, but each zone is simulated by the client of the player who owns it. A mod that changes a rule - stack sizes, carry weight, crop growth time, enemy health - therefore runs on every machine, and every machine reads its own config file.
Without sync, that goes wrong in a predictable way. The server owner sets carry weight to 600, one player still has the default 300 in their file, and the two disagree. Depending on the mod, the player either sees the old rule, sees the new one inconsistently, or desynchronises things for everyone standing in a zone they own. Worse, a player can raise a value in their own file and give themselves an advantage the server never agreed to.
Config sync fixes both. The server is the single source of truth for the settings that must match, and clients are told what those values are on connect. Settings that are genuinely personal - interface position, keybinds, colours - are left unsynced so each player can keep their own.
The two systems: ServerSync and Jotunn#
Most mods that sync config use one of these two, and you will meet both on the same server.
| ServerSync | Jotunn config sync | |
|---|---|---|
| What it is | A small library by blaxxun, embedded in each mod | Part of the Jotunn modding library |
| Installed as | Nothing separate; it lives inside the mod's .dll | Jotunn installed as its own plugin |
| Which settings sync | Those the mod registers with ServerSync | Those the mod marks as admin-only |
| Lock | Usually a Lock Configuration setting per mod | Admin-only settings are always server-controlled |
| Version check | Per mod: current and minimum version | Jotunn's network compatibility check |
| Typical mods | Many Smoothbrain, Azumatt and blaxxun mods | Content mods built on Jotunn |
Because ServerSync is embedded, it never appears as its own line in the BepInEx log and there is nothing to update separately. Each mod carries the copy it was built with. That is also why sync problems with ServerSync are always per mod: one mod syncing badly says nothing about the others.
Jotunn is a shared library, so its sync behaves the same across every mod that uses it. Jotunn explained covers the library as a whole; the relevant part here is that a mod author flags individual settings as admin-only, and Jotunn sends those from the server and stops non-admins changing them.
A mod page usually says which it uses, and the config file usually shows it too.
Reading a synced config file#
The first start of a mod generates its file in BepInEx/config, named after the plugin's GUID. Mods built on the common ServerSync template label every setting in its description:
## Settings file was created by plugin ExampleMod v1.2.3## Plugin GUID: com.example.examplemod[1 - General]## If on, the configuration is locked and can be changed by server admins only. [Synced with Server]# Setting type: Toggle# Default value: On# Acceptable values: Off, OnLock Configuration = On[2 - Limits]## Maximum carry weight. [Synced with Server]# Setting type: Single# Default value: 300Max Carry Weight = 600## Show the weight bar on the HUD. [Not Synced with Server]# Setting type: Toggle# Default value: On# Acceptable values: Off, OnShow Weight Bar = OnThe suffixes [Synced with Server] and [Not Synced with Server] are a convention, not something BepInEx adds, so not every mod has them. When they are missing, the mod's page or its own description of each setting is the only guide. Jotunn mods may not label settings in the file at all; in the in-game editor, admin-only entries are the ones a non-admin cannot change.
The file is plain INI, the same as any BepInEx config, and the same rules apply: the mod rewrites it on start, unknown keys are dropped, and a value in the wrong section is ignored. Valheim mods with BepInEx on a server covers the file format in general.
What Lock Configuration does#
Lock Configuration is the switch that decides whether synced settings are enforced or merely suggested. It is itself synced, so the server's value is the one that counts.
- On (the usual default). The server's values for every synced setting are applied to each client on connect and stay applied. A non-admin player cannot change them during the session, in the file or in the in-game editor. Players on the server's admin list can change them in game, and the change goes to the server.
- Off. The server still sends its values, but players are allowed to change synced settings locally. Exactly what that means depends on the mod: some apply the client's own value only for that player, some let a change on any client propagate. Do not leave the lock off on a server you do not fully trust, and do not leave it off by accident after testing.
A useful habit: after installing a ServerSync mod, search the server's whole config folder for the lock and confirm every one.
$ grep -H "^Lock Configuration" BepInEx/config/*.cfgBepInEx/config/com.example.examplemod.cfg:Lock Configuration = OnBepInEx/config/com.example.othermod.cfg:Lock Configuration = OffAny Off in that list should be a decision, not an accident.
Who counts as an admin#
Admin rights for config sync come from Valheim's own adminlist.txt in the server's save directory, the same file that controls kick and ban. Neither ServerSync nor Jotunn has its own list. That has two consequences worth knowing.
First, the ID format must be right. On a Steam-only server the line is the player's SteamID64; on a crossplay server it is the platform-prefixed form such as Steam_76561198012345678. A player listed in the wrong format is not an admin for config sync either, which shows up as greyed-out settings in the in-game editor. The three list files has the formats in full, and the reliable way to get an ID is from the connection line in the server log.
Second, being an admin lets that player change the server's synced values from inside the game, using the in-game configuration editor. The new value is sent to the server, applied there, written to the server's config file, and pushed to everyone connected. That is convenient for balancing during a session and dangerous for exactly the same reason. Keep the admin list short. ConfigurationManager on servers covers the editor itself.
Editing synced settings: on the server, then reload#
The clean way to change a synced setting is to edit the server's file. Whether it takes effect immediately depends on the mod.
- Mods that watch their file. Many ServerSync mods, including most built from the common template, watch their own
.cfgfor changes and reload it when it is saved. Edit the server's file, save, and the new value is applied on the server and pushed to connected clients within a moment. Check the server console for the mod's reload line where it prints one. - Mods that read at start. Others read their config once. Edit the file while the server is stopped, then start it.
When you do not know which kind you have, the stopped-server method always works:
- Stop the server cleanly and wait for the world to save.
- Edit the file in
BepInEx/config. Keep a copy of your edits outside the server. - Start the server and watch for the mod's
Loadingline. - Connect and confirm the value in game.
Edits to a client's file never fix a server problem. While connected, the client is using the server's values; when it disconnects, ServerSync generally puts the client's own values back. Some players assume the file on their PC must reflect the server and get confused when it does not. Nothing is wrong - the file is their local default, not a record of what the server enforces.
On RE:NODE the server's BepInEx/config is open in the panel's file manager with syntax highlighting, so the edit-save-reload cycle needs no download, and the console shows the reload or restart output live.
Beyond .cfg: YAML and other synced files#
Several large mods keep their real configuration in separate files, often YAML - custom spawn tables, recipe lists, item definitions. ServerSync can sync those too, as custom synced values, and the mods that use it send the whole file content to each client on connect.
What this means in practice:
- The server's copy is the one that matters, the same as for the
.cfg. Clients receive it on connect. - Large files slow joining. A client has to receive every synced file before it is fully in, so a very large set of YAML across several mods adds time to the connection. If players sit on the loading screen longer after a mod was added, that is a likely cause - stuck on connecting and loading covers the other ones.
- A syntax error stops the sync for that mod, or makes it fall back to defaults, depending on the mod. YAML is fussy about indentation; a tab where spaces were expected is enough. Check the server log right after an edit.
Read each such mod's own documentation for where the files live and whether it watches them for changes. The paths are not standardised.
Version enforcement rides on the same connection#
The handshake that sends config also compares versions. This is where most "kicked on connect" reports on modded servers come from.
ServerSync lets each mod declare its current version, a minimum version it will accept from the other side, and whether the other side must have the mod at all. If a client's version is below the minimum, or the mod is required and missing, the connection is refused and the disconnect message names the mod and both versions. Each mod checks itself, so a player with three outdated mods may be told about one at a time.
Jotunn does the same job centrally. Each mod declares a network compatibility level (for example, everyone must have the mod) and a version strictness (major, minor or patch), and Jotunn compares the whole list on connect, showing a window of mismatches.
DisconnectedExampleMod: Server has version 1.2.3, you have 1.2.1.Minimum required version is 1.2.3.The wording above is illustrative; each mod and ServerSync version phrases it slightly differently, but the content is always the mod name and the two versions. The fix is to match the sets, not to weaken the check. Kicked for mod version mismatch has the procedure for comparing client and server lists exactly.
Common sync failures and their fixes#
| Symptom | Usual cause | Fix |
|---|---|---|
| A player's setting reverts when they join | Working as intended: the setting is synced | Change it on the server |
| Admin cannot change a synced setting in game | Not in adminlist.txt, or wrong ID format | Add the correct ID; the list is re-read while running |
| Server file edit has no effect | The mod reads config only at start | Stop, edit, start |
| Edit vanished after a restart | Edited a running server's file, which the mod then rewrote | Edit while stopped, or use a mod that watches its file |
| Players can change balance values | Lock Configuration = Off on the server | Turn it on in that mod's server file |
| Long load when joining | Large synced YAML or many synced mods | Trim the files, or accept the slower join |
| One player has different rules | Mod missing on that client, not marked as required | Match the mod sets |
Two failures deserve more than a table row.
A setting that is not synced at all. If a mod does not mark a balance setting as synced, the server cannot enforce it. Each player's own file decides. The only fixes are distributing the same config with the mod set - a modpack with a config folder or an exported profile - or choosing a mod that syncs it. Do not assume a setting is synced because others in the same file are.
The world changes after a sync problem. If a content mod fails to load on the server while clients still have it, objects from that mod are not recognised by the server, and they can be removed from the world when their zones next load and save. Stop the server the moment a content mod is missing from the Loading lines, and restore the last backup if anything has already been lost. A lockable backup taken before every mod change is the cheapest protection there is.
FAQ#
Do I need to install ServerSync separately?
Almost never. Most mods that use it compile it into their own .dll, so it arrives with the mod and does not appear as a separate plugin. A few older setups shipped it as its own package; follow the mod page if it lists ServerSync as a dependency.
Why does my config file show one value but the game uses another?
Because the setting is synced and you are connected to a server. The server's value replaces yours for the session. Your file is your local default, used in single player and on servers that do not run the mod.
Can players see the server's synced values?
Yes, in the in-game configuration editor while connected, where synced settings show the server's current values. They cannot change them unless the lock is off or they are on the admin list.
Does Lock Configuration affect settings that are not synced?
No. Unsynced settings are always per player, lock or no lock. The lock only controls whether the server's synced values can be changed by non-admins.
Is config sync a reliable anti-cheat?
It enforces the values the mod chooses to sync, which stops casual edits to balance settings. It is not protection against a player who modifies the mod itself or uses other tools. Treat it as a way to keep honest players consistent, and keep backups for everything else.
Do crossplay players affect config sync?
Console players cannot install mods, so they cannot join a server whose mods are required on clients at all. On a server with server-side-only mods, sync does not apply to them because there is nothing on their side to sync.


