Hytale 预发布版补丁说明 - 更新 6

  • 购买游戏时,在支付界面使用创作者代码 HytaleCN 以表示对中文社区的支持,这对我们来说十分重要,感谢您的支持!(点击查看示意图
原文链接
https://hytale.com/news/2026/5/pre-release-patch-notes-update-6
作者
Hytale 团队
译者
ETW_Zero
转载许可
允许规范转载。转载须注明原文链接、作者、译者、所属平台(HytaleCN)。
消息
199
声望
51
点数
28
金币
3,780
e8d5c18c-c477-48f8-a409-26fcca2683d0.png

大家好!
以下是更新 6 的预发布补丁说明,我们将每周进行更新。

和以往一样,如果遇到任何问题,可以通过游戏内的错误报告器进行反馈,也可以通过反馈请求网站提交您的建议。提交时请务必注明“预发布”字样。

要访问预发布版本:通过启动器 → Setting → Pre-Release 启用。

感谢大家的持续支持!
——Hytale团队

预发布版本(更新 6,第 13 部分,热修复补丁 1)


本帖楼下,本次更新的模组注意事项在楼下的文章末尾。

预发布版本(更新 6,第 13 部分)


本帖楼下,本次更新的模组注意事项在楼下的文章末尾。

预发布版本(更新 6,第 12 部分)


本帖楼下,本次更新的模组注意事项在楼下的文章末尾。

预发布版本(更新 6,第 11 部分)


本帖楼下,本次更新的模组注意事项在楼下的文章末尾。

预发布版本(更新 6,第 10 部分)


本帖楼下,本次更新的模组注意事项在楼下的文章末尾。

预发布版本(更新 6,第 9 部分)


本帖楼下,本次更新的模组注意事项在楼下的文章末尾。

预发布版本(更新 6,第 8 部分)


本帖楼下,本次更新的模组注意事项在楼下的文章末尾。

预发布版本(更新 6,第 7 部分)


本帖楼下,本次更新的模组注意事项在楼下的文章末尾。

预发布版本(更新 6,第 6 部分)


本帖楼下,本次更新的模组注意事项在楼下的文章末尾。

预发布版本(更新 6,第 5 部分)


本帖楼下,本次更新的模组注意事项在楼下的文章末尾。

预发布版本(更新 6,第 4 部分)


本帖楼下,本次更新的模组注意事项在楼下的文章末尾。

预发布版本(更新 6,第 3 部分)


本帖楼下,本次更新的模组注意事项在楼下的文章末尾。

预发布版本(更新 6,第 2 部分)


本帖楼下,本次更新的模组注意事项在楼下的文章末尾。

预发布版本(更新 6,第 1 部分,热修复补丁 1)


2026 年 5 月 29 日

Bug 修复


移动相关


  • 现在在滑铲过程中会保持冲刺状态,而不会降回行走速度。
  • 修复了停止移动时冲刺输入未正确重置的问题。
  • 落地时翻滚现在能够正确减少坠落伤害。

稳定性与性能


  • 修复了邀请好友加入单人世界时可能发生的死锁问题。
  • 修复了离开世界后可能出现的内存泄漏问题。
  • 修复了一个罕见的竞态条件,该问题可能导致方块光照显示错误。

用户界面


  • 现在可以在服务器详情菜单中滚动查看较长的服务器描述。
  • 修复了好友列表过长时滚动卡住的问题。
  • 修复了针对裸版本模组显示的一条令人困惑的模组兼容性警告。

世界生成


  • 修复了世界结构资源未能正确重新加载的问题。

预发布版本(更新 6,第 1 部分)


2026 年 5 月 28 日

主要特性


  • 新增方块调色板预设功能:保存并复用方块调色板!
    • 快捷设置菜单新增了一个侧边标签页,用于管理你的方块调色板。
    • 可将方块调色板保存为预设,并可随时重新加载。
    • 新增调色板编辑器,可创建、保存、删除和恢复方块调色板,并附有颜色选择器和拾色器工具用于选取调色板颜色。

世界与方块


  • 草方块不再会向水下蔓延。已经存在于水下的草方块将缓慢变回泥土。

界面与体验优化


  • 服务器发现:超过4个标签的服务器现在将显示前3个标签,并附加一个溢出指示器。悬停在溢出指示器上时会以工具提示的方式显示其余标签。
  • 创造模式物品库现在会永久删除拖入其中的任何物品,包括拖入空槽位的情况。
  • 现在你可以在创造模式物品库中通过右键单击来从一组堆叠物品中逐个丢弃。
  • “EU”区域名称已更新为“Europe”。(译注:简体中文应该没有改动。)

模组与创作工具


  • 新增世界设置“解析方块生成器”,控制方块生成器方块是否解析为其目标方块(例如是否生成箱子)。
  • 图像和 OBJ 导入工具现在使用新的 TextureComputedColor 字段(每个物品纹理的主加权平均色)而非粒子颜色来匹配方块颜色,从而实现更精确的导入。导入工具还会过滤掉特殊品质的物品,使其无法用于导入。
  • 资源编辑器新增一个按钮,可根据物品的纹理重新生成 TextureComputedColor 字段。
  • 选区工具已更新,以更好地处理较长的本地化文本。
    • “删除”按钮不再与滑块重叠。
    • 显示较长的翻译文本时,菜单将保持在边界内。
    • 对于较长的翻译文本,文字现在可以缩小显示。
    • 滑块和下拉菜单的宽度已略微减小。

音频


  • 为垃圾堆添加了新的碎裂音效,结合了陶罐和金属火盆的碎裂声。
  • 为火盆添加了新的碎裂音效,每种火盆材料类型有不同的音效组。未点燃的火盆被破坏时不再播放火炬闪光音效。
  • 为破坏树叶和行走在树叶上添加了新音效。
  • 为破坏荆棘添加了新音效。
  • 为布类方块添加了新的落地音效,调整了布类方块的行走音量,并移除了布类方块破坏时的成功音效。

错误修复


移动


  • 在创造模式且速度倍率小于 1 的情况下冲刺时,玩家速度将不再被限制。

战斗、实体与物品修复


  • 投射物生成位置现在基于服务端权威实体变换得出,仅当客户端报告的位置在基于速度的允许偏差范围内时才被接受。
  • NPC 和坐骑的交互现在会验证玩家与目标实体之间的距离,防止修改过的客户端从任意距离与 NPC 交互或骑乘实体。
  • 由实体工具放置的物品实体在被玩家捡起后将正确播放其物品动画。
  • 笔刷音量设置现在能正确应用于所有建造工具。

世界与方块修复


  • 修复了区块光照中方块和流体 ID 超出范围导致的崩溃。
  • 修复了配置为下落的方块不会下落的问题。
  • 修复了若干模型、纹理和动画的视觉问题,包括木桶、华彩方块、硬木栅栏纹理、绿色菌丝模型、小型酒馆箱子穿模以及门的穿模问题。

创造模式、模组与插件修复


  • 粘贴工具的偏移量在粘贴后将不再重置。
  • 标尺工具将不再在最后一个点上显示求和符号,因为该符号无法正确渲染。
  • 标尺工具现在将在首次交互运行时始终放置一个点,防止快速连续放置点时出现意外行为。
  • 某些建造工具在“显示工具通知”设置禁用时仍会显示通知。现在它们将遵循该设置。
  • 将粘贴工具中的一些原始字符串移至语言键,以便翻译。
  • 方块筛选器中的空方块现在将被正确解析(空流体 ID 现在被视为空方块 ID )。

界面与显示修复


  • 角色编辑器中“猫眼”眼部样式现在正确显示为“猫眼”(Feline)而非“Felin”。
  • 素色运动衫上衣现在正确显示为“素色运动衫”(Jersey)而非“素色连帽衫”(Hoodie),后者与另一独立的素色连帽衫外观冲突。
  • 修复了物品栏拖拽处理器中可能发生的客户端崩溃:当服务端物品栏更新在鼠标按下和移动之间调整了物品栏大小时引发。
  • 修复了鼠标元素处理中的客户端崩溃:当鼠标移出处理程序重入地清除鼠标元素时可能发生。
  • 当服务器踢出、断开连接或超时玩家时,断开连接界面现在将显示服务器发送的实际经翻译后的原因,而非通用错误消息。
  • 单机世界启动失败时,现在会在断开连接界面上显示实际错误,而非静默返回主菜单。
  • 缺少世界目录的单人游戏世界现在会在断开连接界面上显示明确的“找不到世界”消息。

其他修复


  • 修复了若干拼写错误。
  • 损坏的 Settings.json 现在将从其备份文件中自动恢复,而不再导致客户端崩溃。
  • 游戏手柄打开失败将不再报告为崩溃,因为这是本地设备状况而非客户端错误。

模组制作者需要注意的改动


预发布第一部分


  • 网络协议版本已从 hytale/2 升级到 hytale/3。使用先前协议版本的客户端和服务器将无法连接。同时新增了 Crash = 7 QuicApplicationErrorCode。
  • BedsPlugin#getInstance() 已重命名为 #get(),以匹配 Universe、NPCPlugin、FarmingPlugin 和 ObjectivePlugin 使用的访问器约定。
  • 新增了一个共享的 Universe#transferPlayerAsync() API,集中实现了“从世界移除 → 等待目标世界 → 添加玩家”的模式。调用者现在应使用此辅助方法,仅在 whenComplete 中保留自己的回退/清理逻辑。
  • WorldGen 的 SingleInstance 字段已被标记为实验性。
  • World#getChunkIfInMemory、World#getChunkIfLoaded、World#getChunkIfNonTicking、World#getChunkAsync 和 World#getNonTickingChunkAsync 已被弃用。现在应直接从区块引用中作为组件来访问区块数据。
 
版主最后编辑:

预发布版(更新 6,第 2 部分)


2026 年 6 月 4 日

战斗、NPC、物品与装备


  • 移除了 Template_Aggressive_Zombies、其基础交互及相关攻击序列。僵尸现在使用 Template_Predator。
  • 为多个 NPC 添加了新的死亡视觉效果。
  • NPC现在可以同时携带多个实体效果生成。
  • 新增 Template_Flying_Aggressive 模板,适用于能够进行远程攻击的飞行敌对 NPC。Template_Eye、Template_Spirit 和 Template_Scarak_Seeker 现已弃用。

世界与方块


  • 为世界生成 V2 添加了开发中的图形系统。
    • 添加了白噪声密度。
    • 添加了透明材质提供器。
    • 添加了定向抖动位置。
    • 添加了向量偏移位置。
    • 添加了锚点道具分布。
    • 添加了以下向量提供器:加法器、叉积、乘法器、归一化器、随机、标量乘法器、设置X、设置Y、设置Z、减法器、向量投影器和平面投影器。
  • 添加了爆炸性方块组件。
  • 新增了荒野追踪系统;该系统根据玩家床的位置将世界中的区域识别为“家附近”或“荒野”。

模组与创意工具


  • 允许控制弹射物的生成位置是否随发射实体旋转,为此增加了支持。
  • 实现了开发设置,可根据实体碰撞箱体积调整软碰撞。
  • 重制了软碰撞半径,使其考虑碰撞箱大小。
  • ControlDoorsEffect 和 DoorInteraction 现在使用新的 DoorBlockUtils 工具函数以避免代码重复。
  • 添加了纹理图集 API——用于将多个带键图像合成为单个 GPU 纹理的统一 API。
  • 资产编辑器的物品预览现在会尊重物品的模型覆盖,与物品在游戏中的显示方式一致。

音频


  • 音频总线与衰减系统重制。
    • 当多个声音同时播放时,游戏需要决定调低哪些声音以避免重叠和互相干扰。新系统使我们能更好地控制声音如何以及何时进行衰减并快速淡出。
  • 添加了在树枝堆上行走和着陆的声音。
  • Deco_Treasure 方块添加了新的破裂音效。
  • 为仙人掌类方块添加了新的音效:行走、着陆、击中以及破裂。

Bug修复


移动修复


  • 添加了防护,防止在管理背包时切换疾跑状态。
  • 从侧向放置的可骑乘方块上下来时重置方向。
  • 修复了当可骑乘方块沿 X 轴或 Z 轴侧向放置时的实体旋转问题。
  • 修复了疾跑切换模式在停止移动后不再结束的问题。
  • 滑行后现在会保持疾跑状态。
  • 修复了翻滚无法抵消摔落伤害的问题。
  • 修复了部分与控制器相关的设置在重启之间被重置的问题。

战斗、实体与物品修复


  • 修复了当兽魔猎人没有同伴狼时其战斗状态循环的问题。
  • 修复了地下城变种 NPC 不提供正确记忆的问题。
  • 覆雪冷杉树叶现在可以像其他冷杉树叶一样旋转。
  • 饲料袋现在可以旋转到玩家面对的方向。
  • 修复了箱子在打开状态下合并成一个时会消失的问题。
  • 解决了已制作物品可能被用作原料来再次制作自身的问题。
  • 修复了导致家畜无法正常生产的问题。

世界与方块修复


  • 修复了使用世界地图传送后玩家总是面朝北方的问题。
  • 添加了当 WorldStructure 无法构建时使用后备生成器的逻辑。
  • 修复了一系列可能导致 SingleInstance 生成伪影的缺陷。
  • 修复了一个缺陷,该缺陷导致任何 WorldStructure 资产刷新时所有 WorldStructure 资产都被丢弃,从而阻止玩家在加载模组时加入新实例。
  • 生粘土砖半砖和雕纹石砖的纹理修复。

创造模式、模组与插件修复


  • 修复了当地面高度低于 0 时地面高度旋转检查导致的 SpawningContext 崩溃。
  • 修复了触发体积工具的一个崩溃问题。
  • 修复了针对流体的 /submerge 和 /set 命令。
  • 修复了当向 Unarmed.Empty 添加次要交互时客户端崩溃的问题。
  • 更新了触发体积的触发效果,使其利用区块引用/存储来访问区块数据。
  • 修复了触发功能域在世界中生成时损坏的问题。
  • 使用 /worldgen reload 现在会正确删除现有的触发功能域。
  • 修复了当模组声明了类似 0.5.1 的语义化版本时,模组管理器显示“目标版本 0.5.1 但当前游戏版本为 0.5.1”的警告问题。
  • 修复了雕刻工具在世界最大高度处导致世界崩溃的问题。
  • 修复了 /pedit 生成箱子而非预制结构生成器的问题。
  • 修复了建造工具密度钳制的最小值为 0 而非 1 的问题。
  • 更改了耐久度条件交互,使其在物品不可破坏时始终成功。
  • 改进了预制结构保存的支持模式、验证和覆盖流程。
  • CraftRecipeAction 中的数量字段现在要求最小数量,以避免负数导致服务器崩溃。
  • 调整了命令选项卡补全搜索的缓存行为。
  • 修复了挤出工具和线条工具的方块拾取功能。
  • 如果语言文件中存在重复的本地化键,现在会显示警告而不是抛出异常。
  • 修复了重新加载分层资产包时,有时会将自定义资产恢复为其从父级继承的值的问题。

UI 与显示修复


  • 对服务器发现菜单进行了一系列更改。
    • 服务器地址现在默认隐藏。
    • 修复了游戏语言更改时文本不更新的问题。
    • 服务器描述现在可以滚动。
  • 修复了社交侧边栏面板在多次打开和关闭后可能抖动或吸附到错误位置的问题。
  • 修复了本地(你的世界)选项卡中的玩家在其个人资料尚未缓存时都显示默认头像的问题。
  • 修复了社交侧边栏好友滚动列表在列表过大时卡住的问题。
  • 增强了好友显示名称,防止其在游戏内社交侧边栏中渲染为空白。
  • 修复了当导入大型 Discord 好友列表时好友查找失败的问题。
    • 超过 500 人的列表现在可以完全加载而不会报错。
  • 修复了 F11 全屏切换循环问题。
  • 修复了在游戏内 UI 窗口(如背包或制作 UI)打开时 F 键无法使用的问题。
  • 修复了使用右键丢弃时在存储栏和快捷栏中重复放置物品的问题。
  • 修复了重新绑定键盘或控制器按键时图标不更新的问题。

稳定性与性能修复


  • 修复了空手使用放置流体交互时可能发生的服务器崩溃。
  • 修复了由实体以无效旋转角度生成导致的罕见服务器崩溃。
  • 修复了在重新连接或返回主菜单期间点击、打字或使用控制器时可能发生的客户端崩溃。
  • 修复了在多行文本字段中编辑文本时可能发生的客户端崩溃。
  • 修复了靠近持有零耐久度物品的容器时可能发生的客户端崩溃。
  • 修复了会话结束后可能发生的内存泄漏。
  • 修复了重新加载资源时的罕见崩溃。

其他修复


  • 修复了玩家死亡标记在距离出生点过远时不在地图上显示的问题。
  • 游戏内的漏洞报告表单现在支持视频附件。
  • 修复了游戏失去焦点时背包输入被清除的问题。
  • 修复了所选输出设备不可用时音频卡顿的问题。
  • 在游戏服务器中添加了检查,以记录交互期间可能有异常行为的游戏客户端的警告。
  • 修复了多个拼写错误。
  • 引用了已重命名装扮的玩家头像现在将在登录时自动修复,而不是阻止你加入游戏。系统会显示哪些装扮槽位发生了变化。

模组制作者需要注意的改动


  • BlockChunk#getEnvironmentChunk() 方法已弃用。插件应直接通过区块实体引用获取 EnvironmentChunk。此外,WorldChunk 上的三个方法现已弃用:#getBlockChunk()、#getBlockComponentChunk() 和 #getBlock(int, int, int)。这三个方法都应替换为通过区块实体引用直接获取组件。对于 #getBlock,应改用从该引用获取的 BlockChunk#getBlock(int, int, int)。
  • ProcessingBenchBlock#getProcessingSlots() 和 #getProcessingFuelSlots() 现在返回 ShortSet 而非 Set<Short>。ProcessingBenchWindow#setProcessingSlots(ShortSet) 和 #setProcessingFuelSlots(ShortSet) 现在接受 ShortSet 作为其参数类型。
  • PrefabSaverSettings#isClearSupportValues() 和 #setClearSupportValues(boolean) 已被移除。插件必须迁移到 #getSupportMode() / #setSupportMode(SupportMode)。新的 SupportMode 枚举提供了三个值:KEEP_EXISTING(等同于旧的 false)、REMOVE(旧的 true)和 CALCULATE(新增;根据世界物理自动烘焙支撑值)。
  • ExplosionUtils#performExplosion(...) 现在需要传入一个 Rotation3f 旋转参数,传入 new Rotation3f(0, 0, 0) 可保持现有行为。BlockHarvestUtils#performBlockDamage(...) 现在需要传入一个 boolean 类型的 isExplosion 参数,传入 false 可保持现有行为。
  • ControlDoorsEffect#DoorAction 的访问权限已从 public 改为 private。对此枚举的外部引用必须迁移到 DoorBlockUtils#DoorState,后者现已成为公共 API 的一部分,并涵盖相同的状态。
  • SpatialStructure<T> 的所有方法签名已更新为使用 JOML 不可变接口类型;原先参数类型为 Vector3d 和 Vector3i 的现分别改为 Vector3dc 和 Vector3ic。任何接口都必须相应更新其方法签名。
  • DurabilityConditionInteraction 现在在手持物品不可破坏时返回 true,而非 false。之前使用耐久度条件作为门控来阻止对不可破坏物品执行操作的交互链,现在将放行通过。
  • 对于清单名称中包含空格的插件,其基础权限字符串现在将使用下划线代替空格。此前在组 com.example 中注册为 "My Plugin" 的插件,其基础权限为 com.example.my plugin;现在变为 com.example.my_plugin。任何引用旧形式的硬编码权限检查或配置条目都必须更新。
  • CodecException#getMessage() 现在返回完整的富化消息,包括键和源上下文。要获取仅通过构造函数传入的原始消息,请改用新的 #getRawMessage() 方法。
 
最后编辑:

预发布版(更新 6,第 3 部分)


2026 年 6 月 11 日

实体与战斗


  • 砂壳族变得更强韧,将不再受到诸如荆棘等环境危害的伤害。它们还拥有了对毒素的免疫力。
  • 驯化的苔角兽对饲料袋产生了兴趣,会被其吸引。

世界与方块


  • 起床啦!现在睡眠结束后你会离开床。
  • 干枯棕榈树叶和巨型棕榈树叶被破坏时现在会掉落 1-5 个棕榈原木。
  • 永恒玉米作物现在的产量翻倍。收获后应该会获得 2-4 个玉米,而不是 1-2 个。

音频


  • 蘑菇方块现在在被踩踏、损坏、破坏或落上时,会播放独特的声音。
  • 水晶和宝石方块现在在被踩踏、损坏、破坏或落上时,会播放独特的声音。
  • 行走和落在玻璃方块上现在会播放独特的声音。
  • 木灵玩偶现在在被击打、破坏或交互时,会播放独特的声音。

命名与分类


  • 快速设置中的“环境”类别已重命名为“个人环境”,以更清楚地表明这是你自己的客户端设置,与世界设置分开。

漏洞修复


角色与自定义修复


  • 修复了其他玩家的嘴部动画在语音聊天时有时无法播放的问题。
  • 穿着盔甲并摔落死亡时,现在会播放更合适的动画。

战斗、实体与物品修复


  • 冲锋中的 NPC 在放置方块时不应再突然停止。
  • 当同一区域有大量同类型动物时,驯化的动物不应再意外消失。

方块与物品修复


  • 修复了在世界间移动时投掷治疗图腾可能导致的崩溃。
  • 树苗不再因根部空间不足而被阻止生长。
  • 破坏新种植的茄子和生菜现在会返还其种子。
  • 修复了通过格式错误的移动和丢弃请求导致背包物品损坏或复制的问题。

创造模式修复


  • 修复了使用 /spawn 命令生成 NPC 时可能导致的崩溃。
  • 诸如 /set、/fill、/replace 和 /walls 等命令的自动补全现在将正确显示相关方块名称。

控制与输入修复


  • 切换键盘布局或语言时,按键绑定现在会正确更新。
  • 在输入区域中打字时,键盘快捷键不再被触发。
  • 包含了更多游戏手柄型号的配置文件。此前,某些游戏手柄无法被正确识别,导致意外行为。

渲染修复


  • 修复了在特定视距和角度下阴影可能缺失或被截断的问题。

其他修复


  • 修复了各种其他崩溃问题。
  • 修复了一些排版错误。

面向模组制作者的更改


世界生成


  • 向量提供器节点(加法器、缓存器、交叉器、乘法器、归一化器、平面投影器、标量乘法器、设置X/Y/Z、减法器)(译注:游戏内分别显示为 Adder, Cache, Cross, Multiplier, Normalizer, PlaneProjector, ScalarMultiplier, SetX/Y/Z, Subtracter)上的引脚标签已重命名,以便在节点编辑器中更清晰。

方块、预制结构与农耕


  • 现在你可以阻止玩家自动走上一个方块。在其 BlockMovementSettings 中设置 DisableAutoStep: true,玩家必须跳跃才能上去——适用于窗台和栅栏。
  • 预制结构生长的植物(如树苗)现在可以容忍在一个高度带内的阻碍,而不是直接生长失败。向 PrefabFarmingStageData 添加 TolerateObstructionsBelowY / TolerateObstructionsAboveY(相对于预制件的 Y 坐标,原点方块为 0)来标记一个区域,在该区域内会跳过阻碍的世界方块而不是取消生长;ReplaceMaskTags 仍然控制哪些方块被替换。内置树苗现在默认 TolerateObstructionsBelowY: -1。(重叠的高度带会完全禁用阻碍检查,并在服务器日志中发出警告。)

物品、盔甲与弹射物


  • 盔甲现在可以改变玩家的移动方式。在 ItemArmor 资源中添加一个 MovementSettings 块,即可覆盖每件盔甲的行走/冲刺速度、跳跃高度、空中控制等。
  • 弹射物现在可以忽略发射者的瞄准方向。在 LaunchProjectile 或 ProjectileConfig 上设置 IgnorePitch 或 IgnoreYaw 来锁定该轴——对陷阱、炮塔和固定方向法术非常有用。添加 RotationOffset 来微调角度。

协议与网络


  • 语音设置现在通过 SyncPlayerPreferences 暴露给服务器。它有三个新字段:VoiceChat、VoiceInput 和 VoiceInputMode。

针对插件开发者


代码层面的更改——内容/资产模组制作者可以跳过本节。
  • 部分代码已更新为使用 JOML 接口类型(Vector3dc / Vector3ic)
    • Teleport 构造函数
    • BlockIterator.iterateFromTo()
  • 自定义 NPC 行为代码需要更新。NPC 支持对象(战斗、状态、世界等)现在是 ECS 组件,而不是 Role / NPCEntity 上的字段,行为方法现在接收 Ref&lt;EntityStore&gt; + ExecutionSupport。更新任何自定义的 Sensor、Action 或 Motion。SpawnableWithModelBuilder 现在是 DependencyTrackingBuilder。
  • 直接调用 NPCEntity.getAlarmStore() 的插件代码现在应改为读取 AlarmStore ECS 组件。现有存档会自动迁移——无需对存档文件进行操作。
 

预发布版(更新 6,第 4 部分)


2026 年 6 月 18 日

主要功能


  • 为创造模式新增了上色工具!
    • 新的上色工具可在创造模式物品栏的“专用工具”部分找到,并提供三种模式可选:
      • 上色模式允许你用另一种方块替换你瞄准的方块,并且可以在替换时保留形状变体。
      • 渐变模式允许你在一个区域内绘制平滑的颜色过渡。
      • 阴影模式根据所选光源、表面角度或自定义调色板,应用更亮或更暗的色调。

触发功能域工具


  • 现在,同一个触发功能域可以在同一事件上包含多组独立的规则集。通过让条件和效果共享相同的“条目编号”来将它们分组。
  • 新增了 2 种事件类型:
    • “使用方块时”事件会在玩家与可用方块(如门、拉杆或箱子)交互时触发。
    • “实体死亡时”事件会在体积内的实体死亡时触发。
  • 新增了 2 种条件:
    • “使用的方块”允许你按方块类型或状态等进行筛选。
    • “实体计数”统计体积内存活的 NPC 数量。结合“实体死亡时”事件,可快速制作需要击败所有敌人才能继续推进的遭遇战。
  • 新增了 2 种效果:
    • “生成NPC”允许你生成一个或多个 NPC。
    • “播放动画”允许你使触发实体或体积内所有实体执行动画。
  • 调整了 3 种条件:
    • “物品条件”现在增加了“比较”运算符、“清空物品栏”开关等额外选项,并且可以指定元数据键或值。
    • “方块类型条件”现在增加了关于方块旋转的额外选项。
    • “标签条件”现在增加了“没有标签”选项,用于反转检查逻辑。
  • 调整了 8 种效果:
    • “发送消息”现在增加了“接收者”选项,可让其他人收到触发消息。
    • “发送消息”和“显示事件标题”的文本现在可以通过将标签键写在花括号中来包含触发体积标签的值,例如 {myKey}。
    • “播放音效”现在增加了“位置”选项,默认会以体积中心而非触发实体为音源位置。
    • “运行根交互”现在增加了“装备槽位”字段,用于使用“已装备”交互类型。
    • “放置方块”和“替换方块类型”现在增加了关于方块旋转的额外选项。
    • “传送”现在增加了“相对于体积”选项。
    • “修改标签”现在增加了“追加”操作。
  • 新增了 4 条命令:
    • /triggervolume tag set 可通过聊天界面设置体积的标签。
    • /triggervolume tag remove 可通过聊天界面移除体积的标签。
    • /triggervolume tp 可将玩家传送到某个体积。现在也可通过触发体积的UI执行。
    • /triggervolume rename 可重命名触发体积。现在也可通过触发体积的UI执行。
  • 延迟触发的效果和由弹射物触发的效果现在会在正确位置触发,即使弹射物已消失。
  • 退出效果现在也会在实体消失或被移除时运行,而不仅限于离开功能域时。
  • 使用触发功能域重置天气不再会导致天空短暂变黑。
  • 保存触发功能域预设不再会损坏你的 Assets.zip。(此问题在热修补补丁 0.5.6 中也已修复)

UI 与体验改进


  • 服务器浏览界面现在可以用手柄操作。
  • 设置中已移除“使用旧版网络栈”选项。

漏洞修复


战斗、实体与物品修复


  • 修复了抑制某些特定 NPC 生成时,可能会错误地导致其他不相关 NPC 也生成的问题。
  • 修复了 NPC 生命值在重新加载时会完全重置的问题。
  • 修复了 NPC 在被保存、重新加载或复制后会失去所有已生效效果的问题。
  • 修复了当目标世界刚创建但尚未完全加载时,召唤传送门可能失效的问题。
  • 传送门装置现在会显示错误信息,并在尝试打开通往没有有效出生位置的世界时退还传送门钥匙。
  • 修复了在传送器附近死亡仍可能传送玩家的问题。
  • 常春藤精的眼睛和嘴巴不再显示为红色。

世界与方块修复


  • 修复了由预制结构放置的流体会始终显示为最大深度,而非预制结构中定义的高度的问题。
  • 修复了工作台的锤子动画在应用等级升级后无法正确重置的问题。

创造模式修复


  • 修复了当放置模式的“放置设置”设为“挤出”或“绘制”,且距离大于放置距离时,方块有时会消失的问题。
  • 修复了当放置模式的“放置设置”设为“挤出”或“绘制”时,方块会忽略“无物理”设置的问题。
  • 修复了“放置设置”中的“橡皮擦”模式只能在手持方块时使用的问题。
  • 修复了在重置“放置设置”后,“隔空放置”仍保持启用的问题。

控制与输入修复


  • 修复了在攻击或使用物品时,表情动作仍会继续播放的问题。
  • 修复了在某些情况下冲刺切换可能保持激活的问题。

光照修复


  • 极暗的颜色现在会以正确的亮度渲染,而不再显示为纯黑色。
  • 泛光效果在调整游戏窗口大小后现在能保持正确的形状。

其他修复


  • 加强了客户端和协议中的若干位置,以防止在自定义服务器实现上发生客户端崩溃。
  • 修复了多名玩家同时加入服务器时可能发生的崩溃。此修复也应解决部分玩家在玩家列表中不显示的问题。
  • 修复了游戏在计算音频时遇到无法识别的方块类型可能发生的崩溃。
  • 修复了本地缓存的服务器列表文件损坏时可能发生的崩溃。
  • 当系统时钟错误导致登录失败时,游戏现在会显示你的时钟偏差了多少,并提示你同步它,而不是显示通用的错误信息。
    • 服务端也进行了额外调整,对系统时钟过快的情况更加宽容。
  • 修复了当服务器锁定相机然后重置时客户端崩溃的问题。
  • 修复了当服务器锁定相机时,方块和实体交互不再工作的问题。
  • 修复了当服务器锁定然后重置相机时可能发生的客户端崩溃。
  • 修复了在服务器锁定相机时方块和实体交互停止工作的问题。
  • 修复了由某些使用文本渲染的特定位置引起的小型显存泄漏。

面向模组制作者的更改


创造工具


  • 你现在可以在创造模式之外启用建造工具。在工具的资产 JSON 中设置 SurvivalAllowed: true,并授予玩家相应的权限(hytale.editor.tool.entity、hytale.editor.tool.ruler 或 hytale.editor.tool.laserpointer)。标志和权限两者都需要。

实体与物品


  • 新增了 EncounterManager JSON 资产类型,允许你使用可重用的NPC指令列表来编写多 NPC 遭遇战逻辑。使用命令 /encounter add <asset> 在游戏世界中生成遭遇战。
  • ActionTriggerSpawners 现在可以将其生成的 NPC 标记为遭遇战追踪的 Boss 目标。通过在生成动作配置中设置 MarkAsTarget: true 来实现。
  • 新增了 EntityFilterDeath 过滤器,允许角色传感器在被追踪实体死亡时做出反应。
  • NPC 现在会记录它们生成的所有实体,以及这些实体生成的所有实体。你可以使用 SpawnLineageAttitudeProvider 来设置对完整世系的态度。
  • 新增了 ActionChangeTargetRole 动作,允许遭遇战在运行时将 NPC 切换到不同的角色。
  • 被标记的目标现在在角色切换期间会短暂保留,防止 NPC 在角色间转换时丢失目标。
  • 生成抑制现在正确作用于 NPC 组。没有设置 SuppressedGroups 的抑制器仍然会像以前一样抑制范围内所有标记。设置了组的抑制器现在只抑制 NPC 属于这些组的标记。
  • 为 ItemTool 资产新增了 BreakShape 字段,允许工具每次挥动破坏一块可配置区域内的方块。将 BreakShapeDurabilityMode 设置为 PerSwing 或 PerBlock 来控制工具损耗耐久度的方式。

资产架构与格式


  • 为 ModelParticle 资产新增了 ClearParticlesOnRemove 布尔字段。默认情况下为 false,设置为 true 后,当方块或实体从世界中或玩家手中移除时,会立即清除所有附着的粒子。
  • BlockBreakingDecal.StageTextures 现在会在资产加载时验证为非空。字段缺失时默认返回空数组并正常加载。但如果字段显式设置为 null,则会在加载时验证失败。
  • 修复了 MergedEnumMapCodec,使无法识别的枚举值不再导致整个资产解码失败。

面向插件开发者


  • Box.cube() 和 Box.centeredCube() 现在接受 Vector3dc 和 Vector3ic 接口类型,而不是具体的 Vector3d 和 Vector3i 类。现有调用处传入具体类型时无需修改。
  • 当服务器发送无效的 CustomUI 命令且客户端断开连接时,错误日志现在会显示消息链,而不是完整的堆栈跟踪。
  • ItemStack 现在带有一个 Quality 字段,可在运行时覆盖物品配置的质量索引。使用 itemStack.withQuality(index) 生成具有不同质量的副本。
  • AnchorActionHandler 和 WorldThreadAnchorActionHandler 的 handle 方法不再接受 JsonObject data 参数。
 

预发布版(更新 6,第 5 部分)


2026 年 6 月 25 日

图形与渲染


  • 如果你没有 OpenGL 4.1 或更高版本,Hytale 现在会立即关闭。如果更新后游戏无法启动,更新显卡驱动程序应能解决此问题。

世界生成


  • 新的法师塔已经揭示!留意砂岩、页岩和火山生物群系中新增和翻新的地标。

方块


  • 创造模式物品栏中新增了“绿色建筑光源”(Green Build Lightsource),供建造者使用。

物品


  • 现在你可以在副手拿着火把的同时携带任何类型的种子。
  • 所有类型的砾石及其半砖变体现在可以在农业工作台制作。
    • 基础的“砂砾”方块现在特定需要“碎石子”而非任意碎石。
    • “页岩砂砾”现在特定需要“页岩碎石子”而非任意碎石。
    • “大理石砂砾”现在特定需要“大理石碎石子”而非任意碎石。

创造工具


  • 创造模式新增了“标记点工具”(暂译,原文为 Point Tool)。该工具允许你放置标记点,可以命名、添加标签,并可传送至该点。标记点在世界中持久存在,可复制到预制结构中,并自带兴趣点检视器 UI 面板。
  • 触发功能域现在具有“接收到信号时”事件。为任何区域添加“发送信号”效果,它将按需触发其他带标签区域的效果,独立于其正常的进入、退出和每刻行为。

UI 与游戏体验优化


  • 服务器发现现在支持自定义服务器图片。如果未设置或未批准图片,将显示默认图片。
  • 设置菜单中新增了“使用 Quiche 传输(实验性)”开关。开启后,你托管的任何世界都将运行在实验性网络传输上。

性能


  • 世界生成速度现在大幅提升!
  • 前往盘龙林野的传送门现在应能更快出现。
  • 在 Apple Silicon Mac 上,世界生成现在使用更少的内核以提高帧率。
  • 每帧可加载的最大区块数已增加。
  • 加入好友托管的世界现在通常连接速度更快。
  • 加入服务器现在有更多时间完成连接。这将使连接较慢或不稳定的玩家获得更多成功连接的机会。

Bug 修复


战斗、实体与物品修复


  • 修复了某些调整大小的实体碰撞和定位不正确的问题。
  • 修复了某些物品可能显示错误品质等级的问题。
  • 修复了 NPC 有时可能绕远路的问题。(由社区贡献,MelodicAlbuild 贡献该改进。)

世界与方块修复


  • 破坏苔藓碎石子现在会掉落为物品,以便用于合成配方。
  • 修复了在旧版本中放置的道具和其他物体可能交换碰撞设置的问题。
  • 修复了爆炸对方块造成错误伤害值的问题。
  • 修复了当方块上方有流体时,某些方块可能错误扩散的问题。(由社区贡献, MelodicAlbuild 贡献该改进。)

创造模式修复


  • 修复了着色工具中,当从材质列表中移除空材质后,渐变模式无法正确更新引导线和材质权重的问题。
  • 将着色工具中的一项控制设置从“增加高度”重命名为“降低高度”。

音频修复


  • 修复了在某些时刻两首音乐曲目可能同时播放,而非前一首淡出后再开始新曲目的问题。

控制与输入修复


  • 当服务器锁定相机时,方块和实体交互现在仍可正常进行。

渲染修复


  • 修复了实体效果粒子可能在实体离开并重新进入视野范围后残留并重新出现的问题。
  • 修复了游戏暂停时缩放的实体可能显示为缩小的问题。
  • 尽管直视太阳不再导致阴影消失,但通常仍被认为是个坏主意。

UI 修复


  • 地图标记菜单在屏幕底部附近放置标记时不再渲染到屏幕外。
  • 修复了在完全加入服务器前断开连接时,版本不匹配和连接超时消息未能正确显示文本的问题。
  • 修复了若干本地化错误。
  • 修复了世界地图在每个区块角落显示淡暗点的问题。(由社区贡献, TheNullicorn 贡献该改进。)

其他修复


  • 修复了连接到发送过大或格式错误的区块数据包时可能发生的崩溃。
  • 修复了在更新可见实体时移除实体可能发生的崩溃。
  • 修复了服务器锁定并重置相机时可能发生的崩溃。
  • 修复了当实体离开世界而其他实体仍在追踪它时可能发生的崩溃。
  • 修复了加载 NPC 时,其保存的活动移动控制器类型已不存在可能导致的崩溃。
  • 修复了使用物品交互但手为空时可能发生的崩溃。
  • 修复了角色自定义界面可能发生的崩溃。
  • 修复了生成到世界后立即可能发生的崩溃。
  • 修复了在好友请求或邀请待处理时注销或关闭游戏可能发生的崩溃。
  • 修复了加载带有不完整相机设置的角色模型时可能发生的崩溃。
  • 修复了在玩家模型加载完成前切换相机模式、骑乘载具或开始持握交互时可能发生的崩溃。
  • 修复了某些交互的相机动画未定义旋转时可能发生的崩溃。
  • 修复了大型或复杂资源文件可能加载失败或产生错误数值的问题。
  • 修复了游戏过程中可能发生的渐近性显存泄漏,尤其是在使用标尺和选择工具时。

面向 Mod 开发者的更改


NPC、实体与遭遇


  • NPC 现在可以同时对多个世界位置执行操作。在你的 NPC 角色配置中添加 ActionForEach 操作,并配合位置集传感器,对每个返回的位置执行子操作列表,从而实现诸如在每个附近玩家脚下生成地面指示器的模式。
  • 新增了 ActionProjectToGround 操作和 SensorProjectToGround 传感器,可将集合中的每个位置向下投射到其下方最近的实心地面表面。便于在空中的目标下方放置地面级效果。
  • 新增了 ActionAdjustPosition 操作,用于在进一步操作运行前,将 ForEach 集合中的每个位置按固定向量偏移。
  • 为 NPC 和 EncounterManager 指令列表新增了 SignalTaggedVolumes 操作。它会在可配置半径内搜索带有指定标签的触发区域,并立即触发它们的 SIGNAL_RECEIVED 效果。
  • 遭遇管理器现在可以控制所有参与者的音乐播放。向遭遇指令列表中添加 StartEncounterMusic、SetEncounterAudioState 或 StopEncounterMusic 操作,并将 EncounterAudioCollector 附加到任何实体传感器以填充参与者列表。中途加入者会自动接收当前音乐状态,离开的玩家将恢复普通音乐。
  • 新增了 NPC 操作 SpawnInteraction,可在传感器返回的每个位置启动命名的根交互。设置 OrientationSource 以及可选的 Pitch/Yaw 来控制发射方向。
  • 为 NPC 和遭遇管理器角色新增了 SensorPoints 传感器。设置 Type: "Points"、Tag 和 Range,以收集该半径内所有带标签的世界点作为位置集,供 ActionForEach 操作。此功能可与点工具放置的点配合使用。
  • ActionForEach 现在接受 MaxCount 字段。当位置集大于限制时,使用蓄水池采样随机选择位置,而不再总是取前 N 个。
  • 状态评估器现在可以使用 TimeSinceLastUsed 条件在状态选择之间设置冷却时间,参考示例角色 Test_State_Evaluator_TimeSinceLastUsed。(由社区贡献, TheNullicorn 贡献该改进。)
  • 修复了状态选项的 SubState 写入主状态字段,从而覆盖状态并丢失子状态的问题。(由社区贡献, MelodicAlbuild 贡献该改进。)
  • 修复了战斗平衡资源未从父资源继承其战斗动作评估器配置的问题。(由社区贡献, MelodicAlbuild 贡献该改进。)
  • 修复了 NPC 碰撞球体半径辅助工具使用盒深度代替高度,导致实体高度被忽略的问题。(由社区贡献, MelodicAlbuild 贡献该改进。)
  • 修复了双参数 SteeringForcePursue 构造函数存储停止距离和减速距离互换的问题。(由社区贡献, MelodicAlbuild 贡献该改进。)

世界生成


  • 修复了 PositionsCellNoise ChoiceDensity 在错误位置上解析的问题,现在它在每个单元格的原点上解析。

感谢来自社区的 MelodicAlbuild 以下贡献:

  • 修复了 CellNoise2DDensityAsset 和 CellNoise3DDensityAsset 在保存或往返时损坏其 Jitter 的问题。
  • 修复了 SwitchStateDensity 不工作的问题。
  • 修复了 GradientWarpDensity 在错误的点采样其 Z 梯度(使用 Z 代替 Y),导致梯度扭曲地形变形的问题。
  • 修复了 FastNoiseLite.pointFor() 在对角线上镜像单元格点的问题。
  • 修复了 ConcurrentSizedTimeoutCache 驱逐新条目并保留过期条目的问题。
  • 修复了 Quad2d 和 Quad4d 的中心计算,现在使用所有四个角(不规则四边形的中心可能略微偏移至更精确的值)。
  • 修复了 VectorUtil 的最短线段钳位对于不同长度线段使用了错误的长度界限的问题。

资源架构与格式


  • 新增了 SpawnTriggerVolume 交互类型,可添加到物品或抛射物交互配置中,以在发起者位置生成配置好的触发区域。
  • 在 VolumeEntry 上新增了 ExpiresAt 字段,可用于设置触发区域自动消失的时间,无需单独的清理交互。
  • 修复了 ExplosionConfig 中的 BlockDamageFalloff 从 entityDamageFalloff 读取而非自身字段的问题。现在,两个衰减值不同的配置将正确计算方块伤害。
  • 修复了生成的 common.json 资源架构为无效 JSON 的问题,原因是 RailPoint 的 Normal 默认值(零向量)在架构生成期间被归一化为 NaN。现在,无法归一化的轨道点法线将保持不变。(由社区贡献, MelodicAlbuild 贡献该改进。)
  • 修复了 ParticleSpawner 未从父粒子资源继承其 SpawnBurst 设置的问题。(由社区贡献, MelodicAlbuild 贡献该改进。)
  • 修复了 ResetCooldown 和 TriggerCooldown 交互未从父资源继承其 Cooldown 覆盖的问题。(由社区贡献, MelodicAlbuild 贡献该改进。)

服务器与权限


  • 服务器控制台现在支持命令、子命令、参数和标志的 Tab 补全。在控制台中使用 /help 命令会打印格式化的命令列表和每条命令的用法。
  • /update status 和 /update check 命令现在将以服务器配置的语言输出,而不再总是英文。
  • 新增了 /worldgen2 concurrency <level> 命令,可在运行时覆盖世界生成 V2 的工作线程数。覆盖值在服务器重启后重置,传入 0 将恢复服务器默认值。
  • 新增了 maxviewradius 服务器控制台命令,用于设置服务器的全局最大视距:
    • maxviewradius 报告当前视距上限。
    • maxviewradius <n> 将最大视距设置为 1 到 512 个区块之间。
    • maxviewradius reset 将最大视距重置为默认值 32 个区块。

协议与网络


  • 为支持新的点工具,PlayerPackets 中新增了点数据包和 PointShapeType 枚举。
  • ClientTeleport 现在携带两个新的位掩码字段:IgnoredTransformFields 和 RelativeTransformFields,默认均为 0 以保持向后兼容。使用 ModelTransformFields 枚举值标记传送时应跳过或作为相对偏移的各个变换轴。不再支持旧版用于部分传送的 NaN 哨兵。
  • 所有 float、double、Vector、Quaternion 和 Matrix 协议字段现在在发送和接收时强制要求有限值。在任何数据包字段中传递 NaN 或无穷大的插件现在将收到协议错误。
  • 当自定义服务器相机激活时,服务器现在可以通过新的 FovOverride 字段覆盖玩家的视野。该值可设置为 1 到 180 度。省略该值或设为 0 将恢复玩家自己的设置。

重命名与弃用


  • PrefabUtil.paste 和 PrefabUtil.remove 的若干布尔参数重载现已弃用,并将在未来更新中移除。请改用基于标志的重载,使用 PrefabUtil.Flags 常量,如 FORCE 和 NO_ENTITIES。

面向插件开发者


  • PluginManager 现在有一个 getPlugin(Class&lt;T&gt; pluginClass) 方法,返回第一个已加载的、可赋值给给定类型的插件,若无则返回 null。当插件类可直接获取时,请使用此方法代替构造 PluginIdentifier 字符串。
  • 新的内置插件 Points 公开了 PointManager 和 PointSpatialIndex,用于从服务器端代码创建、查询和修改世界点。点通过 PointPrefabContributor 与预制件系统集成。
  • 协议数据包现在自动将相邻的布尔字段打包成位集,每字节最多可容纳 8 个布尔值。任何具有两个或更多相邻 bool 字段的数据包线缆布局将发生变化。
  • 协议现在直接支持位集作为数据包字段类型。Java 端会生成一个伴随类,包含命名的位常量以及 has、with、without 和 none 辅助方法。
  • BlockEntity 渲染行为已更新,方块模型的视觉中心现在位于实体位置(之前视觉中心向上偏移 0.5 格),且实体缩放为 1.0 时渲染为自然大小(之前需要 2.0 才能达到 1 倍大小)。碰撞箱已相应修正,世界中的现有方块实体将自动迁移。
  • ItemStack.getQuality() 现在在堆叠未显式设置品质时返回物品资源配置的品质索引,而不再总是返回 0。
  • 修复了 DeployableOwnerComponent 克隆到不相关的组件类型中,导致复制拥有可部署物的实体时可能附加无关组件的问题。(由社区贡献, TheNullicorn 贡献该改进。)
 
最后编辑:

预发布版(更新 6,第 6 部分)


2026 年 7 月 2 日

衷心感谢 MelodicAlbuildTheNullicornHadawardnarwhalscatNeiloskarscot 为本更新带来的修复、新功能和优化。你们的社区贡献让 Hytale 变得更好!

触发功能域工具


  • 新增“在创建功能域时”触发器,当在现有功能域内创建新功能域时,可触发相应效果。
  • 新增“始终激活”选项,可用于在功能域内持续应用多种效果:
    • “创造模式放置”允许功能域内的玩家像在创造模式中一样放置背包中的方块。
    • “伤害倍率”可用于使功能域内的所有或特定实体受到增加或减少的伤害。
    • “飞行”允许功能域内的玩家像在创造模式中一样飞行。
    • “禁止建造”阻止在功能域内放置方块。可配置例外情况。
    • “禁止破坏”阻止在功能域内破坏方块。可配置例外情况,包括允许特定工具仍能破坏方块。
    • “禁止开门”阻止在功能域内开门。
    • “禁止收获”阻止在功能域内收获作物。可配置例外情况。
    • “禁止治疗”意味着在功能域内生命值只能降低。
    • “禁止方块刻”导致功能域内方块的时间冻结,阻止作物或树木等生长。
  • 新增“修改始终激活规则”效果,可用于切换上述持续效果。
  • 新增“取消 VFX”效果,可使功能域内所选类型的粒子效果过期消失。
  • 新增“移除/击杀实体”效果,可用于移除功能域内特定类型的不需要实体。
  • “发送信号”效果现在将包含额外信息,使其他触发功能域能够准确读取信号发送的原因并作出相应反应(例如信号位置、信号标签)。
  • “方块被破坏时”触发器现在会对环境效果(如火)破坏的方块作出响应。
  • “传送”效果现在可用于将玩家传送到完全不同的世界。
  • 复制触发功能域时,现在也会将其功能域设置复制到新触发功能域。
  • 保存触发功能域预设时,现在可选择是否保存功能域设置。

创作工具


  • 在实体工具面板中添加了一个可搜索的下拉菜单,允许你直接从工具设置中浏览和更换实体的模型。
  • 通过预制结构列表加载预制结构后,现在会显示一条消息,提示使用粘贴工具将预制结构粘贴到世界中。

图形与渲染


  • 在高级渲染设置菜单中增加了“水体效果”质量选项。这影响水的渲染方式,对水的纯净度无影响。
  • 从高级渲染设置菜单中移除了“粒子质量”选项,因为它目前并不改变粒子的渲染方式。

世界生成


  • 在超平坦世界中生成的草现在会有更深的色调。
  • 世界生成 V2 现在在无法加载材质时会使用 Unknown 材质类型,而不是 Empty。

音频


  • 山羊、摩弗伦羊和火鸡现在有了独特的声音。

UI 与体验优化


  • 游戏内插件列表现在有了搜索栏!插件按字母顺序排序,第三方插件排在内置插件之上。在搜索栏中输入内容会按名称过滤并排序结果。

性能


  • 增加了世界生成 V2 的缓冲区大小以提升性能。
  • 改进了世界生成 V2 中的区块优先级系统,提高了附近区块的传送速度,并降低了远处区块的 CPU 使用率。

面向玩家的 Bug 修复


战斗与移动修复


  • 修复了伤害数字动画不能正确继承数值并可能显示错误的问题。
  • 修复了同时存在多个抗性实例时,其效果低于预期的问题。
  • 修复了空中连击攻击未正确应用速度加成的问题。
  • 修复了实体可能继承错误空气阻力值的问题。
  • 玩家近战攻击将不再能穿过墙壁或超出正常攻击范围命中。
  • 可部署物品(如陷阱)现在会按其配置的伤害类型造成伤害,而不是始终造成物理伤害。

世界与方块修复


  • 修复了流体在扩散到其正上方有流体的方块时可能错误扩散的问题。
  • 修复了传送器 UI 读取的是俯仰角而非横滚相对设置的问题。
  • 修复了玩家在克隆后坐在可骑乘方块上时可能面向错误方向的问题。
  • 修复了月相和任何活跃的时间膨胀变化可能被错误重置的问题。
  • 修复了熔岩和水碰撞时可能覆盖固体地形和多方块结构的问题。
  • 修复了从床上醒来后会永久阻止进一步睡眠的问题。
  • 修复了动物围栏内的空间在其中的生物已消失后仍被视为被占用的问题。
  • 修复了世界地图上会出现微弱暗点的问题。
  • 在禁止放置方块的世界中,不再允许在现有台阶上放置台阶方块。
  • 在禁止放置方块的世界中,不再允许使用桶放置流体。
  • 失活珊瑚植株不再具有实体碰撞。
  • 粗制桌子的放置预览现在能正确渲染。
  • 红色木栅栏的碰撞箱现在正确匹配其形状。
  • 通过工具应用的颜色色调和环境效果现在会再次立即更新。

世界生成修复


  • 多格方块(占据空间大于 1x1x1 的方块,如门、屋顶或家具)现在在世界生成 V2 中应按正确方向旋转。
  • 修复了如果文件夹不包含任何预制结构文件,预制结构道具会导致世界生成 V2 输出出现伪影的问题。
  • 修复了 SwitchState Density 总是回退到默认分支而非遵循活跃状态的问题。
  • 修复了细胞噪声地形特征会以镜像模式放置,导致景观有时显得对称的问题。

创造工具修复


  • 粘贴工具在关闭“粘贴空气”时不再错误跳过方块。
  • 粘贴工具现在能正确翻转复制的选区,而不是将其旋转 180 度。
  • 拉伸工具在拉伸时不再导致多格方块重叠,且放置预览现在将与实际放置一致。
  • 选择工具的“设置”、“填充”、“替换”和“堆叠”操作现在应能正确应用于多格方块。
  • 颜色工具的渐变和着色模式现在应能正确应用于多格方块。
  • 画笔和脚本画笔在使用多格方块作为画笔材质时现在应能正常工作。
  • 触发功能域工具的“替换方块类型”触发效果在交换多格方块时现在应能正常工作。

物品与交互修复


  • 修复了已清空的物品容器(如箱子)仍可能被视为非空的问题。
  • 修复了丢弃的物品和射弹可能吸附到错误的相邻方块的问题。
  • 修复了当放置本应被阻止时,物品仍可被放入物品容器的问题。
  • 修复了物品冷却时间不能正确继承,导致某些能力无视冷却时间的问题。
  • 护甲粒子效果在穿戴护甲时现在应能正确渲染。
  • 如果物品未分配品质,现在应能正确继承物品品质。

控制与输入修复


  • 修复了使用手柄导航菜单时,可能只将部分 UI 元素滚动到视野中的问题。
  • 修复了如果你在自定义服务器 UI 中断开连接,断开连接屏幕上的鼠标输入会停止工作的问题。

NPC 与实体修复


  • 修复了 NPC 有时会错误选择较长路径到达目的地的问题。
  • 修复了逃跑中的 NPC 可能在恐慌中忘记它们被允许靠近墙壁和其他障碍物的问题。
  • 修复了碰撞检测在高度上使用了错误的轴的问题。
  • 修复了 NPC 可能错误进入或停留在非预期状态的问题。
  • 修复了 NPC 不能正确继承父级资产设置的问题。
  • 修复了实体效果不能正确继承父级资产设置的问题。
  • 修复了 NPC 在追击目标时会错误停止或减速的问题。
  • 修复了横向移动的 NPC 有时会朝错误方向移动的问题。
  • 修复了 NPC 只有在最后时刻才会相互躲避(如果它们正在冲刺)的问题。
  • 修复了 NPC 群体会全部朝向同一方向生成的问题。
  • 修复了配置为监听其他 NPC 产生事件的 NPC 未对其作出反应的问题。
  • 修复了 NPC 消失计时器会被错误修改的问题。
  • 修复了远程 NPC 在距离目标太近时就是不想攻击的问题。
  • 修复了当生成配置被多次重新保存后,NPC 可能以错误高度生成的问题。
  • 修复了飞行 NPC 在贴地滑翔时被击退,会以奇怪的角度开始飞行的问题。
  • 修复了一些中立生物对复杂的交互应激,以至于在受伤时可能完全无法反应的问题。

UI 修复


  • 已批准的自定义服务器图像现在应正确显示在服务器浏览器中。

音频修复


  • 修复了射弹和可部署弩塔会错误加载音效事件配置的问题。

图形与渲染修复


  • 修复了默认玩家模型具有无效缩放的问题。
  • 粒子效果(如烟雾和火焰)现在应在正确位置和大小渲染。
  • 粒子效果(如烟雾和火焰)将不再在每次缩放生成它们的方块时重复生成。
  • 雾效将不再随着世界部分加载而闪烁。
  • 设置菜单中的“图形预设”选项现在会在所有其他图形设置手动更改以匹配某预设时自动更新。

性能修复


  • 改善了具有大量触发功能域的世界中的服务器性能。
  • 移动或调整触发功能域大小将不再导致刻率下降。
  • 进入世界后,服务器浏览器资产将不再继续占用内存。
  • 如果帧率上限设置为低于 30FPS,当窗口失去焦点时不再会提高到 30FPS。

本地化修复


  • “海岸”和“浅海”区域名称现在将正确显示(例如用于记忆)。

稳定性修复


  • 修复了在复制没有分配返回点的实例实体配置时可能发生的服务器崩溃。
  • 提高了服务器中资产、权限和其他一些数据保存的健壮性,以防止数据丢失。
  • 修复了世界生成过程中可能发生的崩溃。
  • 修复了卸载或重新加载内置游戏插件时可能发生的崩溃。
  • 修复了战利品生成过程中,当物品掉落容器没有条目或所有条目权重为零时可能发生的崩溃。
  • 修复了按下快捷栏按键时,如果该槽位因快捷栏容量修改已不存在,可能发生的崩溃。
  • 修复了在区块生成或加载期间可能发生的服务器冻结。
  • 修复了当排斥区域的配置在实体仍在其中时被移除,可能发生的服务器冻结。
  • 修复了可能导致玩家卡在加载屏幕的问题。
 

面向模组制作者的改动


NPC、实体与遭遇


  • 添加了示例遭遇管理器资产,涵盖基于宏的 Boss 战,包括一个钟乳石(形状的?)攻击模式宏以及用于目标丢失和生命值范围条件的转换宏。

物品、护甲与射弹


  • 新增了一种 Donut 交互选择器类型。在物品的 Interaction 块中,设置 Selector.Id 为 Donut,并配置 MinRadius、MaxRadius、Angle 和 Height,以选择攻击者周围环形区域内的实体。
  • 为 ChangeStateInteraction 添加了一个 RequireBlockPlacement 布尔值。设置为 true 可在禁止放置方块的世界中阻止该交互。内置的半砖物品现在使用此设置,以防止在限制放置的区域堆叠台阶。

资产架构与格式


  • 遭遇管理器现在支持抽象基础定义和变体覆盖。设置 "Type": "Abstract" 来声明可覆盖参数,然后使用 "Type": "Variant" 配合 Reference 和 Modify 块来创建一个派生遭遇管理器,仅覆盖所需字段。请参阅新的 Example_Variant_Base.json 和 Example_Variant.json 资产以了解用法。

服务器与权限


  • 为 /world settings worldgentype、/world settings worldmaptype、/world settings chunkstoragetype 和 /auth persistence 命令添加了键值验证和 Tab 补全。输入未知的提供者键值现在会在解析时失败,并显示“您是不是要找”的可用选项列表。/world add --storage 参数也获得了缺失的描述字符串。
  • 添加了 /tpcinematic 命令作为新的服务器驱动相机序列 API 的示例。相机沿着电影化路径飞向目的地,同时玩家淡出再淡入。支持的路径样式有 FLYOVER、ARC、ORBIT 和 DOLLY。可选的高度参数控制飞越高度。
  • 方块生成器方块现在在游戏中可交互。点击它会打开一个配置面板,无需命令即可创建、编辑和删除生成器条目。授予新的方块生成器权限以允许玩家访问该面板。

重命名与弃用


  • SettingsAsset 中的 CustomConcurrency 字段已重命名为 LowPriorityConcurrency。两个新的配套字段 NormalPriorityConcurrency 和 HighPriorityConcurrency 控制这些生成层级的线程预算。请更新任何使用了旧名称的 Settings 资产。

面向插件开发者


  • 插件现在有一个便捷 API,可通过三个新的 VoiceModule 方法从非玩家来源发送 Opus 语音音频:openEntityVoice、openPositionalVoice 和 openDirectVoice,每个方法返回一个 VoiceSpeaker 句柄。使用 pushOpus(byte[]) 或 play(List&lt;byte[]&gt;) 推送 48kHz 单声道 Opus 帧以播放完整片段,完成后调用 close()。实体扬声器跟随实体并在消失时自动关闭,位置扬声器在打开后支持 setPosition,直接扬声器则无论距离如何都传递给显式设置的收听者。
  • 插件现在可以在路由之前拦截传入的玩家语音帧。通过 VoiceModule.addPlayerVoiceInterceptor 注册一个 PlayerVoiceInterceptor,并从插件的 shutdown 中注销返回的 Registration。PlayerVoiceFrame 参数以可变属性形式暴露说话者、位置、水下标志和 Opus 字节,并提供 drop()、deliverByProximity()、restrictProximityTo、excludeListener 和 deliverTo 用于控制听众。EventPriority 重载可在注册多个拦截器时控制顺序。
  • 添加了 MutableDeathConfig,用于在运行时覆盖每个世界的死亡行为。使用 new MutableDeathConfig(currentConfig) 构建一个,调整所需字段,然后使用 WorldConfig.setDeathConfigOverride(config) 安装。游戏玩法资产的 DeathConfig 是只读的,将其转换为 MutableDeathConfig 会在运行时失败。
  • 插件现在可以在服务器控制的相机期间隐藏第一人称手持物品视图模型。在 ServerCameraSettings 上设置 HideHeldItem: true 可隐藏手部和手持物品,使视野清晰以显示准星覆盖层或电影化镜头。
  • 插件现在可以通过从通过 UpdateVisibleHudComponents 发送的集合中移除 HudComponent.Abilities 来隐藏武器技能 HUD 覆盖层。该覆盖层包含在默认可见集合中,除非插件选择退出,否则保持可见。
  • 添加了服务器驱动的相机序列 API。使用 CameraSequenceBuilder 定义关键帧路径(位置、观察目标、FOV 和每个关键帧的缓动),然后将其流式传输给客户端。序列源在客户端完成播放时触发 onComplete 回调。支持 CameraSequenceFlags 用于控制相机序列期间的玩家状态:LockInput 阻止移动,HideLocalPlayer 隐藏玩家模型,ReturnToGameplayCameraOnEnd 在序列结束时将控制权交还给游戏玩法相机。
  • 添加了 CinematicTeleport.play(PlayerRef, destination, CinematicPath),用于从插件触发完整的电影化传送。相机沿着选定的 CinematicPath 飞行,玩家淡出、传送、再淡入。附近的玩家会看到淡出动画。
  • 添加了 World.scheduleAfter(task, delay, unit),用于在指定延迟后在世界线程上发布任务。该方法返回一个 ScheduledFuture。
  • 添加了 Vector3dUtil.quadraticBezier(p0, control, p1, t, dest),用于采样二次贝塞尔曲线上的点。
  • 添加了 EnvironmentBreakBlockEvent,当方块被世界自身(火势蔓延、收获)移除且没有玩家发起者时触发。订阅它以便在触发逻辑中对环境驱动的方块移除作出反应。
  • VOLUME_CREATE 现在从所有功能域创建路径触发:命令、编辑器工具、预制结构粘贴、世界生成和生成交互。
  • 添加了 FillerPlacementUtil,用于放置带有正确填充物的多格方块、清除被覆盖的结构以及在没有足迹重叠的情况下平铺。在放置多格方块的自定义工具中使用它。
  • 添加了 multiCellFootprint、isFootprintFree 和 markFootprint 辅助方法到 FillerBlockUtil,用于查询和标记多格方块足迹。
  • 添加了 ChunkSectionPreLoadProcessEvent 和 SectionUnloadEvent 事件,分别在区块段加载和卸载时触发。插件可以监听这些事件以获取每个段的生命周期钩子。
  • 添加了 IChunkSaver.Cubic,一个可选接口,用于存储后端,使其选择按段和按实体保存。未实现该接口的后端继续使用现有的整列路径,无需任何更改。
  • 添加了 PointEntry.hasTags(Collection&lt;Integer&gt; tags),当条目包含所有给定标签索引时返回 true。添加了 PointManager 上的匹配查询方法,以检索包含给定 String 标签集的所有点。
  • 实体移除和引用失效的堆栈跟踪捕获现在默认禁用。设置系统属性 -Dhytale.debug.captureThrowables=true 可重新启用它们以进行调试。

触发功能域


  • 触发规则系统和 DelayedEffectScheduler 中的 Actor 和实体引用现在可为 null。接收它们的插件必须添加 null 检查,否则在 @Nonnull 注解下编译将失败。
  • BlockUsedCondition 已被移除。请在任何现有预设中将其替换为 BlockTypeCondition。
  • “传送”效果现在可用于将玩家传送到完全不同的世界。
  • BlockTypeCondition 现在可以采样配置位置处的实时世界,而不仅仅是事件方块。设置 PositionSource 为 EventBlock、WorldPosition 或 EntityPosition,添加 PositionOffset 作为偏移量,并启用 AxisRotation 以进行每轴旋转匹配(X/Y/Z)。
  • TagCondition 现在支持四种源模式:Event、Self、Group 和 Radius。使用 Event 源的预设无需更改。
  • 信号现在通过对齐的 SignalKeys 和 SignalValues 数组携带多个键值对。Source: Event 的 TagCondition 在任意一对匹配时满足。

面向模组制作者的 Bug 修复


NPC、实体与遭遇修复


  • 修复了 StateOption 中的 SubState 未被正确读取或存储的问题。设置 SubState 的子级 NPC 角色资产会被静默忽略,并改为覆盖主状态。除非你的角色使用了 SubState,否则无需更改。
  • 修复了 CombatBalanceAsset 不能从父级资产继承 CombatActionEvaluator 配置的问题。子级战斗平衡资产现在能正确接收父级评估器配置。
  • 修复了 NPC 碰撞避免使用速度平方而非速度来计算其前瞻窗口的问题。围绕旧行为编写的 CollisionDistance 值现在会在速度下从 NPC 更远处生效。
  • 修复了 SensorEntityEvent 在玩家事件存储中查找 NPC 产生的事件,导致针对 NPC 的传感器从未匹配的问题。
  • 修复了 ActionDelayDespawn 以错误方向应用缩短和延长分支的问题。NPC 角色中的延迟消失动作现在会按编写的方式缩短或延长计时器。
  • 修复了 SpawnMarker 在序列化时写入 MaxDropHeight 的平方,导致每次编辑器保存时该值被复合放大(5 到 25 到 625)。
  • TimeSinceLastUsedCondition 现在报告自上次选择状态选项以来的真实经过时间。状态评估器在每次选择时记录时间戳,因此你可以在 NPC 角色中使用此条件为状态转换之间添加冷却时间。
  • 修复了遭遇和 NPC 资产验证在热重载时跳过某些文件的问题。所有受影响的文件现在会正确重新验证。

物品、护甲与射弹修复


  • 修复了世界空间音效索引泄漏到射弹和可部署炮塔的本地音效插槽的问题。在射弹上设置 LaunchWorldSoundEventId 而未设置 LaunchLocalSoundEventId,或在炮塔上设置 ProjectileHitWorldSoundEventId 而未设置 ProjectileHitLocalSoundEventId,不再导致世界音效也在本地播放。
  • 修复了平坦伤害抗性修正不会在继承的伤害原因链中累积的问题。只有最后一个父级的平坦修正被应用。配置了链式平坦抗性的内容现在将产生完整的组合效果。请验证任何使用 flatModifier 的伤害原因层次结构的平衡性。
  • 修复了 PointKnockback 在设置了 OffsetX、OffsetZ 或 RotateY 时应用了错误旋转的问题,原因是角度单位不匹配。RotateY 按文档以度为单位编写。请重新测试任何设置了这些字段的 PointKnockback 配置。
  • 修复了 ChoiceItemDropContainer 在其 Containers 列表为空或每个条目权重为零时抛出 NullPointerException 的问题。战利品生成现在会跳过空结果并继续。
  • 修复了 DeployableAoeConfig、DeployableTrapConfig 和 DeployableTrapSpawnerConfig 忽略编写的 DamageCause 字段,并在所有三个检测调用点硬编码物理伤害的问题。配置的伤害类型现在能正确应用。
  • 修复了 ResetCooldownInteraction 和 TriggerCooldownInteraction 不能从父级交互继承 Cooldown 字段的问题。省略 Cooldown 的子级交互现在会正确回退到父级的值。
  • 没有明确品质分配的物品堆现在能正确解析为物品配置的默认品质,而不是回退到品质索引 0。

资产架构与格式修复


  • 修复了 RailPoint 的 Normal 字段在 common.json 中默认值为 NaN 的问题。现在默认值为 {"X": 0.0, "Y": 0.0, "Z": 0.0}。
  • 修复了编辑天气预告编辑器时的崩溃问题。改进了向没有现有小时数据的 Environment 资产添加条目的功能。
  • 修复了 ParticleSpawner 子级资产不能从父级继承 SpawnBurst 标志的问题。在父级上设置 SpawnBurst 的继承粒子生成器资产现在会正确传递该标志。
  • 修复了 CombatTextUIComponentOpacityAnimationEvent、CombatTextUIComponentPositionAnimationEvent 和 CombatTextUIComponentScaleAnimationEvent 不能从父级资产复制 StartOpacity/EndOpacity、PositionOffset 和 StartScale/EndScale 的问题。子级战斗文本 UI 事件现在能正确继承父级值。
  • 修复了 TeleporterSettingsPage 使用俯仰相对标志编码 RollIsRelative 的问题。配置了 RollIsRelative: true 的传送器会静默应用俯仰相对行为。
  • 修复了 NoiseConfig 范围归一化计算 max 时使用了已更新的 min,导致任何 min 大于 max 的范围被压缩为单点的问题。具有反转 min/max 值的相机噪声资产现在能正确归一化两个边界。
  • 修复了 MovementConfig 中的 comboAirSpeedMultiplier 在每次复制和网络同步时被 airSpeedMultiplier 覆盖的问题。编写的数值现在能正确应用。如果你的配置设置了不同的 comboAirSpeedMultiplier,请验证移动平衡。
  • 修复了方块破坏贴花和方块组资产在运行时注销时未向已连接客户端发送其移除通知的问题。客户端现在会正确接收并清除过时的资产。
  • 修复了 ObjectiveLineAsset 在加载时用手动编写的 objectiveTitleKey 或 objectiveDescriptionKey 覆盖自动派生键的问题。自定义本地化键现在会按编写生效。
  • 修复了 WorldConfig 中 NighttimeDurationSeconds 的默认值,之前被计算为全天时间的 60%,而非文档所述的 40%。仅影响省略 NighttimeDurationSeconds 的游戏配置。显式设置该字段的配置不受影响。
  • 修复了 EntityEffect 资产中的 StatModifiers:省略 StatModifiers 块的子级效果现在能正确继承父级的修饰符,而不是静默丢失。
  • 修复了 VelocityConfig 资产中的 AirResistanceMax:省略 AirResistanceMax 的子级配置现在能正确继承父级值,并且不再覆盖已由前一条目继承的 AirResistance 值。
  • 修复了 CellNoise3DDensityAsset 编解码器为 Jitter 字段读取 scaleZ 而非 jitter,导致保存/加载往返用 scaleZ 覆盖编写的 jitter 值。
  • 修复了 GradientWarpDensity 在 (x, z, maxZ) 而非 (x, y, maxZ) 处放置 z 轴采样,导致 z 分量扭曲不正确。

服务器与权限修复


  • 修复了 /entity clean 和 /npc clean 在移除一个实体级联到移除另一个(如通过群体成员或角色引用)时中途失败的问题。两个命令现在都能完全执行。

面向插件开发者的修复


  • 修复了 Quad2d.getCenter() 和 Quad4d.getCenter() 以平均所有四个顶点而非两个。非矩形四边形的质心可能与之前返回的值不同。同时修复了 VectorUtil.shortestSegmentBetweenTwoSegments() 在钳位时使用了错误的线段长度界限,导致不等长线段结果不正确。
  • 修复了 SteeringForcePursue(stopDistance, slowdownDistance) 在内部以错误顺序存储两个距离的问题。使用不同停止和减速值构造 SteeringForcePursue 的插件应在更新后重新测试 NPC 追击行为。
  • 修复了 DamageCalculator.equals() 即使所有五个字段匹配也始终返回 false 的问题。比较或去重 DamageCalculator 实例的插件现在会得到正确结果。
  • 修复了 BlockMountComponent.clone() 未复制 expectedRotation 的问题。克隆的方块骑乘组件现在会保留其编写的朝向方向。
  • 修复了 InstanceEntityConfig.clone() 在 returnPoint 或 returnPointOverride 为 null 时抛出 NullPointerException 的问题。省略这些字段的实例实体配置现在可以无误克隆。
  • 修复了 TimeResource.clone() 丢弃 timeDilationModifier 以及 WorldTimeResource.clone() 丢弃 moonPhase 的问题。克隆的时间资产现在会保留所有字段。
  • 修复了脚本画笔操作 CircleOffsetFromArg 在省略圆半径参数时因 NullPointerException 崩溃的问题。该操作现在会报告清晰错误并返回。
  • 修复了 Steering.assign() 未复制 roll 和 hasRoll,导致将一个 Steering 赋值给另一个时静默丢弃横滚状态的问题。
  • 修复了 Steering.clearRotation() 未清除 roll 和 hasRoll,导致过时的横滚状态可能带入下一个转向输出的问题。
  • 修复了 EventMessage.clone() 丢弃运行时状态(enabled、activated、age、target)的问题。克隆的活跃消息现在会正确携带其目标和年龄。
  • 修复了当父级插件具有非零补丁版本(例如 0.8.6)时,子插件无法加载导致的服务器启动崩溃。
  • 修复了 ConcurrentSizedTimeoutCache 驱逐逻辑使用了错误的比较方向,导致保留过期条目并驱逐最近使用的条目的问题。
  • 修复了 FlatTimingProfiler.start() 未设置 hasStart,导致断言失败和错误的探针状态检测的问题。
  • 修复了 DeployableOwnerComponent.clone() 返回 KnockbackComponent 而非 DeployableOwnerComponent 的问题。克隆拥有可部署物的实体现在会产生带有空可部署列表的正确组件。
  • 修复了卸载或重新加载核心插件(如 Hytale:ProjectileModule)时抛出的 NullPointerException。JavaPlugin.getFile() 现在为 @Nullable,并且 PluginManager.unloadJavaPlugin 已重命名为 releasePluginClassLoader。
  • 修复了在快速连续两次卸载同一插件标识符时发生的崩溃。第二次调用现在变为无操作,而不是抛出空引用错误。
  • 修复了重新加载注册了自身资产类型的插件时抛出的错误。通过 getAssetRegistry() 注册的类型现在会在关闭时被清理,因此重新加载不再抛出重复注册错误。
  • 修复了 CompanionBlockSpawnerPlugin 在运行时重新加载时崩溃的问题。如果你的插件注册了资产存储,请调用 getAssetRegistry() 而非静态 AssetRegistry,以便存储能在关闭时被正确注销。同时确保在空间查询中使用的任何 ComponentType 引用保存在实例字段而非静态字段中,以便在重新加载后保持最新。
  • 修复了 AOECylinderSelector 将其调试体积绘制为球体而非圆柱的问题。现在它会绘制一个跨越选择器配置半径和高度的圆柱。仅在启用 SelectInteraction.SHOW_VISUAL_DEBUG 时可见。
  • 修复了点检查器在传送时应用错误旋转的问题。检查器现在也会在使用传送按钮后自动关闭。
 

预发布版(更新 6,第 7 部分)


2026年7月9日

衷心感谢 MelodicAlbuild 为本更新带来的修复、新功能和打磨。你们的社区贡献让 Hytale 变得更好!

主要特性


用陀螺仪控制瞄准!

  • Hytale 现已支持手柄的陀螺仪功能!拥有支持陀螺仪的手柄(如 DualSense 或 Switch Pro)的玩家,现在可以在手柄设置中启用体感控制,通过倾斜手柄来调整视角。

NPC 与实体


  • 改进了其他玩家和 NPC 移动的插值方式。现在在更广泛的帧率范围内,移动将更加平滑,并且游戏会自动针对不稳定的网络连接进行调整,以减少卡顿。

界面与便捷性


  • 视野距离设置现在会显示服务器是否配置了最大视野距离。
  • 打开预制结构浏览器现在会显示你上次导航到的文件夹以及之前激活的搜索查询。点击“资产”将同时重置这两项。

性能


  • 改进了附近区块加载优先级的顺序,使玩家周围的区域能更快填充。
  • 改进了帧节奏,以减少游戏过程中的卡顿,尤其是在锁帧情况下,动作会更加流畅。

网络


  • 使用 Wi-Fi 或安装了 VPN 软件的电脑时,开放世界连接将更加可靠。
  • 当向好友开放世界时,如果自动端口转发不可用,将显示一条消息,说明本地网络外的玩家可能无法连接。

面向玩家的漏洞修复


战斗与移动修复


  • 修复了范围效果方块交互意外偏移一个方块的问题。
  • 修复了物理对象向下俯冲并异常弹跳的问题。
  • 修复了物理对象会无限期保持活跃而不会趋于静止的问题。
  • 修复了战斗附近的伤害命中粒子效果不会对所有玩家显示的问题。
  • 修复了使用 DonutSelector 偏移的攻击未考虑玩家朝向的问题。
  • 修复了在攀爬前使用武器冲刺时,速度加成会延续到攀爬过程中的问题。

控制与输入修复


  • 修复了在服务器发现页面使用手柄时,服务器列表会一次滚动超过一行的问题。
  • 修复了多项导致筛选、搜索和详情面板无法用手柄完全导航的问题。
  • 修复了使用手柄时,社交侧边栏在主菜单或暂停状态下无法打开的问题。

世界与方块修复


  • 修复了睡眠功能中玩家会被卡在“Zzz”界面的问题。
  • 修复了传送器冷却时间可能重置过快,导致立即将玩家传回的问题。
  • 修复了如果传送点名称包含大写字母,传送器可能显示为未激活的问题。
  • 修复了分支和管道转角方块无法正确翻转的问题。
  • 修复了一个漏洞,玩家可绕过方块放置限制。
  • 修复了作物在保存并重新加载世界后会丢失自定义生长阶段的问题。
  • 修复了即使玩家从睡眠中被唤醒,夜晚仍会被跳过的问题。
  • 修复了在旧范围外的立方世界中破坏和放置方块的问题。
  • 修复了旧范围外的立方世界中流体不工作的问题。
  • 修复了门、楼梯、屋顶及其他连接方块在立方世界中无法正常工作的问题。
  • 修复了在配置为跳过保存新生成区块的服务器上可能出现地形缺失部分的问题。
  • 修复了方解石砖和方解石圆石墙方块播放错误音效的问题。
  • 修复了在创造模式中,未注视任何特定方块时,会在世界原点显示方块轮廓的问题。

世界生成修复


  • 修复了一个世界生成问题,某些预制结构放置可能失败,并在环境中留下空隙。

创造模式修复


  • 修复了选择工具的“移动”和“堆叠”模式仅在游戏语言设为英语时才能使用的问题。

物品与交互修复


  • 修复了风暴蓟花作物收获时掉落错误物品的问题。
  • 修复了能同时破坏多个方块的工具,在瞄准头顶方块时显示错误目标区域的问题。
  • 修复了一个漏洞,取消弩攻击动画可能保留或复制弹药。
  • 修复了配置为仅在地面工作的可部署物品会拒绝并挂在天花板上的问题。

NPC 与实体修复


  • 修复了 NPC 远程攻击在目标过近时会向一侧偏移的问题。
  • 修复了集群 NPC 静止不动而不是朝向群体移动的问题。
  • 修复了 NPC 冲锋攻击未报告所有方块命中的问题。
  • 修复了执行冲锋攻击的 NPC 可能攀上方块以被视为悬空的问题。
  • 修复了 NPC 可能停止检测附近玩家和障碍物的问题。
  • 修复了所有僵尸变种无法生成记忆的问题。
  • 修复了如果无敌实体某项特定属性变化被阻止,其其他属性也无法同时修改的问题。

图形与渲染修复


  • 修复了在世界空旷区域放置方块后,雾距离会短暂向内收缩的问题。
  • 修复了光照和阴影中的颜色不如预期准确的问题。
  • 修复了流体中可能出现滚动黑线的问题。
  • 修复了方块、流体和模型可能出现边缘变色或纹理溢出问题。
  • 增加了对加载大量模组时物品图标渲染为黑色纹理问题的缓解措施。
  • 修复了在某些硬件配置上可能导致光照不正确的问题。

性能修复


  • 修复了地图中的内存泄漏问题。

界面、社交与菜单修复


  • 修复了分享代码在某些路由器(如 BT Smart Hubs)上失败的问题。
  • 修复了部分创造工具的方向下拉标签被截断的问题。

稳定性修复


  • 修复了使用信标消息的 NPC 可能引发的崩溃。
  • 修复了 /block row 命令可能引发的崩溃。
  • 修复了护甲应用引用无修饰符属性的交互时可能引发的崩溃。
  • 修复了在合成窗口中选择超出范围的槽位时可能引发的崩溃。
  • 修复了在世界间传送时可能发生的软锁问题。
  • 修复了复制安装于方块上的实体时可能引发的服务器崩溃。
  • 修复了当目标重新加载资产且玩家处于最终任务时可能引发的服务器崩溃。
  • 修复了加载包含无法识别的交互类型的实体时可能引发的服务器冻结。
  • 修复了卸载世界区域时可能引发的崩溃。
  • 修复了服务器尝试处理传送请求但无等待请求时可能引发的崩溃。
  • 修复了加入服务器时,因战斗文本、环境音效、音效事件、交互、可部署配置或物品动画配置不完整而可能引发的多项崩溃。
  • 改进了在 GPU 或驱动程序未达到 Hytale 最低图形要求时启动游戏的错误提示信息。

面向模组制作者的改动


NPC、实体与遭遇


  • 变体现可将修饰符直接转发到宏元素自身的公开参数。在模板槽中标记 "AcceptsForward": true,然后在变体中按槽名添加 "_ForwardedModifiers" 块,以设置该宏的参数,无需通过模板传递。
  • 为 BodyMotionCharge 添加了 RemovedBlockSet 字段。在此列出冲锋过程中被摧毁的方块,以便在移除后正确排除于呼吸检查之外。
  • 遭遇管理器现在可以向世界事件发送完成信号。在 NPC 的动作列表中添加 SignalWorldEvent 动作,并在世界事件中配以 SignalCondition,当动作触发时(例如首领被击败)即可触发完成。
  • 为遭遇管理器添加了 AdjustPortalTimer NPC 动作。设置 "Type": "AdjustPortalTimer" 并配合正或负的 "Seconds" 值,可在运行时增加或减少活跃传送门计时器的时间。
  • 添加了 ActionSetHealthRegen NPC 动作,可在运行时启用或禁用实体的生命回复。NPC 现在自动包含新的 HealthRegenState 组件,以支持通过角色行为逻辑控制回复。

物品、护甲与弹射物


  • 为 Armor.MovementSettings 添加了 ExtraJumpSoundEvent。将其设为单次、非循环音效事件的 ID,可在每次额外跳跃时播放音效。与现有的 ExtraJumpParticleSystem 字段搭配使用。
  • 为交互系统添加了缩放支持,允许任何物品实现放大/瞄准模式行为。在任何步骤的 Effects 下添加 Zoom 块,可在该步骤激活时进行缩放;设置 PersistZoom: true 可使其在后续链中保持生效,从而允许链式步骤在交互过程中逐步调整或切换缩放。所有字段均为可选,并有合理的默认值。
  • 添加了开发者质量的示例测试物品,展示交互系统中缩放支持的行为:
    • Weapon_Test_Sniper_Rifle —— 单级固定缩放,带瞄准镜覆盖,强制第一人称。
    • Weapon_Test_Zoom_Rifle —— 三级可变缩放,逐级调整并切换准星。
    • Weapon_Shortbow_Test_Zoom —— 拉弓蓄力式缩放,在射击期间保持。
  • 添加了在交互步骤中隐藏本地玩家第一人称手持物品的功能。在步骤的 InteractionEffects 中设置 HideFirstPersonHeldItem: true(其他玩家仍可见该物品)。

方块、预制结构与农耕


  • 资产包中的预制结构现在可以在 PrefabListAsset 配置中引用。
  • 遭遇管理器实体现在可以存储在预制结构中。

资产模式与格式


  • 添加了世界事件系统,一个数据驱动的、用于脚本化多阶段事件的系统,这些事件在世界中动态发生。
  • 添加了 PlaceBlock 随机刻程序:在方块的 RandomTickProcedure 中设置 "Type": "PlaceBlock",配合必需的 Offset 和 Placements 列表,其中每条规则可指定目标的方块 State,并放置单个 Block 或带权重的 Blocks 列表。若目标被占用或超出世界边界,放置会静默跳过;无效配置会在资产验证时失败。(参见开发者质量的方块/物品 Test_PlaceBlockProcedure 作为功能示例)。

服务器与权限


  • 添加了 /worldevent start|cancel|list 命令,用于按资产类型或事件 ID 管理活跃的世界事件。

针对插件开发者


  • 移除了 ItemStack.fromPacket(ItemQuantity)。请在包处理器中将所有调用替换为 getItemStackFromQuantity(),该方法会拒绝未知物品,强制正数量下限,并限制在物品最大堆叠数内。
  • 添加了 BlockOperations.setBlock 作为 WorldChunk.setBlock 的未来替代,正确处理边界检查、邻居通知和方块实体创建。请重新编译你的插件以使用此方法;现有的 WorldChunk.setBlock 调用仍可用,但在立方世界中可能无法正常工作。
  • 添加了 PointEntry.getTransform(),返回一个 Transform,其中包含条目的位置和已转换为弧度的旋转。
  • 将 RemoveMapMarker.MarkerId 从可选改为必填。null 不再有效。请重新编译任何创建或处理此包的插件。
  • 多项协议交互和音效字段改为必填(之前可为 null):DamageEntityInteraction.TargetedDamage、ChainingInteraction.ChainingNext、SerialInteraction.SerialInteractions、MemoriesConditionInteraction.MemoriesNext、SpawnDeployableFromRaycastInteraction.DeployableConfig、ApplyForceInteraction.Forces、RootInteraction.Interactions、SoundEventLayer.RandomSettings 和 SoundEventLayer.Files 必须始终填充。插件若将这些字段留空,现在将无法通过编解码器验证。

面向模组制作者的漏洞修复


世界生成修复


  • 修复了当加权路径不包含预制结构文件时,PrefabProp 会中止世界生成的问题。现在它会静默跳过放置而不是失败,因此配置错误的池不再破坏周围生成。

物品、护甲与弹射物修复


  • 修复了 DonutSelector 未根据实体的偏航角旋转其 Offset 的问题。现在偏移量在服务器和客户端上都会相对于实体的朝向方向应用,符合预期的制作行为。

方块、预制结构与农耕修复


  • 修复了自定义连接方块图案在非零旋转时计算错误填充块偏移的问题。现在旋转组件会在正确的轴上旋转。带有旋转的现有配置无需任何更改即可产生正确结果。

资产模式与格式修复


  • 多项之前接受 null 的协议字段现在变为必填:CombatText 的颜色和动画字段、Interaction.Rules、AmbienceFX 的频率、半径和条件范围,以及 ItemPlayerAnimations.Animations。在加载时,若资产文件将这些字段显式设为 null,将被拒绝。

服务器与权限修复


  • 修复了 /tp world 命令在目标世界的生成器尚未加载完成时,会因空指针崩溃而不是报告“未设置出生点”的问题。
  • 修复了在世界配置中设置 SaveNewChunks: false 时,区块 0-9 未写入磁盘的问题。首次保存时,这些区域会静默丢失,并在重新加载时重新生成为空。无需更改配置。

插件开发者修复


  • 修复了 AOECircleSelector 在选择区域时沿 X 轴偏移一个方块的问题。现在选择会落在正确的目标中心。除非你的插件已针对旧偏移进行了补偿,否则无需任何操作。
 

预发布版(更新 6,第 8 部分)


2026 年 7 月 19 日

一位安全研究员私下向我们报告了客户端在处理服务器发送给游戏的图像文件(PNG)时存在的一个缺陷。在受影响的客户端上,恶意或被入侵的服务器可以发送特制的图像,客户端在加载时处理不当,在最坏的情况下,可利用该漏洞在玩家电脑上执行代码。该问题仅影响连接到蓄意滥用此漏洞的服务器的玩家。经过彻底调查,我们未发现任何证据表明该漏洞曾被用于针对玩家。该问题的修复程序在报告当天即已发布。

在处理此报告的过程中,我们的团队还对周边的图像、纹理和媒体加载代码进行了多轮额外审查,以进一步加固底层系统和实现。

研究员 0x90 在此处撰写了完整的技术细节:How a PNG became a $20,000 Hytale RCE。我们为这一出色的发现和披露颁发了 20,000 美元的奖金。

我们高度重视安全问题,而像这样的报告正是我们这样做的原因。如果您在 Hytale 中发现了漏洞,我们希望收到您的反馈。我们的漏洞披露计划详情请访问 hytale.com/security

2026 年 7 月 17 日
衷心感谢 MelodicAlbuildEearslya 为本更新带来的修复、功能和完善。你们的社区贡献让Hytale变得更好!

主要特性


利用具有硬碰撞的实体,打造全新的陷阱、障碍和跑酷挑战!

  • 玩家现在可以站在具有硬碰撞的实体上,并会被它们平滑地推动。
  • 模组制作者在创建移动墙壁或平台等实体时,可以利用此新行为来运送伙伴或困住闯入者!
  • 对于更复杂的障碍,现在可以使用实体工具为实体赋予旋转后的碰撞箱,玩家可以与其发生碰撞。
  • 在现阶段,这些更改仅影响与玩家的碰撞。其他实体还需等待才能适配这些变化。

角色与自定义


  • 新增一款可解锁的装饰品:堡垒披风!只有开启了 Hytale 账户双重身份验证的、注重安全的玩家(Avatar)才能装备这款新披风。

触发功能域工具


  • 新增“时间”效果。可用于设置、暂停、恢复或在一段时间内平滑更改一天中的时间。该效果可应用于所有人,也可仅应用于触发该效果的玩家。
  • 新增“禁止使用”常驻生效效果。可用于阻止在功能域内使用方块或实体。
  • 为标签条件、物品条件和玩家数量条件添加了“不等于”比较选项。
  • 为标签条件添加了“至少”、“至多”、“大于”和“小于”比较选项。
  • 多个触发功能域现在可以共享相同的显示名称。当出现此情况时,重复的名称会自动编号以区分。
  • 触发功能域现在在粘贴或生成旋转后的预制结构时,其效果会保持正确对齐。出生点和其他功能域效果现在会随预制结构一起旋转。

其他创造工具


  • 使用创造工具以“绘制”或“挤出”放置模式放置方块时,你将在放置过程中实时看到这些方块,而不再是在结束时一次性全部出现。
  • “橡皮擦”和“快速放置”放置设置的速度现在由“b”决定。(译注:原文如此。感觉应该是被误删了,这里可能由参数配置。)

界面与体验优化


  • 调色板编辑器、颜色和点状建筑工具现在拥有更新后的图标。

图形与渲染


  • 应用了全新的透明度算法,以改善重叠半透明物体的渲染效果。此更改目前仅影响 Windows 和 Linux 用户。

面向玩家的错误修复


战斗与移动修复


  • 以超过终端速度向上发射玩家、物品或 NPC 将不再导致它们完全不受重力影响。
  • 退出滑铲后立即重新冲刺将不再消耗错误数量的体力值。
  • 装备上的小数抗性值在伤害计算中不再被错误地向下取整。

世界与方块修复


  • 当草方块位于非固体方块或透明方块下方时,不再会变成泥土。
  • 耕地现在在收获作物后会恢复为泥土。
  • 数十种花卉品种趁着阳光明媚的日子,现已长到了预期的尺寸。
  • 漂浮的水生植物不再沉入水面以下。
  • 被移除的方块集合现在会在删除后立即消失,而不再停留在屏幕上直到你重新连接。
  • 修复了通过非预期方式在远远超出触及范围的地方放置方块的问题。
  • 使用传送器生成的传送点名称在打开设置后不再会意外改变。

创作工具修复


  • 修复了线条笔刷工具中“连续”放置选项的拼写错误。任何使用旧拼写保存的工具都需要重新选择“连续”。
  • 预制结构建造预览现在无论在何种游戏模式下都应正确显示。
  • 修复了预制结构配置可能保存失败的问题,并改进了保存失败时显示的消息。
  • 批量方块替换命令现在会将可旋转方块替换为不可旋转方块,而不再跳过它们。
  • 在撤销移动对象后使用“重做”功能,现在会正确地将对象放回移动后的位置。
  • 粘贴工具现在在立方体区块世界的每个高度层级都会进行粘贴。这是初步的首个实现,某些方块可能无法正确粘贴。
  • 修复了使用实体工具的网格吸附将多个实体放置在同一位置时可能出现的闪烁效果。

物品与交互修复


  • 在创造模式中选择“全部制作”按钮现在会制作尽可能多的物品,直到你的背包满为止。
  • 传送门钥匙图标现在会正确渲染。

界面、社交与菜单修复


  • 创造模式物品栏标签和快速设置标签现在会在标签过多无法容纳时显示箭头导航按钮。
  • 修复了当背包中的物品数量超过物品轮盘槽位数时可能发生的崩溃。
  • 建造工具快速设置中的重置图标不再会被拉伸。
  • 修复了实体工具下拉菜单的样式。

图形与渲染修复


  • 修复了带有方块模型的实体阴影渲染尺寸只有预期一半的问题。
  • 云层在 MacOS 上过渡时看起来不再破损。
  • 着色器现在以更多驱动程序接受的方式设置,以防止在某些显卡驱动上编译失败。

性能修复


  • 改进了服务器流式传输大量数据时的网络可靠性,使这些传输在重负载下更不容易停滞。
  • 修复了立方体世界中流体更新导致的性能低下问题。

本地化修复


  • 修复了在土耳其语等字母大小写规则不同的语言环境下运行的服务器中,命令、游戏模式和平台名称被误读的问题。

稳定性修复


  • 修复了在视角晃动设置未涵盖所有移动类型的世界中,正常移动(包括站立不动)时可能发生的崩溃。
  • 修复了若干在加载进入世界时可能发生的崩溃。
  • 修复了未设置脚步声时机时,脚步声声音可能引发的崩溃。
  • 修复了加入大量模组化服务器时可能发生的若干崩溃,这些服务器报告了意外的天气、环境、流体或环境音效值。
  • 修复了使用传送器时可能发生的崩溃。
  • 修复了在连接服务器时被断开连接可能引发的崩溃。
  • 修复了加载以旧格式保存的世界时可能发生的崩溃。
  • 修复了在配置为允许从多个出生点中选择的世界中,某些玩家无法生成的问题。
  • 修复了在服务器仍在保存区块时关闭服务器可能导致世界数据丢失的问题。
  • 改进了索引存储后端的内存管理。
  • 修复了其他若干杂项崩溃。

面向模组制作者的更改


NPC、实体与遭遇


  • 实体现在可以在交互链中发送信标消息。添加带有 Message 和 Range 的 SendBeacon 交互,可以向附近的 NPC 和遭遇管理器广播消息。
  • 现在可以通过行为切换无敌状态。在 NPC 上使用 SetInvulnerable 操作来切换其自身状态,或者从遭遇中使用 SetTargetNPCInvulnerable 来切换 Boss 或其他目标 NPC 的状态。
  • 现在可以使用 ExecutingInteraction 实体过滤器来过滤实体是否正在执行某个交互,例如,在 Boss 仍在攻击过程中阻止遭遇阶段切换。
  • 现在可以缩放由 NPC 行为生成的粒子。在 ActionSpawnParticles 操作上设置 Scale(乘数,默认为 1)。
  • 现在可以为实体赋予旋转后的硬碰撞箱。在其上设置新的 RotatedCollision HitboxCollisionConfig,玩家将与其实际的旋转箱体发生碰撞(目前仅限玩家碰撞)。

物品、护甲与投射物


  • 现在可以通过实体效果缩放移动速度。在 MovementEffects 上设置 SpeedMultiplier(默认为 1)。
  • 投射物现在可以以随机尺寸发射,该尺寸来自其模型资源的最小和最大缩放值。在 ProjectileConfig 中设置 UseModelScale: true(默认为 false,因此现有投射物保持当前尺寸)。仅较新的 Projectile 交互类型支持此功能,旧版 LaunchProjectile 不支持。
  • 添加了 SignalNearbyVolumes 交互,用于向半径内的触发功能域发送 SignalReceived 事件,可选按标签过滤。将其绑定到工具或交互,以驱动监听信号的功能域。

方块、预制结构与农耕


  • 将方块放置重构成了交互系统。快速放置标志(QuickReplace、QuickRetype、NoPhysics)现在来自资源,且仅在服务器游戏模式为创造时生效,旧的 AllowDragPlacement 键已从放置交互中移除。
  • 现在可以通过在放置交互资源上设置 MaxBlocksPerTick 和 MaxBlocksPerGesture 来调整每种放置模式的建造吞吐量。
  • 现在可以阻止触发功能域的效果在预制结构粘贴或通过世界生成旋转放置时随之旋转。在功能域或组上设置 RotateEffectsOnPaste: false(默认为 true ,因此效果位置、旋转和速度会随预制结构旋转)。
  • 现在可以让方块在世界中的位置播放音乐。音轨会随距离淡出、平移,并穿过墙壁时产生闷响,同时拾取环境混响。添加引用 MusicContainer 的音乐发射器方块组件。

服务器与权限


  • 服务端穿墙模式已落地,用于原型设计观战风格模式。现在它通过服务器运行,使用新的 RequestNoClip 数据包,并由服务器权限控制,同时玩家仍需同时开启穿墙和飞行模式,以免掉到地面下。
  • 添加了 /floodfill <半径> <方块> 世界编辑器命令,以球形半径填充你周围相连的空旷区域,使用方块或加权图案。它不会覆盖已有几何体,/undo可还原。
  • 添加了 /locate dungeon <名称> 命令,按名称查找最近的地牢。

重命名与弃用


  • 插件和自定义服务器必须针对新协议重新构建才能连接,因为协议 CRC 已更改。视角晃动和镜头抖动类型(ViewBobbing、CameraShakeConfig、OffsetNoise、RotationNoise、NoiseConfig)现在需要非空值。现有的视角晃动和镜头抖动 JSON 仍可继续使用。
  • 移除了 IsUsable 方块标志。方块是否显示使用或携带提示现在由其实际交互和收获数据决定,因此请从方块配置中移除 IsUsable。

针对插件开发者


  • 不可信的 JSON 现在以嵌套深度限制进行解析,深度嵌套的输入不再会导致栈溢出。在处理客户端提供的数据时,使用 BsonUtil.parseWithMaxDepth(默认 256 层)替代 BsonDocument.parse。
  • 移除了 ClientPlaceBlock 数据包。方块放置、橡皮擦和放置模式选择现在都通过 PlaceBlockInteraction 及其新子类型进行,请针对新协议重新构建插件。
  • 自定义 UI 现在可以在标签溢出时分页显示 TabNavigation。设置 OverflowPaging: true 并将箭头按钮与 TabNavigation.AttachOverflowControls 连接,在分页激活时通过 TabButton.Shown 而非 Visible 来隐藏或显示标签。
  • 插件现在可以注册自己的触发功能域事件类型。TriggerEventType 现在由注册表支持,因此调用 TriggerVolumesPlugin.registerEventType(...) 并通过现有的 enqueue* 方法触发。序列化保持不变,因此现有的功能域和资源 JSON 加载方式不变。

面向模组制作者的错误修复


世界生成修复


  • 修复了墙饰图案读取其声明边界外一个体素的问题,因此藤蔓等依附于墙壁的装饰物现在在生成窗口边缘附近会基于真实的方块数据进行检测。

物品、护甲与投射物修复


  • 修复了拾取定义了拾取交互的物品时可能发生的服务器崩溃。目前没有已发布的物品使用此路径,因此仅影响自定义物品或添加了该功能的插件。
  • 投射物命中现在会更为可靠地向交互报告其命中位置,因此当投射物击中方块时触发的交互行为更加一致。
  • 小数平面护甲抗性现在按配置应用,而不再截断为整数。ArmorResistanceModifiers 的 flatModifier 以浮点数累积,因此像 0.5 这样的值不再舍入为0,损坏物品的抗性惩罚也会保留其小数部分。

方块、预制结构与农耕修复


  • 方块的 MovementSettings 不能再为 null。将其设为 null 的方块资源现在会加载失败,以避免服务器崩溃风险。

资源架构与格式修复


  • 不再需要为每种移动类型定义视角晃动配置文件。你未定义的任何类型(如Idle)现在会回退为无晃动,而不再导致客户端崩溃。
  • 模型脚步声间隔不能再为 null。使用空数组表示“无脚步声”,因为显式的 null 现在会导致资源加载失败。
  • 资源中格式错误的标签模式不再会导致客户端崩溃。损坏的 TagPattern 树现在会软失败为永不匹配的模式并记录警告,因此错误的资源编辑会安全失败。
  • 修复了资源解码和验证错误中显示的键路径,这些错误可能指向错误的字段,在未知键报告中留下过时键,偶尔在键栈满时导致解码中途崩溃。错误报告现在会显示正确的键名。

服务器与权限修复


  • 磁盘上文件丢失的资源包不再会自动注销,其丢失包的警告现在只记录一次而不再重复。一旦文件恢复,该包会被重新加载。
  • 修复了在打包服务器上 /instances edit load、copy 和 new 命令被阻止的问题,即使目标实例位于可写包中。现在每个命令都会检查它实际写入的包。
  • 修复了实例列表中的加载操作在打包服务器上仍然隐藏的问题。现在只要有任何已加载的包是可编辑的,该操作就会显示,并拒绝加载存储在不可变包中的实例。
  • 更改其他玩家的模型现在需要独立的权限。/model other、/model set other和/model reset other 子命令分别需要 model.other、model.set.other 和 model.reset.other 权限节点。
  • 修复了 /locate prefab 命令的自动补全,现在即使世界中的预制结构数量超过建议列表容纳量,它也能匹配名称中包含输入文本的任何预制结构。

针对插件开发者的修复


  • 修复了 ObjectiveTaskAsset 的全参数构造方法从未赋值 mapMarkers 的问题,因此通过代码构建而非从 JSON 解码的任务资源现在会保留其地图标记。只需重新编译即可,无需额外操作。
  • 修复了当NPC不属于任何声望组时声望查询中的崩溃。现在它会报告无组而不再抛出异常。此问题仅影响直接调用公共声望API的插件。
 
最后编辑:

预发布版(更新 6,第 9 部分)


2026 年 7 月 23 日

衷心感谢 NoctuaAstrum 为本更新带来的修复、功能和完善。你们的社区贡献让 Hytale 变得更美好!(译注:另一位贡献者“MelodicAlbuild”已经加入 Hypixel Studios 团队了。)

主要特性


想要迎接新挑战吗?极限模式来了!
  • 极限模式只能在创建新世界时激活。世界创建后,此设置将无法调整。
  • 在极限模式下,角色不会重生,而是会掉落所有随身物品并切换至旁观模式。
  • 旁观者对其他非旁观玩家不可见,也无法与他们所在的世界进行交互。服务器管理员还可以使用新的 /spectate 命令切换进入或退出旁观模式。
文档站点更新

战斗与移动


  • 使用武器或盾牌格挡后,耐力恢复的启动时间现在会快 0.5 秒。
  • 匕首连击的前两次攻击现在造成略微更高的伤害。

控制与输入


  • 在设置菜单的控制页面顶部添加了搜索框,以便快速查找键位绑定。

世界生成


  • 在生物群系边界之间加入了平滑的颜色混合,因此地形和植被色调现在会在群系之间逐渐过渡,而不再突然切换。

物品与交互


  • 泥土方块现在可以在建造工作台处合成两个半砖(台阶)方块。

面向玩家的错误修复


战斗与移动修复


  • 冲击剑刺和其他刺击攻击在命中最大射程目标时将更加稳定。
  • 使用钉头锤攻击将不再立即重置耐力恢复。
  • 在格挡时从武器或盾牌切换将不再立即重置耐力恢复。
  • 从拉弓状态切换短弓将不再错误地延迟耐力恢复。
  • 滑行将不再消耗耐力。
  • 箭矢不再能用于无效地格挡来袭攻击。

世界与方块修复


  • 绿色木栅栏现在将以更舒适的角度被握住。
  • 放置在区块边界处的屋顶方块现在能正确连接和塑形。

创造模式修复


  • /stack 命令现在将正确复制整个选区,而不仅仅是单个方块。
  • 预制结构锚点现在将缩放回预期的尺寸。
  • 影响相邻方块的方块在编辑预制结构或实例时将正常表现。
  • 创造模式撤销现在按编辑顺序恢复笔刷描边和其他修改。

触发功能域修复


  • 触发功能域传送现在将正确读取并设置玩家身体旋转,而非头部旋转。如果未设置旋转,传送效果将不再旋转实体。
  • 生成到世界中的触发功能域将不再有重复的名称。它们现在会包含数字后缀以保持唯一性。

物品与交互修复


  • 完全升级的工作台将不再忽略其合成速度加成。
  • 金砖现在可以瞬间合成,而不再需要约 10 秒。

NPC 与实体修复


  • 敌人将不再对遭遇战管理器产生敌意。
  • 行走的 NPC 在从方块上下来时,视觉上不再出现卡顿。

UI 与生活质量修复


  • 连接错误屏幕现在将显示有用的错误消息,而不仅仅是错误代码。这会在服务器无法找到、拒绝连接、崩溃、连接断开或连接无法安全建立时出现。

图形与渲染修复


  • 天文学家报告称,夜晚的星星“开始破裂”。这一宇宙异常已被修复。
  • 暂停游戏将不再导致某些实体出现在错误位置。这也修复了相关的视锥裁剪问题。
  • 暂停游戏也将不再导致移动中的实体卡顿。
  • 主菜单上的粒子现在将正确旋转。
  • 透明表面在大量重叠时将正确渲染。

性能修复


  • 下载的资产源将不再每次启动时重新获取,并在会话之间保留。磁盘缓存也不再无限增长。

本地化修复


  • 在多个创造模式工具菜单中补充了缺失的标点符号。
  • 为上述补丁说明补充了缺失的标点符号。

稳定性修复


  • 修复了在跨世界传送时移动的玩家可能掉线的问题。
  • 修复了玩家在单次会话中多次传送可能掉线的问题。
  • 修复了玩家和实体旋转中的 NaN 值导致玩家无法加入的问题。
  • 修复了在与 NPC 交易时恰逢其库存更新可能引发的崩溃。

面向模组制作者的改动


NPC 与实体


  • 实体现在需要具备 Health 属性或 RespondToHit 组件才能被攻击或选为攻击目标,以此避免装饰性或非战斗实体吸收伤害。坐骑已被赋予 RespondToHit,因此它们仍能记录攻击。
  • 攻击选择器获得了新的瞄准控制。环形选择器现在支持 YawOffset,刺击和水平选择器可以独立于实体面向方向进行瞄准。
  • 选择器还增加了 Anchor 设置,可使其从实体的眼睛或脚部开始,并适应其尺寸,而无需为每个实体手动调整偏移量。
  • 移动配置现在可以调整玩家能应对的地面坡度。MovementConfig 中新增的 MaxSlopeAngleDegrees 和 MaxWallAngleDegrees 字段分别设定了仍可安全站立的陡坡角度和可攀爬的墙壁角度。

物品、护甲与投射物


  • 交互现在可以指定在交互过程中切换物品时的行为。旧的 CancelOnItemChange 标记已被移除,替换为 OnItemChangeBehavior 字段,可取值 Ignore、Fail、Finish 或 Cancel。
  • 物品现在可以转换为可播放的音乐曲目。物品资源中的新 Music 块(需要 MusicContainer,AudioCategoryOverride 可选)将该物品标记为音乐播放器方块可播放的内容。
  • 交互现在可以在 HUD 上描述自身。RootInteraction 上的新本地化键 CarryInteractionHint 会使输入绑定图例标记交互所绑定的输入,而物品可以通过 Item.CarryInteractionHints 为其绑定的交互精炼措辞。
  • 物品容器现在在尝试将物品移动到已满的容器时会正确返回失败。

方块与预制结构


  • 方块现在可以充当音乐播放器。MusicPlayerBlock 方块实体组件与 ItemContainerBlock 一同设置后,可使方块从其自身位置播放插入的音乐物品。曲目使用方块的衰减、遮挡和混响设置,所有时序和空间化均由资源 JSON 驱动。

触发功能域


  • 触发功能域的物品检查现在可以通过 ItemCondition 上的新选项 CARRIED 查看并消耗玩家携带的物品(如手持方块)。

资源模式与格式


  • 为变更属性交互增加了 Min 和 Max 实体属性操作,因此属性可以限制在最小值或最大值范围内。
  • MovementConfig.Fly 现在是一个三态飞行能力(不能飞行、自由飞行或强制飞行——强制飞行会使玩家保持空中且游戏内飞行切换被禁用),取代了原先的布尔开关,这会改变其传输格式。它适用于配置适用的所有地方,未设置时回退到游戏模式。
  • 音效事件层现在可以通过新的 FadeIn 字段自身渐入,因此单个层可以平稳地升起在其他层之下,而不再需要所有层共享一个淡入时间。
  • 资源编辑器现在有一个专用选择器,用于选择模型和图标等通用资源。它会根据文件类型和文件夹对每个字段进行过滤,显示相对路径并提供完整路径提示,且存储的路径相对于资源本身。

服务器与权限


  • 添加了第一方旁观模式作为可选的服务器功能。新的 /spectate 命令(切换、观看、瞄准、自由、退出,以及管理员可强制状态的 set)受其自身权限控制,旁观者对其他玩家不可见、被 NPC 忽略、跳过物品拾取和重生信标、强制下马,并且不再保持地下城实例开启。
  • 旁观模式基于数据驱动的 GameModeType 层构建。自定义 GameModeType 资源可以声明应用于每个玩家的状态,并在退出时恢复(包括 MovementConfigId、Flying、NoClip、Invulnerable、Intangible、PreventInteractions、PreventItemDrops、TriggerBlocks、VoiceChannel、HudComponents、LockedCameraView、EntityEffectId 和 Spectator),进入的类型会保存在玩家身上,以便重新登录时恢复。
  • DeathConfig.GameModeTypeOnDeath 字段可将死亡玩家直接送入选定的游戏模式类型,仅将重生屏幕作为后备,这就是死亡进入旁观模式的实现方式。
  • HytaleServerConfig.Defaults 增加了 GameModeTypeOnDeath 回退,用于那些自身死亡配置未设置该字段的世界,因此一个存档可以让死亡将玩家送入某类型,而无需其下的每个实例和传送门世界都拥有自己的死亡配置。
  • GameModeType 资源增加了 DeathScreenMessage 本地化键。设置后,死亡进入该类型时会显示一个可关闭的死亡屏幕,并显示该消息以及“旁观”按钮,而不再是静默进入该类型。
  • GameModeType 资源增加了 PreventInventoryAccess 标志,可在该类型激活时阻止玩家打开或更改其物品栏。

重命名与弃用


  • 移除了 ResourceType 资源中未使用的 Name 和 Description 字段,因为资源名称多年来一直从 server.resourceType.{id} 本地化键读取。

协议与网络


  • 旁观模式添加了若干游戏模式可读取的新协议字段。包括每个服务器玩家列表条目上的 Spectating 布尔值(在你自己的世界中以灰色状态点显示)、PreventInteractions 组件更新,以及用于跟随相机的 FollowAttachedEntity 相机标志。

面向插件开发者


  • 弃用了 BlockUtil,并将其 RADIUS_ADJUST 常量移至新的 BlockShapeUtil,方块形状辅助工具现在从此读取。
  • 添加了 IgnoreTriggerVolumes 组件,以便特定实体可被触发功能域跳过,使其不参与所有事件,如进入、退出和实体计数检查。
  • 旁观模式提供了若干可复用原语,包括 Spectating 运行时标记、可取消的 GameModeTypeEnterEvent 和 GameModeTypeExitEvent、通用的 PreventInteractions 组件,以及通过 VoiceChannels 实现的每玩家命名语音通道。
  • PendingTeleport 现在仅作为存在标记。其队列、验证方法和 MAX_OFFSET 常量已被移除。传送确认记录可通过 PlayerRef.getTeleportAckTracker() 访问,传送完成现在通过 TeleportSystems.completeTeleport 执行。
  • PacketHandler.writePacket 现在返回数据包是否实际发送或被数据包过滤器吞没。
  • Hytale.Protocol、其生成的序列化程序以及互操作库现在可以直接从公共共享源代码仓库中使用标准的 .NET 10 SDK 构建,预构建的 zstd 和 quiche 原生库已就位。

面向模组制作者的错误修复


NPC 与实体修复


  • 修复了 RotateAnchoredEntities 对于锚定在多个轴上旋转的身体上的实体的处理。现在旋转会跟随完整朝向而不仅仅是偏航,因此骑乘者和平台能正确跟踪俯仰和滚转。

物品、护甲与投射物修复


  • 击退和爆炸配置在源和目标位置相同时不再产生 NaN 速度。此退化情况现在会回退到确定方向,对于爆炸则会将目标垂直向上击飞。
  • 修复了 TargetedDamage 条目在构建数据包时若省略 DamageEffects 会抛出异常的问题,因此没有效果的伤害交互不再崩溃。
  • 修复了当穿着带有击退增强的护甲的实体从护甲没有对应修正值的 DamageCause 造成伤害时发生的崩溃。现在会跳过缺失的条目而不再抛出异常。

方块与预制结构修复


  • 修复了随机刻方块放置,使其能在立方体世界中工作。PlaceBlockProcedure 现在通过区块部分写入,而不再假设固定的世界高度。
  • 修复了流体放置交互始终不遵守其 UseLatestTarget 设置的问题。PlaceFluidInteraction 现在链接到 SimpleBlockInteraction 的编解码器,因此该标志能解码并生效。

世界生成修复


  • 添加了 Mix TintProvider,允许在单个生物群系内实现平滑色调过渡。
  • 为 TintProviders 增加了对 DistanceToBiomeEdge 的支持。

资源模式与格式修复


  • 资源编辑器现在拒绝将文件重命名到不同的资源包中,因为这种不支持的操作可能导致资源的包不再与其物理位置匹配。
  • 修复了模型资源编辑器将“粒子”部分标记为“物理”的问题。现在该部分会像所有同级条目一样使用自己的键作为标题。
  • 移除了 Foog Cheese。

服务器与权限修复


  • 修复了 /warp list 允许玩家在没有 warp.go 权限的情况下传送到目的地的问题,堵住了绕过正常权限检查的途径。
  • /give armor 现在需要新的 hytale.command.give.armor.other 权限才能通过 --player 指定其他玩家。对自身使用保持不变,且默认不为任何内置角色授予该权限。
  • 学习他人配方和忘记他人配方的命令现在需要新的 recipe.learn.other 和 recipe.forget.other 权限才能更改其他玩家的配方,且默认不为任何内置角色授予这两项权限。
  • 修复了白名单启用和禁用更改未立即保存的问题。新状态现在会在调用返回前写入,并在保存失败时回滚到先前值,状态和成员资格写入在同一锁下序列化。
  • 列出其他玩家的配方现在需要其自身的命令权限 recipe.list.other,默认不为任何内置角色授予。玩家仍可像以前一样列出自己的配方。

面向插件开发者的修复


  • BlockType 复制构造函数现在也会复制 beds、randomTickProcedure 和 explosionConfig,这些此前在克隆已填充的方块类型时会被丢弃。
 

预发布版(更新 6,第 10 部分)


2026 年 7 月 30 日

衷心感谢 Airijko、LionPa、Eearslya、Ed1lan、Zbeve 和 Zoltus 为本更新带来的修复、功能和完善。你们的社区贡献让 Hytale 变得更好!

面向玩家的改动


世界、预制结构与方块


  • 添加了预制结构预览投影
    • 玩家可以使用 /prefabpreview 命令在自身位置生成任意预制结构的投影。
    • 插件可以通过新的 PersistentPrefabPreview API 将任意预制结构的投影放入世界,并逐层从下往上揭示,方便进行引导式或自动建造。
  • “放置方块”和“替换方块类型”触发效果现在可以在三个轴向上旋转方块,支持偏航、俯仰和翻滚参数。

物品与交互


  • 投掷的便便不再造成伤害。

界面与体验优化


  • 修复了世界地图上的若干流体渲染问题。
    • 固体流体(如熔岩)现在显示为不透明,而不会与地形混叠。
    • 叠加流体(如熔岩上方的水)现在会正确地混合。
    • 悬空悬浮的流体现在可见。
    • 薄薄一层的流体现在可见。

稳定性


  • 独立服务器现在在主世界崩溃后能自行恢复。之前,崩溃可能导致服务器无法加入并踢出所有人,直到管理员重新加载世界或重启进程。

面向玩家的错误修复


战斗与移动修复


  • 弹射物现在会在其支撑方块被破坏时下落。

控制与输入修复


  • 修复了表情覆盖服务器控制的镜头锁定的问题。当服务器锁定视角时,播放表情不再解锁相机控制。

世界与方块修复


  • 修复了粘贴预制结构时,不再丢失位于无方块支撑位置上的实体。
  • 修复了带有进入效果的触发区域,如果该区域没有设置每帧条件则不会触发的问题。
  • 修复了往昔神殿中可能困住玩家的一个洞。

物品与交互修复


  • 修复了物品描述在阅读时填充数值的问题。现在它们显示真实数值,而不是空白文本或残留占位符。

NPC与生物修复


  • 实体不再能穿过栅栏和其他方块。

界面、社交与菜单修复


  • 修复了 NoesisGUI 颜色选择器在透明度关闭时,有时会强制所选颜色完全不透明的问题。

音频修复


  • 修复了当实体重新开始攻击动画(例如蓄力冲锋攻击时)音效堆积并频繁播放的问题。

图形与渲染修复


  • 修复了降低某些着色器效果精度的渲染问题,依赖精度的边缘和表面细节现在绘制更精确。

性能修复


  • 修复了当内存实际上很充足时,服务器和单人世界过于激进地卸载和重新加载区块的问题。

稳定性修复


  • 修复了目标面板中,当追踪的目标没有标题或任务描述时可能发生的崩溃。
  • 修复了当物品或方块交互指向缺失内容时可能发生的崩溃。
  • 修复了在错误时机移除实体时,可能导致整个世界停止并断开所有玩家连接的罕见服务器崩溃。
  • 修复了在某些方块容器重建时,可能同时踢出所有玩家的服务器崩溃。
  • 修复了在交互过程中,当其步骤顺序错乱完成时可能发生的客户端崩溃。
  • 修复了在特定实体附近,或玩家名称产生特定内部值时可能发生的罕见客户端崩溃。
  • 修复了在移除内容包或模组后,已保存世界可能无法加载部分世界的问题。现在该区域会重新加载,受影响的容器在战利品恢复前只会不掉落任何物品。
  • 修复了玩家拾取某些会在拾取时触发效果的物品时,可能导致整个世界崩溃的问题。
  • 修复了在包含大量粒子效果的场景中发生的罕见客户端崩溃。

面向模组制作者的改动


方块、预制结构与农耕


  • “放置方块”和“替换方块类型”触发效果现在接受可选的方块状态,允许触发区域放置、匹配和替换特定的方块状态变体。
  • 添加了新的 Patterned 连接方块规则集类型。它支持多轴旋转并具备客户端预测,能更精细地控制连接方块如何选择其形状。

资产架构与格式


  • 在新旧 UI 框架中为本地化文本添加了删除线支持,使用 \<s\>\</s\> 标签。

服务器与权限


  • 添加了 /prefabpreview 命令,受世界编辑者权限组控制,可在游戏中生成并驱动预制结构预览投影,并支持预制结构名称的 Tab 补全。
  • 服务器现在可以设置世界线程崩溃时的崩溃恢复策略。
    • 在服务器配置或世界配置中添加 CrashRecovery 块。Mode 可选 None、Reload 或 Shutdown。Reload 包含 MaxAttempts、RetryDelaySeconds 以及尝试耗尽时的 Fallback。
  • 为传送门裂隙世界添加了两个 /fragment 子命令。
    • /fragment toggleui 隐藏或显示裂隙界面及其倒计时。
    • /fragment toggletimer 暂停或恢复该倒计时。
  • 游戏模式现在可以通过新的可选布尔值 PreventEmotes 完全禁止表情,该值从父游戏模式继承。
    • 观战者不再能对他人做“Dab”动作。

面向插件开发者


  • 自定义 UI 现在可以显示 2D 玩家头像。新的 PlayerPortrait 元素可通过玩家的 UUID 渲染其半身或全身头像。
  • 插件现在可以在没有玩家或 NPC 参与的情况下,通过坐标收割农耕方块。新的 FarmingUtil.harvest 重载根据坐标解析方块,并接受可选的触发者引用,当没有实体拾取时,作物会掉落到世界中。
  • 为插件添加了全局范围持久资产,即每个世界 ECS 资产的存档级版本。在设置期间通过 UniverseResources.register 使用编解码器注册,然后通过 Universe.registerResource、getResource 和 flushResource 进行读写和刷新。
  • 卸载插件时,现在也会卸载依赖于它的所有插件。

面向模组制作者的错误修复


资产架构与格式修复


  • 移除或重命名 ItemDropList 不再损坏引用它的已保存世界。在解码持久世界数据时,缺失的资产引用现在会发出警告而不会导致整个区块失败,这由 AssetKeyValidator 的新宽松模式控制。

面向插件开发者的修复


  • 调用 minimizeStatValue、maximizeStatValue 或 resetStatValue 的插件,当数值未变化时不再发送客户端更新。
  • 修复了一个漏洞,该漏洞允许特权用户发送恶意资产键,从而在预期的包目录之外写入文件并覆盖服务器文件。
 

预发布版(更新 6,第 11 部分)


2026年8月6日

角色与自定义


  • 发型经过了视觉调整,颜色也已调校。
  • 耳部配件现在会与每种耳型对齐,并相应调整其位置。
  • 为以下装饰品添加了颜色选项:
    • 高山探险者套头衫
    • 皇冠
    • 大腿袜
  • 对以下装饰品进行了视觉重制:
    • 高山探险者套头衫
    • 大型针织帽
    • 牛仔帽
    • 精灵帽
    • 松软针织帽
    • 护额
    • 御霜披肩
    • 御霜帽
    • 金边长袖衫
    • 头带
    • 角饰头盔
    • 国王披风
    • 皮革帽
    • 连体校服裙
    • 运动帽

极限模式


  • 现在生成新世界时,您可以从五种不同的极限模式设置中选择:
    • 关闭:未启用极限模式。
    • 永久死亡:每位玩家只有一条命。死亡是永久的。
    • 三振出局:每位玩家有三条命。第三次死亡后直接出局。
    • 猫有九命:世界中的所有玩家共享九条命。一旦发生第九次死亡,所有人的旅程结束。
    • 灵魂绑定:所有人的命运相互关联。如果任何一名玩家死亡,整个旅程结束。
  • 在以“三振出局”或“九条命”模式创建世界时,初始可用生命数可以在默认值基础上增加或减少。对,这个值不能设为零。
  • 启用极限模式后,剩余生命数将显示在您的生命值上方。

世界与方块


  • 添加了覆叶土壤方块。它就像堆叶土壤方块,但更“完整”。

界面与体验增强


  • 在设置菜单中添加了一个搜索按钮,可跨所有选项卡进行搜索。

图形与渲染


  • 改进了透明表面的外观,尤其是在同时透过多个透明物体(如玻璃和水)观看时的效果。

触发功能域工具


  • 当触发功能域粘贴预制结构时,添加了旋转选项,因此您可以将粘贴的建筑旋转 90、180 或 270 度。

面向玩家的错误修复


战斗与移动修复


  • 修复了允许某些玩家通过并非由他们发射的抛射物或实体进行交互的问题。
  • 距离世界中心非常远的可攀爬方块现在可以再次攀爬了。

世界与方块修复


  • 观众将不再计入某些事件所需的玩家数量。
  • 雕纹石砖的物品栏图标现在更加准确。
  • 泥巴、蜂巢和焦油方块现在在相邻放置时会正确渲染。
  • 深色草方块现在在与其他可过渡方块相邻放置时会渲染正确的颜色。
  • 修复了吠岚门、红木栅栏、农业工作台、锻造铁砧和粗制锄头出现的深度冲突(z-fighting)问题;此外,红木栅栏略微升级,使其变种放在一起时外观更加一致。
  • 修复了微风神庙窗框模型中的缝隙。
  • 修复了秘银胸甲的纹理溢出问题。
  • 为堆叶土壤添加了完整方块变种。

物品与交互修复


  • 秘银胸甲现在渲染时纹理溢出更少。
  • 农耕工具现在应该都能在立方世界中正常工作了。
  • 卡在方块中或躺在地上的弹射物,现在会随着所在或所倚靠的方块被移除而掉落地面。

NPC 与实体修复


  • 角色将不再能够通过只给交易 NPC 单个物品(当商人要求多份时)来做出离谱的交易。
  • 飞行和游泳生物现在会更多地在你期望看到它们的地方出现。

图形与渲染修复


  • 解决了涉及黏土半砖纹理的维度错误。
  • 草、树叶和其他植被现在看起来更明亮。
  • 阴影将不再从方块中间“泄漏”,因此整体看起来应该更好。

性能修复


  • 减少了一些启用 mip 纹理的内存占用。

本地化修复


  • 如果您使用“使用系统语言”的语言设置,新闻标题现在将以您的系统语言显示(如果可用)。

稳定性修复


我们已在 Hytale 启动器中更新了用于运行游戏的 Java 版本 (Temurin JRE 26.0.2+10)
注意: 如果您正在运行专用服务器并使用 Shenandoah GC,我们建议您更新至 Temurin JRE 26.0.2+10。

  • 修复了与不完整菜单交互时可能发生的崩溃。
  • 修复了尝试加载无效尺寸的生物或对象时可能发生的崩溃。
  • 修复了在 Linux 上可能突然断开玩家与服务器连接的罕见问题。
  • 修复了可能导致玩家在服务器重启前无法重新加入服务器的问题。
  • 修复了在较繁忙的服务器上保存时可能发生的周期性卡顿。

面向模组制作者的更改


世界生成


  • 在世界生成中添加了 Trig 密度节点,该节点对单个输入密度执行三角函数运算,因此您可以直接构建周期性和波形场。新的 "Type": "Trig" 接受 Function 为 Sin、Cos、Tan、Asin、Acos 或 Atan,以及一个 InputScale,用于在函数运行前乘以输入。

世界事件


  • 在 LocationCondition 资产中添加了 Clearance 和 SearchRadius 字段,以便您调整用于放置世界事件的初始候选搜索。
  • 世界事件放置现在以方块而非区块为单位测量候选距离,并在 WildernessLocation 上分别具有水平和垂直的最小与最大范围。

NPC 与实体


  • MinHeightOverGround 现在是一个偏好设置而非硬性最小值。信标中的飞行角色需要一个 YRange 最大值来覆盖其 MinHeightOverGround。
  • 遭遇战管理器现在可以自行清理。一个新的 CleanupOnRemove 标志会在遭遇战被移除时移除该遭遇战生成的所有实体。这不适用于遭遇战只是卸载的情况。

物品、护甲与抛射物


  • 为物品和方块添加了 RevealMapMarkersInView 交互,用于揭示玩家视野锥内的隐藏可发现地图标记。
  • 在游戏配置生成区块中添加了 FirstSpawnItems 列表,用于在玩家首次生成时向物品栏中放置物品。

方块与预制结构


  • 方块地图标记现在可以是可发现的。BlockMapMarker 和 BlockMapMarkerData 上的新 Discoverable 标志会使标记在游戏系统揭示之前不出现在地图上,并按每位玩家和每个世界进行追踪。
  • 带图案的连接方块规则现在可以匹配在另一规则集资产中定义的形状,因此使用不同规则集的方块可以正确地相互连接。

资产架构与格式


  • 装饰性附件现在可以控制其附着顺序。角色附件上的新 Priority 字段决定了附件是在基础模型之前还是之后附着。

服务器与权限


  • 添加了若干 /worldmap markers 命令,用于在游戏中放置和测试可发现标记。
  • 极限现在成为服务器配置选项。Defaults.HardcoreMode 可设置为 None、PerPlayer 或 Global。现有极限世界将迁移至 PerPlayer 设置。
  • 添加了 PlayerLives 组件,任何游戏模式或插件都可以读写。/player lives 命令位于 WorldEditor 权限组中。
  • /player respawn 命令现在位于 Builder 权限组中。复活其他玩家现在在 WorldEditor 权限组中拥有自己的 player.respawn.other 节点。

协议与网络


  • 网络协议增加了 UpdateLivesRemaining 数据包,并在玩家列表条目中增加了一个可为空的 LivesRemaining 字段,用于承载每位玩家的剩余极限生命数。

面向插件开发者


  • 移除了已弃用的 BlockModule.ensureBlockEntity。方块实体生成现在通过 BlockEntity.ensureBlockEntity 进行,并使用 BlockEntity.declaresComponent 来检查方块类型的实体模板是否声明了某个组件。
  • 添加了 DiscoverableMapMarkers 作为揭示和隐藏标记的入口点,其中 isRevealed、reveal 和 hide 在任何线程上都是安全的,而 collectMarkersInView 会读取区块存储,并且必须在世界线程上运行。
  • 添加了 DiscoverableMapMarkers.forEachMarkerInView,这是 collectMarkersInView 的访问者形式,会传递每个标记的方块位置和ID。
  • 添加了 MaterialQuantity.toItemStacks,即 toItemStack 的数组形式,以及一个 ITEM_VALIDATOR_CACHE,用于拒绝 ItemId 未设置或指向缺失物品的物料数量。
  • 世界事件位置查找现在是异步的。EventLocation#find 变为 find(store),返回 CompletableFuture<Vector3iList>,替代了旧的 find(dt, store, locations)。Spawner#getHeight 被替换为 Spawner#findSurface,它会搜索最近的可达表面,而不仅仅是读取室外高度图。
  • ISpawnable 现在有一个 requiresSpawnDropHeightCheck(SpawningContext) 方法,没有默认实现,因此任何实现 ISpawnable 或继承 BuilderBaseWithType 或 BuilderMotionControllerBase 的插件都必须实现它。
  • 重生现在可以被取消。一个新的 RespawnEvent 从 DeathComponent.respawn 触发,插件可以注册 EntityEventSystem 来观察或拒绝玩家的重生。DeathComponent.respawn 现在返回一个可为空的 future,其中 null 表示某个监听器取消了操作且实体保持死亡状态,因此任何链接该 future 的调用者都必须对其进行检查。

文档更改


这些更改可在 Hytale 文档(预发布版)中查阅

  • 在侧边栏中添加了版本切换器(显示补丁线和游戏版本,链接到另一补丁线上的相同页面)。
  • 添加了 404 回退页面,并包含返回原页面的链接。
  • 在导航栏中添加了图标支持。
  • 修复了卡片标题和代码块误用标题样式的问题。
  • 修复了粗体文字渲染过淡的问题。
  • 修复了换行标题丢失渐变的问题。
  • 修复了页脚位于侧边栏下方的问题。

面向模组制作者的错误修复


方块与预制结构修复


  • 修复了连接方块形状查找的问题,使其在相邻方块没有自己的规则集时回退到当前规则集。

服务器与权限修复


  • 修复了控制台无法运行需要区块坐标的命令的问题(例如 chunk load、unload、info、regenerate、forcetick、marksave 和 fixheight)。
  • 修复了控制台显示普通命令错误时只显示通用消息的问题。命令错误现在会发送正确的翻译消息。
 

预发布版(更新 6,第 12 部分)


2026年8月13日

主要功能


通过全新的游戏内模组浏览器发现、安装和管理模组!

  • 模组浏览器的首个版本现可从 Hytale 主菜单访问,展示精选、热门和最近更新的模组。
  • 按类别筛选,或搜索模组名称和描述以查找特定内容。
  • 打开任意模组可查看其描述、截图、下载次数、支持的游戏版本以及安装按钮。
  • 在“我的库”界面中查看、更新或移除已安装的模组。

更大的建造规模!建造工具现支持更大型的创作!

  • 建造工具现支持高达 1600 万个方块的选择范围。
  • 大型建筑现以新的紧凑格式保存,文件体积缩小。
  • 复制、剪切、粘贴或保存大型选区的速度大幅提升。

物品与交互


  • 远古传送门现增加了一个按钮,可用于关闭激活的传送门。幸运的是,每个传送门都配备了一个便捷的安全装置,当有人仍在传送门另一侧时,该按钮将无法工作。

界面与体验增强


  • 建造工具的操作和保存现在会显示一条单一通知并持续更新,而不再为每次更新都发送一条通知。
  • 世界创建界面已调整,增加了更大的“自定义”按钮。
  • 自定义新世界时显示的世界设置界面现在增加了一个“创建世界”按钮。

创造工具


  • 当剪贴板内容非常大时,粘贴预览将回退为简单的轮廓或实体形状,从而立即显示,而不再卡顿或无显示。
  • 当选区超出工具限制时,游戏现在会告知你超出的方块数量。
  • 在预制结构编辑器中加载预制结构文件夹时,现在默认包含其子文件夹。
  • 液体现在可以通过 /stack 命令进行复制。

性能


  • 在进行多次大型编辑后,撤销和重做现在占用的内存大幅减少。
  • 撤销和重做现在遵循内存预算。在进行极长序列的超大型编辑后,你可能无法一直撤销到最开始的状态。

面向玩家的错误修复


世界与方块修复


  • 实例传送门现在将正确保存你所传送进入的世界。
  • 传送门世界中的剩余时间不再能超过其初始值。

世界生成修复


  • 魔法遗迹地牢中的洞穴天气效果不再会从新区块的地表渗透出来。

NPC 与实体修复


  • 能够放置方块的生物现在可以在世界最底层进行操作。

创造工具修复


  • 修复了 # 遮罩,使其再次将笔刷和命令限制在当前选择区域内,而 !# 则再次将其限制在选区之外。# 遮罩现在也适用于线条工具和脚本笔刷。
  • 在使用 /stack 命令时,如果朝上或朝下倾斜视角,复制出的副本现在将连成连续的一串,而不再在副本之间留下空隙。
  • 按住 Alt 并拖动来挤出选区时,不再会缩小原先选择的区域。
  • 命令 /stack --empty 将不再被接受然后立即被忽略。空方块现在可以被复制。
  • 挤出选区时空空间现在也可以被扩展,与其他建造工具处理空方块的方式一致。
  • 撤销功能现在将正确还原整个工具操作。
  • 将预制结构粘贴到未加载区域时,现在会等待该区域加载完成,不再失败。
  • 预制结构编辑器现在会在加载失败时提供更详细的错误信息,并提供重新尝试加载的选项。

图形与渲染修复


  • 预制结构预览中的实体将不再呈现粉色发光效果。

稳定性修复


  • 修复了当工作台拥有超过 7 个输入槽位时可能发生的崩溃。
  • 修复了从实例区域返回已关闭世界时可能发生的崩溃。遇到此情况的玩家现在将被传送回主世界重生点。
  • 修复了粘贴生物后该生物立即消失时可能发生的崩溃。
  • 修复了与包含旧巡逻路径标记的预制结构交互时可能发生的崩溃。
  • 修复了一个罕见的寻路错误,该错误曾导致某生物的路线过于棘手,以至于时间本身陷入停滞,直到服务器重启。

面向模组制作者的更改


世界事件与触发功能域


  • 世界事件现在可以通过新的 TriggerVolumeCreateAction 和 TriggerVolumeRemoveAction 创建和移除触发功能域,并可回滚。TriggerVolumeContext 用于追踪事件创建的体积。
  • 触发功能域现在可以将实体从其自身中心弹射出去。SetVelocityEffect 中 RelativeMode 的新值 VOLUME_ORIGIN 会将实体从体积原点向外(或向内)发射,无论其朝向如何。

NPC与实体


  • 记忆条目现在可以附带一个可翻译的描述,显示在记忆页面的记忆下方。

方块与预制结构


  • 大型预制结构现在以紧凑的二进制 .lpf 格式保存。任何超过30万方块的预制结构都将采用此格式,且 .lpf 文件可在所有预制结构加载位置使用。
  • 撤销和重做历史现在通过 BuilderToolsConfig 中的新字段 HistoryBlockBudget 和 RedoHistoryBlockBudget 来遵循内存预算,超出预算时将丢弃最旧的条目。

资产模式与格式


  • 粒子资产现在可以在靠近或远离摄像机时淡出透明度。近淡出使用 CameraNearFadeStartDistance 和 CameraNearFadeEndDistance,远淡出使用 CameraFarFadeStartDistance 和 CameraFarFadeEndDistance。

服务器与权限


  • 封禁处理现在统一为单一类型。AbstractBan、InfiniteBan 和 TimedBan 合并为单个由编解码器存储的 Ban。
  • 服务器配置可以在 BanStorage 块中指定封禁存储位置,该块在插件加载后进行解码。
  • 插件现在可以决定封禁的处理和存储方式。实现 BanProvider 以替换封禁处理,或实现 BanStorageProvider 以将封禁存储在任意位置。
  • HytaleWhitelistProvider 已被移除。白名单现在基于 hytale.server.join 权限运行,白名单命令用于授予和撤销该权限。如果存在现有的 whitelist.json,它将被迁移为 whitelist.json.migrated。
  • 实例现在可以在当前实例卸载时,将玩家送回其上次来源的实例。InstanceWorldConfig 上的一个新布尔值(及可选的实例键)可为每个实例启用此功能。
  • 添加了一个 GameFlags 内置插件,用于在宇宙存储中维护全局服务器标志。内容可通过新的 SetGameFlagInteraction 和 GameFlagConditionInteraction 来设置和检查这些标志。
  • 实例现在可以在关闭时显示一个 .ui 文档。InstanceWorldConfig 上的新字段 DocumentDisplayOnRemoval 指定了文档名称,当实例计时器结束时玩家将看到该文档弹出。

协议与网络


  • 客户端和服务器上的数据包解码性能提升了 2-4 倍。
  • 移除了服务器协议 API 中的 Packet.serialize(ByteBuf)、生成的 validateStructure(ByteBuf, int) 方法、PacketIO 上的 ByteBuf 辅助方法以及 ValidationResult。调用 Packet.serialize(MemorySegment, int) 来写入数据包,调用 toObject(MemorySegment, int, ReadCursor) 来读取数据包。验证现在在读取期间进行,并在数据格式错误时抛出 ProtocolException。
  • 数据包验证更加严格:非规范的 VarInt、格式错误的 UTF-8 字符串以及不匹配的偏移量表现在将被拒绝,且客户端和服务器上的规则和限制完全相同。

重命名与弃用


  • 将 BuilderToolsPlugin.Action.ROTATE 重命名为 Action.TRANSFORM。

面向插件开发者的更改


  • 命令现在需要预先声明其权限。canGeneratePermission 已被移除,因此重写该方法并返回 false 的命令必须改为调用 requireNoPermission()。HytalePermissions 常量也由 String 改为 PermissionQuery,需要权限节点字符串的代码应调用 getId()。
  • 体积 API(如 BlockSelection.getSelectionVolume())现在返回 long 而非 int,从而避免极端选区溢出为极小值。
  • 预制结构保存方法现在会返回已写入的文件。PrefabStore.savePrefab、saveServerPrefab 和 savePrefabToPack 返回 Path,PrefabSaver.savePrefab 返回 CompletableFuture<Path>,其中 null 表示保存失败。
  • 权限检查可以复用预构建的查找对象。新的公共类型 PermissionQuery 可作为常量持有,并传递给每次权限检查,从而避免每次调用时重建 id 和通配符字符串。
  • 新增 Deferred 和 DeferredCodec 类型,允许在其类型编解码器注册之前读取值,适用于服务器在加载命名这些类型的插件之前读取配置的情况。
  • SelectionSnapshot 现在有一个 estimatedBlockWeight() 方法,并提供默认实现;自定义快照可以重写该方法,使其开销计入撤销预算。
  • Notification 增加了 tag 字段,NotificationUtil.sendNotification 增加了七个参数的重载,使具有相同标签的 Toast 通知会替换之前的通知,而不再堆叠。
  • 自定义下落方块碰撞效果现在接收的是 section 而非 chunk。FallingBlockImpact.apply 现在接收一个 Ref<ChunkStore> sectionRef,覆盖 position 处的方块;BlockAccessor 和 IChunkAccessorSync 上的方块测试和放置辅助方法已移除,取而代之的是 ChunkStore.getChunkSectionReferenceAtBlock 以及 BlockOperations.testPlaceBlock、BlockOperations.setBlock 和 BlockOperations.TestBlockFunction。
  • BlockAccessor 接口已被移除。其所有成员现在都在 WorldChunk 上(该类是其唯一实现者),因此所有类型为 BlockAccessor 的地方应改为 WorldChunk。IChunkAccessorSync、ChunkAccessor 和 OverridableChunkAccessor 不再泛型化,因此去掉 <WorldChunk> 参数;WorldChunk.getChunkAccessor() 已移除,应直接使用 World。
  • getCurrentInteractionState 已从访问器移至 BlockType。调用 blockType.getCurrentInteractionState() 替代将方块类型传入。WorldChunk 上原来的逐方块方法现已弃用,应使用 ChunkStore.getChunkSectionReferenceAtBlock 解析 section,并通过 BlockOperations 进行操作。

面向模组制作者的错误修复


触发功能域修复


  • 触发功能域不再因突发信号超过每 tick 预算而丢弃事件。信号效果、方块事件规则、信号交互、NPC 信号操作以及体积创建事件在超预算时,现在会等待后续 tick 而不是消失。

资产模式与格式修复


  • 修复了 JSON 读取问题,使得字符串值中的 { 或 } 不再干扰解析器。包含大括号的配置文件现在可以正确加载。

服务器与权限修复


  • 当核心插件加载、设置或启动失败时,服务器现在会停止运行,而不是在损坏状态下继续运行。绕过损坏模组的选项不适用于核心插件。

协议与网络修复


  • 处理窗口数据中的 processingSlots 和 processingFuelSlots 字段现在为32位整数而非有符号字节,因此工作台可以承载超过7个活动槽位而掩码不会溢出。

面向插件开发者的修复


  • EditOperation 和 BrushConfigEditStore 的构造函数现在接受 selectionMin 和 selectionMax,使得 # 遮罩会针对玩家的选区进行测试,而不是针对操作所覆盖的区域。若没有选区则传入 null,或者使用 BuilderToolsPlugin.getMaskSelection 来解析它们。
  • BuilderState.extrudeSelectionFace 新增一个 empty 参数,用于控制选区中的空单元是否清除其目标位置。传入 false 以保持旧行为。
  • 修复了自定义 UI 拒绝将 UIPath 值写为标记文本的问题。路径属性现在可以再次从字符串设置。
 

预发布版(更新 6,第 13 部分)


2026年8月20日
衷心感谢 Ed1lanNeilNoctuaAstrum 为本更新带来的修复、功能和优化。你们的社区贡献让 Hytale 变得更好!

物品与交互


  • 较大的软质方块(如蜘蛛茧)现在可以被弹射物射落。
  • 拥有多个交互选项的方块,现在可以显示所有可用操作。

性能


  • 改进了高视距下的内存使用。拥有大量开阔天空的世界现在会保留远少于之前的照明数据。

面向玩家的错误修复


战斗与移动修复


  • 你瞄准的点现在可以准确地击中多方块物体(如门或雕像)。
  • 范围效果攻击现在将在世界中有负坐标的区域正确影响目标区域。

世界与方块修复


  • 传送门目的地将不再因你远离传送装置而过早关闭。世界将保持开启,当你进入范围时传送门将重新连接到它们。
  • 粘贴到世界中的触发功能域将不再丢失其条件、排斥效果或分组设置。
  • 大型木灵箱子现在在破坏时将被视为木质方块,这意味着斧头应是破坏它的最有效工具。

世界生成修复


  • 修复了世界生成 V2 中的一个缺陷,该缺陷会在旋转的预制结构中删除某些实体。
  • 修复了世界生成 V2 在不同平台上生成不同预制结构的缺陷。

物品与交互修复


  • 修复了在特定情况下可能导致物品被复制的问题。
  • 穿过包含具有较小碰撞箱方块的格子射出的箭矢,现在将正确对撞击的方块执行交互。

NPC与实体修复


  • 无敌生物现在会坚守阵地,不再受弹射物击退影响。
  • 执行打开箱子或与物体交互等操作时,再次能够使附近的生物注意到你的存在。

创造模式修复


  • 持有的建筑笔刷现在使用正确的模型。
  • 复制并保存方块选区时,触发功能域仅当它们实际存在于该选区中时才会被复制或保存。之前,连接到选区边界的触发功能域也会被包含在内。

UI 与体验增强


  • 修复了拾取不相关物品时可能将物品拾取通知合并在一起的问题。

模组浏览器修复


  • 模组浏览器中的安装按钮现在在手柄上更容易触及。手柄按键现在应与服务器发现页面上的按键更加一致。
  • 模组浏览器已更新,使用摇杆现在应能到达所有轮播、复选框、按钮和磁贴。
  • 安装一个模组将不再取消其他模组的下载。模组现在改为放入队列中。
  • “浏览全部”部分将不再把世界、模组和预制结构的总数统称为“模组”。
  • 模组浏览器现在可以使用手柄扳机键正确导航进出。
  • 筛现在通过按下按钮选择来应用。
  • 使用摇杆在模组浏览器选项卡之间导航将不再导致焦点切换到搜索图标。
  • 已安装模组上的更新标记现在提供提示框以解释其含义。

图形与渲染修复


  • 修复了导致玻璃或水等半透明表面失去清晰度的问题。
  • 发光粒子可再次发光。
  • 修复了在强制自身天气效果的世界中应用天气效果时,会出现无尽黑暗的问题。

音频修复


  • 在生命值较低时,音乐和环境音效将不再变得如此安静。你可能仍处于危险之中,但至少现在可以更轻松地欣赏周围世界的声音。

本地化修复


  • 服务器重启将不再导致物品、方块或菜单名称显示为原始文本。
  • 翻译文件中的单个错误将不再导致所有名称变为空白。

稳定性修复


  • 修复了在非常大的世界中长时间运行后,当服务器花时间重新组织所有内容时可能发生的崩溃。作为额外收获,该过程现在应该进行地更快!
  • 修复了在天空仍在加载时离开世界相关的崩溃和内存泄漏。
  • 修复了打开和关闭带有角色预览的菜单时的内存和GPU资产泄漏。
  • 修复了当服务器在屏幕上显示物品或实体预览时重置界面可能发生的UI崩溃。
  • 修复了主菜单中的内存泄漏:每次世界预览刷新时,世界预览图像都会泄漏内存。
  • 修复了实体状态效果、世界地图标记和自定义屏幕上的角色预览导致的图形内存泄漏。
  • 过场动画:修复了在现有场景上加载场景或重新添加重复名称场景时的内存泄漏,并且场景名称前后带有空格现在能正确验证。
  • 资产编辑器:修复了切换视图和关闭对话框时的内存泄漏。

面向模组制作者的更改


世界生成


  • 为世界生成 V2 Density资产添加了额外的验证。
  • 在世界生成 V2中添加了一组逻辑 Density 节点:Comparator、Equal、GreaterOrEqual、GreaterThan、LessOrEqual、LessThan、And、Or、Not、Nor、Xor 和 Selector。
  • 添加了一个 Example_Vector_Offset_Avoid 生物群落,展示了如何偏移位置以避开密度区域,从而使预制结构能够避开某个区域。
  • 将 SimplexNoise2D 和 SimplexNoise3D Density 节点的性能提升了约20%。

NPC与实体


  • NPC 角色现在可以以稳定的速率使NPC原地旋转。新的 Rotate 头部运动接受以度/秒为单位的 RotationSpeed 参数,而 ClearPitch 在旋转时使头部俯仰变平。
  • SpawnNPCInteraction 现在支持带每个条目计数范围的加权实体池、生成计数范围、距离散布、可选的生成状态、生成速度、空中生成、居中碰撞箱生成和宽松的全方块清除。
  • NPC 生成验证现在可以在你配置的位置忽略装饰性非完整方块,而完整方块仍会阻止生成。

物品与交互


  • 投射物破坏现在可以限制为仅软方块。BreakBlockInteraction 上的新 SoftOnly 标志会忽略破坏者持有的任何物品,而新的 Block_Break_Projectile 交互为之前共享 Block_Break_Adventure 的38个投射物配置设置了该标志。若希望投射物能够挖掘,则保留此标志关闭,此时其挖掘能力将像以前一样取自射击者的物品。

方块与预制结构


  • 方块模型现在可以比原始制作速度更快或更慢地播放动画。BlockType 或其某个状态上的新自定义模组elAnimationSpeed 是一个从 0 到 100 的乘数,并像其他模型属性一样继承。
  • 方块现在可以在被破坏时运行交互链。OnBreak 在正常破坏时触发,而 OnBreakImpact 在掉落方块落地并破坏时触发,因此方块可以在消失时生成物品或触发效果。
  • 若移除操作不应触发方块自身的反应,可以传递 SetBlockSettings.NO_FIRE_ON_BREAK 以抑制 OnBreak 链;同时 BreakFallingBlockImpact 现在继承 DropItems,因此子方块类型保留其父项的值。

世界地图与标记


  • 游戏玩法代码现在可以在提供者构建地图标记后覆盖它。WorldMapManager.addMarkerOverride 接受标记 ID 和携带可选图标及可选 global 标志的 MapMarkerOverride,并从下一游戏刻起应用于世界中的每个玩家。
  • 世界事件也可以覆盖标记。MapMarkerOverrideAddAction 接受 MarkerKey 和 Name 以及可选的 Icon 和 Global,MapMarkerOverrideRemoveAction 会清除覆盖,并且当事件结束时覆盖会自动移除。

资产架构与格式


  • 粒子资产现在在编辑器中自我说明。粒子系统、生成器、动画帧、碰撞和吸引器都带有字段描述,共享速度、UV运动和相交高亮编解码器也已文档化,多个粒子字段获得了更清晰的标签。
  • 添加了 ShowEventTitle 交互,用于在屏幕上显示事件标题。
  • 增加了为 SendMessageInteraction 指定目标的功能。新的 Target 字段可将消息发送给发起实体、交互所在世界中的每位玩家,或所有世界(宇宙)中的所有玩家。

服务器与权限


  • 添加了 /blockanimspeed 命令,用于设置目标方块的模型动画速度,并带有可选的动画帧相位。
  • 添加了 /worldmap markers override 及其 add、remove 和 clear 子命令,用于在游戏中尝试标记覆盖。这些子命令继承自 /worldmap 的 GROUP_WORLD_EDITOR 权限。

重命名与弃用


  • Item 上的 CarryInteractionHints 变为 CarryHudInputBindings,RootInteraction 上的 CarryInteractionHint 变为 HudInputBindingEntry。
  • EncounterAudio 收集器现在为 EncounterMembers。

协议与网络


  • 线路协议新增了 SetBlockAnimationSpeeds 数据包,以及 BlockType 上的 模组elAnimationSpeed 字段。每个数据包携带一个区块段的完整状态及单调递增的修订版本,因此乱序的数据包不会撤销较新的数据包。
  • HudComponent 增加了 BossBar 条目,新的 UpdateBossBar 数据包携带实体网络ID、名称作为 FormattedMessage 以及 Hide 标志。游戏模式可以使用它来显示或隐藏该条。

面向插件开发者的更改


  • 实例副本中的传送装置现在会记住它们打开的世界,因此该实例的新副本会重新连接到它,而不是丢失链接。PortalInstanceLinks 以实例和方块位置为键保存目标和设备配置,PortalInstanceRelinker 在副本启动时恢复它们。这些链接在服务器重启后不会保留。
  • BlockChunk 不再暴露每方块光照访问器、getSectionCount、blockCounts 或 setNeighbourBlocksTicking。请解析方块Y所在的区块段,并通过 BlockSection.getGlobalLight() 读取光照。
  • 生成现在通过新的 SpawningContext.isTickingSection 检查生成Y处的区块段,因此在该高度具有非激活区块段的已加载列不再接受生成。
  • 插件现在可以从游戏状态驱动方块动画速度。新的 BlockAnimation模组ule 提供 setBlockAnimationSpeed、setBlockAnimationPhase、clearBlockAnimationSpeed 和 getBlockAnimationSpeedOverride,均在世界线程上操作,当目标区块段未加载时返回 false。
  • 移除了 WorldChunk.toHolder。区块保存现在始终通过 saver.saveChunkColumn,该操作复制区块实体的组件而非别名引用;GeneratedChunk.toChunkHolder 内联组装其 holder。
  • 投射物物理现在在客户端和服务器上记录投射物实际接触的格子,因此撞击链作用于该格子,而非从最终位置推导出的格子。基础格子解析移至 SimpleBlockInteraction.resolveBaseBlockPosition,已弃用的 getBaseBlock 不再用于此目的。
  • 为代理实体运行的方块交互现在像玩家一样进行距离检查。投射物必须在其作用的格子8个方块以内(以接触格子为测量基准),这样高方块不会因为自身高度而被拒绝。当行动实体没有物品栏时,持有的物品也会从交互上下文中解析,因此投射物会根据射击者的物品衡量破坏效果。
  • CameraSequenceBuilder 不再携带 keyframe(..., Float fov) 和 keyframeLookingAt(..., Float fov) 重载。FOV 移至新的 CameraKeyframeBuilder,后者在其构造函数中接受持续时间和缓动,其他所有通道均为可选。
  • 服务器摄像机及摄像机序列现在可以驱动客户端的景深效果。DepthOfFieldSettings 焦点带位于 ServerCameraSettings 上,并通过 CameraKeyframeBuilder.depthOfField 位于每个关键帧上,并随序列段缓动进行混合,这足以实现航拍镜头中的移轴微缩效果。
  • 选择器现在自行解析填充基础方块,并通过新的 Selector.BlockConsumer 报告,该回调同时接收撞击格子和基础格子。SelectInteraction 直接从该回调中读取两者,不再调用已弃用的 IChunkAccessorSync.getBaseBlock;同时实体锚定的 selector.selectNearbyBlocks 重载已被移除。
  • 光标摄像机现在可在手柄上工作。右摇杆结合右摇杆死区和灵敏度设置驱动光标,PrimaryItemAction 和 SecondaryItemAction 发送点击数据包,因此扳机键可以破坏和使用光标所指向的任何内容。
  • 通知标签现在应用于物品通知,因此物品可以按标签拆分到不同的提示中。

面向模组制作者的错误修复


世界生成修复


  • 具有损坏默认生物群落引用的 WorldStructure 资产不再静默构建。
  • 删除世界生成 V2 实例或停止服务器不再使日志充满 Failed to load chunk! 的问题。
  • 修复了偏移模式节点在节点编辑器中为其偏移量提供十进制向量引脚的问题。
  • PositionsHorizontalPinch Density 功能不再在世界原点抛出异常。
  • 修复了Spawner NodeAction中的一个缺陷,该缺陷导致图形节点在负坐标中消失。

资产架构与格式修复


  • 粒子生成器上的 WaveDelay 现在从其父级继承,因此子生成器保留给定的值,而不是恢复为默认值。
  • .lang 文件中的格式错误行不再丢弃整个文件。解析器会指出文件名和行号,跳过错误行并保留其余内容;未终止的行续接则会保留已读取的文本。

服务器与权限修复


  • /discovery link 命令现在会告知你实际出错的原因。DiscoveryService.sendHeartbeat 返回 HeartbeatResult,因此与任何列表不匹配的令牌、以不同游戏配置文件登录的服务器以及无法访问的服务都会分别获得各自的提示,并且仅当心跳真正成功时才会链接令牌。
  • /world remove 和 /chunk forcetick 现在将指向正确的命令。

面向插件开发者的修复


  • 通过 WeatherTracker.setOverrideWeatherIndex 设置的每玩家天气覆盖现在在强制天气的世界中会保持有效,而不是在一秒内被还原。带有 PlayerOnly 的 SetWeatherEffect 同样会保持,而 /weather set 在覆盖清除之前不会影响该玩家的天空。
  • 光标服务器摄像机再次可玩。设置了 displayCursor 的 ServerCameraSettings 的游戏模式,以及 /player camera topdown 命令,现在会从摄像机通过光标进行交互射线投射。
  • 在光标摄像机下的移动现在会在所有方向上以相同的前进速度运行,而不是W比A、S、D更快。
  • PlayerMouseButtonEvent 再次在光标摄像机下点击时触发,携带目标方块或实体以及屏幕点,以便从俯视视角实现自定义点击逻辑。
  • 光标摄像机现在在菜单、聊天或页面打开时忽略鼠标输入。暂停菜单之前会导致角色旋转,并且 MouseInteraction 数据包不再从UI覆盖层后面发送。
  • 扩展交互范围的摄像机偏移量现在有了上限,因为它来自服务器发送的值。
 

预发布版(更新 6,第 13 部分,热修复补丁 1)


2026年8月22日

主要功能


无论网络环境如何,都能与好友一起游玩!加入好友的游戏不再需要外部应用!
  • 此前因 NAT 类型限制而无法加入好友游戏的玩家,现在无需借助 Tailscale 等工具也能连接。*
  • 无法建立直接连接时,联机过程将通过中继服务器完成。

技术细节
  • 加入玩家托管的游戏时,现在会使用 ICE(RFC 8445),并结合 STUN 与 TURN,取代旧有的打洞连接流程。
  • 当所有直连路径均不可用时,将通过 TURN 中继完成加入流程。该中继仅使用 UDP,因此阻止 UDP 中继流量的网络无法使用此功能。
  • ICE 尝试失败后,系统将回退到现有的直连竞争机制。

* 已知限制采用“双重 NAT”网络配置的玩家目前仍无法连接。我们希望在更新 7 的预发布版本中推出解决方案。

面向玩家的错误修复


稳定性修复


  • 修复了服务器或世界同时启用多个大型皮肤模组时,玩家加入世界会发生崩溃的问题。现在,超出纹理图集容量的纹理将被跳过,并改为在日志中记录警告。
  • 服务器关闭时,玩家现在会正常断开连接,无需再等待连接超时。
  • 将共享世界重新设为私有后,该设置现在会立即生效。

面向模组制作者的更改


协议与网络


  • ServerListener 现在通过默认方法提供可选的网络传输字节计数器。现有实现无需进行任何更改。
 
最后编辑: