更好的存档封面

更好的存档

杀戮尖塔2
便捷优化工具与前置

BetterSaves 用于保持《杀戮尖塔 2》原版存档与模组存档互通,并提供可选同步范围、受保护的首次同步流程,以及带完整性校验的游戏内备份与恢复功能。

MOD介绍

## 主要功能 - 原版存档与模组存档双向同步 - 四种互通模式,可完全关闭同步 - 只启用 BetterSaves 时自动使用原版兼容模式 - 首次同步前自动创建本地安全备份 - 一键备份、SHA-256 校验、原版/模组两侧精确恢复与备份删除 - 在 profile 界面显示当前使用的存档侧 ## 互通模式 可在模组设置界面的 BetterSaves 设置行中切换模式。 | 模式 | 同步范围 | | `关闭同步` | 停止 BetterSaves 的复制、删除、文件监听、启动对账和首次同步弹窗。之后的新存档只保留在游戏当前使用的一侧。 | | `仅同步存档` | 同步受支持的单人当前局存档文件。 | | `仅同步数据` | 同步进度、时间线、发现和历史记录,不同步当前局文件。 | | `完整同步` | 同时同步受支持的当前局文件与 profile 数据。 | 模式切换会立即生效。若希望两侧在进入 `关闭同步` 前保持一致,请先在主菜单保存,并等待本次同步完成。 只启用 BetterSaves 时,游戏读取原版存档路径;启用其他玩法模组时,游戏读取模组存档路径。 ## 首次同步 BetterSaves 第一次接管已有 profile 时,会先创建本地安全备份,再询问要保留哪一侧: - `保留原版(覆盖模组)`:保留原版存档,并复制到模组侧。 - `保留模组(覆盖原版)`:保留模组存档,并复制到原版侧。 - `稍后决定`:本次启动不修改任何存档,下次启动继续询问。 只有文件复制完成且游戏成功重新加载该 profile 后,首次同步才会被视为完成。Steam 云镜像写入也会延迟到重新加载成功后执行。 如果所选来源的数据明显少于另一侧,第一次点击只会显示风险提示。只有确认需要执行该覆盖时,才应再次点击同一个选项。 如果无法创建安全备份,BetterSaves 会阻止导入,不会修改任一侧存档。如果 profile 重新加载或自动回滚失败,保护状态会跨重启保留,并显示用于恢复的备份路径。 ## 备份与恢复 “BetterSaves存档备份”设置行位于互通模式下方。 - `立即备份`:同时备份当前 Steam 账户、当前 profile 的原版与模组目录。 - `恢复备份`:仅能在主菜单使用,列表包含手动备份、恢复前安全备份和兼容的首次同步备份。 - 每次普通恢复前都会自动创建安全备份,然后精确替换两侧 profile 目录、验证结果并重新加载 profile,成功后才恢复同步。 - 每个账户/profile 最多自动保留最近 3 份恢复前安全备份;手动备份和首次同步备份不会被自动清理。 - 正在保护首次同步或失败恢复的备份不能删除。 - 如果恢复或回滚中断,BetterSaves 会暂停自动同步,并将恢复流程锁定到已记录的安全备份。 - 如果本地存在多个账户目录且无法安全匹配当前 Steam 账户,BetterSaves 会拒绝操作,不会猜测账户。 手动 profile 备份不会包含账户级 `profile.save` 和 `settings.save`,因此恢复一个 profile 不会替换其他 profile、当前槽位选择、全局设置或其他 Steam 账户的数据。 选择 `关闭同步` 时仍可执行恢复,恢复操作也不会擅自改变当前互通模式。 ## 数据位置 BetterSaves 将配置和备份保存在系统应用数据目录: | 系统 | BetterSaves 数据目录 | | --- | --- | | Windows | `%AppData%/SlayTheSpire2/mods/BetterSaves/` | | Linux | `${XDG_CONFIG_HOME:-~/.config}/SlayTheSpire2/mods/BetterSaves/` | | macOS | `~/Library/Application Support/SlayTheSpire2/mods/BetterSaves/` | Windows 与 Linux 是当前发布目标。macOS 路径仅说明代码使用的应用数据目录结构,目前尚未完成 macOS 运行兼容性验证。 重要路径: ```text config.json backups/manual/ backups/first-sync-<时间戳>/ ``` 完整的首次同步备份包含 `backup-complete.json`;手动备份和恢复前备份包含 `manual-backup.json`。 ## Steam 云与兼容性 - 本地同步或恢复成功后,BetterSaves 会根据当前互通模式上传需要镜像的文件。 - BetterSaves 不会删除 Steam 云文件。这样可以保护其他设备,但也意味着云端存在、所选本地备份中不存在的文件之后可能再次出现。 - Steam 云启动时序可能导致另一台设备延迟看到变化。共享同一存档的所有设备应使用相同版本的 BetterSaves。 - 多人当前局互通比单人更难预测,因为原版与模组会话可能使用不同的本机玩家标识。 - 《杀戮尖塔 2》更新可能改变模组依赖的游戏内部方法。游戏更新后请优先使用最新 BetterSaves 版本。 ### Linux 运行库错误 如果启动时出现 Harmony 或 `mm-exhelper.so` 错误,并提到 `_Unwind_RaiseException`,请确认游戏进程能够访问 `libgcc-s1`、`libstdc++6` 和 `libunwind8`。 NixOS、Flatpak 等沙箱化 Steam 环境可能需要在 Steam 启动选项中指定: ```text LD_PRELOAD+=":/path/to/libgcc_s.so.1" %command% ``` 使用 nix-ld 的 NixOS 常见路径: ```text LD_PRELOAD+=":/run/current-system/sw/share/nix-ld/lib/libgcc_s.so.1" %command% ``` ## 故障恢复步骤 如果 BetterSaves 提示首次同步或恢复已被阻断: 1. 不要删除或覆盖提示中显示的备份目录。 2. 返回主菜单并打开 `恢复备份`。 3. 恢复警告指定的安全备份。 4. 保持游戏运行,等待 profile 重新加载完成。 5. 如果无法在游戏内恢复,请先复制整个 BetterSaves 数据目录,再尝试手动修复;反馈问题时请同时提供最新游戏日志。