Skip to content

Instantly share code, notes, and snippets.

@peterhellberg
Created July 12, 2025 10:36
Show Gist options
  • Save peterhellberg/b9d712b6bed2879f04638da741ddbad2 to your computer and use it in GitHub Desktop.
Save peterhellberg/b9d712b6bed2879f04638da741ddbad2 to your computer and use it in GitHub Desktop.
Example of using Markdown support in Caddy using its `templates` directive.
{{ $doc := `
# How to move a Valheim world save
If you need to move a world save from one server to another,
or from your local machine to a server,
this shouldn’t be too painful ;)
## The default location that Valheim saves world files is:
- Windows: %USERPROFILE%/AppData/LocalLow/IronGate/Valheim/worlds/
- Linux: ~/.config/unity3d/IronGate/Valheim/worlds/
If you have rented a server from a game server provider,
double check with their support information where they store save files,
as they may use a custom location.
There will likely be 4 files stored for each world:
- world.fwl
- world.fwl.old
- world.db
- world.db.old
Where “world” is the name of your world.
If you want to double check the name of your world,
you can see it in-game by pressing F2.
_The .old files are backups, and not strictly necessary for the purpose of the transfer._
## World re-nameing
Do not change the name of your .fwl or .db files, as this will break things.
## FTP Transfer Modes
If you are interacting with a server to upload/download files using FTP,
(and you’re on Windows) using WinSCP is recommended.
If you use FileZilla (or other software) instead,
make sure that the file transfer type is set to BINARY.
WinSCP uses binary transfer for files by default,
but FileZilla may not and this has caused some issues for users.
## Steps
On the source machine, locate the world save files.
Take a back-up copy of these files and set aside in case anything goes wrong.
On the destination machine, ensure that the -world parameter in the server
start script matches the name of your world, and start the destination server.
Once the destination server has completely started up, shut it down again.
This will have created world files on the destination machine that you will
now replace.
Navigate to the worlds/ directory on the destination machine, and confirm
that world files are present, with the same name as your old world files.
Replace the world files on the destination machine,
with those from the source machine.
You can now start the server on the destination machine again,
and it will load the world from the files you have just added.
`
}}
<!doctype html>
<html lang=en>
<head>
<meta charset=utf-8>
<title>How to move a Valheim world save</title>
<style>
html {
color-scheme: light dark;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
max-width: 75ch;
padding: 2.5em 0.5em;
margin: auto;
line-height: 1.65;
font-size: calc(1em + 0.3vw);
background-color: light-dark(#F9FAFD, #1A1E24);
}
button {
float: right;
clear: right;
}
h1 { color: light-dark(#008198, #008198); }
h2 { color: light-dark(#017887, #017887); }
h3 { color: light-dark(#0F5E71, #0F5E71); }
h4 { color: light-dark(#1B2C38, #1B2C38); }
</style>
<script>
function toggleColorScheme() {
const e = document.querySelector('html');
e.style.colorScheme = e.style.colorScheme === 'light' ? 'dark' : 'light';
}
</script>
</head>
<body>
<button onclick="toggleColorScheme();">💡</button>
{{ markdown $doc }}
</body>
</html>
@peterhellberg
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment