幻兽帕鲁换服丢档自救手册:palworld-host-save-fix 存档迁移完整教程
【免费下载链接】palworld-host-save-fixFixes the bug which forces a player to create a new character when they already have a save. Useful for migrating maps from co-op to dedicated servers and from one dedicated server to another.项目地址: https://gitcode.com/gh_mirrors/pa/palworld-host-save-fix
周日中午,你端着一碗泡面坐到电脑前,准备验收刚搭好的专用服务器。启动、连服、读档,一气呵成,然后屏幕中央弹出四个字:创建新角色。昨晚还在旧服里骑空涡龙、守着满基地帕鲁的你,一夜之间成了"黑户"。先别摔键盘,存档其实一条没丢——palworld-host-save-fix,正是专门修复"已有存档却被强制新建角色"这个跨服迁移 bug 的开源工具,它能把旧存档连同角色、帕鲁、基地,完整"对上"新服务器分给你的新身份。
这篇不玩虚的,按"答疑 → 自查 → 实操 → 原理 → 排错"的顺序走:先解答五个最常被问的问题,再给一张动手前自检清单,然后完整走一遍从下载到角色回归的流程,原理放到中段单独讲透,最后用一张报错对照表兜底。
换服丢档是怎么回事?五个高频问题先对号入座
问 1:存档明明在服务器上,为什么角色"没了"?
存档在,但服务器不"认"你。它靠 GUID(32 位十六进制字符串,相当于玩家的身份凭证)识别角色,新服务器生成的新 GUID 跟旧存档里的对不上,于是它认定你从没来过。详细机制见后文"原理"一节。
问 2:屏幕上的"创建新角色",点了会清档吗?
点"创建"只是新开一个角色,不会删旧数据;但千万不要点"删除角色",那才是真没了。整个流程里,旧数据始终静静躺在存档里,只是暂时没人认领。
问 3:合作模式搬专用服务器,和专用服务器互搬,是一回事吗?
流程骨架一样,区别在两个点:合作模式主机的旧 GUID 永远是00000000000000000000000000000001,且默认不开公会修复;专用服务器互搬则人人丢档,每个玩家都要配对"新旧 GUID",还必须开启公会修复。下文实操部分两种都会讲到。
问 4:全队人都被强制新建角色,是不是存档坏了?
恰恰相反。专用服务器跨平台互搬(Windows 服 → Linux 服等)时,所有玩家的 GUID 都会变,人人丢档是"正常现象",说明存档本身完好,只是身份凭证全对不上了。一人跑一遍修复命令即可。
问 5:修完之后,等级、帕鲁、公会、基地真的都保得住?
角色等级、背包、建筑基本无损;公会关系和帕鲁归属存在两个已知的小 bug,官方给了对应解法(丢帕鲁重新拾取、退会重进),本文结尾 FAQ 有交代。真碰到修不完整的,还有兜底方案。
动手前,先勾掉这张自检清单
开工之前,请花五分钟把下面七项全部过一遍。省这五分钟,可能换来五个小时的返工。
- 备份存档到服务器之外:U 盘、网盘、另一块硬盘都行,整个存档文件夹复制一份。记住,脚本不承诺任何安全网——它只负责"改",坏不坏另说,所以副本越多越安心。
- 确认 Python 版本 ≥ 3.10:命令行里敲
python --version看一眼,太旧就先升级。 - 装好解析库 palworld-save-tools:版本固定为 0.17.1,安装命令在下一节。
- 拿到工具代码:
git clone地址在下一节,仓库名 palworld-host-save-fix。 - 看懂存档结构:
Level.sav是整个世界的"大地图";Players文件夹里每个.sav文件的文件名,就是一名玩家的 GUID。 - 新旧 GUID 各就各位:新 GUID 来自新服务器上新建的角色文件,旧 GUID 来自旧存档,一一对应别弄混。
- (合作模式专属)搬档前处理两个雷:公会所有权先转给别的角色、让主机退会;建了观赏笼就先拆掉,这两样不处理,迁移后问题不断。
一次跑通全程:从下载到角色回归的迁移步骤
先把环境装齐,两条命令的事:
# 安装解析 .sav 存档的核心依赖 python -m pip install palworld-save-tools==0.17.1 # 拉取工具代码并进入目录 git clone https://gitcode.com/gh_mirrors/pa/palworld-host-save-fix cd palworld-host-save-fix然后按顺序走完下面九步(以"合作模式 → Windows 专用服务器"为例,其他场景的差异放在本节的"变体"里):
- 把旧档复制进新服务器。合作存档在
AppData\Local\Pal\Saved\SaveGames\<随机数字>,整个文件夹复制到专用服务器的PalServer\Pal\Saved\SaveGames\0下。接着打开服务器的GameUserSettings.ini,把DedicatedServerName改成这个存档文件夹的名字。改错了,服务器会开一张全新地图,等于白搬。 - 删掉存档文件夹里的
WorldOption.sav。它的存在会让服务器的世界设置修改不生效。删掉后唯一的影响是玩家要重新选一次重生点。 - 启动服务器,让主机登进去建一个"占位角色"。没错,先故意建个空白号。它的
.sav文件会出现在Players文件夹里——这个文件名就是新 GUID。 - 把新 GUID 完整抄下来。去
Players文件夹找最新冒出来的那个.sav,去掉.sav后缀,剩下的 32 位字符串就是它。备注:别把扩展名一起抄进去,工具会当场报错教你做人。 - 关服,把整个存档文件夹复制到临时文件夹。注意,是"带着占位角色"的那一份。后续所有操作都在临时文件夹里进行,服务器上的原档先别动。
- ⚠️ 给临时文件夹也做一次备份。上面清单里的备份是对原档的,这里是对"待处理副本"的——双保险,不亏。
- 跑修复命令。在工具目录里执行下面这行,把尖括号里的内容换成你的实际值:
python fix_host_save.py "临时文件夹路径/存档文件夹名" 新GUID 00000000000000000000000000000001 False合作模式主机的旧 GUID 永远是00000000000000000000000000000001;末尾的False表示这次不做公会修复(原因见原理一节)。命令会先弹出一段数据风险警告,确认你已经备份过后,按回车继续。脚本会依次完成"解压存档 → 替换 GUID → 压回存档 → 改文件名"整条流水线。 8.看到Fix has been applied! Have fun!。这一行就是成功信号 🎉。没看到?去后面的报错对照表对号入座。 9.把临时文件夹里的存档复制回服务器。服务器上原来的那份先改名或挪走,别覆盖错方向。重启服务器,让主机登录——角色、等级、背包应该都在。
变体一:全员换服,命令多跑几遍
专用服务器互搬(比如 Windows 服搬到 Linux 服)时,人人都是"黑户",没有谁能替别人扛事。流程照旧,但每个玩家都要先在服务器上建一个占位角色,把"玩家 → 新旧 GUID"的对应关系记下来,然后依次对每个人执行:
python fix_host_save.py "临时文件夹路径/存档文件夹名" 玩家一的新GUID 玩家一的旧GUID True python fix_host_save.py "临时文件夹路径/存档文件夹名" 玩家二的新GUID 玩家二的旧GUID True注意两处变化:末尾参数改成True(开启公会修复,因为没有"完好角色"能当公会会长了);旧 GUID 不再是全 0,而是各自在旧服里的身份凭证。逐个跑的好处是:谁出问题立刻知道是哪对 GUID 对不上,不会一锅端。
变体二:GUID 找不到,用游戏内指令挖出来
给服务器设一个管理员密码,进游戏后在聊天框输入/adminpassword <你的密码>,再输入/showplayers。列表里的playeruid是一串十进制数字,转成 8 位十六进制就是 GUID 的前缀:
python -c "print(format(你的playeruid数字, '08x'))"拿这个前缀去Players文件夹里匹配文件名,就能锁定对应玩家。
不想手敲命令?开图形界面
直接运行python gui.py。窗口里点 Browse 选存档文件夹,工具会自动扫描Players目录,把每个角色解析成"角色名(等级)"放进下拉框——选人就行,不用记 GUID。勾上公会修复,点 Run Command,回终端按一下回车确认,完事。这个模式尤其适合替看不懂命令的队友代劳。
原理讲透:palworld-host-save-fix 到底在改什么
把存档想象成驿站里的一堆包裹,GUID 就是贴在包裹上的取件码。你在 A 驿站存了满屋子的家当,取件码是旧的那串;搬到 B 驿站,B 只认自己发的取件码。你拿旧码去取,B 一查:查无此单,当场给你补发一个新码。可问题是,A 驿站那堆包裹上贴的还是旧码——两边永远对不上,东西自然"取不出来"。
幻兽帕鲁的存档就是这个逻辑。合作模式、Windows 专用服务器、Linux 专用服务器、SteamCMD 专用服务器,每种环境生成 GUID 的规则都不一样,所以一换服,新服务器生成的 GUID 与旧存档里的对不上,它就断定"你没有角色",然后弹出创建新角色。
palworld-host-save-fix 做的事,翻译成人话就是:把旧包裹上所有旧取件码撕掉,统一贴上你手里的新取件码。具体流水线是:
- 用 palworld-save-tools 库把
.sav二进制存档解压成可读的 JSON; - 在 JSON 里找出所有出现旧 GUID 的位置统一替换——玩家档案(
PlayerUId、IndividualId)、世界存档(Level.sav里的角色参数),以及公会数据(GroupSaveDataMap,仅在开启公会修复时处理); - 把改好的 JSON 压回
.sav格式; - 把玩家存档从"旧GUID.sav"改名为"新GUID.sav"。
服务器再启动时一看:取件码对上了,档案齐全,欢迎回家。
有个边界值得说清:它只改"身份对应关系",不碰你的等级、帕鲁、建筑数据本身。这也是为什么你总觉得"丢了"——其实什么都没丢,只是被挂在一个没人认领的 ID 下面,工具把 ID 重新接上而已。
(想研究存档内部到底存了什么?仓库里附带的extract_byte_data.py能把存档 JSON 中所有尚未解码的原始字节导出成文件,属于进阶玩法,普通迁移用不上。)
常见报错对照表:报错信息、原因、解法一次对齐
| 你看到的提示 | 原因 | 解法 |
|---|---|---|
ERROR: Invalid <guild_fix> argument | 第四参数不是 True 或 False | 检查拼写与大小写,只能是True或False |
ERROR: It looks like you're providing the whole name of the file... | 把.sav后缀一起复制进了 GUID | 只保留 32 位字符 |
ERROR: Your <new_guid> should be 32 characters long... | 复制时漏了字符 | 回Players文件夹重新核对文件名 |
ERROR: It looks like you're using the same GUID for both... | 新旧 GUID 填成了同一个 | 它是"改名"不是"自嗨",两个参数必须不同 |
ERROR: Your given <save_path> ... does not exist | 临时文件夹路径写错 | 核对路径,含空格时用引号包住 |
ERROR: Your player save does not exist | 占位角色还没建,或新 GUID 抄错 | 回服务器建角色,等Players里出现新文件 |
ModuleNotFoundError: No module named 'palworld_save_tools' | 解析库没装上 | 重跑python -m pip install palworld-save-tools==0.17.1 |
| 修完帕鲁不干活、不攻击 | 帕鲁 bug:帕鲁没挂到正确的公会名下 | 进基地,把帕鲁从队伍里全部丢到地上再捡起来,基地里的工作帕鲁也要捡一遍 |
| 左键按住无法连续攻击 | 修复后的残留小问题 | 退出公会再重新加入,一般当场消失 |
收尾问答:修完之后还会遇到的四个问题
问:修完能立刻上线开玩吗?
建议先玩满 5 分钟,重点观察两件事:帕鲁在基地是否正常干活/攻击,左键连点是否失灵。这两项是官方点名的高发残留问题,解法都在上表里,其余基本无感。
问:这工具会把存档彻底搞坏吗?
作者自己都在文档里写明"实验性、有已知 bug、请务必备份"。所以备份是硬要求;万一你在 30-40 级以上的中后期大档上遇到修复不完整,可以把存档交给项目作者帮助完善——这类工具就是靠真实玩家的存档喂出来的,用的人越多越稳。
问:命令行和 GUI 选哪个?
自己折腾、想看清每一步,用命令行;帮朋友弄、或者看见 32 位字符串就头疼,用 GUI 扫一遍存档,角色名配等级直接选。两者最终生成的其实是同一条命令。
问:下次再换服,还要重来一遍吗?
要。这工具"一次一单",每次跨服或跨平台迁移都得重新走"建占位角色 → 拿新 GUID → 跑命令"这套流程。不过流程熟了以后,一个人十分钟就能搞定,真不算事。
好了,该说的都说了。把这篇收藏好,备份先做扎实,剩下的就是照单执行。新服务器的草地已经刷新,你辛辛苦苦抓回来的那窝帕鲁,正等你上线给它们补一顿蛋糕——去吧,别让它们等太久。
【免费下载链接】palworld-host-save-fixFixes the bug which forces a player to create a new character when they already have a save. Useful for migrating maps from co-op to dedicated servers and from one dedicated server to another.项目地址: https://gitcode.com/gh_mirrors/pa/palworld-host-save-fix
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考