
热修复公告:更新 5
0.5.7
2026 年 7 月 19 日
一位安全研究员私下向我们报告了客户端在处理服务器发送给游戏的图像文件(PNG)时存在的一个缺陷。在受影响的客户端上,恶意或被入侵的服务器可以发送特制的图像,客户端在加载时处理不当,在最坏的情况下,可利用该漏洞在玩家电脑上执行代码。该问题仅影响连接到蓄意滥用此漏洞的服务器的玩家。经过彻底调查,我们未发现任何证据表明该漏洞曾被用于针对玩家。该问题的修复程序在报告当天即已发布。
在处理此报告的过程中,我们的团队还对周边的图像、纹理和媒体加载代码进行了多轮额外审查,以进一步加固底层系统和实现。
研究员 0x90 在此处撰写了完整的技术细节:How a PNG became a $20,000 Hytale RCE。我们为这一出色的发现和披露颁发了 20,000 美元的奖金。
我们高度重视安全问题,而像这样的报告正是我们这样做的原因。如果您在 Hytale 中发现了漏洞,我们希望收到您的反馈。我们的漏洞披露计划详情请访问 hytale.com/security。
0.5.6
2026 年 6 月 17 日
- 修复了在实体剔除系统运行时移除实体可能导致的世界崩溃问题。
- 修复了保存触发功能域效果预设时错误写入基础游戏资源包,从而导致启动器中的资源修补功能失效的问题。
- 修复了更新至 0.5.5 版本后,已保存实体上的碰撞与排斥设置发生互换,可能导致玩家相互卡住的问题。
这个问题堪称真正的“机内幽灵”。该 Bug 自 2021 年起便悄然潜伏在代码中,近五年之久,直到我们修复了一个完全无关的问题,它才被唤醒。
出了什么问题。 更新到 0.5.5 后,部分服务器出现了玩家碰撞模式切换为硬碰撞的情况,导致玩家可能卡在彼此体内或相互推挤。相同的根本原因也可能导致已放置的实体和道具在加载时,硬碰撞与软碰撞互换,或者默认排斥场与迷你游戏排斥场互换。
根本原因。 HitboxCollision 组件(以及 Repulsion 组件)在保存时记录的是运行时资源索引,而非资源名称。该索引仅仅是资源在服务器加载时被分配到的槽位编号,并非稳定的标识符。过去之所以能正常工作,是因为资源基于文件系统以半确定顺序加载,索引恰好每次都相同。
触发因素。 0.5.5 版本中的另一项修复调整了资源加载的顺序(一个不相关的资源继承问题)。这改变了资源索引,导致旧世界中保存的数字突然指向了不同的配置,于是硬/软碰撞以及默认/迷你游戏排斥场发生了互换。有趣的是:这个长达五年的 Bug 一直完全隐形,直到我们修复了另一个恰好扰动它的漏洞。
修复方案。 现在,实体保存的是资源的稳定名称而非索引。在加载时,0.5.6 会读取旧的已保存索引,将其映射回最初所指的配置,并使用名称重新保存。我们能安全地这样做,是因为基础游戏以固定、可重现的顺序提供这些资源,因此我们确切知道每个旧索引对应什么。今后,索引始终从名称派生,不会再发生偏移。
对于服务器所有者。 几乎所有世界都会自行修正,无需任何操作。但有两种情况需要注意。第一,自动映射仅覆盖基础游戏的碰撞和排斥配置;如果您有自己的自定义碰撞或排斥资源,引用了这些资源的实体可能无法被完美映射,并可能在加载时丢失该设置。第二,在 0.5.5 版本生效期间(0.5.6 发布之前)创建的实体,是依据新顺序保存的,我们无法将其与更早的数据区分开,因此少数实体可能仍会以互换的设置加载。您需要使用实体编辑工具重新应用该实体的碰撞或排斥设置,此后将被永久修正。没有世界数据会丢失。
感谢所有报告此问题并帮助我们追踪定位的各位。
出了什么问题。 更新到 0.5.5 后,部分服务器出现了玩家碰撞模式切换为硬碰撞的情况,导致玩家可能卡在彼此体内或相互推挤。相同的根本原因也可能导致已放置的实体和道具在加载时,硬碰撞与软碰撞互换,或者默认排斥场与迷你游戏排斥场互换。
根本原因。 HitboxCollision 组件(以及 Repulsion 组件)在保存时记录的是运行时资源索引,而非资源名称。该索引仅仅是资源在服务器加载时被分配到的槽位编号,并非稳定的标识符。过去之所以能正常工作,是因为资源基于文件系统以半确定顺序加载,索引恰好每次都相同。
触发因素。 0.5.5 版本中的另一项修复调整了资源加载的顺序(一个不相关的资源继承问题)。这改变了资源索引,导致旧世界中保存的数字突然指向了不同的配置,于是硬/软碰撞以及默认/迷你游戏排斥场发生了互换。有趣的是:这个长达五年的 Bug 一直完全隐形,直到我们修复了另一个恰好扰动它的漏洞。
修复方案。 现在,实体保存的是资源的稳定名称而非索引。在加载时,0.5.6 会读取旧的已保存索引,将其映射回最初所指的配置,并使用名称重新保存。我们能安全地这样做,是因为基础游戏以固定、可重现的顺序提供这些资源,因此我们确切知道每个旧索引对应什么。今后,索引始终从名称派生,不会再发生偏移。
对于服务器所有者。 几乎所有世界都会自行修正,无需任何操作。但有两种情况需要注意。第一,自动映射仅覆盖基础游戏的碰撞和排斥配置;如果您有自己的自定义碰撞或排斥资源,引用了这些资源的实体可能无法被完美映射,并可能在加载时丢失该设置。第二,在 0.5.5 版本生效期间(0.5.6 发布之前)创建的实体,是依据新顺序保存的,我们无法将其与更早的数据区分开,因此少数实体可能仍会以互换的设置加载。您需要使用实体编辑工具重新应用该实体的碰撞或排斥设置,此后将被永久修正。没有世界数据会丢失。
感谢所有报告此问题并帮助我们追踪定位的各位。
0.5.5
2026 年 6 月 16 日
- 修复了实体以无效朝向生成时可能引发的世界崩溃。
- 修复了在传送门世界之间快速放置治疗图腾时可能引发的世界崩溃。
- 修复了多名玩家同时连接时可能引发的服务器崩溃。
- 修复了将传送门装置召唤到新建世界(其出生区域尚未加载完成)时发生的崩溃。
- 修复了生成信标在其 NPC 仍在加载时触发可能引发的世界崩溃。
- 修复了使用 /spawn 命令生成 NPC 时可能发生的崩溃。
- 现在世界生成时,若某个世界结构资产加载失败,会安全回退而不再导致世界崩溃。
- 修复了在最大建造高度下使用“雕刻”工具进行流体填充时导致世界崩溃的问题。
- 修复了在世界切换期间移动鼠标时可能发生的客户端崩溃。
- 修复了在界面正在销毁时重新连接可能发生的客户端崩溃。
- 修复了编辑多行文本字段时可能发生的客户端崩溃。
- 修复了构建区块光照时因方块或流体 ID 超出范围导致的客户端崩溃。
- 修复了音频计算期间因方块 ID 超出范围导致的客户端崩溃。
- 修复了在交互过程中收到服务器背包更新时可能发生的背包界面崩溃。
- 修复了靠近装有零耐久度物品的容器时可能发生的客户端崩溃。
- 强化了服务器,可抵御格式错误的合成和背包数据包,防止其被用于崩溃服务器。
- 客户端现在可从损坏的 Settings.json 中恢复:从备份还原而不再启动失败。
- 修复了服务器在启动早期失败且插件仍在加载时可能产生大量错误日志的问题。
- 修复了实体在游戏过程中发生变化时,有时会丢失击退、状态效果等状态的问题。
- 修复了加载某些资源时可能发生的若干服务器错误。
- 单个重复的翻译键不再导致整个语言文件损坏。
- 修复了受重力影响的方块(如沙子)不会下落的问题。
- 修复了骑乘侧放的坐骑方块时,角色渲染角度错误的问题。
- 修复了翻滚动画偶尔卡住循环播放的问题。
- 冲刺和其他开关控制不再在游戏输入被禁用时(如菜单打开时)发生反转。
- 玩家现在在死亡状态下无法触发实例传送。
- 跳过夜晚后,玩家现在会自动起床。
- 现在使用主手或副手物品动作时会取消表情动作。
- 修复了使用世界地图传送后,角色始终面朝北方的问题。
- 死亡标记现在无论死亡地点多远,都会显示在世界地图上。
- NPC 和坐骑的交互现在会检测与目标的距离,防止修改客户端从不可能的距离进行交互。
- 鸡和辣椒鸟现在再次掉落鸡蛋等产物。
- 永恒玉米现在产量翻倍。现在应获得 2-4 个玉米,而非 1-2 个。
- 破坏新种植的茄子和生菜现在会返还种子。
- 冷却岩浆岩现在可用作建造工作台的输入材料。
- 修复了某些合成配方中物品是其自身输出的问题。
- 修复了没有狼伙伴的兽魔猎手卡在战斗循环中的问题。
- 驯服的苔角牛现在会被饲料袋吸引。
- 修复了沙地地牢骷髅变种不提供正确记忆的问题。
- 覆雪冷杉和饲料袋现在放置时可以旋转朝向玩家。
- 使用“实体”工具放置后再拾取的物品,再次掉落时现在会保持其动画效果。
- 修复了若干模型和纹理问题,包括门和酒馆箱子穿模的问题。
- 修复了生粘土砖半砖和雕纹石砖的纹理与显示问题。
- 修复了常春藤精的面部残留的红色着色问题。
- 修复了手持物品穿入远程玩家和 NPC 身体的问题。
- 修复了某些视距下部分阴影缺失的问题。
- 画笔声音音量设置现在正确应用到所有建造工具。
- 修复了在存储和快捷栏中右键拖拽导致物品双倍放置的问题。
- 选取方块功能现在可用于“挤出”和“线条”工具。
- 拖拽物品或界面元素时,若窗口失去焦点,操作不再被取消。
- 修复了 CustomUI 文本字段捕获快捷键导致无法使用的问题。
- 修复了服务器列表及其他界面面板中的显示问题。
- 修复了服务器发现菜单中的视觉故障和收藏星标问题。
- 修复了“选择”工具中翻译文本较长时的布局错位问题。
- “粘贴”工具现在粘贴后会保留手动设置的偏移量。
- 建造工具现在在该设置关闭时不再显示通知。
- 建造工具的画笔密度现在最低可设为 0。
- 资产编辑器中的物品预览现在会遵循物品的模型覆盖。
- 移除了“标尺”工具距离标签中的一个多余符号,并修复了其有时跳过第一个点的问题。
- 修复了控制设置中“菜单”输入组显示不正确的问题。
- 修复了好友列表中好友名称偶尔加载失败的问题。
- 屏幕上的输入提示现在会在重新绑定按键或手柄按钮后立即更新。
- 键盘布局更改时,按键绑定现在会刷新。
- 修复了某些与手柄相关的设置在重启之间重置的问题。
- 截图、HUD 切换和全屏现在即使在输入被禁用时(如菜单打开时)也能正常工作。
- 指南针方位点(东西南北)现在可翻译。
- 修复了因引号格式导致部分游戏内文本显示不正确的问题。
- 角色编辑器中的“猫眼”眼型现在正确显示为“猫眼”而非“Felin”。
- “素色运动衫”上衣现在正确显示为“素色运动衫”而非“素色连帽衫”,后者与独立的“素色连帽衫”外观冲突。
- 如果连接因访问令牌无效而被拒绝,且您的系统时钟偏差较大,断开连接消息现在会告知您时钟偏差了多少,并请您同步时间。
- 修复了重新加载分层资产包时,有时会将自定义资源恢复为从其父级继承的值的问题。
0.5.4
- 修复了重命名的装扮导致令人困惑的“连接已关闭”错误,从而阻止你加入游戏的问题。客户端现在会修复你的形象,并告知你哪些装扮发生了变更。
- 修复了在一个已开启的箱子旁放置另一个箱子时,箱子会消失的问题。
- 修复了当附近存在多只同类生物时,已驯服的 NPC 会消失的问题。
- 修复了玩家在语音聊天时可能发生的崩溃问题。
- 修复了手中无物品时放置流体可能导致的崩溃问题。
- 修复了因动画配置了无效的零时长而导致的崩溃问题。
- 修复了角色穿戴盔甲时,每一帧都会重新计算属性值的性能问题。
- 修复了穿戴盔甲时,从高处坠落死亡会错误播放空闲动画而非死亡动画的问题。
- 修复了所选输出设备不可用时音频卡顿的问题;现在会平滑地回退到系统默认设备。
- 修复了全屏切换卡死,反复快速进入和退出全屏的问题。
- 在世界生成 V2 中,触发功能域现在能正确生成在预制结构中。
- 修复了 /worldgen reload 命令在重新生成时无法移除现有触发器体积的问题。
0.5.3
- 现在在滑铲过程中会保持冲刺状态,而不会降回行走速度。
- 修复了停止移动时冲刺输入未正确重置的问题。
- 落地时翻滚现在能够正确减少坠落伤害。
- 修复了邀请好友加入单人世界时可能发生的死锁问题。
- 修复了离开世界后可能出现的内存泄漏问题。
- 修复了一个罕见的竞态条件,该问题可能导致方块光照显示错误。
- 现在可以在服务器详情菜单中滚动查看较长的服务器描述。
- 修复了好友列表过长时滚动卡住的问题。
- 修复了针对裸版本模组显示的一条令人困惑的模组兼容性警告。
- 修复了世界结构资源未能正确重新加载的问题。
0.5.2
- 社交栏不再卡抖动/闪烁状态。
- 更新了 Javadoc,使其按语义化版本生成。
- 修复了环境音量滑块。
- 修复了方块过滤器中的空白方块条目 —— 解决了创造模式下的空白蒙版以及若干脚本笔刷问题。
- 修复了当副手空手交互配置为非互动方块时,右键点击该方块导致的客户端崩溃。
- 服务器地址现在默认隐藏(如果你未曾使用任何 0.5.x 版本启动过客户端)。
- 服务器与客户端现在使用协议版本进行服务器发现,而不是服务器版本。
- 修复了在包含虚空区块的世界中尝试生成玩家或 NPC 时的一个错误。
0.5.1
- 修复了因服务器版本格式错误而导致服务器无法启动的问题。
最后编辑: