Match this symptom
The transferred server starts without a fatal error, but player buildings, explored terrain or the expected world seed/state are missing.
The answer first
Stop with CTRL+C, copy both the source and newly created save roots, then resolve -savedir and -world from the actual launch script. Restore the matching <world>.db and <world>.fwl from the same snapshot; never mix one current file with one older file.

Stop both copies before the empty world rotates backups
An apparently new world can continue generating saves and automatic backup points, which may rotate useful evidence. Press CTRL+C, wait for shutdown and confirm no valheim_server.exe process remains against either source or destination directory.
Copy the complete source root and the new destination root to separate dated folders. Preserve .db, .fwl, automatic backup variants, adminlist.txt, bannedlist.txt, permittedlist.txt and the launch script.
- 1Do not delete the newly created world; it proves which directory/name the destination used.
- 2Copy every candidate root before renaming or moving a file.
- 3Record file sizes and timestamps without assuming the newest pair is the desired world.
Resolve the destination's effective save root
On Windows the default root is under the current service account's %USERPROFILE%/AppData/LocalLow/IronGate/Valheim. Linux uses ~/.config/unity3d/IronGate/Valheim. The -savedir argument relocates worlds and permission files together.
A Windows service running as a different account can therefore load a fresh default root even when the interactive administrator copied files correctly. Inspect the actual running account and command, not only the batch file you expected it to use.
- Read -savedir from the launch command if present.
- Resolve environment-based defaults under the service identity.
- Confirm the destination can read and write the intended folder.
Match the world name and both files
The -world value creates or selects a world by name. The current project layout expects matching <world>.db and <world>.fwl files under worlds_local. The database and metadata are one recovery unit and must come from the same point in time.
Do not fix a naming mismatch by opening and saving different candidate worlds. Work on copies, select one matched pair and point -world at its exact base name.
- 1Compare -world with the base names of every .db/.fwl candidate.
- 2Choose a pair with matching name and recovery timestamp.
- 3Restore both files and their relevant native backups into the resolved root.
Validate identity before accepting the transfer
Start privately and wait for Game server connected. Join with a known character, visit a distinctive player-built location and confirm the expected explored/terrain state. Then stop with CTRL+C and restart once more.
A technically successful world load does not guarantee new biome content appears in already explored terrain. Iron Gate's update guidance says new locations are generated in unexplored areas; keep migration validation separate from biome-generation expectations.
- Verify a landmark, building and inventory/container known to the world.
- Verify permission files from the transferred root behave as intended.
- Retain source and pre-restore copies until the owner accepts the result.
