-
购买游戏时,在支付界面使用创作者代码 HytaleCN 以表示对中文社区的支持,这对我们来说十分重要,感谢您的支持!(
点击查看示意图)
你正在使用过时的浏览器。它可能无法正确显示此网站或其他网站。
你应该升级或使用
其他浏览器。
大家好!
以下是更新 6 的预发布补丁说明,我们将每周进行更新。
和以往一样,如果遇到任何问题,可以通过游戏内的错误报告器进行反馈,也可以通过
反馈请求网站提交您的建议。提交时请务必注明“预发布”字样。
要访问预发布版本:通过启动器 → Setting → Pre-Release 启用。
感谢大家的持续支持!
——Hytale团队
预发布版本(更新 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<EntityStore> + 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<T> 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 日
衷心感谢 MelodicAlbuild、TheNullicorn、Hadaward、narwhalscat、Neil 和 oskarscot 为本更新带来的修复、新功能和优化。你们的社区贡献让 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<byte[]>) 推送 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<Integer> 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 日
修复了Hytale客户端中的安全问题,后续将提供更多详细信息。(未发现存在主动利用该漏洞的证据)
2026 年 7 月 17 日
衷心感谢 MelodicAlbuild 和 Eearslya 为本更新带来的修复、功能和完善。你们的社区贡献让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的插件。
最后编辑: