How to Migrate Palworld Save Game from Windows to Linux Server

NOTA: 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.

Prerequisiti

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} Su Windows.
  2. Paste your save folder at .steam/SteamApps/common/PalServer/Pal/Saved/SaveGames/0/{YOUR_SAVE_ID}.
  3. Modify DedicatedServerName in .steam/SteamApps/common/PalServer/Pal/Saved/Config/LinuxServer/GameUserSettings.ini to YOUR_SAVE_ID.
  4. Create folder .steam/sdk64 (mkdir -p ~/.steam/sdk64).
  5. Copy .steam/steamcmd/linux64/steamclient.so a .steam/sdk64/steamclient.so.
  6. Modify (or create if not exist) the content of .steam/SteamApps/common/PalServer/Binaries/LinuxServer/steam_appid.txt a 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, Perciò, 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. Tuttavia, 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, Così, Generalmente, 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 e 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.

Questa guida su Palworld è stato scritto da NucBox. Puoi visitare la pubblicazione originale da questo collegamento. In caso di dubbi su questa guida, per favore non esitate a contattarci qui.

Circa l'autore