Terramizer服务器

Terramizer服务器

TerramizerServer 是 Valheim 的专用服务器性能伴侣。

1.0.6

  • 将广义 ZDO 检查吞吐量与所有权认领预算解耦。即使每轮认领预算耗尽,预热阶段现在每 5 秒仍可检查多达 25,000 个 ZDO。
  • 新增了可重启安全的延迟所有权队列,持久化于 ownership-cache.tsv,因此在认领预算耗尽后发现的可认领 ZDO 不会在服务器重启时被跳过或丢失。
  • 新增了持久化的 initialBroadScanTraversalComplete 缓存元数据。在首次完整遍历完成、所有延迟所有权认领被清空、且完成状态成功刷写之前,维护模式保持锁定。
  • 维护模式仍限制为每 15 秒处理 5,000 个 ZDO,并继续遵守其所有权认领限制。
  • 所有权摘要现在会报告延迟认领积压情况。

1.0.5

  • 修复了中断的首次世界所有权扫描在重启后错误进入维护模式的问题。
  • 在现有所有权缓存中新增了持久化的、针对特定世界的初始广义扫描完成元数据。
  • 维护模式现在要求初始广义扫描达到 100%,且完成状态成功刷写到所有权缓存。
  • 现有的 1.0.4 所有权缓存行和扫描游标被复用;仅旧的 scanPassesCompleted 元数据不再解锁维护模式。
  • 属于其他世界的缓存会被拒绝,并为当前世界重新构建。
  • 将繁重的初始扫描预算恢复为每 5 秒 25,000 条 ZDO 记录。
  • 将维护扫描设置为每 15 秒 5,000 条 ZDO 记录。
  • 使用 1.0.4 默认扫描预算精确值的现有配置会自动迁移到 1.0.5 默认值。
  • 专用服务器构建仍然针对共享的 serverassembly_valheim.dll 进行验证。

1.0.4

  • 提升了包版本,以更新默认的所有权审计与缓存行为。

1.0.3

  • 默认启用后台所有权审计,因此所有权缓存无需手动配置即可执行其初始广义扫描、预热启动和维护周期。

1.0.2

  • 将 TerramizerServer 移植到当前的 Valheim 1.0 专用服务器 API。
  • 将过时的 Vector2i 区域模型替换为 Valheim 1.0 的 Vector2s
  • 将已移除的 ZoneSystem.m_activeArea / m_activeDistantArea 模型替换为 SimulationDistance
  • 针对当前 Valheim 1.0 签名更新了 ZDOMan.FindSectorObjects
  • 针对 Valheim 1.0 世界位置活动区域检查更新了所有权移交逻辑。
  • 更新了所有权检查,改用 ZDOMan.IsInPeerActiveArea
  • 修复了 Valheim 1.0 睡眠保存兼容性补丁,同时保留正常的自动保存。
  • 专用服务器兼容性现在针对实际的 Linux 服务器 assembly_valheim.dll 进行验证。
  • 需要干净的配置:在启动此版本之前删除 BepInEx/config/r4v9n1.terramizerserver.cfg
  • 之前的 TerramizerServer 版本包含 Valheim 1.0 兼容性缺陷,不应使用。

1.0.1

  • 针对当前 Valheim 1.0 玩家档案保存 API 更新了 Game.SleepStop 兼容性。
  • 完全不影响 Valheim 自身的玩家档案保存,而不是依赖特定的 SavePlayerProfile 重载。
  • 继续仅跳过额外的睡眠触发世界保存,同时保留正常的自动保存计时器。
  • 针对当前 Valheim 1.0 专用服务器程序集重新构建并重新打包。

1.0.0

  • 针对当前 Valheim 1.0 专用服务器程序集重新构建。
  • 保留了有界的区域进入预取、静态物件所有权、地形握手、快速睡眠以及不额外触发睡眠世界保存的行为。

描述

  • 帮助专用服务器在玩家需要之前准备好区域数据。
  • 加载所有就绪玩家周围的区域,而不仅仅是单个服务器位置。
  • 在玩家周围查看的范围比原版稍远。
  • 预测移动玩家的去向并提前准备区域。
  • 将所有附近玩家区域视为活动区域,从而更好地支持分头行动的玩家。
  • 通过提高 Valheim 的服务器流送预算,更快地发送对象数据。
  • 优先处理重要对象,而非较不重要的远处对象。
  • 优先发送玩家对象,再发送批量世界对象。
  • 当玩家进入或接近新区域时,强制将附近已知对象加入队列。
  • 让服务器成为更好的区域数据来源,而不接管所有内容。
  • 不使用危险的旧式“服务器拥有所有持久对象”行为。
  • 如果该旧式所有权选项被启用,会自动禁用它。
  • 延迟地形编译器对象,直到其高度图存在,以防止地形加载错误。
  • 玩家睡觉时暂停额外的区域工作。
  • 加速睡眠时间跳过,默认约 4 现实秒。
  • 跳过 Valheim 在睡眠结束时的额外世界保存。
  • 保持正常的计划自动保存不变。
  • 在睡眠期间仍保存玩家档案。
  • 当建筑物件所有权卡住时,修复过时的锤子移除操作。
  • 仅当玩家距离物件足够近时才修复移除操作。
  • 遵守正常的建筑物件移除规则。
  • 避免在无头专用服务器上执行一些无意义的视觉/音频工作。
  • 当区域可能过于繁重时,记录密集的对象同步日志。
  • 记录已准备多少对象数据的诊断信息。
  • 钳制配置值,防止错误设置变得极端。

客户端模组使每个玩家的游戏更流畅地处理繁重区域。服务器模组帮助专用服务器更早、更智能地发送区域和对象数据。两者结合,针对卡顿峰值、加载缓慢、睡眠延迟和过时的建筑物件所有权问题,同时保持世界本身安全。

安装说明

TerramizerServer 设置

  1. 在 Valheim 专用服务器上安装 BepInEx。
  2. 启动服务器一次,然后停止。
  3. 复制: TerramizerServer.dll 到: Valheim dedicated server\BepInEx\plugins\
  4. 再次启动服务器。
  5. 检查控制台是否有: [TerramizerServer]
  6. 配置文件创建于: BepInEx\config\ 编辑前请停止服务器。

玩家不需要在本地安装 TerramizerServer。 安装或更新前,请备份你的世界。

主要功能

  • ⚡ 改进的 ZDO/网络同步
  • 🌍 更快的 区域与世界流送
  • 📦 更智能的 对象加载/卸载
  • 🎒 改进的 物品所有权与拾取处理
  • 🛏️ 优化的 多人睡眠/快进
  • 🖥️ 专用服务器/无头优化
  • 🛡️ 针对 过时或损坏的网络对象 的额外保护
  • 📊 内置 服务器性能诊断
  • 🔧 完全 服务器端,无需客户端安装

要求

BepInEx

潜在的模组冲突:

  • ZDO/网络优化模组
  • 区域/流送模组
  • 渲染距离模组
  • 物品所有权/拾取模组
  • 睡眠/快进模组
  • 其他服务器性能模组

通常安全:

  • 物品/配方
  • 生物
  • 建筑部件
  • 纹理/内容模组

主要规则:避免将 TerramizerServer 与另一个修补相同网络/流送系统的模组叠加使用。⚠️