How to Migrate Palworld Save Game from Windows to Linux Server

UWAGA: THIS GUIDE IS NOT FOR COOP TO DEDICATED SERVER!

When transferring save data from Steam dedicated server to Linux SteamCMD, a common problem is that playersdata will lost, in this guide I will provide a possible reason of this phenomenon and steps to correctly transfer save data.

Wymagania wstępne

Linux Server with SteamCMD and Palworld dedicated server installed, you should be able to launch the server and join it.

TL;DR

  1. Copy your save folder from …\SteamLibrary\steamapps\common\PalServer\Pal\Saved\SaveGames\0\{YOUR_SAVE_ID} w systemie Windows.
  2. Paste your save folder at .steam/SteamApps/common/PalServer/Pal/Saved/SaveGames/0/{YOUR_SAVE_ID}.
  3. Modyfikować DedicatedServerName w .steam/SteamApps/common/PalServer/Pal/Saved/Config/LinuxServer/GameUserSettings.ini to YOUR_SAVE_ID.
  4. Create folder .steam/sdk64 (mkdir -p ~/.steam/sdk64).
  5. Kopiuj .steam/steamcmd/linux64/steamclient.so do .steam/sdk64/steamclient.so.
  6. Modyfikować (or create if not exist) the content of .steam/SteamApps/common/PalServer/Binaries/LinuxServer/steam_appid.txt do 1623730.
  7. Launch the server, if you see there is something likeSetting breakpad minidump AppID = xxxxxxxin your server output, everything should be OK.

Cause of the Problem

The key problem is that the GUID of player is different between Linux and Windows. When you join a Linux server, you cannot get the same GUID that you previously used on Windows, W związku z tym, server will treat you as a new player. But why GUID are different? I think it may related to the Steam API and the way palword generate GUID, followings are only my guess.

When a player join a palworld server, the server will first try to use Steam API to obtain player’s ID, and then based on this ID generate a GUID for the player. Jednakże, if Steam API is not available, the server will then generate GUID based on other unknown rules/values. On Windows platform, you launch a dedicated server from Steam, Więc, zazwyczaj, Steam API is always available and well configured, then the GUID is generated based on your Steam ID. But on Linux platform, you need to provide steamclient.so oraz steam_appid.txt to make Steam API available. If you didn’t set these, the server will then generate GUID based on some unknown rules/values of the player, which is totally different from the GUID generated on Windows.

To check this, you can set AdminPassword in PalWorldSettings.ini, join a server, type /AdminPassword {YOUR_ADMIN_PWD} in chat box to become a administrator, then press ESC and your user ID will be displayed on the screen. You should find out that the value is different between Linux and Windows for the same player.

Ten poradnik o Palworld został napisany przez NucBox. Możesz odwiedzić oryginalną publikację z tego połączyć. Jeśli masz jakiekolwiek wątpliwości dotyczące tego przewodnika, nie wahaj się z nami skontaktować tutaj.

O autorze