帕鲁存档读不出来怎么办用 palworld-save-tools 把 Level.sav 转成 JSON改完再原样还原【免费下载链接】palworld-save-toolsTools for converting Palworld .sav files to JSON and back项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-toolspalworld-save-tools 是一款把 Palworld 的二进制 .sav 存档转换成可读 JSON、改完再转回去的开源命令行工具主打无损往返SAV → JSON → SAV 能得到比特级一致的文件。这篇文章按翻车现场 → 拆解原理 → 上手操作 → 实战改档 → 救急修复的顺序带你走一遍全程不依赖任何第三方库装好 Python 3.9 就能用。一、先讲一个真实的翻车现场凌晨两点服务器维护群里有人甩来一张截图基地围墙消失了两个满级帕鲁躺在公会仓库里失联更离谱的是有人把公会名字改成了乱码改不回去。原因是某次游戏更新后有人手动改坏了Level.sav而Level.sav不是普通的存档文件——它是一坨压缩过的二进制数据直接用记事本打开满屏都是乱码和看不见的字节。这种时刻能救场的不是重开新档而是把存档翻译成人话、找到出错的那一小块数据、改好、再翻译回二进制。palworld-save-tools 干的就是这件事它把Level.sav解压、解析成结构清晰的 JSON你改完 JSON 后再转回.sav游戏就能正常读出来。下面从为什么这个工具能做到讲起。二、存档文件不是文件是三层包装的礼物盒想不翻车先要知道对手长什么样。Palworld 的存档走的是 Unreal Engine 的 GVAS 格式外面又套了 zlib 压缩层。拆开来看大致是三层外层带PlZ魔数的压缩头记录解压后长度、压缩后长度和压缩方式。部分版本还会有CNK头多包一层信息。这部分逻辑在palworld_save_tools/palsav.py里负责解压和反向压缩。中层GVAS 文件本体包含版本号、引擎版本、自定义版本列表等头部信息解析引擎在palworld_save_tools/gvas.py。内层真正有价值的数据比如公会、角色、背包、据点。这些数据对普通编辑器是天书所以工具用palworld_save_tools/paltypes.py里注册的类型提示和解析器把它们逐一翻译成可读结构解析代码放在palworld_save_tools/rawdata/目录下。这一步看明白有个直接好处以后遇到存档转换失败的报错你能听懂报错在说哪一层。比如提示not a compressed Palworld save说明文件开头魔数不对多半是你把文件拖错了或者文件本身已损坏。三、装环境五分钟上手一个依赖都没有palworld-save-tools 最省心的地方是零依赖——不需要 pip 装任何第三方库只要本机有 Python 3.9 或更新版本。Windows 用户可以到 python.org 或微软商店装个 3.12Linux/macOS 一般自带。装好 Python 后拉取项目源码git clone https://gitcode.com/gh_mirrors/pa/palworld-save-tools cd palworld-save-tools不 clone 也行项目发布在 PyPI 上pip install palworld-save-tools一步到位。不过作者在 README 里提醒过工具迭代快、可能有破坏性变更建议锁版本号再升级。验证是否装好跑一句版本命令即可不报错就说明环境 OK。到这里你已经完成 80% 的准备工作接下来是真正动手的时刻。四、两条路把存档变成 JSON拖拽党和命令行党路线 AWindows 用户直接拖拽项目里的convenience_tools/convert.cmd就是为懒人准备的把.sav文件直接拖到convert.cmd图标上脚本会自动找到python并执行转换全程不用敲一行命令。单人游戏存档一般在%LOCALAPPDATA%\Pal\Saved\SaveGames\SteamID\SaveID把里面的Level.sav拖进去就行。转换完成后同目录会多出一个Level.sav.json。想还原时把这个 JSON 再拖一次就得到新的Level.sav。如果拖拽后弹窗报错多半是 Windows 的应用执行别名抢占了python命令去系统设置里关掉它或者改用下面的命令行方式。路线 B命令行一劳永逸命令行更直观也更好控制。在项目目录下执行python -m palworld_save_tools.commands.convert Level.sav工具会按扩展名自动判断方向输入.sav就转 JSON输入.json就转回 SAV。如果文件名不带扩展名可以用--to-json或--from-json强制指定方向。默认输出文件是原名.json或去掉.json的原名想改输出位置就用--output。为什么推荐先备份因为默认情况下如果输出文件已存在工具会停下来问你是否覆盖。而--force会跳过询问直接覆盖。建议永远别用--force覆盖原始存档先把原始.sav复制一份到别的目录再拿副本开刀。五、实战一改公会名字给新手的第一份开胃菜转出来的 JSON 虽然很大但结构其实有迹可循。想改公会名搜guild_name就行。公会数据存在.worldSaveData.GroupSaveDataMap里palworld_save_tools/rawdata/group.py会把每个公会解析成group_name、guild_name、admin_player_uid、成员列表等字段。操作三步走用 VS Code 打开Level.sav.json搜索guild_name会看到类似guild_name: 旧名字的字段。把值改成你想要的新名字保存。注意字符串要用英文引号包裹别留中文全角引号。命令行执行还原转换得到新的Level.sav放回存档目录启动游戏验证。避坑提示JSON 里的字段顺序、类型、层级都不要乱动只改值。这个工具的设计理念是正确性优先于性能只要你没动结构还原出来的文件能和原来比特级一致一旦你手滑删了字段或改了类型还原大概率失败所以改前备份、改后先转回试试。六、实战二给角色和帕鲁调属性从看得懂到改得动公会名只是热身。角色和帕鲁的数据在.worldSaveData.CharacterSaveParameterMap.Value.RawData对应palworld_save_tools/rawdata/character.py。解析后的 JSON 里会有一个object块里面是角色的各项属性HP、攻击、等级、技能、个体值IV等字段名基本能对上游戏内名词。举例你想把一只帕鲁的攻击力调高流程是在 JSON 里定位到那只帕鲁通过CharacterID或角色名。找到对应属性字段把数值改大。保存转回 SAV进游戏查看。这里有个新手最容易踩的坑改数值时手滑把整数改成了小数或把 100 改成了 100。类型一变还原阶段直接报错。改完多花十秒检查引号和数字格式能省掉一晚上的排查时间。如果只想解析角色数据、不想解析其他类型可以用--custom-properties精确指定python -m palworld_save_tools.commands.convert Level.sav --custom-properties .worldSaveData.CharacterSaveParameterMap.Value.RawData这样生成的 JSON 更小、转换更快适合只想改角色的场景。七、实战三服务器搬家与存档修复工具真正救命的时刻场景一单机转服务器把单机存档挪到专用服务器或者反过来最麻烦的是玩家 ID 对不上。这类迁移本质上是对存档里的玩家 UID 做替换社区里已有项目如 palworld-host-save-fix就是基于本工具做的。你可以把存档转成 JSON全局搜索旧 UID批量替换成新 UID再转回去。注意替换时要保证新 UID 格式一致GUID 的连字符位置不能错并且只替换存档内引用的位置别误伤其他数据。场景二存档损坏的诊断遇到存档无法读取先别急着删档重来。把损坏的.sav转成 JSON如果工具报解压长度不对或魔数错误基本可以判断是压缩层损坏这个层级靠工具救不回来但如果转换成功只是 JSON 里某个数据块异常你就有机会定点修复——把异常字段改回合理值再转回 SAV。场景三批量处理多个存档服务器管理员手上常有几十个玩家存档。写一个几行的循环脚本对目录下所有.sav依次调用转换命令即可。配合--minify-json还能压缩输出体积加快后续程序读取。这段脚本你自己用 shell 或 Python 都能写核心就是调用上面那条命令不需要引入额外依赖。八、性能与内存大存档的四个保命习惯README 里有一句重要警告Level.sav转 JSON 会生成非常大的文件处理时可能吃掉大量内存。四个保命习惯直接给到用现代编辑器打开 JSONVS Code 或 JetBrains 系 IDE别用系统记事本否则大文件直接卡死。按需解析用--custom-properties只解析关心的数据块跳过据点、植被等无关数据速度能快一个量级。输出用--minify-json工具默认输出带缩进的格式化 JSON方便人读但体积大机器处理或只想快速看数据时压缩格式更合适。大改动前先做往返验证拿一份副本先转 JSON 再立刻转回 SAV对比前后文件是否一致可用cmp命令对比。这一步能确认工具版本与你当前游戏版本兼容避免改了半天发现转不回去。九、你已经能做什么以及下一步值得试什么走到这里你已经掌握了一条完整的存档自救链路找到存档 → 转 JSON → 看懂结构 → 定点修改 → 还原验证。具体来说你现在可以修改公会名、玩家名这类文本数据调整角色和帕鲁的属性数值在服务器迁移时替换玩家 UID用--custom-properties精确控制解析范围节省时间和内存用往返转换验证存档健康度作为定期体检手段。下一步值得尝试的方向一是把--minify-json和批量脚本组合做一个自己的存档自动备份体检工具二是读一读palworld_save_tools/rawdata/下的解析代码试着理解某个数据结构比如base_camp.py里的据点字段你可能会发现游戏里很多数值都能从这里摸到源头。存档是自己的数据是死的工具在手主动权就在你手里。【免费下载链接】palworld-save-toolsTools for converting Palworld .sav files to JSON and back项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考