RenPy 存档怎么修改?savetoken 关保护 + 改数值改物品完整教程
一、RenPy 存档为什么改不了
用 RenPy 引擎做的游戏(欧美系 Galgame 很常见),存档是一个后缀为 .save 的文件,内容本质是 pickle 序列化的 Python 对象——也就是把游戏里那些变量的值”打包”存下来。所以理论上你要的就是:找到那个变量,把值改成你想要的。
但很多人改完发现读不进去 / 存档损坏 / 游戏不认。原因大多是碰到了 RenPy 的存档保护机制(savetoken)。
savetoken 是什么
RenPy 会在存档里写入一个令牌(token),游戏启动读档时会校验它。如果你直接用工具改了存档,token 对不上,游戏就直接拒绝加载。所以改存档前,第一步永远是关掉这个校验。
二、第一步:关闭存档保护(savetoken)
打开游戏安装根目录下的 renpy/savetoken.py 文件(注意是游戏本体的 renpy 目录,不是 RenPy 引擎安装目录):
- 用记事本 / 任何文本编辑器打开
renpy/savetoken.py - 按
Ctrl + H打开替换 - 查找
if token_dir is None:,全部替换为if True:—— 一般有 3 处,都要替换 - 保存文件,重新启动游戏(或重新进入存档界面)
这样存档校验就关闭了,之后改的存档才能正常读取。
⚠️ 不同版本/游戏可能略有差异:如果找不到
token_dir is None,就搜索包含token和None的判断语句,用同样思路把校验分支改成恒真即可。改之前建议把原文件备份一份。
三、第二步:打开并修改 .save 存档
找到存档位置
RenPy 存档一般在这些位置(具体看 renpy/config 的 savedir 设置):
- 游戏目录下的
save/或saves/文件夹 - Windows 用户数据目录:
C:\Users\<你>\AppData\Roaming\RenPy\<游戏名>\ - Mac:
~/Library/RenPy/<游戏名>/
文件名形如 15-3-LT1.save(编号-页码-槽位),注意文件名要保持原样,不要多出括号或改动。
用工具读取 .save
.save 是 pickle 二进制,别用纯文本编辑器硬改(会乱码)。推荐方式:
- 图形化存档编辑器:部分游戏社区有针对性的存档修改工具,可视化地改金币、属性、物品。
- Python 脚本:用 RenPy 自带的
renpy.get_save_data()或直接pickle.load()读存档,改感兴趣的字段后再pickle.dump()写回。适合懂一点 Python 的玩家。
import pickle# 读取(示例,具体字段按游戏而定)with open("15-3-LT1.save", "rb") as f: data = f.read() # 实际需按 RenPy 存档结构解析常见变量的定位思路
- 金币 / 属性这类数值:通常是一个整数字段(如
count、money、某个Int属性),找到后直接改小或改大。 - 物品 / 装备这种列表:物品往往存在一个
appendList(追加列表)里,找到对应物品的count字段修改数量。注意列表顺序不一定和你背包显示顺序一致,别只按位置猜。 - 全回想 / 选项解锁:一般对应一组布尔值,把对应的
False改成True就行——配合站内 renpy-游戏全回想gallery解锁完全指南 一起看更清楚。
不同游戏变量名不同,没有一套万能字段名。先备份,再大胆试,改坏了就还原。
四、第三步:回游戏读档
改完保存 .save 后,启动游戏 → 进入存档界面 → 读取你改过的那一档。如果一切正常,你就会看到数值已经变成了你改的值。
五、注意事项与进阶
- 务必先备份:改存档前把整个
save文件夹复制一份,改坏了能一键还原。 - 版本敏感:不同游戏版本存档结构可能变,换版本后旧存档可能要重新改。
- 和汉化/解包的配合:如果你还想改剧本、改文本,那是解包派系的活;存档修改只动”运行时的变量值”。
- 想深入 RenPy 文件结构,可以看站内的 renpy-汉化全家桶:rpatool-unrpyc-实战解包与文本提取教学 和 unrpyc完全指南:renpy游戏逆向工程实战。
- 想改的是”全回想解锁”而不是数值,那直接用 renpy-游戏全回想(gallery)解锁完全指南 更快。
六、小结
RenPy 改存档就两步:先关掉 savetoken 校验(改 renpy/savetoken.py 里 3 处 if token_dir is None: 为 if True:),再用工具改 .save 里的目标变量(数值改 count、物品改列表 count、回想改布尔值)。改前一定要备份,改坏了随时还原。
只要按这个思路走,绝大多数 RenPy 游戏都能顺利改出你想要的金币和属性。遇到具体的乱码字段,把字段截图发到社区一问,基本都有答案。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!