Skip to main content
S
SaveEditor.Online
renpy visual-novel technical guide

Ren'Py 存档编辑:完整技术指南

11/25/2025 By SaveEditor Team

简介

Ren'Py 存档编辑器界面

Ren’Py 是创建视觉小说最流行的引擎,为从独立恋爱故事到复杂叙事冒险的数千款游戏提供支持。像心跳文学部片轮少女等众多游戏都是用 Ren’Py 构建的。

如果您曾经想跳过繁琐的重玩、解锁所有路线,或者只是想看看不同选择会发生什么,您可能尝试过编辑 Ren’Py 存档文件——却发现它不像更改文本文件那么简单。

本指南解释了为什么 Ren’Py 存档特别难以编辑,并提供了修改游戏进度的实用替代方案。

为什么 Ren’Py 存档这么难编辑?

与大多数将数据存储为 JSON、XML 或简单二进制结构的游戏引擎不同,Ren’Py 使用 Python 内置的 pickle 模块进行序列化。

什么是 Pickle?

pickle 是一个 Python 模块,可以序列化(保存)和反序列化(加载)几乎任何 Python 对象,包括:

  • 函数
  • 复杂的嵌套数据结构
  • 对其他对象的引用

当您在 Ren’Py 中保存游戏时,它不只是将”Affection = 100”作为数据保存。它将整个游戏状态——每个 Python 对象、每个类实例、每个变量——转储为一个二进制块。

Pickle 文件的问题

  1. 安全风险:从不受信任的来源反序列化(加载)数据可能执行任意代码。这就是为什么构建一个安全的基于 Web 的 Ren’Py 存档编辑器极其困难。

  2. 类依赖:要正确反序列化 pickle 文件,您需要访问原始的类定义。没有游戏的确切 Python 代码,重新序列化修改后的数据通常会导致错误或损坏。

  3. 内部引用:Python 对象可以相互引用。修改一个值可能会破坏其他地方的引用。

Ren’Py 存档文件里有什么?

尽管存在挑战,我们仍然可以读取 Ren’Py 存档的内容。以下是您通常会找到的内容:

  • 游戏变量:如 has_met_characterroute_completedaffection_points 等标志。
  • 持久数据:存储在 persistent.* 变量中的跨存档数据。
  • 回滚历史:为回滚功能记录的最近交互。
  • 当前位置:保存时的标签和对话行。
  • 游戏时间:总游戏时间。

我们的 Ren’Py 存档查看器 可以解析和显示这些信息,这对于以下用途很有用:

  • 调试游戏进度
  • 检查特定路线是否被触发
  • 验证变量值

修改 Ren’Py 游戏的替代方法

由于直接编辑存档有风险,以下是更安全的替代方案:

方法 1:开发者控制台(推荐)

大多数 Ren’Py 游戏都有内置的开发者控制台:

  1. 启动游戏。
  2. Shift + O 打开控制台。
  3. 直接输入 Python 命令,例如:
    affection = 100
    has_ending_1 = True
  4. 您的更改立即生效。

注意:某些游戏可能禁用了控制台。检查 config.console 设置。

方法 2:编辑 persistent.py

Ren’Py 在一个名为 persistent 的文件中存储跨存档数据。这个文件也是 pickle 的,但比完整存档更简单:

  1. 找到 persistent 文件(通常在 game/saves/%AppData%/RenPy/[游戏名]/)。
  2. 使用 Python 脚本加载、修改和重新保存它:
    import pickle
    with open('persistent', 'rb') as f:
        data = pickle.load(f)
    data['gallery_unlocked'] = True
    with open('persistent', 'wb') as f:
        pickle.dump(data, f)

警告:这需要您的电脑安装 Python,并且具有与 pickle 操作相同的风险。

方法 3:作弊模组

许多流行的 Ren’Py 游戏都有社区制作的作弊模组,可以:

  • 解锁所有路线
  • 最大化好感度
  • 启用作弊菜单

在 F95zone 或 Nexus Mods 等网站上搜索”[游戏名] cheat mod”。

方法 4:Unren(反编译)

对于高级用户,您可以使用 unrenunrpyc 等工具反编译 Ren’Py 游戏:

  1. 反编译 .rpy 脚本。
  2. 找到并修改变量检查。
  3. 重新打包游戏。

这是最强大的方法,但也是最复杂的,可能违反游戏的使用条款。

存档文件位置

Ren’Py 游戏在特定于平台的位置存储存档:

平台位置
Windows%AppData%\RenPy\[游戏名]\game\saves\
macOS~/Library/RenPy/[游戏名]/
Linux~/.renpy/[游戏名]/
Android/sdcard/Android/data/[包名]/files/saves/

文件命名为 1-1-LT1.save(槽位 1)、2-1-LT1.save(槽位 2)等。

常见问题

问:您的在线编辑器可以修改 Ren’Py 存档吗? 答:目前,我们的编辑器提供 Ren’Py 存档的只读查看。由于 pickle 反序列化的安全风险,完整的编辑支持不可用。

问:为什么不直接支持呢? 答:在网络浏览器中执行任意 pickle 数据可能允许恶意代码执行。我们将用户安全置于功能完整性之上。

问:您会支持完整编辑吗? 答:我们正在探索安全的方法来支持有限的编辑(例如,修改简单变量而不重新序列化)。请关注更新。

问:使用开发者控制台算作弊吗? 答:对于单人游戏,这是您的体验。做任何让游戏对您来说更有趣的事情。

问:我可以在设备之间转移存档吗? 答:可以!将存档文件夹复制到其他设备的相同路径。格式是跨平台的。

结语

Ren’Py 使用 Python pickle 使直接存档编辑在技术上具有挑战性且可能危险。但是,通过开发者控制台、persistent 文件编辑和社区模组等替代方案,您仍然可以安全地修改游戏体验。

我们的存档查看器帮助您了解存档状态,即使直接编辑还没有完全支持。目前,开发者控制台仍然是 Ren’Py 修改最安全、最强大的工具。


相关文章:常见存档文件扩展名详解

准备好编辑您的存档文件了吗?

使用我们的免费在线编辑器即时修改您的游戏存档。

启动存档编辑器