公司动态

palworld-save-tools 使用全攻略:一次搞懂帕鲁存档 SAV 与 JSON 的无损互转

📅 2026/8/19 3:38:18
palworld-save-tools 使用全攻略:一次搞懂帕鲁存档 SAV 与 JSON 的无损互转
palworld-save-tools 使用全攻略一次搞懂帕鲁存档 SAV 与 JSON 的无损互转【免费下载链接】palworld-save-toolsTools for converting Palworld .sav files to JSON and back项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools玩过《幻兽帕鲁》的朋友多少都动过改存档的念头想让某只帕鲁更强一点、想把卡进建筑里的角色捞出来、想给服务器玩家发点福利……可当你兴冲冲打开Level.sav满屏二进制乱码瞬间劝退。palworld-save-tools 就是专门解决这个问题的开源工具它能把.sav存档转成人类可读的 JSON你改完之后再无损转回整个过程不丢一个字节。先把痛点摆上桌为什么存档不能直接改帕鲁的存档文件不是普通的文本它本质上是经过压缩的二进制数据。用记事本打开看到的全是乱码用十六进制编辑器硬改等于闭着眼在保险柜里拆炸弹——手一抖整份存档报废几十个小时的游戏进度化为乌有。更麻烦的是游戏里很多数据根本没有官方修改入口公会信息、据点布局、角色状态、物品容器……全都以专用格式藏在Level.sav里。想动它们必须先翻译成能看懂的东西。palworld-save-tools 干的就是这件事把二进制存档翻译成 JSON改完再翻译回去。它凭什么敢承诺无损这个工具的核心设计理念就一句话正确性优先于性能。开发者明确保证SAV → JSON → SAV的往返转换能产出压缩前逐比特一致的原始文件。也就是说你哪怕什么都不改只转一圈得到的.sav也和原来一模一样不会出现转完就坏档的悲剧。支撑这份承诺的有两点零依赖只依赖 Python 3.9 标准库不需要装任何第三方包部署成本几乎为零。专精解析它不是通用的 Unreal 存档编辑器而是专门为帕鲁开小灶能读懂游戏独有的数据结构。数据结构对应内容GroupSaveDataMap公会、组织等群体信息CharacterSaveParameterMap玩家与帕鲁的角色数据ItemContainerSaveData物品容器箱子、背包BaseCampSaveData据点数据WorkSaveData工作分配信息DynamicItemSaveData动态物品MapObjectSaveData地图物件FoliageGridSaveDataMap植被/资源刷新数据对比通用工具只能解析骨架、对这些肉视而不见palworld-save-tools 几乎覆盖了游戏内所有已知数据结构这才是它真正的价值所在。三分钟上手把第一个存档翻译出来第一步准备环境只需要 Python 3.9 或更高版本。Windows 用户建议从微软商店或 python.org 安装Linux/macOS 用户一般自带。第二步Windows 最快路径——直接拖拽源码仓库里自带一个convenience_tools/convert.cmd批处理脚本它会自动检测python、python3、py等可用命令。使用时把.sav文件直接拖到脚本图标上松手即可等待片刻就能在同目录得到.sav.json。把.sav.json拖回去又变回.sav双向通用。提示Steam 版存档默认位于%LOCALAPPDATA%\Pal\Saved\SaveGames\SteamID\SaveID把Level.sav、LevelMeta.sav拖进去就能转换。第三步命令行方式所有平台通用装了包之后在终端里执行python -m palworld_save_tools.commands.convert Level.sav生成Level.sav.json后用任意文本编辑器改完再执行python -m palworld_save_tools.commands.convert Level.sav.json工具会根据扩展名自动判断转换方向.sav就转 JSON.json就转回 SAV。万一文件扩展名特殊可以用--to-json或--from-json强制指定方向用--output自定义输出路径。打开 JSON 之后这些字段到底是什么意思转换出的 JSON 以worldSaveData为主干下面挂着各种 Map。举个例子公会数据在GroupSaveDataMap里角色数据在CharacterSaveParameterMap里。角色条目解码后大致长这样示意实际字段以游戏版本为准{ CharacterSaveParameterMap: { Value: { RawData: { object: { HP: 100, MaxHP: 120, PlayerName: myname } } } } }想改数值搜索对应字段名改掉即可。但请记住一条铁律动手前先把原始.sav复制一份存到别处这是所有存档修改玩法的底线。背后发生了什么一次转换的三层拆解理解原理能帮你少踩很多坑。一次转换其实经历了三层处理解压层.sav文件头有PlZ魔数标记内部用 zlib 压缩还存在单层压缩0x31和双层压缩0x32两种类型。这活儿由palsav.py负责就像先打开一个俄罗斯套娃。框架层解压后得到的是 Unreal Engine 的 GVAS 格式——一种复杂的二进制属性结构由gvas.py负责解析相当于把整个文件的目录骨架搭出来。业务层光有骨架还不够paltypes.py声明了帕鲁专属的类型路径rawdata/目录下的各模块character.py、group.py、item_container.py、base_camp.py等再把每种业务数据解码成能看懂的字段。无损的秘密就藏在业务层每个数据类型的decode和encode是成对编写的严格逆过程连无法理解的未知字节也会原样保留。所以翻译过去再翻译回来结果分毫不差——这正是它敢叫板无损的底气。进阶玩法批量处理与按需解析大存档太吃内存按需解析转换Level.sav会生成非常大的 JSON动辄几百 MB既吃内存又费时间。如果你只关心公会和角色数据可以用--custom-properties只解析指定路径python -m palworld_save_tools.commands.convert Level.sav \ --custom-properties .worldSaveData.GroupSaveDataMap,.worldSaveData.CharacterSaveParameterMap.Value.RawData再配合--minify-json压缩输出体积大存档也能轻松处理。服务器管理员写个批量脚本如果你管理多人生存服务器需要批量处理多个玩家的存档一个小脚本就能搞定import subprocess from pathlib import Path for sav in Path(saves).glob(*.sav): subprocess.run([ python, -m, palworld_save_tools.commands.convert, str(sav), --minify-json ]) print(全部转换完成)避坑清单这些坑我先替你踩过了JSON 太大打不开别用记事本用 VSCode 或 JetBrains 系编辑器否则会卡死。内存不足换 64 位 Python配合--minify-json和--custom-properties按需解析。Windows 拖拽没反应检查 Python 是否真的装好了以及系统的应用执行别名是否干扰了python命令。输出文件已存在工具默认会询问是否覆盖脚本化运行时记得加--force跳过确认。特殊浮点数默认会保留 NaN/Inf 等特殊值如果加--convert-nan-to-null会丢失这类信息非必要别开。转换失败先确认 Python ≥ 3.9再确认游戏版本与工具版本兼容。收尾现在轮到你了这个工具的上手成本真的很低——装好 Python拖一下文件改一改 JSON再拖回去就完成了人生第一次合法改档。无论你是想调教数值、修复坏档还是给服务器玩家发福利它都能成为你的得力助手。去把存档备份好然后动手试试吧。读完这篇文章你可以带走这几点palworld-save-tools 能实现 SAV 与 JSON 的双向无损转换比特级还原有官方承诺兜底。它零依赖、一条命令即可运行Windows 用户甚至只需拖拽convert.cmd。大型存档有按需解析 压缩输出的组合拳服务器批量处理也有现成脚本思路。记住铁律改档前先备份配合避坑清单基本不会翻车。【免费下载链接】palworld-save-toolsTools for converting Palworld .sav files to JSON and back项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考