:warning: This tool is experimental. Be careful of data loss and always make a backup. :warning:
Fixes the bug which forces a player to create a new character when they already have a save.
Note: If you have an advanced co-op map with level 30-40+ characters and can't get the fix to work for you, please open an issue and send the save to me. I have some major and more complete changes in the works but I need mid to late game saves to make sure I get everything and people to confirm it's working correctly before I release.
Palworld save files are different depending on the type of server you are running. Co-op, Windows dedicated server, Linux dedicated server, SteamCMD dedicated server, all of these are different types of Palworld servers and if you try to migrate a save file from one type of server to another, you can run into a player save bug which forces you to create a new character.
For example:
The bug happens because players are identified and correlated to their save via their GUID. These different types of servers generate player GUIDs differently so when a player joins, the server generates a new GUID that doesn't match the old save's GUID and because of this, doesn't realize the player already has a save.
To fix this bug, we've made a script that takes the GUID of the player on the new server and applies it to the player save from the old server so that the new server will use the player save from the old server.
Dependencies:
python -m pip install palworld-save-tools==0.17.1
git clone https://github.com/xNul/palworld-host-save-fix
Using the GUI:
python gui.py
Command:
python fix_host_save.py <save_path> <new_guid> <old_guid> <guild_fix>
<save_path>
- Path to your save folder
<new_guid>
- GUID of the player on the new server
<old_guid>
- GUID of the player from the old server
<guild_fix>
- True or False. Apply the fix for the [Guild bug].
Example:
python fix_host_save.py "C:\Users\John\Desktop\my_temporary_folder\2E85FD38BAA792EB1D4C09386F3A3CDA" 6E80B1A6000000000000000000000000 00000000000000000000000000000001 False
Only my co-op host isn't able to use their character on the dedicated server.
Prerequisites:
Steps:
C:\Users\<username>\AppData\Local\Pal\Saved\SaveGames\<random_numbers>
to your dedicated server at PalServer\Pal\Saved\SaveGames\0
.PalServer\Pal\Saved\Config\WindowsServer\GameUserSettings.ini
file, change the DedicatedServerName
to match your save folder's name. For example, if your save folder's name is 2E85FD38BAA792EB1D4C09386F3A3CDA
, the DedicatedServerName
changes to DedicatedServerName=2E85FD38BAA792EB1D4C09386F3A3CDA
.PalServer\Pal\Saved\SaveGames\0\<your_save_here>\WorldOption.sav
to allow modification of PalWorldSettings.ini
. Players will have to choose their respawn point again, but nothing else is affected as far as I can tell..sav
file should appear in PalServer\Pal\Saved\SaveGames\0\<your_save_here>\Players
..sav
file is the co-op host's new GUID. We will need the co-op host's new GUID for the script to work.PalServer\Pal\Saved\SaveGames\0\<your_save_here>
(it must be the save folder with the co-op host's new character!) into a temporary folder and remember the path for the temporary folder because it's needed to run the script.00000000000000000000000000000001
as the co-op host's old GUID, and make sure to set <guild_fix>
to False
.No player, co-op host or otherwise, is able to use their character on the dedicated server.
Note: This method relies on the [Guild bug] fix even though the fix itself has bugs because with this migration process, every player loses access to their character and they all have to be fixed so there is no 'good' character who can hold the guild for other players as in the co-op to dedicated server migration process above. Progress on the [Guild bug] fix is ongoing and it will hopefully be completely fixed soon.
Prerequisites:
Steps:
PalServer\Pal\Saved\Config\WindowsorLinuxServer\GameUserSettings.ini
file of the new server, change the DedicatedServerName
to match your save folder's name. For example, if your save folder's name is 2E85FD38BAA792EB1D4C09386F3A3CDA
, the DedicatedServerName
changes to DedicatedServerName=2E85FD38BAA792EB1D4C09386F3A3CDA
..sav
file will appear in PalServer\Pal\Saved\SaveGames\0\<your_save_here>\Players
. The name of that new .sav
file is the player's new GUID. Make sure to keep track of all old GUIDs, new GUIDs, and which player they belong to.PalServer\Pal\Saved\SaveGames\0\<your_save_here>
(it must be the save folder with all the new characters!) into a temporary folder and remember the path for the temporary folder because it's needed to run the script.<guild_fix>
to True
.C:\Users\<username>\AppData\Local\Pal\Saved\SaveGames\<random_numbers>\Players\00000000000000000000000000000001.sav
to <your_temporary_folder>\<your_save_here>\Players
.00000000000000000000000000000001
as the <new_guid>
and the character you want to be host as the <old_guid>
.C:\Users\<username>\AppData\Local\Pal\Saved\SaveGames
.If you are having trouble figuring out which GUID is associated to a player, you can try using the following steps:
PalServer\Pal\Saved\Config\WindowsorLinuxServer\PalWorldSettings.ini
file./adminpassword <your_admin_password>
./showplayers
(or you can click esc
and go to the options page to see and copy your own ID after entering the admin password).playeruid
field for each player. playeruid
number to 8-character hexadecimal GUID prefix. For example, you can run
python -c "print(format(<your_player_id_number>, '08x'))"
.sav
file that starts with the output).Details: Guild membership doesn't work properly after fixing a character. This is likely happening because there's some guild configuration being missed in the character migration from the old save to the new save.
Workaround: [Co-op Only] In co-op, before moving the save, transfer ownership from the co-op host's character to another character and have the co-op host's character leave the guild. Fixes the issue entirely. Doesn't work when all players lose their save data because there is no working player to hold the guild.
Details: Pals owned by the player won't do anything at the base. This is likely caused by the Pals not being registered with the correct guild.
Workaround: On the new server, after the save has been fixed, have each player's character go into their base, drop on the ground and pick up every single Pal they own, including the base workers. This can be done using the "Drop" button in the Party menu. This will re-register the Pals with the correct guild and fix the issue entirely.
Details: The Viewing Cage isn't officially supported on dedicated servers so if you have built one in co-op, it needs to be removed from your co-op save before migrating it to your dedicated server.
Workaround: [Co-op Only] If you have built a Viewing Cage, it needs to be removed from your co-op save before migrating it to your dedicated server.
Details: After applying the fix, some players experience a bug where you can't hold your left mouse button to attack. It seems like this only happens if you didn't do the [Guild bug] workaround but I'm not sure.
Workaround: If you leave the guild and rejoin, it goes away. Thanks /u/skalibran!