Why the host loses their character
A world folder holds Level.sav, which is the world, and a Players folder with one file per player. Each file is named after that player's ID. In co-op the host's file is always 00000000000000000000000000000001.sav.
A dedicated server identifies you differently. It looks for a save under the ID it generates for your account, finds none, and asks you to make a character. The xNul README says a Windows co-op save moved to a Windows dedicated server only affects the host, because guests keep their IDs. It says the same save moved to a Linux dedicated server, which is what most rented servers run, sends all players to character creation. Treat your friends' characters as something to check, not assume.
Your old character is not simply one file to rename. The ID also appears inside Level.sav, on your pals, your guild record and more, which is why a fix has to rewrite the save rather than copy a file across. Pocketpair's server guide has no procedure for any of this, and none of these tools come from Pocketpair.
Which fix tool still works
Most guides still send you to palworld-host-save-fix by xNul. It created this fix and its README is still the best description of the problem, but its last commit is from February 2024 and it pins palworld-save-tools 0.17.1. That library only accepts the older PlZ compression, while current saves use Oodle, marked PlM. If you see not a compressed Palworld save, found b'PlM' instead of b'PlZ', this is why, and nothing is wrong with your save.
The same limit reaches other older tools. palworld-fix-uuid was written as a less invasive alternative to the original script, but its last release is 0.1.4 from January 2025 and it requires palworld-save-tools below 0.24, the library that raises that error. PalworldSaveTools is now discontinued: its README says 2.4.5 is the final release, says continued use is no longer recommended, and points to PalStudio, formerly Palworld Save Pal. The Palworld Save Pal repository and website still use the older name.
Palworld Save Pal is the one to use. It is free and open source under the GPL. Its source includes PlM support, and its README describes Player UID Swap as useful for co-op to dedicated moves. Get version 1.4.3 or later, because that release fixed the swap wiping every pal in a co-op save, and also fixed saves from the latest game update failing to load. It was the newest release when this guide was written, so check the releases page for anything later.
- Palworld Save Pal 1.4.3 or later: maintained, reads PlM, the first choice
- Palworld Host Save Fixer (vanloads) and the NFZ-441 migration tool: small community projects that read PlM, worth a look if Save Pal fails for you
- palworld-host-save-fix and palworld-fix-uuid: useful to read, built on the older library
- PalworldSaveTools: discontinued by its authors
Before you move the world
Do this while the world is still on the PC that hosted it. On Windows, Steam co-op saves sit under %LOCALAPPDATA%\Pal\Saved\SaveGames, in a folder named after your Steam ID with one folder per world inside it. Close the game, then copy the whole world folder somewhere safe. That copy is your way back, so do not edit it or upload it. Keep it until everyone has played on the server for a while.
Two warnings come from the xNul README, written when that script was the only option. Its guild bug means guild membership can misbehave after a fix, and its workaround is to transfer guild ownership to another character and have the host leave the guild before the move. Save Pal's swap rewrites guild admin and membership as part of the swap, so this step matters most if you use an older script. If a friend is available, it is still a cheap precaution.
The second warning is the Viewing Cage. The README says Pocketpair's guide at the time listed it as not officially supported on dedicated servers, and that a cage built in co-op must be removed before moving. We could not find the cage mentioned in Pocketpair's current server guide either way, so removing it is the cautious choice.
- Copy the whole world folder and leave the copy untouched
- Have the host hand over the guild and leave it if another player can hold it
- Remove any Viewing Cage in co-op, before the move
- Copy your own LocalData.sav from the same world folder, which holds your map progress
- Game Pass saves use a different format: Save Pal can convert them to Steam first
Move the world to the server
Start the server once and stop it, so its folders exist. Then copy your world folder, named with a long string of letters and numbers, into Pal/Saved/SaveGames/0/ on the server, using SFTP or your host's file manager. Only copy with the server stopped.
Next, tell the server which world to load. Open GameUserSettings.ini, in Pal/Saved/Config/LinuxServer on Linux or Pal\Saved\Config\WindowsServer on Windows, and set DedicatedServerName to the exact name of your world folder. If the value does not match, you will find yourself in an empty world, with your save still sitting beside it.
The xNul README also deletes WorldOption.sav from the world folder at this point. That file carries the world's in-game settings, and removing it lets your PalWorldSettings.ini take effect. It says players will have to choose a respawn point again, and that it knows of no other effect. Our Palworld dedicated server setup guide covers that file and its single-line format, and the Palworld server settings generator builds one for you.
Now test the world, ideally with a guest first. Have a friend who was not the host join and confirm the bases are there. If their character is there too, only the host's is left to fix. If they land in character creation, the world has still moved correctly: that player needs the same swap as the host, so have them create a throwaway character as well.
Swap the host onto your new ID
This is the fix itself. It works by giving the server the character it expects, then exchanging it with your old one. The source code shows what the swap covers: the two IDs are traded throughout Level.sav, including pals, buildings and guild records, in both players' .sav and _dps.sav files, and in the file names on disk. Because it is a true swap, your throwaway character ends up under the old host ID, where nobody on a dedicated server will use it.
- Join the server as the host and create a throwaway character with any name
- Stay in the world until it saves, or run /Save as an admin, and check that a second file has appeared in Players
- Quit to the title screen and stop the server. A running server can overwrite your work on its next save
- Download the whole world folder from the server and keep one copy of it unedited
- In the Palworld Save Pal desktop app, open the Level.sav from your working copy as a Steam save
- Open Tools, then Player UID Swap, and choose the old host (the 0000...0001 entry) and the throwaway character
- Save, then upload Level.sav and the Players folder over the originals, with the server still stopped
- Start the server and join: you should load in as your old character
If something looks wrong afterwards
Check your level, party, Palbox and guild in the first few minutes, while your backups are still fresh. If the result is bad, stop the server, put back the unedited copy of the server's world folder and try again. Your co-op original remains the last resort.
The map is the problem people notice first, and no swap can fix it. Your explored map lives in LocalData.sav on your own PC, not on the server, and Save Pal's source says outright that fog of war is left out of the swap for that reason. Palworld Host Save Fixer's README warns that joining a server can overwrite your co-op map, and gives the restore: close the game fully, then copy the old LocalData.sav back into that world's folder under your SaveGames folder.
- Pals idle or ignoring you at base: go to the base and use the Drop button in the Party menu to drop and pick up each pal you own, including base workers. This is the xNul README's workaround
- Cannot hold left mouse to attack: leave the guild and rejoin. The README links this to skipping the guild step
- Dimensional Pal Storage stuck loading: community tool notes blame an out-of-date _dps.sav, so check that those files went up with the Players folder
- A file full of zeros or cut short: the save is damaged, often by a server stopped mid-write. Download it again with the server stopped, and if it is still bad, use your backup
- Character creation again: the upload did not take, or the server was running. Stop it, check the files in Players and upload again
Other moves: back to co-op, or between servers
Any guest who lands in character creation after a co-op move can be handled the same way as the host, by creating a throwaway and swapping with their old entry.
The xNul README lists a dedicated server move from Windows to Linux, or the reverse, as one where no player can use their character, and there every player needs their own swap, one pair of IDs at a time. Record which old and new file belongs to whom before you begin. A move between two servers on the same system is normally just a copy of Pal/Saved, as our dedicated server setup guide explains.
Going back from a server to co-op is the same idea in reverse: the intended host must end up under the 0000...0001 ID. The README's procedure starts a fresh co-op game to create that file, then assigns the host's server ID to it. Self-hosting versus renting can help if you are still deciding whether to run the world on a server at all.