幻兽帕鲁存档转换终极指南:简单三步把 .sav 改成你能看懂的 JSON
【免费下载链接】palworld-save-toolsTools for converting Palworld .sav files to JSON and back项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools
palworld-save-tools 是专门处理幻兽帕鲁存档的开源转换工具:它能把二进制 .sav 存档转成可读可编辑的 JSON,改完再转回 .sav,全程命令两行搞定,新手也能 5 分钟上手。
| 对比项 | 传统手工改档 | Palworld Save Tools |
|---|---|---|
| 打开存档 | 二进制乱码,肉眼不可读 | 清晰的 JSON,任何文本编辑器都能开 |
| 修改方式 | 十六进制编辑器 + 查偏移,极易翻车 | 直接找到字段改数值 |
| 回滚成本 | 偏移写错,存档报废 | 保留备份,转回来就行 |
| 支持范围 | 零星字段 | 覆盖已知数据结构:角色、物品、基地、地图等 |
| 上手门槛 | 要懂逆向 | 会复制两条命令即可 |
30 秒装好工具 📦
懒人方案(Windows 预编译版):下载最新 release 压缩包并解压,之后把.sav文件拖到convert.cmd上就会自动转成 JSON;想把 JSON 改回去,把Level.sav.json拖上去即可。全程不用装 Python。
命令行方案(适合 Mac / Linux / 服务器玩家):装好 Python 3.9+ 后执行:
pip install palworld-save-tools装完就有palworld-save-tools命令可用。如果要从源码获取,clone 仓库地址为https://gitcode.com/gh_mirrors/pa/palworld-save-tools。
两条命令完成存档转换 🛠️
首次转换只需要两条命令:
palworld-save-tools convert Level.sav --to-json # 存档 → JSON palworld-save-tools convert Level.sav.json --from-json # JSON → 存档转换后会生成与源文件同名的.json文件,用 VS Code 这类编辑器打开就能改;改完用--from-json转回.sav,游戏即可正常加载。文件名对不上时,这两个参数会强制指定转换方向。
找到你的存档文件 🗺️
| 运行环境 | 存档位置 |
|---|---|
| Windows(Steam 单机) | %LOCALAPPDATA%\Pal\Saved\SaveGames\<SteamID>\<SaveID>\,主存档是Level.sav |
| 专用服务器 | 服务器配置文件中指定的存档目录 |
| Linux 服务器 | 通常在服务器数据目录下的SaveGames子文件夹 |
动手前先把Level.sav复制一份出去。存档一旦改坏,备份就是你唯一的退路,这一步不能省。
看懂你的数据 📋
Level.sav里的数据按业务分成几块,改之前先认人:
| 数据结构 | 管什么 |
|---|---|
CharacterSaveParameterMap | 玩家和帕鲁的等级、经验、天赋等属性 |
ItemContainerSaveData | 背包、箱子、仓库里的物品与资源 |
CharacterContainerSaveData | 帕鲁栏位里收服的每一只帕鲁 |
BaseCampSaveData | 基地设施与生产信息 |
MapObjectSaveData | 地图上的建筑、采集点及其位置 |
GroupSaveDataMap | 公会成员与权限 |
想改什么,就定位到对应的块,别跨块乱动。
常见修改任务:三步走
第一步,转出来。用前面的--to-json命令,得到一份 JSON 副本。
第二步,改数值。只改数字、不改结构。示意如下:
"CharacterSaveParameterMap": { "SaveParameter": { "Level": 50 } // 角色等级 }, "ItemContainerSaveData": { "Slots": [ { "ItemId": "ITEM_PAL_SPHERE", "StackCount": 999 } ] // 帕鲁球数量 }典型任务基本就这三类:调角色属性(等级、经验、天赋)、加物品资源(背包、仓库里的数量)、调帕鲁属性(收服帕鲁的等级与成长)。改之前心里要有一杆秤:改哪个字段、改多少。
第三步,转回去。--from-json生成新.sav,进游戏验证效果;出问题就回滚到备份。
高效进阶玩法 🔧
- 只解析需要的部分:
Level.sav转出来可能非常大,加--custom-properties可以只解码指定数据,省时省内存,例如--custom-properties .worldSaveData.GroupSaveDataMap,.worldSaveData.CharacterSaveParameterMap.Value.RawData就只解析公会和角色数据。 - 压缩输出:
--minify-json生成紧凑 JSON,文件更小,方便其他工具或脚本消费。 - 跳过覆盖确认:
--force在目标文件已存在时直接覆盖,不询问。 - 自定义输出位置:
--output指定输出文件路径,不覆盖原存档。 - 批量处理:经常要处理多个存档时,可以写个脚本循环调用转换命令,一次性批处理完。
避坑指南 ⚠️
现象:转换时卡死或内存爆了。原因:Level.sav转 JSON 会生成很大的文件,吃内存。 解决:用--custom-properties只解析你关心的部分;换 64 位 Python;关掉其他占内存的程序。
现象:改完之后游戏读不了存档。原因:JSON 语法写错,或者动了数据结构。 解决:用 JSON 校验工具检查语法;确认自己只改了数值没改结构;不行就换回备份重来。
现象:覆盖旧文件时总弹出确认。原因:输出文件已存在,工具默认会询问。 解决:脚本场景加--force直接覆盖;手动操作时看清楚提示再按键。
现象:改档后角色/帕鲁数据异常。原因:改错字段或数值超出范围。 解决:先在单人存档上小范围测试;记录每次改动的字段和数值,方便回滚定位。
想深入看看 🔍
核心代码都在项目里,翻一翻不神秘:
- 存档读写引擎:
palworld_save_tools/archive.py - 游戏数据类型映射:
palworld_save_tools/paltypes.py - 命令行入口:
palworld_save_tools/commands/convert.py - 各类对象解析器:
palworld_save_tools/rawdata/
设计原则只有两条:不加额外依赖(标准 Python 环境直接跑),转换准确性优先——SAV 转 JSON 再转回 SAV,应当得到位级一致的文件。
动手之前,最后叮嘱一句
备份是底线,适度修改是乐趣。先把Level.sav复制一份,再开始你的第一次改档——改完记得进游戏验证,出任何问题都有退路。
【免费下载链接】palworld-save-toolsTools for converting Palworld .sav files to JSON and back项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考