分块存档修复

创作者: Balguito
已更新:2026-06-30 06:06:25
89KB

关于此 MOD

瓦尔海姆公共测试版0.221.13服务端修复:修复分块存档残留区块和重复ZDO问题。

分块存档修复

《英灵神殿》公共测试分块存档世界的服务端 BepInEx 插件。

此插件旨在缓解Valheim公开测试 0.221.13 分块保存问题,其中过期的分块映射可能残留在 .chunks 显现并导致重新加载后出现重复的世界对象。

状态

公开测试版。

请谨慎使用并保留备份。这些修复工具是在公开测试版上进行测试的。 0.221.13 分块保存格式。

它的作用

预防性修复

默认情况下,该插件会移除标记为过期的区块映射 尺寸已更改 此前 .chunks 清单已生成。

这由以下控制:

[修复] 移除大小已更改的区块 = true

修理工具

该插件还可以扫描并修复完全重复的ZDO存档克隆。

出于公共安全考虑,修理功能默认已禁用。

[Repair] RepairMode = Disabled ForceFullRepairSave = false

支持的修复模式:

  • 已禁用:不重复扫描或修复。
  • 仅扫描:日志会复制保存克隆体,但不会移除任何东西。
  • 筛选保存精确匹配:在写入块文件之前,从存档输出中移除完全重复的ZDO存档克隆。

重要安全提示

启用修复模式前,请先备份完整的世界文件夹。

不要启用 强制完全修复保存 永久生效。它是一次性修复工具。修复后的世界正确加载后,请将其关闭。

此插件为服务端插件。客户端无需安装。

推荐安全默认值

[通用] 启用 = 是 [修复] 移除已改变大小的区块 = 是 [修理] 修理模式 = 已禁用 强制完整修理存档 = 否 将清单修剪为完整修理区块 = 是 修理包含传送门 = 否 位置精度 = 100 旋转精度 = 10000 每次存档最大移除数量 = 0 记录顶级组数量 = 10 [诊断] 详细日志 = 否 记录顶级区块数量 = 0 记录清单重叠 = 否

一次性完整修复流程

仅当你的世界中已有重复对象时,才使用此项。

  1. 停止服务器。
  2. 备份世界文件夹。
  3. 先用插件启动一次服务器,以便生成配置文件。
  4. 再次停止服务器。
  5. 编辑配置:
[修复] 修复模式 = 过滤器保存精确 强制完整修复保存 = 真 将清单修剪为完整修复区块 = 真 修复包含传送门 = 假 每次保存最大移除数 = 0
  1. 启动服务器并让它保存一次。
  2. 重启服务器。
  3. 从视觉上确认世界,并检查日志。
  4. 关闭完全修复标记:
[Repair] ForceFullRepairSave = false

之后你可以保留这个作为双保险预防模式:

[修理] 修理模式 = 过滤器保存精确 强制完整修理保存 = 假

或者完全禁用重复过滤:

[修复] RepairMode = 已禁用 ForceFullRepairSave = false

要查找的日志

在完整修复过程中,你应该会看到类似这样的消息:

[FullRepair] ForceFullRepairSave 已激活 [DedupeSave] 模式=FilterSaveExact [DedupeSave] 已移除 X 个重复的 ZDO 存档克隆 [FullRepair] 已清理 X 个过期清单块

世界修复后, 强制完整修复保存=假,健康的存档不应出现大量重复删除。

安装

将插件 DLL 复制到你的服务器 BepInEx plugins 文件夹中:

BepInEx/plugins/FixSave.dll

重启服务器。

从源代码构建

本项目使用 Docker 构建,无需在本地安装 .NET。

1. 构建 Valheim 模组构建器镜像

从仓库根目录:

docker buildx bake --no-cache --load \ --set default.args.VALHEIM_BRANCH=public-test \ --set default.args.VALHEIM_BETA_PASSWORD=yesimadebackups

这准备了本地 瓦尔海姆模组构建器:开发版 包含 Cake 构建所需的公共测试版 Valheim 程序集和 BepInEx 依赖项的镜像。

2. 构建插件

从仓库根目录:

docker run --rm -it -v "$PWD:/work" -w /work valheim-mod-builder:dev ./build.sh --configuration=Release

已编译的DLL写入到:

输出/FixSave.dll

3. 什么 build.sh 做

build.sh 在……内部运行 瓦尔海姆模组构建器:开发版 容器。它不应启动另一个 Docker 容器。

预期内容:

#!/usr/bin/env bash set -euo pipefail cd "$(dirname "${BASH_SOURCE[0]}")" export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 export DOTNET_CLI_TELEMETRY_OPTOUT=1 export DOTNET_NOLOGO=1 dotnet tool restore dotnet cake "$@"

4. 蛋糕建造行为

蛋糕构建:

  • 从……读取插件版本 FixSave/BalguitoFixSave.csproj;
  • 生成 FixSave/PluginInfo.g.cs;
  • 更新 manifest.json 版本号;
  • 在需要时公开 Valheim 程序集;
  • 将插件构建到 输出/.

修复存档/插件信息.g.cs 是生成的,不应提交。

推荐 .gitignore 条目:

修复存档/插件信息.g.cs

5. 重建

强制进行干净重建:

docker run --rm -it \ -v "$PWD:/work" \ -w /work \ valheim-mod-builder:dev \ ./build.sh --target=Rebuild --configuration=Release

兼容性

  • 英灵神殿公开测试 0.221.13 分块存档:已测试。
  • 其他英灵神殿版本:不保证兼容。
  • 客户端安装:无需安装。

许可证

GPL-2.0-only。

Valheim: 英灵神殿 的热门 MOD

探索适用于 Valheim: 英灵神殿 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 Valheim: 英灵神殿 的全部潜力 — 今天就探索这些顶级 MOD!