Palworld / 幻兽帕鲁

Palworld / 幻兽帕鲁

评价数不足
如何将存档从Steam私服转移到Linux私服
由 NucBox 制作
注意:该指南不提供合作模式向私服转移存档的方法
当从Steam私服转移到Linux服务器时,玩家的数据可能会丢失,本指南提供了可能导致该问题的原因及正确的转移步骤。
   
奖励
收藏
已收藏
取消收藏
v0.1.3.0更新
幻兽帕鲁更新v0.1.3.0之后似乎不需要再对steam_appid.txt进行操作,如果出现更新之后角色存档丢失,可以试试取消对steam_appid.txt的锁定。
前置条件
Linux服务器+SteamCMD+你可以成功启动并登录私服。
太长不看之转移步骤
  1. 在Windows上从...\SteamLibrary\steamapps\common\PalServer\Pal\Saved\SaveGames\0\{你的存档ID}复制存档文件夹。
  2. 粘贴到Linux上的.steam/SteamApps/common/PalServer/Pal/Saved/SaveGames/0/{你的存档ID}
  3. .steam/SteamApps/common/PalServer/Pal/Saved/Config/LinuxServer/GameUserSettings.ini文件中的DedicatedServerName改为{你的存档ID}.
  4. 创建文件夹 .steam/sdk64 (mkdir -p ~/.steam/sdk64)。
  5. 复制.steam/steamcmd/linux64/steamclient.so.steam/sdk64/steamclient.so
  6. 修改(或创建).steam/SteamApps/common/PalServer/Pal/Binaries/Linux/steam_appid.txt ,使其内容为1623730
  7. 修改steam_appid.txt权限为444(chmod 444 .steam/SteamApps/common/PalServer/Pal/Binaries/Linux/steam_appid.txt)以及限制其父文件夹删除文件(sudo chattr +a .steam/SteamApps/common/PalServer/Binaries/Linux),防止服务器自行修改此文件。
  8. 启动服务器,应该可以在命令行输出里面看到Setting breakpad minidump AppID = xxxxxxx,大功告成。
    [o/list]
原因之万恶的GUID
存档转移失败的主要原因在于玩家的GUID在Windows和Linux下可能是不同的。当你加入一个Linux服务器时,你不会被分配一个和Windows服务器上相同的GUID,而服务器又是用GUID来确定一个玩家的存档的。所以……寄!至于GUID在这两个平台不同的原因,我觉得主要和Steam API和幻兽帕鲁生成GUID的方式有关,以下纯纯猜测。

当玩家加入幻兽帕鲁的服务器的时候,服务器首先会尝试使用Steam API来获取玩家的ID,然后再基于这个ID来生成玩家的GUID。而如果Steam API不可用,服务器则会根据其他一些未知的规则来生成GUID。在Windows私服因为一般都是从Steam里面开的,所以Steam API完全没有问题,因此玩家的GUID都是基于Steam ID生成的。但是当换到Linux上的Steam CMD时,Steam API默认是不可用的,所以相同的玩家再次加入游戏会生成一个完全不同的GUID。你需要配置steamclient.so和steam_appid.txt来让它运作,这样才能生成和Windows上一样的GUID,然后继承你的玩家数据~

如果你想看看是否真有此事,你需要在PalWorldSettings.ini里面设置AdminPassword,之后分别加入Windows和Linux的私服,在聊天框里面输入/AdminPassword {你设置的密码} 成为管理员,再然后按ESC就可以看到你的用户ID了。理论上,如果没有配置Steam API那些东西的话,两边的ID就会是不一样的。
参考
@Pat 指出了另外一种解决方案,在使用Steam版的服务器时,可以设置 "-nosteam" 参数来使Steam版本服务器生成和Linux版本服务器相同的GUID,不过该办法对旧存档不适用,只适合创建新档的时候使用。

指出了steam_appid.txt文件的重要性:https://www.bilibili.com/video/BV1Qe411a7Ww

通用的服务器转移步骤:https://steamcommunity.com/sharedfiles/filedetails/?id=3144673630
5 条留言
NucBox  [作者] 2024 年 1 月 26 日 上午 8:12 
@Red 新版本先不用弄第七步了,试试能不能正常加载,正常的话不管就行
Red 2024 年 1 月 26 日 上午 6:38 
大佬第七步骤没看懂
NucBox  [作者] 2024 年 1 月 24 日 上午 8:31 
@Gentleman_Rabbit 好,我把这个也加上去。我自己测试的时候没有遇到过这个问题就没放这步。
Gentleman_Rabbit 2024 年 1 月 24 日 上午 6:51 
[已解决] 遗漏了一条指令

chattr +a Linux

用来锁住文件不被服务修改
Gentleman_Rabbit 2024 年 1 月 24 日 上午 6:32 
请问下,我新建的 steam_appid.txt 内容编辑为 1623730 权限为 444,能正常进入服务器但玩家数据还是没识别出来,登陆后依旧是新建人物界面。并且 txt 的内容也被修改成 2394010%,如果关闭服务器,txt 就会被清掉,这种情况有解决方法吗