Hyfixes

Hyfixes

包含修复关键错误和减少内存消耗的补丁

实用

HyFixes

Hytale 抢先体验服务器必备的 Bug 修复插件。可防止由 Hytale 核心系统已知问题导致的崩溃和玩家踢出。

在 CurseForge 上提交的 Bug 报告将被忽略。请使用 GitHub。如需引起注意,请前往 Discord。

支持

需要帮助? 加入我们的 Discord 社区获取支持!

Discord: https://discord.gg/6g7McTd27z

发现 Bug? 在 GitHub 上报告:

GitHub Issues: https://github.com/John-Willikers/hyfixes/issues


安装

HyFixes 由两个协同工作的插件组成:

运行时插件(必需)

修复大多数崩溃问题的主插件。

  1. 下载 hyfixes.jar
  2. 放置到服务器的 mods/ 文件夹中
  3. 重启服务器

早期加载插件(推荐)

修复导致战斗/交互不同步的深层网络 Bug。

  1. 下载 hyfixes-early.jar
  2. 放置到服务器的 earlyplugins/ 文件夹中
  3. 使用以下任一选项启动服务器:
    • 设置环境变量:ACCEPT_EARLY_PLUGINS=1
    • 或者在启动时看到早期加载插件警告时按下 Enter 键

修复内容

运行时插件

  • 拾取物品崩溃 - 玩家在拾取物品时断开连接导致的世界线程崩溃
  • 重生方块崩溃 - 破坏床/睡袋时玩家被踢出
  • 工作台崩溃 - 工作台在使用中被破坏时玩家被踢出
  • 副本退出崩溃 - 退出数据损坏的地牢时玩家被踢出
  • 区块内存膨胀 - 服务器因未卸载的区块而耗尽内存
  • 合成管理器崩溃 - 打开合成台时玩家被踢出
  • 交互管理器崩溃 - 特定交互过程中玩家被踢出
  • 任务目标崩溃 - 当任务目标消失时任务系统崩溃
  • 生成标记崩溃 - 实体生成过程中的世界崩溃

早期加载插件(字节码修复)

  • 同步缓冲区溢出 - 修复战斗/食物/工具不同步问题(每会话 400-2500 次错误)
  • 同步位置间隙 - 修复导致玩家被踢出的 "out of order" 异常
  • 副本传送门竞态 - 修复进入传送门时的 "player already in world" 崩溃
  • 空 SpawnController - 修复生成信标加载时的世界崩溃
  • 空生成参数 - 修复火山/洞穴生物群系中的世界崩溃
  • 重复方块组件 - 修复使用传送器时玩家被踢出
  • 空 npcReferences(移除) - 修复移除生成标记时的崩溃
  • 空 npcReferences(构造函数) - 根本原因修复:在 SpawnMarkerEntity 构造函数中初始化数组
  • BlockCounter 未递减 - 修复传送器限制卡在 5 的问题
  • WorldMapTracker 迭代器崩溃 - 修复高人口服务器上约每 30 分钟崩溃一次的问题

验证安装

运行时插件

在服务器启动日志中查找这些消息:

[HyFixes|P] Plugin enabled - HyFixes vX.X.X
[HyFixes|P] [PickupItemSanitizer] Active - monitoring for corrupted pickup items
[HyFixes|P] [ChunkCleanupSystem] Active on MAIN THREAD

早期加载插件

在服务器启动日志中查找这些消息(10 个转换器):

[HyFixes-Early] Transforming InteractionChain class...
[HyFixes-Early] InteractionChain transformation COMPLETE!

[HyFixes-Early] Transforming World class...
[HyFixes-Early] World transformation COMPLETE!

[HyFixes-Early] Transforming SpawnReferenceSystems$BeaconAddRemoveSystem...
[HyFixes-Early] SpawnReferenceSystems transformation COMPLETE!

[HyFixes-Early] Transforming BeaconSpawnController...
[HyFixes-Early] BeaconSpawnController transformation COMPLETE!

[HyFixes-Early] Transforming BlockComponentChunk...
[HyFixes-Early] BlockComponentChunk transformation COMPLETE!

[HyFixes-Early] Transforming SpawnReferenceSystems$MarkerAddRemoveSystem...
[HyFixes-Early] MarkerAddRemoveSystem transformation COMPLETE!

[HyFixes-Early] Transforming SpawnMarkerEntity...
[HyFixes-Early] SpawnMarkerEntity transformation COMPLETE!

[HyFixes-Early] Transforming TrackedPlacement$OnAddRemove...
[HyFixes-Early] TrackedPlacement transformation COMPLETE!

[HyFixes-Early] Transforming WorldMapTracker...
[HyFixes-Early] WorldMapTracker transformation COMPLETE!

管理员命令

命令 描述
/hyfixes 显示 HyFixes 统计数据和崩溃预防计数
/chunkstatus 显示已加载区块计数和内存信息
/chunkunload 强制立即清理区块
/fixcounter 修复/查看传送器的 BlockCounter 值

别名:/hfs/interactionstatus/fc/blockcounter


故障排除

插件未加载

  1. 检查 JAR 文件是否位于正确的文件夹:

    • 运行时插件:mods/hyfixes.jar
    • 早期加载插件:earlyplugins/hyfixes-early.jar
  2. 检查服务器启动日志中的错误信息

  3. 确认已安装 Java 21+:java -version

启动时出现早期加载插件警告

这是正常的!Hytale 会对早期加载插件显示安全警告,因为它们可以修改游戏代码。HyFixes 仅修改特定的有 bug 的方法以修复它们。

要绕过警告:

  • 设置环境变量 ACCEPT_EARLY_PLUGINS=1
  • 或者在提示时按下 Enter 键

仍然出现崩溃

  1. 使用 /hyfixes 命令检查你安装的 HyFixes 版本
  2. 更新到最新版本
  3. 在 GitHub 上报告崩溃,并提供以下信息:
    • 包含错误的完整服务器日志
    • 复现步骤(如果知道)
    • HyFixes 版本

兼容性

  • Hytale: 抢先体验版(2025+)
  • Java: 21 或更高版本
  • 端侧: 仅服务端(无需客户端安装)

更多信息

如需详细的技术文档、源代码和贡献指南:

GitHub 仓库: https://github.com/John-Willikers/hyfixes

完整 Bug 文档: https://github.com/John-Willikers/hyfixes/blob/main/BUGS_FIXED.md


支持项目

  • 在 GitHub 上为仓库点星
  • 报告你遇到的 Bug
  • 加入我们的 Discord 社区
  • 与其他服务器管理员分享 HyFixes!

Discord: https://discord.gg/6g7McTd27z