保存救援 - 损坏纹理

保存救援 - 损坏纹理

Save Rescue – Bad Textures是一个临时恢复工具,用于星露谷物语1.6版本的存档,这些存档会因为存档中的实体指向缺失、畸形、已释放或空的纹理而崩溃。

Save Rescue – Bad Textures

关于本模组

Save Rescue – Bad Textures 是一个临时存档救援工具,用于处理《星露谷物语》1.6 中因为存档实体指向缺失、格式错误、已释放或为空的纹理而导致游戏崩溃、无法进入的问题。

它源于一个真实案例:某个存档在 Furniture.draw 中反复触发 ArgumentNullException (texture),但由于多个模组同时修补了同一个绘制方法,普通日志无法确定具体是哪个已保存对象出了问题。

本模组不是 Alternative Textures、Custom Furniture 或任何内容包的替代品,也不包含它们的代码或资源。

功能

  • 扫描前自动备份当前存档;
  • 扫描存档中的家具、放置物品、地形特征、作物和树木、建筑、动物、角色、背包、容器以及生成的区域;
  • 已安装 Alternative Textures 时,验证存档中保存的 AT 纹理指派;
  • 检查星露谷 1.6 物品定义和基础物品纹理;
  • 生成详细的 JSON 报告,包含对象类型、物品 ID、位置、坐标、保存的纹理字段和异常信息;
  • 临时绕过已确认的致命指派,使存档能够打开;
  • 除非玩家明确批准并随后保存游戏,否则不会写入任何永久性修复;
  • 修复后的存档经过验证后即可卸载本模组。

前置要求

  • 星露谷物语 1.6
  • SMAPI 4
  • Alternative Textures 为可选。如果已安装,本工具可直接验证其保存的指派。

安装与救援步骤

  1. 自行额外备份受影响的存档以防万一。
  2. 将 ZIP 解压到 Stardew Valley/Mods。
  3. 启动游戏并加载受影响的存档。
  4. 查看 SMAPI 控制台。模组的 Reports 文件夹中也会生成一份 JSON 报告。
  5. 运行 save_rescue list 和 save_rescue inspect <编号>。
  6. 如果接受建议的 Alternative Textures 重置,运行 save_rescue repair <编号>。仅审核列表后才能使用 all。
  7. 保存、退出并再次加载存档(本模组保持安装状态)。
  8. 如果致命问题不再出现,退出游戏并删除本模组文件夹。

命令

save_rescue scan
save_rescue list
save_rescue inspect <编号>
save_rescue repair <编号|all>
save_rescue undo <编号|all>
save_rescue backup
save_rescue status
save_rescue help

repair all 仅批准致命的 Alternative Textures 指派,警告和缺失的基础物品定义不会被自动修改。

安全模式如何保护存档

确认有问题的 Alternative Textures 字段只会从内存对象中临时移除。如果修复未获批准,原始字段会在游戏写入存档前恢复,随后重新应用安全模式。这可防止单纯加载或扫描存档就在用户不知情的情况下改变存档内容。

已批准的修复仅移除该实体的 AlternativeTexture* 字段,使其恢复默认纹理,不会删除实体本身。

已知限制

  • 缺失的图片资源无法重建。如果原内容包仍然可用,重新安装是最佳方案。
  • 本工具不修复损坏的地图、游戏安装文件损坏、显卡/驱动故障,或未存储在存档中的任意资源。
  • 某些缺失纹理模型仅列为警告而非致命错误,因为 Alternative Textures 通常会回退到默认外观。
  • 报告中可能包含存档文件夹名称、实体名称、物品 ID、位置和坐标。公开发布前请先审阅。

错误报告

请附带:

  • 解析后的 SMAPI 日志;
  • 本模组 Reports 文件夹中的 JSON 文件;
  • 存档是否能在安全模式下打开;
  • 使用了哪条修复命令;
  • 重新启动后问题是否再次出现。

权限与致谢

Copyright © 2026 neoiw.

根据 GPL-3.0-only 授权。对应精确二进制的源代码以单独的 Source Code 下载和/或公开仓库版本形式提供。

星露谷物语、SMAPI、Alternative Textures、Custom Furniture、Calcifer 以及所有引用的内容包均归各自作者所有。本模组不重新分发任何第三方代码或资源。