5 分钟上手幻兽帕鲁存档转换工具:palworld-save-tools 从备份到改档实战
【免费下载链接】palworld-save-toolsTools for converting Palworld .sav files to JSON and back项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools
深夜,你终于抓到心仪的帕鲁,却在一场云同步事故里亲手覆盖了整个存档。如果有一款幻兽帕鲁存档转换工具,能先把.sav变成看得懂的 JSON,改完再原样转回去,悲剧是不是就能避免?palworld-save-tools正是为幻兽帕鲁玩家、服务器管理员和 MOD 开发者准备的开源工具,它的核心功能就一句话:把帕鲁的.sav存档转成 JSON,再转回来。
这篇文章不打算按"介绍功能→安装步骤→常见场景"的老套路写,而是跟着一条真实的改档路线走一遍:从"存档为什么读不懂"开始,到 5 分钟完成第一次转换,再到安全改回、避开内存爆掉的坑。
你的存档,其实是一本"加密日记"
《幻兽帕鲁》的存档表面上是.sav文件,内里却是Unreal 引擎的 GVAS 二进制结构,外层还套着 zlib 压缩。这意味着一件事:你用记事本或十六进制编辑器打开它,看到的只会是一堆乱码和毫无规律的数字。
想绕开这个工具也有别的路子,但都谈不上好用:
| 做法 | 体验 | 风险 |
|---|---|---|
| 通用 UE 存档编辑器(如 uesave) | 只能解析引擎通用结构,帕鲁专属数据依旧是一团乱码 | 高 |
| 十六进制编辑器直接改 | 需要先弄清每个字节的含义,改错一个位都可能坏档 | 极高 |
| palworld-save-tools | 把全部已知帕鲁数据结构翻译成可读 JSON | 低,可无损还原 |
相比之下,palworld-save-tools的价值很直接:把"加密日记"翻译成"人话"。项目在palworld_save_tools/rawdata/目录下为每种数据结构都写了专门的解析模块,所以它认识的不只是 Unreal 引擎的通用格式,还包括帕鲁自己定义的几乎所有数据块——这是通用编辑器做不到的。
一个小贴士:作者的开发哲学里有两条值得注意——零第三方依赖(装个 Python 就能跑),以及SAV → JSON → SAV 要能做到"位级一致"(压缩前逐字节相同)。也就是说,你改完转回去,游戏读起来和原档没有任何差别。
5 分钟完成第一次存档转换
动手之前,先明确一件事:存档在哪儿?
- Windows Steam 版:
%LOCALAPPDATA%\Pal\Saved\SaveGames\<SteamID>\<SaveID>\ - 专用服务器:服务器配置的存档目录中
- 我们要处理的通常是最核心的那个
Level.sav
找到文件后,只需要 Python 3.9 及以上版本。两种方式任选:
# 方式一:装成命令行工具 pip install palworld-save-tools palworld-save-tools convert Level.sav --to-json # 方式二:直接跑仓库里的脚本 python convert.py Level.savWindows 用户还有个更省事的办法:把.sav文件直接拖到convenience_tools/convert.cmd上,松开鼠标就完成转换了,反向操作同理。
转换完成后,你会在同目录得到一个Level.sav.json。这里提前打个预防针:这个 JSON可能非常大(上百 MB 并不稀奇),建议用 VSCode 或 JetBrains 系编辑器打开,别用系统自带的记事本。
在 JSON 里,看懂你的整个帕鲁世界
打开 JSON 后你会发现,以前乱码一样的存档,现在变成了带缩进的、字段齐全的层级结构。项目文档里列出了它能完整解析的核心数据结构,我把它们翻译成了"人话"对照表:
| JSON 中的数据结构 | 对应游戏内容 | 你能拿来做什么 |
|---|---|---|
CharacterSaveParameterMap | 玩家与帕鲁的角色数据 | 调整等级、属性、技能 |
ItemContainerSaveData | 各类物品容器 | 改背包、仓库的资源数量 |
BaseCampSaveData | 基地与营地 | 优化布局、管理设施 |
GroupSaveDataMap | 公会等组织 | 管理公会成员与权限 |
CharacterContainerSaveData | 帕鲁存放容器 | 管理帕鲁仓库 |
WorkSaveData | 工作与任务数据 | 调整工作分配 |
举个例子,假如你想找到某只帕鲁的数值,顺着.worldSaveData.CharacterSaveParameterMap.Value.RawData这条路径找下去即可——每个字段名、每个数值都清清楚楚摆在眼前,不再需要靠"猜"和"试"来改档。
使用建议:遵循"小步修改"原则,一次只改一个数值,转回游戏验证无误后再继续下一项,方便问题定位。
改完了,怎么安全地"变回去"?
JSON 改好之后,反向转换同样是一条命令:
palworld-save-tools convert Level.sav.json --from-json输出文件默认是去掉.json后缀的原文件名。这里有几条用血泪换来的避坑清单:
- 先把原始
Level.sav备份到另一个目录,这是安全改档的第一原则; - 如果目标文件已存在,工具会弹出覆盖确认——批量操作时可以用
--force跳过确认; - 转回后务必进游戏验证一次,确认数值生效且存档可正常读取;
- 对改过的 JSON 做版本管理(比如用 Git 记录每次改动),后悔了随时回退。
这也正好呼应了前面提到的"位级一致"承诺:只要你不手滑写错 JSON 语法,转回的过程就不会偷偷"丢失"任何数据。
存档太大、内存告急?三招帮你稳住
处理超大存档时,最头疼的往往不是转换本身,而是内存。好在工具提供了几个针对性参数:
--custom-properties:选择性解析。只解析你关心的数据块,其余结构一律跳过。比如只想要角色和背包数据:
palworld-save-tools convert Level.sav --to-json \ --custom-properties ".worldSaveData.CharacterSaveParameterMap.Value.RawData,.worldSaveData.ItemContainerSaveData.Value.RawData"--minify-json:压缩 JSON 输出,去掉所有缩进和空行,文件体积更小,方便后续脚本处理;--convert-nan-to-null:把特殊浮点值转成 null,避免 JSON 中出现NaN/Infinity这类非标准写法。
如果你不想动手改 JSON,也可以直接借用生态里的现成工具:比如PalEdit提供了图形化的帕鲁编辑界面,palworld-server-tool面向服务器管理场景集成了存档解析能力——它们的内核,用的就是这套转换工具。
下一步,从一次安全的"备份演练"开始
改档这件事,最大的敌人从来不是工具,而是手滑。所以给你的第一份行动清单很简单:
- 找到你的
Level.sav,先复制一份放在安全位置; - 用
--to-json转出 JSON,不修改任何内容,直接转回; - 进游戏确认存档完好无损——现在你已经验证了整条链路;
- 从改一个物品数量、一只帕鲁的等级这类小目标开始,逐步熟悉 JSON 结构;
- 有兴趣再深入,可以参考项目
palworld_save_tools/rawdata/下的解析源码,理解每种数据结构背后的游戏逻辑。
改档带来的乐趣固然诱人,但也要记得尊重游戏平衡、优先在单人模式里体验。当你的存档已经"备份自由、修改自由"时,不妨问问自己:你更想用这份能力去补足遗憾,还是去探索那些正常游玩到不了的玩法边界?
【免费下载链接】palworld-save-toolsTools for converting Palworld .sav files to JSON and back项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考