How to Fix Player Character Saves When Migrating to a Palworld Dedicated Server
Move co-op or single-player Palworld characters to your dedicated server using the palworld-host-save-fix tool to swap player GUIDs.
If you've migrated a co-op (Steam-hosted) Palworld world to a dedicated server, you've probably noticed that your bases and Pals are there but your character is gone. This isn't corruption — it's how Palworld links characters to Steam IDs. This page explains why it happens and how to fix it with the community tool palworld-host-save-fix.
Why This Happens
In Palworld:
| Save Type | Player ID | Result on Migration |
|---|---|---|
| Co-op / hosted | Player's Steam ID (e.g. 765611...) | Character file: <SteamID>.sav |
| Dedicated server | Server-generated GUID (e.g. 00000000000000000000000000000001) | Character file: <GUID>.sav |
When you copy a co-op save into a dedicated server:
- ✅ World, bases, structures, Pals transfer fine — they're keyed to the world, not the player.
- ❌ Player characters don't load — the dedicated server is looking for
<GUID>.savfiles but yours are still named<SteamID>.sav.
To fix it you have to rename the player save files and rewrite their internal GUID to match what the dedicated server expects. That's exactly what palworld-host-save-fix does.
The Fix Tool
xNul/palworld-host-save-fix is a community Python script that:
- Reads your old
<SteamID>.savplayer file - Computes the dedicated server's expected GUID from your Steam ID
- Rewrites the file's internal references and renames it
- Patches
Level.savso the world recognizes the new player GUID
It's the de-facto standard fix — thousands of players have used it.
Step-by-Step Fix
Prerequisites
- Python 3.9 or newer installed locally (the tool runs on your computer, not the server)
- Your Steam ID 64 (find it at steamid.io by pasting your Steam profile URL)
- A backup of your save folder — see Backup & Restore
Procedure
Stop the dedicated server and back up
In the XGamingServer Panel, stop your Palworld server. Create a panel backup so you can roll back if anything goes wrong.
Download the tool
Clone or download the script from GitHub:
git clone https://github.com/xNul/palworld-host-save-fix.git
cd palworld-host-save-fixDownload your save folder
In Files, navigate to Pal/Saved/SaveGames/0/. Right-click the GUID folder inside (your world) → Compress → Download. Extract the zip on your local machine.
Run the fix script
The script signature is:
python fix.py <save-folder> <old-steam-id> <new-guid>Where:
<save-folder>is the path to the extracted save folder<old-steam-id>is your Steam ID 64 (the file inPlayers/named like<SteamID>00000000000000000000000000000001.sav)<new-guid>is the dedicated server's expected player GUID — typically00000000000000000000000000000001for the first player
Example:
python fix.py ./my-save 76561198012345678 00000000000000000000000000000001The script renames your player file and patches Level.sav so the dedicated server links your old character to your new GUID.
Re-upload the patched save
In the panel Files, delete the existing Pal/Saved/SaveGames/0/<GUID>/ contents and upload the patched save folder back into the same location.
Start the server and join
Launch the server from Console. Connect from Palworld — you should see your old character with all your levels, gear, and base ownership intact.
Common Issues
| Problem | Fix |
|---|---|
Script errors on Level.sav | The save format may have changed in a recent Palworld update. Check the GitHub issues for the latest compatibility note. |
| Character loads but bases say "no owner" | You ran the script with the wrong old Steam ID. Re-extract from backup and try again with the correct ID. |
| Multiple players need fixing | Run the script once per player, each with their own Steam ID and a unique destination GUID (...0001, ...0002, etc.). |
| "File not found" | Double-check the path to your Players/ folder. The save folder must contain Level.sav at the root and player files inside Players/. |
Why This Isn't Built Into the Game
Pocket Pair has acknowledged the issue but hasn't shipped a built-in migration tool. The community script is the only working option. If/when an official fix lands, this page will be updated.
Related Guides
How is this guide?
