A Sons of the Forest dedicated server has two kinds of settings, and mixing them up is the source of most confusion. Server settings in dedicatedserver.cfg - name, password, save interval, idle behaviour - apply every time the server starts. Game rules - GameMode and everything in CustomGameModeSettings - are read only when a save is created, then stored inside the save itself in GameSetupSaveData.json. So changing difficulty on an existing world means either starting a new slot or carefully editing that file, and moving a world between machines means copying a whole numbered slot folder, because the rules travel with it. This guide covers choosing rules for your group, what lives in a save folder, changing an existing world, and moving saves onto the server, off it and between slots.
The install, every dedicatedserver.cfg key, the ports and the owner list are in the Sons of the Forest dedicated server guide. This post builds on it.
Which settings apply when#
| Setting | Lives in | Takes effect |
|---|---|---|
ServerName, Password, MaxPlayers, ports | dedicatedserver.cfg | Every start |
SaveSlot, SaveMode | dedicatedserver.cfg | Every start |
SaveInterval, IdleDayCycleSpeed, frame targets | dedicatedserver.cfg | Every start |
GameSettings (tree regrowth, structure damage) | dedicatedserver.cfg | Every start |
GameMode | dedicatedserver.cfg, then copied into the save | Only when a new save is created |
CustomGameModeSettings | dedicatedserver.cfg, then copied into the save | Only when a new save is created |
| Owners | ownerswhitelist.txt | Every start |
The practical reading: you can change the server name or the save interval whenever you like with a restart. You can switch tree regrowth or structure damage on an existing world with a restart. You cannot change enemy aggression, season length or the survival penalties of an existing world from the config, and the server will not warn you that it ignored you.
Two more behaviours worth knowing before you choose:
- Every key in `dedicatedserver.cfg` can be overridden on the command line with a
-dedicatedserver.prefix, such as-dedicatedserver.SaveSlot "2". A panel's Startup tab often sets values this way, and a command-line value beats the file. If a change to the file appears to do nothing, check the start command. - The file is strict JSON. No comments, no trailing comma after the last key, straight quotes only. A malformed file stops the start with a configuration error rather than falling back quietly.
Settings recipes for real groups#
The presets - Peaceful, Normal, Hard, HardSurvival, Creative - cover a lot of groups. Custom is for when none of them fits. These are starting points, written as the fragment of dedicatedserver.cfg that matters. Copy the capitalisation of values from your own generated file if it differs; the documentation and the generated file have not always agreed.
A part-time group that mostly builds
Cannibals still visit, but nobody starves while they are at work and the base is safe from the worst raids.
"GameMode": "Custom","IdleDayCycleSpeed": 0.0,"SaveInterval": 300,"GameSettings": { "Gameplay.TreeRegrowth": true, "Structure.Damage": false},"CustomGameModeSettings": { "GameSetting.Vail.EnemyAggression": "low", "GameSetting.Survival.PlayerStatsDamage": "off", "GameSetting.Survival.ColdPenalties": "off", "GameSetting.Environment.SeasonLength": "long", "GameSetting.Environment.DayLength": "long"}IdleDayCycleSpeed at 0.0 stops the clock when nobody is online, which matters more than any difficulty slider for a group that plays twice a week. Tree regrowth keeps the area around a long-lived base from turning into stumps.
A standard co-op story run
"GameMode": "Normal" with the default GameSettings is the game as designed, and the right choice for a group playing through the story together. The one change worth making is SaveInterval: the default 600 seconds means a crash can cost ten minutes, and a story run has more set pieces where that hurts.
A hard survival server
"GameMode": "HardSurvival" is the preset for groups who want the full grind. If you want it slightly less punishing, use Custom with "GameSetting.Survival.ConsumableEffects": "hard", "GameSetting.Survival.PlayerStatsDamage": "hard", "GameSetting.Vail.EnemyHealth": "high" and "GameSetting.Survival.ReducedFoodInContainers": true, leaving cold penalties at normal. Hard settings with long seasons make winter a real event rather than a short inconvenience.
A building server
"GameMode": "Creative" removes resource costs, or Custom with "GameSetting.Survival.CreativeMode": true and "GameSetting.Vail.EnemySpawn": false if you want to keep some other custom choices. Creative worlds with large builds are the heaviest thing you can ask this server to do, so expect memory to climb with structure count.
Whatever you pick, write it down with the date the world was created. In six months nobody will remember whether this world was made with low aggression, and the config file may no longer say.
What is inside a save slot#
On the server, each world is a folder under the user data directory:
Saves/DedicatedServer/Multiplayer/0000000001/The folder name is the slot number padded to ten digits, and SaveSlot picks which one loads. Inside are a set of JSON files and a thumbnail. File names vary a little between builds, but on current builds you will find these:
| File | What it holds |
|---|---|
GameSetupSaveData.json | The rules the world was created with: mode and custom settings |
GameStateSaveData.json | Overall game state, including the game type and story progress |
SaveData.json | The bulk of the world: items, structures, NPC state, Kelvin and Virginia |
PlayerInventorySaveData.json | Inventory data |
PlayerStateSaveData.json | Player position and stats |
WeatherSystemSaveData.json | Weather and season state |
WorldItemManagerSaveData.json | Items placed or dropped in the world |
The slot is one unit. Do not copy individual files between worlds - they reference each other, and a world assembled from two saves is a world that crashes on load. Copy, back up and restore whole folders.
Some player-specific data lives on each player's own machine rather than on the server, in a MultiplayerClient folder under their local saves. That is why inventories and positions sometimes behave unexpectedly after a world moves: the world came across, but each player's side of it did not.
Changing the rules of an existing world#
There is no supported way to change GameMode or custom settings on an existing world. There is an unsupported one that the community uses widely: editing the save's JSON directly. It works because the rules are stored as plain text in the slot.
- Stop the server and wait for the final save line in the console.
- Take a backup of the whole slot folder. Not optional.
- Open
GameSetupSaveData.jsonin an editor that will not reformat it. Find the game mode value - for example"StringValue":"Normal"- and the individual settings, each stored as an entry with the setting name and its value. - If you changed the mode, change the matching
"GameType"value inGameStateSaveData.jsonas well, so the two files agree. - Start the server and read the log. Join and check that the change took.
Community save editors such as SOTFEdit wrap the same edits in an interface, which is less error-prone than editing by hand for most changes. Either way, three warnings apply. The format is internal and Endnight can change it in any patch. Some changes do not make sense mid-game - switching to Peaceful will not remove the cannibals already placed in the world state. And a broken edit makes the slot unloadable, which is why step 2 exists.
Moving worlds onto, off and between slots#
From your own hosted game to the server
A multiplayer world you hosted from the game client lives on your PC under:
%USERPROFILE%\AppData\LocalLow\Endnight\SonsOfTheForest\Saves\<SteamID64>\Multiplayer\<world id>\Stop the server, upload that folder into Saves/DedicatedServer/Multiplayer/, rename it to a free padded slot number such as 0000000002, set SaveSlot to 2 and SaveMode to Continue, and start. Structures, story progress and the world come across. Tell your group to expect to arrive with less than they left with, for the reason above.
Single-player worlds
Single-player saves live in a SinglePlayer folder beside Multiplayer. Moving one onto a dedicated server is not a documented path. People do report success copying a single-player slot into the server's multiplayer folder in the same way, with mixed results depending on the build. If you try it, try it in a spare slot, with the original kept safe, and play for an hour before deciding the world is sound.
From the server back to a PC
To play a server world offline, or to hand it to someone else to host, reverse the process. Stop the server so the slot is saved, download the slot folder, and place it under your own Saves\<SteamID64>\Multiplayer\ with a numeric folder name. It appears in the game's load list for hosted multiplayer. This is also the cleanest way to end a server without losing the world: download the last slot before the server goes away, because deleting a server on most hosts deletes its saves and backups with it.
Between slots on the same server
Slots make cheap experiments. Copy the current slot to the next free number, point SaveSlot at the copy, and try a mod, an edit or a risky boss fight. If it goes wrong, set SaveSlot back. The original never changed.
Save timing, backups and rollback#
The world is written every SaveInterval seconds and on a clean stop. A killed process, a crash or an out-of-memory stop loses everything since the last save. The built-in behaviour writes over the same slot each time, so it is not a backup: a world saved in a broken state replaces the good one.
A backup plan for this game is three things:
- A scheduled copy of the save folder, kept off the server, nightly for an active group. More often is pointless if nobody plays at night.
- A manual copy before anything risky - a game update, a save edit, a mod, a story boss.
- A restore you have actually done. Restore a backup into a spare slot once, load it and walk around. Backups that actually restore and testing a restore before you need it explain why this matters more than the schedule.
To roll back, stop the server, replace the slot folder with the backup copy - the whole folder, not individual files - and start. Players lose everything since the backup, so announce it first.
On RE:NODE, backups are taken on demand or on a schedule, stored off the machine they protect, and restored with one button; they can also be downloaded, which covers the "keep a copy at home" step. A Schedules entry can run a backup at four in the morning and a restart straight after, each as an ordered task. The Restart button sends a clean stop, so the world saves first. If the server reaches its memory limit it is stopped and restarted clean rather than swapping, which is the unsaved-stop case - one more reason to bring SaveInterval down to 300 on a big world. Deleting a server deletes its backups too, locked ones included, so download the last one before you cancel.
Wipes and starting fresh#
There are two ways to start a new world, and one of them destroys the old one.
SaveMode set to New regenerates the current slot on every start. It is the dangerous one: forget to set it back to Continue and the next restart wipes the world again.
The safer way is a new slot. Set SaveSlot to an unused number with SaveMode New, start once to generate the world, then immediately set SaveMode back to Continue. The old world is untouched in its own folder and you can return to it by changing one number. This is also the only clean way to apply new game rules, since they are read when a world is created. Game server save files explained has the general picture across games.
Troubleshooting#
Custom settings changed in the config have no effect. They only apply to a new save. Start a new slot or edit GameSetupSaveData.json on a backed-up copy.
The world reset after a restart. SaveMode is New, SaveSlot changed, or a command-line override set either. The old slot is still on disk.
An uploaded world does not load and a new one generates. The folder name is not the padded slot number matching SaveSlot, or the files sit one folder too deep inside it. The slot folder must contain the JSON files directly.
The server refuses to start after a save edit. The JSON is malformed. Restore the backup and redo the edit in an editor that leaves formatting alone.
Players lost their inventories after a transfer. Expected to some degree: part of each player's data lives on their own machine. Plan a supply chest for the first session on a moved world.
The save takes long enough that players notice. A large world with many structures. Keep SaveInterval at a value the group tolerates, and restart daily so memory stays flat - restart schedules that help.
FAQ#
Can I change the difficulty of an existing Sons of the Forest server world?
Not from dedicatedserver.cfg, which only applies rules when a save is created. You can edit GameSetupSaveData.json and GameStateSaveData.json in the slot with the server stopped and a backup taken, or start a new slot with the rules you want.
Which settings can I change without starting a new world?
Everything outside GameMode and CustomGameModeSettings: name, password, player count, save interval, idle clock speed and the two GameSettings switches for tree regrowth and structure damage. A restart applies them.
How do I download my world from the server?
Stop the server so the slot saves, then download the numbered slot folder from Saves/DedicatedServer/Multiplayer/. Place it under your own Saves\<SteamID64>\Multiplayer\ to host or play it from the game.
Can I run two worlds on one server?
One at a time. Each slot is its own world, and SaveSlot selects which loads. Switching is a stop, a change of one number and a start, and neither world is affected.
Why does my config file get ignored?
Either the JSON is malformed and the server reports a configuration error, or a -dedicatedserver. command-line argument is overriding the value. Command-line values win over the file.
Does the server keep its own backups?
It keeps the current save only, overwritten on every interval. Backups are something you take, by copying the slot folder elsewhere or using your host's backup feature.




Comments
Completely anonymous: no account, no email, no cookie. We store the name you type, the text and the time - nothing else. Links are limited and markup is not rendered.