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

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

大家好!

以下是更新 7 的预发布补丁说明,我们将每周进行更新。

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

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

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

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


见本帖楼下。

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


见本帖楼下。

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


见本帖楼下。

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


见本帖楼下。

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


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

第一章内容来袭!


本次预发布版我们包含了即将到来的第一章的第一波内容!这是未来几周内数波内容中的第一波,这些内容仍在积极开发中。其中部分内容,尤其是符文能力系统,在第一章正式发布前会有较大变动。您的报告和反馈对我们修复问题和了解您喜爱的内容都有巨大帮助,所以请务必告诉我们您的想法和体验!在本预发布版中,第一章内容主要通过创造模式获取。

移动与战斗


  • 引入符文技能系统!收集符文,然后将其放入符文羁绊之像中,以增强你的战斗能力。
  • 新增初始五种符文:
    • 符文:狂怒 —— 引导原始怒火,提升造成的伤害和受到的伤害。
    • 符文:火球 —— 发射一颗火球,撞击时爆炸。
    • 符文:淬毒 —— 为武器淬毒,攻击会叠加中毒效果。
    • 符文:裂地猛击 —— 撕裂大地,迸发地刺将敌人击飞。
    • 符文:风之冲击 —— 为武器注入风元素,使接下来三次攻击发出穿透性的风刃。
  • 滑翔系统已重做。现在可以通过按下/释放冲刺键来俯冲和上升。滑翔伞现在展开时会保持你的速度。

NPC 与实体


  • 重做了大量与第一章相关的 NPC,包括:
    • 哥布林打手 —— 轻型近战单位,喜欢蜂拥围攻敌人。
    • 哥布林矿工 —— 重型近战单位,拥有强力的跳跃攻击。
    • 哥布林守卫 —— 重甲哥布林,持盾防御。
    • 哥布林投弹手 —— 热爱炸弹的远程单位,拥有爆炸性武器库。
    • 哥布林喷火者 —— 危险的远程单位,装备火焰喷射器。
    • 哥布林老饕 —— 体型庞大、贪食的巨型哥布林。
  • 冲锋型 NPC 的加速和减速现在可以更精细地调整。

世界与方块


  • 新增多种方块,包括:
    • 火燎铜方块组
    • 火燎铁方块组
    • 哥布林铁方块组
    • 一组哥布林装饰物
  • 金方块组更新了模型和纹理润色。
  • 实例编辑现在允许你破坏、收集和放置方块,即使实例本身通常不允许这些操作。
  • 服务器规则变更现在会立即影响玩家,因此生命值条、战斗文本、护甲隐藏以及放置/破坏方块的规则都无需离开并重新加入服务器即可更新。
  • 在禁止破坏方块的世界中,爆炸不再破坏方块。
  • 重做了恐怖浅滩中的虚空事件积累方式,现在会在固定时间后升级。

物品与交互


  • 哥布林为第一章带来了几种小工具:
    • 残料钻头 —— 一种采矿工具,可同时破坏多个方块。
    • 望远镜 —— 放大视野,观察远处发生的事。
    • 残料滑翔伞 —— 让你翱翔天空的工具。
    • 火箭靴 —— 时尚鞋履,提供二段跳能力。
    • 钩爪(及钩爪锚点) —— 用于在世界中酷炫地穿梭。
  • 洒水壶的攻击能力已被移除。

触发功能域


  • 触发功能域现在可以设置你的重生点、移动世界出生点,或清除你的重生点。
  • 触发功能域的标签条件现在可以将一个标签与另一个标签进行比较,而不仅仅与固定值比较。
  • 显示事件标题触发功能域效果现在有了样式选项,取代了旧的“是否主要”开关,让你直接选择标题外观。其字段标签也再次正确显示。
  • 在创造模式快捷设置中加入了激活触发功能域开关。关闭后,你可以穿过自己的触发功能域而不会触发它们。

界面与体验改进


  • 传送门世界中的传送门面板已重新设计!倒计时、传送门名称和进度条都有了新外观。
  • 模组现在可以包含完整的世界,安装后这些世界会出现在你的世界列表中,而且即使移除模组,你基于它创建的世界依然保留。
  • 增加了启动画面后可出现的一次性全屏公告,让新内容新闻更难被忽略。
  • 从模组创建世界现在会先请求许可。
  • 模组浏览器中的模组分类现在在卡片、筛选器和详情页上显示可读的名称。
  • 在线游戏屏幕现在会用简单文字说明你的好友是否能加入,以及如果不能该怎么办。
  • 在在线游戏屏幕添加了复制网络报告按钮。它会复制一份不含地址的简短诊断报告,方便你在寻求帮助时粘贴。
  • 在发送错误报告后,报告 ID 旁边增加了复制按钮,可一键获取 ID。

音频


  • 尝试使用无法激活的能力时,现在会根据无法使用的原因播放不同的音效,例如充能不足、能力冷却中、武器类型错误等。

性能


  • 去重了实体碰撞背后的方块查找逻辑(该逻辑对服务器上每个移动的玩家和生物都会执行)。
  • 重做了世界地图,改为分段加载小块而非一整张大图,因此内存占用大幅降低,打开时也不再卡顿。
  • 改进了服务器上的方块破坏,计算破坏内容时不再需要停止加载区块。
  • 多人游戏会话现在会优先采用直连路径(若存在),避免会增加延迟的替代路径。

面向玩家的 Bug 修复


移动与战斗修复


  • 洒水壶和战斧现在在游泳时会正确握持。

世界与方块修复


  • 修复了相邻方块放置或破坏时,部分方块可能无法更新的问题。
  • 修复了卸载区域可能导致方块忘记在相邻方块放置/破坏后更新的问题。
  • 破坏旋转多方块结构后,现在会正确更新周围方块,可能导致支撑方块掉落或流体流动。
  • 拾取方块不再触发本应发生在方块破坏时的交互。
  • 修复了位置过高或过低的传送器可能无法正常工作的问题。

NPC 与实体修复


  • 站在浅水中的生物不再会在没有放松约束的情况下自动走入深水。这也修复了 NPC 可能卡在液体附近的问题。
  • 靠近目标的冲锋型 NPC 现在只会转身面向目标,而不会循环整个内部冲锋状态。
  • 会话期间收集的记忆不再在会话结束时丢失。

物品与交互修复


  • 修复了在禁止放置、破坏或收集的世界中,交互提示仍出现在方块上的问题。
  • 升级后的工作台已全票通过,决定保留新外观,不再在每次使用时变回旧外观。
  • 升级工作台上的制作动画现在也会正确循环。

创造工具修复


  • 设置为应用于投射物来源的触发功能域现在会正确生效,而不再将投射物本身视为来源。
  • 建造工具现在会在离开世界时停用。

界面与生活质量修复


  • 世界列表中的世界图像现在只显示最新的截图,而不是旧版本。
  • 修复了启动时若网络缓慢,好友列表和邀请可能无法正确显示的问题。
  • 修复了如果在会话中途开启社交功能,社交侧边栏无法打开的问题。
  • 修复了大型好友列表中显示默认头像的问题。
  • 修复了正确头像会回退到默认头像的问题。
  • 通知菜单现在在有大量待处理好友请求时打开速度大幅提升。
  • 未配置图标的物品现在会显示神秘的“未知物品”图标。
  • 从模组浏览器安装模组现在能正常工作了,即使你已手动将模组内容放入相应文件夹。
  • 模组浏览器不再会在因同名文件导致问题时,误报连接问题阻止模组安装。

图形与渲染修复


  • 回滚了近期对半透明表面渲染的更改,因为它引起了视觉问题。
  • 修复了引擎电影编辑器中,新场景与现有场景名称几乎相同时可能导致新场景丢失的问题。
  • 清理了引擎电影编辑器相机视图遗留的内存。
  • HUD 的透明部分不再意外变暗。
  • 单人世界中的视觉效果如果设置了持续时间,现在在世界暂停时也会暂停该持续时间。
  • 纹理过大致使溢出的 NPC 现在会渲染为黑色,而不是隐形。
  • NPC 现在再次正确投射阴影。

音频修复


  • 环境世界音效现在会在离开世界的瞬间停止,而不再偶尔在主菜单上循环几秒。

稳定性修复


  • 修复了离开世界或在服务器间切换时可能发生的崩溃,以及随之而来的小内存泄漏。
  • 修复了因损坏或恶意网络数据嵌套过深(命令树、物品类别或交互链)而可能导致的崩溃。
  • 修复了加入一个同时运行多个大型自定义皮肤的世界时可能发生的崩溃,现在无法容纳的纹理会跳过并发出警告。
  • 修复了服务器刷新界面时可能发生的崩溃,该问题还会导致菜单中的物品和角色预览损坏。
  • 修复了丢弃数量为零的物品堆时可能发生的崩溃。
  • 修复了序列化分叉交互时可能发生的崩溃。
  • 修复了将无图标的物品拖到实体工具上时可能发生的崩溃。
  • 修复了在较老 NVIDIA 显卡(GeForce 400 至 700 系列及对应笔记本版本)上可能发生的崩溃。
  • 修复了每次关闭显示角色的菜单时都会产生的内存和图形泄漏,因此长时间开关菜单不再消耗内存。
  • 修复了游戏过程中、切换世界和关闭游戏时的多处内存和图形泄漏,长时间游玩不再导致内存占用攀升。
  • 修复了单个玩家的连接问题可能导致服务器上其他所有人网络中断的故障。
  • 修复了将共享世界切回私有时,世界有时仍可访问数秒的问题。
  • 修复了当某个存档的设置文件损坏时,世界列表无法加载的问题。
  • 世界地图不再会在纹理限制较小的显卡上、高视距下永久卡死。
  • 修复了传送方块在已卸载区域延迟后自我移除时可能导致的短暂服务器卡顿。
  • 服务器关闭时现在会干净地断开连接,你无需再等待连接超时。
  • 如果保存的视距高于 Hytale 允许的最大值,服务器和世界现在不会拒绝启动,该值现在会被限制在 32 个区块。

面向模组制作者的更改


世界生成


  • 更新了公共 HytaleGenerator 文档,可在此处的“pre-release”下找到。
  • 在资源及节点编辑器中移除了 GradientWarp Density 节点过时的 2D 和 YFor2D 选项。应改用 YOverride -> Cache -> GradientWarp 链。

NPC 与实体


  • 遭遇战现在可以强制所有参与者进入某种天气。SetEncounterWeather 接受一个 Weather 资源和可选的 TransitionSeconds(默认 2),ClearEncounterWeather 将成员恢复为正常天气。两者均仅限于 InstructionType.Encounter。
  • NPC 天气传感器仍只读取世界天气,因此 Sensor: Weather 不匹配遭遇战强制设定的天空。请通过遭遇战状态或信标驱动该行为。
  • Example_Boss 遭遇战现在将两种动作作为示例使用:在进入阶段1时强制血月,并在首领死亡时清除。
  • MotionControllerWalk 和 MotionControllerBase 上所有有意义的配置值现在都是持有者(holder),因此可以从模板计算和覆盖,而不再固定于角色。
  • BodyMotionCharge 中的 ChargeAcceleration 已移除。新的 ChargeAccelerationDistance 和 ChargeDecelerationDistance 以格数定义每段加减速距离,而非设置速率。仍然使用旧键的角色在加载时会发出警告并丢失该行为。
  • RemovedBlockSet 也已移除。IgnoredBlockSet 现在覆盖其功能,冲锋探测将那些方块视为不碰撞且可呼吸,因此只列出冲锋真正穿过的方块。
  • 冲锋现在可以在距目标选定距离处停止。ChargeDistanceMode 选择如何测量该距离(MaxRange、TargetDist 或碰撞器模式之一),TargetDistanceRange 偏移停止点,正值会在到达目标前停止。
  • 冲锋加减速曲线完全可塑。ChargeAccelerationCurveMode 和 ChargeDecelerationCurveMode 选择曲线是解读为速度还是覆盖距离,对应的 MinimumRelativeSpeed、HalfTimeValue、HalfTimeSteepness 和 EndSteepness 键用于调整曲线本身。
  • 冲锋中 NPC 的移动行为现在可以修改。ProbeRelaxedConstraints 接受 Wade、Damage、Drop、Breathe 和 Fence,因此角色可以让冲锋穿过液体或窒息方块,而之前会拒绝。
  • ChargeState 新增 InStopRange,角色可通过 SensorChargeState 匹配。当目标距离小于配置要求的停止点时,NPC 进入该状态。
  • 查找和追踪移动中的 ThrottleIgnoreCount 和 ThrottleDelayRange 现在也覆盖路径受阻的情况,而不仅仅是搜索失败。将 ThrottleDelayRange 设为 [0, 0] 可在遇到障碍时恢复旧行为。
  • 奖励现在可以通过遭遇战管理器发放。遭遇战模板上的新 GrantReward 动作指向一个奖励资源,RewardExistsValidator 在名称无法解析时加载失败。
  • 移除了废弃的哥布林隐士和拾荒者资源,包括其生成的图标、隐士掉落列表和隐士模型。
  • 废弃的哥布林公爵阶段1和阶段3模板现在使用散兵模型。

物品与交互


  • 滑翔伞参数为新的移动状态机重建。物品上旧的 FallSpeedMultiplier、HorizontalSpeedMultiplier、TerminalVelocity 和 Speed 值已移除,取而代之的是 Template_Glider 上更广泛的字段,涵盖俯冲和爬升。
  • 钉头锤物品动画新增 SwingUpLeft 变体,用于能力。
  • 掉落物品现在可以在你指定的距离内合并。新的继承键 MergeRadius 位于 ItemEntityConfig 中,设定掉落物品寻找其他可堆叠物品的范围(以格为单位)。保持 -1.0F 则回退到世界默认值。

方块与预制结构


  • TickProcedure.onTick 现在接受 CommandBuffer<ChunkStore> 和区块段 Ref<ChunkStore>,取代之前的 World 和 WorldChunk 参数,因此任何子类重写都需要更新。世界可通过 commandBuffer.getExternalData().getWorld() 获取。
  • 指定方块可以在禁止破坏方块的世界中保持可破坏。WorldConfig.BlockBreakingBypassTag 命名一个标签,带有该标签的任何方块在 AllowBlockBreaking 关闭时仍可被破坏。爆炸遵循相同规则。

资源模式与格式


  • 地图标记覆盖现在可以更改标记的显示名称。MapMarkerOverride 新增 DisplayName 键,使用本地化键替代,标记覆盖添加命令现在接受 --icon 和 --global 之外的该选项。
  • 世界事件现在可以等待时间。新的 TimeCondition 在世界时间达到你设定的 Day、Hour 和 Minute 时完成,任何设为 -1 的部分将被忽略,因此没有 Day 的条件就是每天届时重复的固定时间。
  • 世界事件现在也可以通过战役进度门控,使用 GameFlagLevelCondition,在游戏标志达到你设定的 Level 时完成。Comparator 选择比较方式,默认为 GreaterThan。
  • 三种新触发效果处理重生:SetRespawnPoint 接受 Origin、Position、Name 和 ClearExisting;SetWorldSpawn 接受 Origin、Position、Yaw 和 ClearPlayerRespawnPoints;ClearRespawnPoints 接受 Name 和 AllPlayers。
  • 事件标题现在在 JSON 中选择命名样式。ShowEventTitleInteraction、ShowEventTitleEffect 和 InstanceDiscoveryConfig 都接受 Style 值,旧的 IsMajor 和 Major 键仍然可解码以使现有资源继续工作,但旧属性已标记为弃用,将在未来版本移除。
  • UI 精灵新增两个字段:Color 用于为精灵着色并控制其不透明度,KeepLastFrame 使动画停留在最后一帧而不是跳回第一帧。
  • 触发功能域标签现在可以像变量一样使用并相互比较。TagCondition 新增 CompareAgainst 字段,选择是将标签与普通值(默认)比较,还是与 CompareTagKey 命名的第二个标签比较。
  • 重生点现在可以设置玩家面向方向。PlayerRespawnPointData 和 SetRespawnPointEffect 都接受以度为单位的 Yaw。
  • 触发功能域上的事件标题效果现在可以选择谁看到它。ShowEventTitleEffect 新增 Recipient 字段,与 SendMessageEffect 选项相同,默认为触发玩家。
  • 新增 Beam 资源类型,位于 Entity/Beams,包含单一 TexturePath 字段。纹理必须位于 Beams/ 或 Trails/ 下。
  • WorldEvents 的事件标题动作现在可以选择横幅外观。ShowEventTitleAction 接受可选的 Style 和可选的 Icon,省略 Style 时回退到默认样式。

服务器与权限


  • /eventtitle 命令现在使用 --style 替代 --major,副标题行现在默认为空而不是“Event”。
  • 实例编辑世界现在加载新的 InstanceEdit 游戏玩法配置,开启 AllowBlockBreaking、AllowBlockGathering 和 AllowBlockPlacement,使限制性规则的实例仍可编辑。
  • 服务器管理员现在可以检查哪些区块被荒野系统计为荒野、哪些计为家园。新命令 /wilderness debug [enabled] [player] 会在玩家的世界地图上将这些区块染成绿色和红色,并在世界中绘制对应的立方体。荒野跟踪在 WildernessConfig 中默认关闭,命令会在世界关闭该功能时发出警告。
  • 新增用于开发工作的 /beam 命令,包含 entity、position、spawn 和 clear 子命令。
  • 服务器现在会拒绝启动,如果其写入的内容会落在启动器的安装文件夹内(每次更新都会修补或清空该文件夹)。检查覆盖工作目录及 --universe、--prefab-cache 和 --backup-dir,并在退出前(代码 11)打印如何将它们移到安全位置的步骤。
  • 新增 --allow-install-dir 标志,以及对应的 hytale.allow_install_dir 系统属性,供愿意承担数据丢失风险的人使用。单人游戏运行、--help、--version 以及不带 --bootstrap 的 --bare 启动已跳过此检查。
  • 服务器管理员现在可以在已登录状态下运行 /auth login browser 或 /auth login device,无需先注销。现有会话在新登录完成前保持活跃,因此取消或失败的登录不会影响原有登录状态。

重命名与弃用


  • 三种密度资源类型已重命名:SmallerThan 现为 LessThan,SmallerOrEquals 现为 LessOrEqual,Select 现为 Selector。
  • 另外两种密度资源类型去掉了末尾的 s:Equals 现为 Equal,GreaterOrEquals 现为 GreaterOrEqual。节点编辑器条目也使用新名称。
  • 藏宝图目标已移除,连同其所有关联内容。TreasureMap 目标任务、OpenTreasureContainer 和 DestroyTreasureCondition 交互、LookBlocksBelow 和 TagBlockHeight 世界位置条件,以及 TreasureChest 方块实体组件都不再解码,任何引用它们的资源加载失败。已放置的宝藏箱仍可加载,因为服务器会将其组件保留为未知数据。
  • IsMajor 已从 ShowEventTitleEffect 中移除。Style 字段覆盖了它,请直接选择你想要的外观,而不再使用布尔值。
  • 虚空幽灵资源已合并为一个名称,指向旧 ID 的任何引用都不再解析。Spectre_Void 现已统一为 Void_Spectre,涵盖模型、掉落列表、图标和粒子。
  • 资源文件 Spiwer_Web_Full.png 已重命名为 Spider_Web_Full.png,Fig_Blue_.png 现为 Fig_Blue.png,重复文件 Totem_Heal_BeamStart (1).particlespawner 已移除。

音频


  • 音乐现在可以通过自定义规则从一首曲目切换到另一首。新增两种资源类型:MusicTransition 和 Stinger,位于 Audio/MusicTransitions 和 Audio/Stingers。
  • 切换可以落在音乐边界而非帧上。MusicSync 选择输出曲目的切换时刻(立即、下一拍、下一小节、退出标记或命名标记),DestinationAlign 选择输入曲目在其自己的时间线上从哪里开始。
  • 重叠和淡入淡出现在是独立控制。ExitAt 设定切换点,PlayPostExit 让输出曲目播放到文件结尾,FadeOutDuration 和 FadeOutDelay 改为淡出,遵循默认等功率的 FadeCurve。
  • 音乐容器新增一批字段:MusicContainer 接受 Tags、Align、AlignMarker、ExitAt 和 Stingers;SegmentMusicContainer 接受命名的 Markers;HorizontalMusicContainer 接受带有 Phases 的 AudioState,因此可以通过状态轴切换阶段。
  • Stinger 现在挂载在容器上的自由形式音乐事件上,而不是直接引用。任何内容都可以触发该事件,绑定它的最深活动容器决定播放内容,stinger 在排除组内按优先级排序。
  • StateTransition 新增 PostEvent,因此音频状态边可以标记音乐时刻,而无需直接命名 stinger。

协议与网络


  • ShowEventTitle 数据包移除了 IsMajor,改为 EventTitleStyle Style 字段,这会破坏任何手动构建该数据包的插件。样式包括 Default 和 Major。
  • 世界的游戏玩法配置现在通过新的 WorldGameplayConfig 数据包复制到客户端,包含 WorldConfig、CombatConfig 和 PlayerConfig 结构体,与服务器资源对应。该数据包在玩家加入世界时以及 GameplayConfig 资源重新加载时发送。
  • 线路现在承载光束数据。BeamConfig 和 UpdateBeamConfigs 传输光束资源,BeamInstance 和 Beams 组件更新传输放置位置,因此需要匹配的客户端。

插件开发者相关


  • 光照计算现在按区块段运行,因此 LightCalculation.init 接受 ChunkStore 和段 Ref,而不再是 WorldChunk;getSkyValue 移除了未使用的 WorldChunk 参数;ChunkLightingManager 公开了 invalidateLightInChunkSections 用于段级失效。
  • 光标服务器相机现在支持游戏手柄。右摇杆通过新的 GamepadCursor 助手驱动真实光标,PrimaryItemAction 和 SecondaryItemAction 发送点击数据包,因此扳机键可以触发并在光标所在位置使用物品。
  • com.hypixel.hytale.protocol.DurabilityOperator 已改为 ComparisonOperator,因为相同的比较列表同时用于耐久度检查和新的游戏标志条件。引用旧类型的插件代码需要切换,而资产 JSON 和线路格式保持不变。
  • WeatherTracker 新增 tryClaimOverride、releaseOverride 和 resolveUnoverriddenWeatherIndex。clearOverrideWeatherIndex 现在也会移除持有者。一个持有者一次持有一个天气覆盖。
  • EventTitleUtil 新增接受 EventTitleStyle 的重载。布尔重载仍然可用但已弃用,将来会移除。
  • TargetUtil.getTargetBlock 和 getTargetLocation 现在接受 ChunkStore,之前接受 World,直接调用它们的插件代码需要改为传入 world.getChunkStore()。
  • 爆炸、方块爆炸效果、方块收获、射线选择器和旁观者相机现在都能在立方体世界中工作,因为 TargetUtil 不再假设单一垂直列。
  • ClientFeature 不再包含 DisplayHealthBars、DisplayCombatText、CanHideHelmet、CanHideCuirass、CanHideGauntlets、CanHidePants、AllowBlockPlacement、AllowBlockBreaking 或 AllowBlockGathering,引用其中任何一个的插件将无法编译。这些规则现在位于 GameplayConfig 资源中,而 ClientFeature 保留插件自行注册的移动能力。
  • ChunkAccessor.performBlockUpdate 和 WorldChunk.setTicking 已移除。使用 BlockOperations.updateBlockArea 处理整个碰撞箱,或使用 BlockSection.setTicking 配合 ChunkSection.markNeedsSaving 处理单个单元格。注意 updateBlockArea 现在同时接受 ChunkSection 和 BlockSection。
  • 方块写入正在迁移到区块段,因此 WorldChunk.setBlock 和 WorldChunk.breakBlock 已弃用,现在委托给 BlockOperations.setBlock。它们还会触发 BlockAnimationModule.onBlockReplaced,因此方块替换动画会为这些写入播放。WorldChunk.setBlockPhysics 以及 BlockTypeModule.SET_BLOCK_SETTINGS 及其填充辅助方法已移除。
  • 门和填充交互不再拉取相邻区块仅为了更新它。未加载的相邻区块会被跳过,与其他方块更新行为一致。
  • 所有返回 WorldChunk 的区块查找现在都标记为待移除,涵盖 IChunkAccessorSync、IWorldChunksAsync、IWorldChunks、World 和 LocalCachedChunkAccessor。行为不变,但插件编译时会收到弃用警告,应迁移到 ChunkStore.getChunkReference 和段存储。
  • 已弃用的 IChunkAccessorSync.getBaseBlock 已移除。填充方块现在通过 BlockOperations.resolveBaseBlockPosition 解析,它接受 ChunkStore 且不会触发区块加载。
  • BlockDataProvider 现在在每次方块读取时解析其区块和流体段,而不是在每个字段访问时解析。readBlockId、readRotation、readFiller、readFluidId 和 readFluidLevel 方法现已私有,直接调用它们的插件将无法编译。
  • Wilderness 新增 size()、test(int) 和 isValid(),因此插件可以按索引遍历玩家的跟踪区域,并测试单个区块而无需世界坐标。
  • 新增 Rewards 内置模块,插件可以用自己的奖励类型扩展它。目前包含一种类型 EntitlementReward,通过 RewardAsset 授予权益。
  • 剩余的同步区块访问器成员现在标记为待移除。IChunkAccessorSync 上的九个默认方法、ChunkAccessor.getFluidId 和 OverridableChunkAccessor 都会发出警告,因此 world.getBlock、setBlock、breakBlock 等在每个调用点都会标记。IWorldChunks.waitForFutureWithoutLock 现为私有,无法再从接口外部调用。
  • 从区块访问表面移除了十七个未使用的成员,仍然调用它们的插件将无法编译。涵盖 IChunkAccessorSync.getBlockComponentHolder、IWorldChunksAsync.getNonTickingChunkAsync(int, int)、BlockChunk.getSectionRefAtIndex、BlockComponentSection.getBlockReferences、BlockSection.setChunkSection 和 getMaximumHitboxExtent、PaletteTypeEnum.getPaletteId,以及 LocalCachedChunkAccessor 上的十个访问器。请通过段引用(使用 AbstractCachedAccessor 或 ChunkStore.getChunkReference)进行读写。
  • 新增内置 Hytale:Beam,包含 BeamComponent,持有 AttachedBeam 条目,每条光束从拥有者的附着点延伸到另一个实体、该实体模型上的节点或固定的世界位置。光束是运行时状态,不会随实体保存。
  • BeamComponent.spawn 创建一个复制实体,该实体携带光束但没有模型,用于不属于任何其他物体的光束。它接受可选的生存时间,并通过 DespawnComponent 应用。
  • GroundedCondition 交互已从 Abilities 内置模块移入核心服务器,因此交互可以在未加载该插件的情况下使用它。
  • 公共常量 ItemMergeSystem#RADIUS 已移除。合并距离现在来自物品配置,通过 ItemComponent#getMergeRadius(ComponentAccessor) 获取,ItemComponent#setMergeRadius(float) 用于在运行时更改。

面向模组制作者的 Bug 修复


世界生成修复


  • 修复了 Cache Positions 节点的 SectionSize 引脚。
  • 为 Density 节点添加了缺失的工具提示。
  • 降低了无效 Normalizer Density 参数(FromMin 等于 FromMax)的错误级别为警告,为模组更新留出更多时间。今后应使用新的逻辑 Density 节点来创建布尔映射。
  • 修复了当目标轴为倒置 Y 轴时的 Rotator Density。
  • 为配置为锚定水平面的 Plane Density 启用了一项优化。
  • 修复了 Switch 和 SwitchState Density 节点读取 Default 状态不一致的问题。

NPC 与实体修复


  • 修复了 BuilderMotionControllerWalk.getFenceBlockSet 在配置的方块集为空或缺失时抛出异常的问题。
  • 修复了由 NPC 触发的触发功能域效果会触发两次的问题,因此带有单条消息效果的触发功能域不再发送两次相同的聊天消息。DestroyTaggedVolumesInteraction 也应用了相同的防护。
  • 修复了关闭 DiagonalMoves 的角色路径寻找崩溃问题。
  • 修复了每 tick 重新计算阻塞路径的问题。
  • 修复了 NPC 冲锋探测接受无效终点位置的问题。
  • 清理了 BodyMotionCharge 配置描述,方便模板作者使用。
  • 放置方块的 NPC 现在通过段存储写入,因此放置在高出或低于旧高度带的位置可以正确放置,而不会被丢弃。角色数据中未知的方块类型键会静默跳过,而不是抛出异常。
  • 恢复了 _Deprecated 下的废弃哥布林生成标记,包括 Ogre、Scavenger 和巡逻变体,以便仍引用它们的世界可以继续加载。

物品与交互修复


  • 清除了物品交互资源中的一批警告。传送器配置、发光蘑菇食用交互、石英砂砾半砖、守卫盾击和法杖交互中的未使用字段已移除,间歇泉环境音效键也已正确拼写。
  • 修复了穿透性投射物可能停止 tick 并永远停留在世界中的问题。

方块与预制结构修复


  • 方块 tick 过程现在可以在任意高度的区块段中运行。之前计划 tick 在 Y 0 到 319 之外会停止,因此为该范围编写的过程需要适应负坐标和高坐标。
  • 触发功能域文本现在可以解析普通书写文本中的标签值,而不仅限于翻译键。SendMessage 和 ShowEventTitle 都支持此功能。
  • 修复了格式化文本在遇到无法识别的占位符时丢失字符的问题,因此未知的 {tag} 会原样保留。

资源模式与格式修复


  • 在资源编辑器中创建文件夹时,现在会自动创建任何缺失的父文件夹,因此你可以组织全新的资源类型,而无需先创建临时资源。
  • Float2ObjectMap 字段的模式验证现在与编解码器实际读写内容一致。生成的键模式接受科学计数法(如 1.0E-4)和以点开头的值(如 .5),不再允许 1x2 等非数字键通过。

服务器与权限修复


  • world add 命令现在会告诉你创建成功还是失败,而不再静默丢弃结果。
  • 修复了 /fluid setradius 只让填充区域中一个方块流动而不是全部的问题;/block setticking 现在会自己解析区块段,并在未加载时告知你。
  • config.json 中的 MaxViewRadius 超出 1 到 32 范围不再阻止服务器启动。该值会被限制并发出警告,文件保留你写入的值。
  • 最大视距命令现在拒绝高于 32 的值,而之前是 512。

协议与网络修复


  • 对等端现在拒绝嵌套深度超过 32 层的结构,涵盖 FormattedMessage 树、物品类别、命令树和交互链。实际内容远低于该限制。
  • UpdateLanguage.Language 现在是必需协议字段而非可选,协议版本已为此增加。该字段和 Connect.Language 也从 16 字符上限扩大到 100 字符,可适配任何 .NET CultureInfo.Name。

插件开发者修复


  • 光标服务器相机重新可用。插件在 ServerCameraSettings 中设置 displayCursor 即可恢复光标瞄准,并且每个移动方向都使用前进速度,因此侧移不再比前进慢。
  • PlayerMouseButtonEvent 现在在光标相机下点击时触发,携带目标方块或实体以及屏幕坐标,方便从上到下视角实现自定义点击逻辑。
  • 修复了在菜单、聊天或页面打开时光标相机仍读取鼠标输入的问题。打开暂停菜单不再导致角色旋转,且 MouseInteraction 数据包不再在 UI 覆盖层后发送。
  • 自定义 UI 页面中的 ItemGrid 不再需要 DefaultItemIcon。图标无法解析的物品会回退到未知物品图标,而 DefaultItemIcon 仍可覆盖该占位符。
  • 使用来自插件 getCodecRegistry 编解码器的宇宙资源现在会在关闭时写入。最终的刷新已移至新的 ShutdownEvent.FLUSH_UNIVERSE_RESOURCES 阶段,在 SHUTDOWN_WORLDS 之后运行,此时所有插件仍处于启用状态。
  • ClientTool 现在会在世界关闭且工具仍处于激活状态时收到 OnActiveStateChange(false),并且该调用在工具释放之前运行。
  • 修复了服务器翻译缓存无限增长的问题。I18nModule 现在根据新的 resolveLanguage() 返回的语言来缓存消息,而不再使用原始客户端字符串;queueTranslations() 替换了 sendTranslations(),因此同一连接上的重复语言切换会合并为一次发送。
 
最后编辑:

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


2026 年 9 月 10 日

节点编辑器


  • 节点编辑器现在打开时会显示起始界面,你可以选择要创建的内容,或直接回到最近的文件。
  • 节点编辑器现在会重新打开你上次使用的工作区类型。
  • 在 Windows 和 macOS 上,拖放到节点编辑器中的文件现在会直接打开。
  • 节点编辑器现在有浅色主题和深色主题。前往 文件 > 首选项 选择你偏好的主题。
  • 添加了图形小地图,可从 View(视图)菜单切换。它会框出你当前的视口,高亮你的选择,点击其任意位置可跳转到图形的对应部分。
  • 拖动节点现在会让它们与相邻节点对齐并吸附到网格,同时显示参考线表明对齐对象。多节点选择在拖动时会保持其内部对齐关系。
  • ManualCurve 和 FunctionForY 节点现在有交互式曲线图。右键图表添加点,按删除键或退格键可删除点,点可以相互交叉或移出可见范围而不会导致图表卡死。平移和缩放画布不再干扰编辑。
  • 拖动时曲线值会吸附到整数。按住 Alt 键可获得小数值。
  • 材质字段现在使用可搜索的资产选择器,选择器内会为每种材质渲染纹理缩略图。
  • 向 WorldGen(世界生成)工作区添加了 Trig Density 节点。
  • 添加了一个选项,只要按住 Ctrl+Z 就会持续撤销。默认关闭。
  • 当节点编辑器无法读取文件时,现在会提供更清晰的错误消息。
  • 棕色和亮红色现在可作为节点颜色。

NPC 与实体


  • 与虚空结盟的生物现在对哥布林敌对。
  • 大多数哥布林现在会试图逃离遇到的任何虚空生物,除非附近有足够多的盟友,在这种情况下它们会试图坚守阵地。
  • 哥布林喷火者、哥布林饕餮之主、护卫、投弹手、矿工和打手不再永远追逐目标。
  • 哥布林喷火者的攻击现在造成的击退大幅减少。

物品与交互


  • 降低了哥布林火焰喷射器的击退。
  • 传送门现在可以设置每玩家进入次数限制。这些会显示在远古传送门 UI 中。
  • 重做了钩索及其发射动画的外观。
  • 更新了废料(残料)滑翔翼的模型和纹理,其翅膀现在会拍动。

控制与输入


  • 重做了手柄上的技能控制:按住右肩键,然后按不同按钮来使用不同能力。
  • 重新绑定按键类型时,现在会显示哪些键和手柄按钮可以作为组合绑定的一部分被按住。

UI 与体验增强


  • 创造模式物品栏中的搜索功能已重做,以更好地匹配玩家意图。它现在也允许“一步”拼写错误(因此 ‘swrd’ 和 ‘swodr’ 都会返回 ‘sword’),并且即使未使用变音符号也会返回结果(例如,如果物品包含 ‘é’,只输入 ‘e’ 也会生效)。
  • 对符文缚者之像的“技能工作台”UI 进行了视觉调整。
  • 符文现在会在工具提示中显示其技能标签。
  • 传送门世界中的 UI 现在会更清楚地显示何时获得了额外时间。

音频


  • 添加了当方块被无法破坏它的工具击中时的冲击音效。
  • 减少了使用废料钻采矿时听到的破坏音效数量。
  • 哥布林饕餮之主获得了一些新音效,部分现有音效也得到改进。
  • 如果哥布林饕餮之主在对附近哥布林大喊,它们现在会暂时安静下来。
  • 标志性技能充能时播放的音效已更新,并降低了音量。
  • 火箭靴在触发火箭爆发二段跳时现在有自己的音效。

多人游戏与网络


  • 修复了当家庭网络中的其他设备先响应时,自动端口转发无法找到路由器的问题。
  • 修复了同一网络中有多台设备访问 Hytale 时,加入世界可能导致断线的问题。
  • 修复了断开连接后无法重新加入朋友世界的问题;此前需要双方都重启游戏才能解决。

性能


  • 改进了服务器在刻处理方块、流体和耕地时的性能,因此繁忙区域每个刻给世界带来的工作量更少。

面向玩家的错误修复


节点编辑器修复


  • 打开和关闭大型图表不再导致编辑器冻结,文件会在后台加载,因此编辑器保持响应。
  • 修复了在工作区类型之间切换时的若干崩溃和不一致状态。
  • 修复了内存泄漏:每个打开的图表都会在会话剩余时间内留在内存中。
  • 修复了编辑器无法识别的节点类型在保存图表时丢失信息的问题。
  • 复制和粘贴节点不再丢失它们之间的连接。
  • Shift 点击选择节点现在可靠工作。
  • 修复了若干与组标题相关的视觉问题。
  • 修复了若干启动和稳定性问题。

移动与战斗修复


  • 爆炸现在会在禁用方块破坏的世界中对实体造成伤害。

NPC 与实体修


  • 保存在更新 5 世界中的带方块模型实体现在在世界升级时保持正确的位置和缩放。注意:这不会修复已经以错误位置和缩放升级过的实体。
  • 使用建造工具旋转方块选择时,现在会为多轴旋转正确旋转带方块模型的实体。
  • 哥布林喷火者在需要补充燃料时不再伤害自己的脖子。
  • 哥布林喷火者不再每次需要重新装填火焰喷射器时都嘲讽。

物品与交互修复


  • 爆炸桶现在会显示提示,表明它们可能可以被拾取。
  • 短斧现在可以作为一种非常规方式引爆爆炸方块。
  • 捕鱼陷阱现在会将其困住的生物眩晕两秒,而不是无限期。
  • 钩索投射物在停止移动后不再偶尔在世界中长时间滞留。

创造工具修复


  • 使用建造工具粘贴预制结构或剪贴板时,地图现在会刷新整个区域,而不仅仅是光标下方的区块。撤销和重做编辑也会刷新其改变区域的地图。

UI 与体验增强修复


  • 社交侧边栏中玩家头像的背景已改回蓝色。
  • 改进了 /beam 命令的帮助文本。

图形与渲染修复


  • 修复了外观发生变化的手持物品会立即重新应用移动动画的问题。

音频修复


  • 降低了原本比预期更响的远处声音的音量。
  • 调整了一些声音,使其音量会根据音频设置正确改变。
  • 提高了火焰喷射器的音量。

稳定性修复


  • 修复了当服务器在某些方块完成加载之前发送流体更新时可能发生的崩溃。
  • 修复了加载了引擎动画场景时返回主菜单可能发生的崩溃。
  • 修复了当引爆没有爆炸半径的爆炸时发生的服务器错误。
  • 修复了玩家在确认重生同时离开服务器时发生的服务器错误。
  • 修复了当启动带有需要生成生物的任务的目标时发生的服务器错误。

面向模组开发者的更改


NPC 与实体


  • 本地生成信标现在可以受天气限制。BeaconNPCSpawn 上可选的 WeatherIds 列表会让信标仅在当前天气属于其中一种时生成,并且当天气不再匹配时,已放置的信标会移除自身并清除其 NPC。
  • 信标检查的天气是世界强制天气,否则是信标所在环境的天气,由新的 WeatherResource.getEffectiveWeatherIndex(environmentId) 解析。触发体积覆盖等玩家个体天气不计入。
  • 移除了已弃用的 Spawn_Void 角色及其 Spawn_Void 和 Spawn_Void_Manual 生成标记。Void_Spawn_Entombed 接管了它,其名称现在指向正确的 lang key。

物品与交互


  • 物品现在可以将交互挂到第四个能力槽上,而不仅仅是三个,并且弩的 Root_Common_StatAmmoReload_Entry 装填已移到该槽上,位于 Template_Weapon_Crossbow 中。
  • 传送门钥匙现在可以限制每个玩家进入的次数。PortalKey 携带每玩家限制,传送门设备页面会显示限制和剩余进入次数。
  • 移除了仅调试用的 Debug_Movement_Boots 盔甲。
  • 物品现在可以在使用额外跳跃时向穿戴者播放单独的声音。ItemMovementSettings 上新的 ExtraJumpLocalSoundEvent 接收一次性事件并接受立体声文件,火箭靴会将其与世界声音一起使用。
  • 带纹理的光束现在可以在实体之间渲染。新的 AttachBeam 交互会在交互上下文所有者和你在参数中指定的实体之间悬挂光束,钩索就是这样绘制绳索的。
  • 投射物现在可以获得生命周期。Projectile 交互上的 Lifetime 值会在该持续时间结束后清除投射物。

资产架构与格式


  • 实例世界不再使用 DocumentDisplayOnRemoval。新的 EventTitleOnRemoval 会在实例关闭时显示事件标题,关闭延迟跟随标题计时。不设置它,世界会立即关闭。
  • 传送门类型现在携带默认时间限制和进入次数。PortalType 上的 TimeLimitSeconds 和 AllowedEntryCount 适用于该类型的每个钥匙,而 PortalKey 仅在需要不同时才需要这些字段。
  • 来自 SoundStyle 和 SoundEffect 的界面音效音量现在限制在 +10 dB,与其他所有作者设定的增益字段一致。
  • AudioState 音量增量现在在每语音路径上限制为每轴 +10 dB,与服务器已记录的界限相同。依赖更大每语音增量的资产包会被钳制。
  • 事件标题现在可以在文字旁播放声音。EventTitleConfig 上可选的 SoundEventId 会在标题发送后触发一次,不设置它的资产行为与之前相同。
  • 世界事件现在可以在玩家世界地图上显示自己。WorldEventAsset 获得了用于地图条目的名称和图标字段,IntervalCondition 获得了决定事件何时出现以及显示什么文本的字段。

服务器与权限


  • 添加了 fragment timer add <seconds> 命令,它会向碎片计时器增加时间而不是替换它,这正是触发 HUD 上获得时间标签的方式。
  • /block 点命令和 /block row 现在可在立方世界中的任意高度工作,因此 get、set、getstate、setstate 和 setticking 可以到达 Y 320 以上和 Y 0 以下。未加载的区段会以新的 server.commands.block.noSection 消息响应。
  • /block bulk find-here 和 /block bulk replace 现在以区块区段为单位接收半径,并围绕你扫描一个球体,包括旧高度范围之上和之下的区段。
  • /block bulk find 获得了 --chunkY 和 --radius 选项。它会搜索该区块位置周围的球体,最远到服务器最大视距半径,而不是在世界中螺旋向外直到超时。

重命名与弃用


  • 哥布林钩索模型现在以废料命名。Hookshot_Goblin.blockymodel 和 Hookshot_Goblin_Projectile.blockymodel 变为 Scrap.blockymodel 和 Scrap_Projectile.blockymodel,并且 Tool_Hookshot.json 和 Hookshot_Hook.json 指向新路径。
  • 虚空触手动画已移动并重命名。Bite2 和 Bite3 现在是 Bite_Left 和 Bite_Right,而 Idle 和 Idle2 位于 Default 文件夹中,与新的生成动画相邻。

协议与网络


  • 传送门状态现在携带 BonusSeconds,即刚刚添加到碎片计时器的时间。服务器在广播后清除它,以免后续刻重播动画。
  • ItemMovementSettings 增加了一个尾随的 ExtraJumpLocalSoundEventIndex,这改变了其网络布局。客户端和服务器必须使用相同的协议构建。

面向插件开发者


  • 移除了 WorldChunk.getWorld(),因此区块不再指回自己的世界。ChunkPreLoadProcessEvent 现在携带世界并暴露 getWorld(),与 ChunkSectionPreLoadProcessEvent 匹配。
  • 方块刻回调现在无需捕获即可获取世界坐标。新的 BlockSection.forEachTicking 重载接收区段坐标和一个 TriObjectPositionBlockFunction,因此回调通过参数获得世界位置和第三个上下文值。
  • 传递给 SoundUtil.playSoundEvent2d 和 playSoundEvent3d 的音量修饰符是线性乘数,而不是分贝,并且之前高于 1.0 时会被丢弃。它们现在会生效,因此插件传入 3.0 会从大约单位增益变为约 +7.5 dB。没有任何校验,所以请检查任何高于 1.0 的修饰符。
  • SimpleBlockCommand.executeWithBlock 不再接收 WorldChunk。它现在获得 CommandContext、ChunkStore、一个 Ref<ChunkStore> 区段引用和方块坐标,因此自定义方块命令可以到达任意高度。
  • 方块生命值现在位于区块区段上,而不是柱状列上。BlockHealthChunk 仅用于解码,因此请通过区段实体上的 BlockHealthSection 读取和更改生命值,以 ChunkUtil.indexBlock 为键。WorldNotificationHandler.updateBlockDamage 和 getBlockDamagePacket 已移除,因为一旦写入区段,伤害会自行复制。
  • PortalWorld.overrideRemainingSeconds 现在是 setRemainingSeconds(world, seconds, force),当传送门世界已计划移除时,它会保留计时器不变。
  • WorldChunk.getBlock 上的弃用说明现在指出了正确的替代方法。使用 ChunkStore.getChunkSectionReferenceAtBlock 解析区段,并通过 BlockSection.get 读取,因为旧的 BlockChunk.getBlock 路径仍受限于旧版柱状范围,无法到达其外的区段。
  • WorldUtil 中的流体和材质辅助方法现在接收 ChunkStore 并自行解析方块的区段,因此它们可以在任意高度正确读取。getWaterLevel、findFarthestEmptySpaceBelow 和 findFarthestEmptySpaceAbove 接收调用方边界,而不是停在柱顶,并且 PositionProbeBase.updateWaterLevel 也接收 ChunkStore。
  • BlockChunk.getSectionAtIndex 已移除,因为它索引旧版 0 到 9 的区段数组,并在超出范围时抛出异常。
  • 你现在可以在放置选择之前询问它将写入哪个世界区域。BlockSelection.computePlacementBounds(Vector3ic, Vector3i, Vector3i) 会报告这些边界,并对没有单元格的选择返回 false。
  • 旧版 UI Element 基类现在带可空注解,因此 HitTest 和 Find<T> 返回可空元素,构造函数接收可空父级。运行时行为相同,但声明非空返回的覆写需要加 ? 才能匹配。
  • 将 ConcurrentFastUtil 中生成的并发映射从 sun.misc.Unsafe 移到了 VarHandle,在每个字段和表访问上保持 volatile 顺序,从而移除了服务器启动时三个弃用警告来源之一。

面向模组开发者的错误修复


世界生成修复


  • 使用 Anchor PropDistribution 放置的道具不再以 8x8 网格模式出现随机部件缺失。
  • 修复了渐变 Density 节点在生成地形中产生网格对齐伪影的问题。

NPC 与实体修复


  • NPC 方块传感器和资产预留现在可在任意高度工作,而不再被钳制到 0 到 320 区间,因此角色可以在立方世界中高于或低于该范围找到并预留方块。方块传感器还将 Range 和 MaxHeight 上限设为 256,远高于已发布角色使用的 30 和 10。
  • 修复了虚空幽灵将其 MemoriesNameOverride 指向不存在的 Spectre_Void 的问题。模板、变体和静态变体现在都使用 Void_Spectre。

服务器与权限修复


  • 修复了 /block bulk replace 会计入从未更改的方块,以及 /block setstate 在未知方块 id 上抛出异常而不是报告该 id 的问题。部分失败的方块命令现在会告知发送者,而不是静默失败。
  • 修复了由 /block 命令放置到新加载区段中的方块保持惰性的问题。该命令现在会将区段加载为可刻更新,因此方块会刻更新,其方块实体也会生成。

面向插件开发者的修复


  • LivingEntity、NPCEntity、PatrolPathMarkerEntity 和 SpawnBeacon 现在将其 World 构造函数参数标记为 @Nullable,与 Entity.clone 在重建实体时已传入的空世界相匹配。
 

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


2026 年 9 月 17 日

非常感谢 tssan1ty、NoctuaAstrum 和 Fullavatar 为本次更新带来的修复、功能和打磨。你们的社区贡献让 Hytale 变得更好!

NPC 与实体


  • 某些生物现在必须先通过战斗击败,才能获得它们的记忆。
  • 哥布林盛宴之主现在会有攀爬、游泳、潜水、飞行、生成和睡觉的动画。
  • 骷髅精英的“流动斩击”攻击现在移动得更快。
  • 骷髅精英获得了一套新的音效。

世界与方块


  • 传送门世界现在可以无时间限制地保持开启。

物品与交互


  • 爆炸桶现在使用主要输入按键进行投掷。默认是左键。
  • 符文已重新命名,以明确它们是技能符文还是修饰符符文。
  • 废料滑翔翼的模型已重做,空闲动画已更新。
  • 风柳果实的粒子效果已重做。
  • 更新了废料钻头的描述。

命令


  • /kit iron 和 /kit adamantite 命令现在包含与其层级匹配的食物和生命药水。两者都不提供长剑、单手斧、棍棒、长矛或法杖。

UI 与便捷性


  • 按两次 F7 时出现的调试覆盖层已重建。面板可以单独移动、调整大小或 隐藏,并且可以创建自定义布局来在它们之间切换。(译注:这里是一个解谜游戏,如果要解密的话,应访问原帖内容。)
  • 创造模式世界中的“返回叉路大厅”按钮已移动。
c677a5e9-99e9-47ad-b2fc-5db54285762a.png​

音频


  • 哥布林喷火者的火焰喷射器现在会播放过热和装填音效。
  • 骷髅精英的攻击现在有合适的音效和脚步声播放。

性能


  • 保存的世界现在占用的磁盘空间比以前更少。现有世界会在首次加载时自行升级。
  • 改进了服务器在保存时压缩世界数据的方式,从而降低服务器在繁忙时的内存使用。

命名与分类


  • “Web Rope”现在叫“Spiderweb Rope”。(蛛丝绳->蛛丝绳)
  • “Spider Web - Diagonal”现在叫“Spiderweb Rope - Diagonal”。(斜向蛛网->斜向蛛网)
  • “Large Kenolite Stalactite”现在叫“Kenolite Stalactite - Large”。(大型虚土岩石锥->大型虚土岩石锥)
  • (译注:以上所有中文译名应该都没有变动。)

面向玩家的 Bug 修复


移动与战斗修复


  • 更新了裂地猛击技能,使其现在可以与战斧一起使用。
  • 不再能通过反复使用废料滑翔翼跳跃来获得额外高度。

世界与方块修复


  • 环境伤害效果决定不再奉行和平主义。它将再次对NPC和玩家造成伤害。
  • 你通过传送门设备访问的其他世界,现在会遵循创建原始世界时所选择的世界设置,例如与摔落伤害和 PvP 相关的设置。

物品与交互修复


  • 耐力药水的冷却不再显示为减益。
  • 缠根魔杖和石肤魔杖现在从正确位置发射光束。

NPC 与实体修复


  • NPC 现在能在那些地形位于旧固定高度范围之外的世界中成功找到坚实地面。
  • 跨物种关系已经破裂,大型掠食者现在一旦看到蜘蛛,就会向其发动攻击。
  • 哥布林更擅长逃离虚空阵营的生物了。

UI 与便捷性修复


  • 触发体积上的播放音效设置现在显示正确的音量和音高标签,而不是原始文本 ID。
  • 在调试覆盖层中选择布局、布局热键或要显示的面板现在会立即生效。
  • 修复了一些拼写错误。

图形与渲染修复


  • 光束效果不再导致方块和物品短暂显示错误纹理。
  • 粒子效果和拖尾现在会出现在方块模型实体的正确位置。
  • 修复了在拥有大量自定义内容的世界中,由于纹理图集已满而可能出现的缺失或错误纹理问题。

音频修复


  • 触发体积播放的音效不再以远超预期的音量播放。
  • 循环音乐和环境淡入淡出不再会在循环点前卡住。

性能修复


  • 修复了有人加入全新世界时可能出现的冻结。

本地化修复


  • 当你的系统语言包含地区变体(例如法语(加拿大))时,Hytale 不再回退到英语。
  • 其他语言中的较长单词不再导致 Mod 浏览器中的“Installed Mods”按钮出现渲染问题。

稳定性修复


  • 修复了在 macOS 上从 Finder、Spotlight 或 Apple Games 启动 Hytale 时登录失败的问题。
  • 修复了 Windows 上杀毒软件中断世界保存时可能发生的崩溃。
  • 修复了邀请码不正确或过大时可能发生的崩溃。
  • 修复了加入世界时可能发生的客户端内存泄漏。
  • 修复了绘制世界地图后可能发生的内存泄漏。
  • 修复了离开或取消点对点会话时可能出现的长达两秒的临时冻结。
  • 修复了重试加入时未能使用另一次连接尝试已经找到的路由器的问题。
  • 修复了在配备集成 Intel 显卡的电脑上玩游戏时,主菜单或物品栏界面可能发生的随机崩溃。

面向模组开发者的更改


NPC 与实体


  • 角色现在可以在死亡时发放其记忆,而不是在玩家接近时。MemoriesUnlockedBy 接受 Proximity(默认)或 Kill,MemoriesKillRange 设置玩家可以在多远距离内仍被记录。Variant 角色需要其引用的模板声明这两项,与 IsMemory 相同。

物品与交互


  • 大多数食物物品的 blockymodel 文件已重建,以驱动新的进食动画。引用旧节点名称的自定义动画可能会失效。
  • 爆炸现在可以定义伤害原因。ExplosionConfig 上新增的 EntityDamageCause 字段设置应用于范围内实体的伤害原因,省略时回退到 Environment。

方块与预制结构


  • 方块现在可以在不先被破坏的情况下在游戏中显示自己的名称和物品描述。将 "Page": { "Id": "BlockLore" } 放在方块的 Use 交互下,它会从方块物品的 TranslationProperties 中读取两者。没有描述的方块不会打开任何内容。
  • BlockLore 页面接受可选的 TextAlignment 键:Left、Center 或 Right。默认是 Center。

资产模式与格式


  • 触发体积的 PlaySound 效果现在接受 VolumeDb(分贝,-100 到 0)和 PitchSemitones(半音,-60 到 12),而不是旧的线性 Volume 和 Pitch。旧键仍会从现有 JSON 加载,但它们不再作为行出现在触发体积编辑器中。音量上限为 0 dB,因此触发器只能降低声音,永远不能增强声音。要让某物更响,请提高声音事件本身的音量。
  • 音频计时现在使用统一词汇,旧拼写不再解码。StateTransition.DurationMs: 2000 变为 Duration: { "Ms": 2000 },AudioState.DefaultSyncTo: "NextBar" 变为 DefaultSyncTo: { "Point": "NextBar" },而 MusicTransition.FadeOutDuration、FadeOutDelay 和 FadeInDuration 各自接受一个对象,而不是秒数。
  • 世界地图标记可以绘制得更大。方块和目标标记配置上新增的 IconSize 接受 Default 或 Major,Major 以 64 像素渲染,并带有匹配的碰撞箱和文本偏移。省略它的标记保持标准大小。
  • Encounter 资产文件现在必须声明顶层 Class 键。Role 文件仍可省略它并回退到 Role。
  • 从 GameplayConfigs/Portal.json 的传送门 VoidEvent 配置中移除了 BreachAtSeconds。Stages 列表现在自行驱动整个升级过程。
  • ModelVFX 资产现在继承其父级的所有字段。ModelVFX.CODEC 全程使用 appendInherited,因此将资产指向父级不再导致其大多数值未设置。
  • 粒子资产文档现在在文档网站上正确显示。Particle、ParticleSpawner、ParticleAttractor、ParticleCollision、ParticleSystem 和 ParticleAnimationFrame 的文档文本已为 Fumadocs 重新排版,生成器形状的措辞也更清晰。
  • 自定义 UI 页面现在可以复用符文控制台外观。Common.ui 新增了 @RunicPanel 组以及 @RunicTitleStyle、@RunicHeadlineStyle 和 @RunicBodyStyle 文本样式,标题样式会缩小以适应最低 12px。
  • 传送门世界现在可以完全无时间限制地创作。PortalType 和 PortalKey 接受没有持续时间的传送门。
  • 溢出自定义内容到纹理图集之外时,现在会回退到缺失纹理并记录警告,而不是无声消失。图集还可以跨多个页面打包,方块图集最多 16 个,其他图集最多 4 个。
  • 放置在 Y 0 以下的生成点现在会留在你放置的位置,因为 FitToHeightMap 只会适配 Y 为 Integer.MIN_VALUE 的点,而不是任何负 Y。

服务器与权限


  • 新增 /chunk height 命令,可转储一列的高度图用于调试。/chunk fixheight 现在还会将该列重建到新的后端中,因此之前存储得过高的高度终于可以被修正,而不只是被抬高。
  • 使用 _ 高度标志编写的命令坐标现在会在列不在内存中时返回“区块未加载”消息,而不是在世界线程上强制加载它。

重命名与弃用


  • 将传送门诅咒表面重命名为 ephemeral items。AdventureMetadata 现在携带 ephemeral 标志,CursedItems 变为 EphemeralItems,/cursethis 命令现在为 /ephemeral。
  • 虚空幽灵的攻击交互已重命名以匹配其功能。Void_Spectre_Attack 现在是 Void_Spectre_Charge,Void_Spectre_Attack_Damage 现在是 Void_Spectre_Charge_Damage,根交互现在是 Root_NPC_Void_Spectre_Charge。

协议与网络


  • 环境现在一次流式传输一个区块段。SetChunkEnvironments 以段坐标作为键,并携带单个段载荷,而 SetColumn 不再携带环境。客户端和服务器必须使用匹配的协议版本。
  • 将双向的 AssetEditorUpdateAssetPack 数据包替换为来自服务器的 AssetEditorAssetPackUpdated 和来自客户端的 AssetEditorUpdateAssetPackManifest。AssetEditorAssetPackSetup 现在将包 id 映射到 AssetPack,其中携带清单以及 IsReadOnly 和 CanBeDeleted,而不是映射到 AssetPackManifest。

面向插件开发者


  • 立方世界现在使用新的树木高度图,BlockSection blob 移到版本 7。旧服务器无法读取这些 blob,因此在此版本加载的世界无法在旧版本上打开。
  • 插件现在可以在 ECS 存储中构建实体层级,创建父实体和子实体、重新设置父级,并迭代父级的子级。系统默认处理根实体,覆盖 getHierarchyScope() 可让系统接收子级或仅处理父级。
  • 插件可以阻止玩家打开调试屏幕。将 PreventDebugScreens.INSTANCE 添加到玩家实体会阻止 ToggleDebugScreens 键位(默认 F7),并关闭任何已经打开的调试屏幕;移除它会恢复这些屏幕。该组件仅运行时存在,不会在重载后持久化。
  • Noesis 页面现在可以缩小否则会被截断的文本。新的 hy:ShrinkTextToFit 装饰器会将其子级缩小到 MinFontSize,默认 10。它从不写入 FontSize,因此样式和触发器继续工作。包装器需要有限宽度,因此它不会在水平 StackPanel 中缩小,也不支持会换行的子级。

面向模组开发者的 Bug 修复


世界生成修复


  • 修复了 SmoothClamp Density 不读取其输入的问题。
  • 修复了 Offset Pattern 节点编辑器模式,使其为 Offset 向量使用正确的节点类型。

NPC 与实体修复


  • NPC 冲锋运动现在使用基于距离的渐变。四个随附模板已从过时的 ChargeAcceleration 迁移到 ChargeAccelerationDistance 和 ChargeDecelerationDistance,这也清除了它们记录的过时键警告。
  • 重做了 Component_Instruction_Goblin_Flee_Void,使逃跑基于态度而不是 NPC 组查询。它现在会在逃跑中途切换到新的威胁,并有一个 .Wait 状态,通过动画让哥布林转过身来。

物品与交互修复


  • 修复了向 ItemAbility 上的 OnHitEffects 添加条目时的崩溃。空条目以前会在资产编辑器和服务器上抛出 NullPointerException,现在验证会拒绝它。

资产模式与格式修复


  • 实例现在可以接受玩家为父世界选择的世界设置。在实例配置中的 Plugin.Instance 下将 InheritWorldSettings 设置为 true,Portals 实例现在就是这样做的。

服务器与权限修复


  • 封禁和踢出现在会关闭账户打开的所有连接,包括以前保持连接的资产编辑器连接。

面向插件开发者的修复


  • 修复了 RawJsonReader 中的越界读取:在缓冲区末尾附近读取一个字符宽的内容时,可能越过末尾最多三个字符。读取器现在通过 MemorySegment,而 protected 的 readStringPartAsLongUnsafe 现在叫 readStringPartAsLongWide。
  • 区块保存现在从有界直接缓冲区池借用其临时缓冲区,而不是每次保存都分配一个新缓冲区,这可以防止繁忙服务器超过直接内存限制。readSegments 保持其签名,但它返回的缓冲区是池化的,因此调用方在读取完成后不得继续持有它。
  • 通过 SetEncounterBossBar 设置的 Boss 栏名称现在会渲染文本标记,例如 <s> 和 <color>,而不是打印标签。标记仅适用于翻译后的名称,因此来自被追踪实体的原始显示名称仍保持字面。
  • 击杀提示条目现在遵循 KillFeedEvent.KillerMessage 和 KillFeedEvent.DecedentMessage 上的 Message.strikethrough、.color、.bold、.italic 和 .underlined,并且在设置了 MarkupEnabled 时标记标签会生效。
  • 将 InstancesPlugin.inheritWorldConfigSettings 重命名为 inheritDefaultWorldConfigSettings,并去掉了其原始世界参数。它现在始终从宇宙默认世界复制摔落伤害和 PvP 设置,这修复了实例和传送门世界从错误世界继承的问题。
  • 当一个监听器抛出异常时,你的其他监听器现在会继续运行,并且失败会被记录,而不是停止分发。
 
最后编辑:

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


2026 年 9 月 24 日


非常感谢 NoctuaAstrum 和 tssan1ty 为本次更新带来的修复、功能和润色。你们的社区贡献让 Hytale 更好!

第二波首章内容来袭!


我们正在为即将到来的第 1 章添加第二波内容!内容仍在积极开发中,从现在到第 1 章发布之间还会继续变化。和之前一样,请继续发送反馈和错误报告,这些确实能帮助我们进一步改进内容!


对于本次预发布,你可以立即通过访问往昔神殿来开始体验第 1 章内容。或者,你也可以等几天,看看会发生什么。你在第二波中遇到的很多内容故意没有写在这些补丁说明中,所以你必须亲自体验!


本地化


  • 法语现已添加到可用语言列表中!

符文石


  • 符文石现在已重命名,只包含技能名称。
  • 符文石工具提示现在会显示该符文石是技能符文石还是修饰符文石。
  • 技能符文石现在为稀有品质,修饰符文石现在为罕见品质。
  • 添加了链勾技能符文石。该符文赋予投出一个钩子的能力,钩子会伤害敌人并将其拉向你。
  • 添加了蓄能穿射技能符文石。该符文赋予引导一道冰霜闪电的能力,释放时根据蓄力时间造成伤害并减速敌人。
  • 添加了扩大范围符文石。该符文增强技能符文石,使其效果范围增加 100%。
  • 添加了延长持续时间修饰符文石。该符文增强技能符文石,使其持续时间增加 2%。
  • 添加了分裂修饰符文石。该符文增强技能符文石,使发射的投射物分裂为额外投射物。这些额外投射物不能再次分裂。
  • 添加了弹射修饰符文石。该符文增强技能符文石,使发射的投射物从敌人身上弹开。
  • 将裂地猛击技能符文石的冲击伤害从 10 提高到 15,其地刺伤害从 20 提高到 35。地刺现在会将敌人击得更高,该能力现在将玩家定身的时间大约缩短为之前的一半,武器限制已放宽,冷却时间从 14 秒增加到 18 秒。
  • 将风击的伤害从 14 降低到 8,放宽了武器限制,并将冷却时间从 15 秒降低到 10 秒。
  • 狂怒的动画已更新。

额外战斗改动


  • 受到伤害不再会中断进食或饮用药水。
  • 进食或饮用药水时,移动速度现在会降低 25%(之前为 60%)。
  • 食物现在需要 2.5 秒食用(之前根据类型不同为 2-3 秒)。
  • 面包、爆米花和奶酪现在恢复 10% 生命值(之前为 15%)。
  • 食用生水果、蔬菜或作物现在会提供小幅生命恢复增益,持续 1 分钟。生肉、鱼和蛋不会提供此增益。
  • 食用熟食提供的增益现在持续 6 分钟。这影响各种熟食可提供的生命恢复、最大生命值和最大耐力增益。
  • 使用弩攻击现在会使攻击期间的移动速度降低 50%(之前为 0%)。
  • 使用剑、锤或战斧攻击现在会使攻击期间的移动速度降低 25%(之前根据攻击不同为 0-40%)。
  • 使用匕首攻击现在会使攻击期间的移动速度降低 15%(之前根据攻击不同为 0-50%)。
  • 铁手弩连击射击伤害从 27 降低到 12.5。
  • 远古钢手弩标准射击伤害从 16 降低到 10.5,连击射击伤害从 42 降低到 13.125,招牌攻击伤害从 123 降低到 82。
  • 箭矢现在会引爆哥布林爆炸桶。
  • 剑、匕首、锤和战斧攻击速度现在大约快 15%。
  • 剑命中现在会造成更少的垂直击退。
  • 剑和战斧获得了新的施法动画。
  • 剑在施放淬毒或风击时现在会播放附魔动画。
  • 搬运方块时使用的动画已更新。

NPC 与实体


  • 你在第 1 章相关区域遇到的非精英敌人现在受伤时会畏缩,中断其攻击。如果敌人在短时间内畏缩太多次,它们会暂时免疫进一步的畏缩。
  • 虚空阵营生物不会出现在夜间的奥比斯的回响中。
  • 虚空阵营生物已重新平衡,获得了新的外观或攻击。
  • 哥布林动画已更新。它们现在潜行时会行走、奔跑并环顾四周。
  • 哥布林现在可以冲刺和倒退跑。
  • 哥布林盛宴之主的动画已更新。
  • 骷髅精英(现已更名为亡灵守卫)取回了自己的盔甲和武器。-亡灵护卫的冲刺和奔跑动画已更新。
  • 各种骷髅所穿盔甲已进行视觉更新。
  • 哥布林打手、矿工和护卫的近战命中现在会造成更少的垂直击退。

世界与方块


  • 在创造模式世界的世界设置屏幕中添加了“世界事件”选项,以便可以打开和关闭它们。
  • 创造模式世界现在默认关闭世界事件。
  • 恐怖浅滩不再以虚空裂隙结束。
  • 灌木、藤蔓、树叶或海草等植被不再能用武器破坏。
  • 破坏玩家放置的植被现在会掉落与野外相同的东西,例如树枝和浆果,而不是植物本身。如果你想要回植物,请使用剪刀。提醒一下,剪刀可以在农业工作台制作。
  • 剪刀现在可用于收集落叶堆。
  • 椰子变小了,这让植物学家感到困惑。

物品与交互


  • 巨型破损长剑和巨型破损盾现在可在创造模式物品栏中获取。
  • 为滑翔翼添加了下落动画,在耐力耗尽过早时播放。
  • 往昔神殿正在发生的事情使现在在那里睡觉变得太困难,因此床不再可交互。

UI 与体验增强


  • 创造工具中的资产节点编辑器现在可在 Linux 上打开。

音频


  • 为区域 2 添加了 5 首新的探索曲目。
  • 为区域 3 添加了 10 首新的探索曲目。
  • 为区域 4 添加了 24 首新的探索曲目。
  • 区域 4 的洞穴和下水道现在拥有自己的音乐。
  • 为钩索添加了音效。
  • 为废料滑翔翼添加了音效。
  • 远古平台陷阱现在在破碎时播放音效。

命令


  • 世界事件可以通过命令 /worldevent 打开和关闭。

图形与渲染


  • 非常轻微地柔化了太阳阴影。
  • 替换了使用望远镜时出现的叠加层。

命名与分类


  • Runebinder’s Effigy (符文缚者之像)现在称为 Runebinder’s Lattice。
  • 骷髅精英现在称为亡灵护卫。

性能


  • 远离玩家的生物现在会更少地扫描周围环境寻找对手。

面向玩家的错误修复


移动与战斗修复


  • 现在站在半砖或水平梁上时可以进行翻越。
  • 投射物命中不再会过早失去视觉和声音效果。
  • 来自实体效果的水平移动速度调整现在会在空中、游泳、攀爬或翻滚时应用。

控制与输入修复


  • Home 和 End 键现在会在更多菜单和文本框中起作用。

世界与方块修复


  • 在立方世界中,放置在作物上方的非不透明方块不再阻止作物生长。
  • 当世界关闭且前一个世界被卸载时,该世界现在会正确加载,而不是将玩家送到备用世界。
  • 在世界之间旅行不再会导致地形颜色或光照在它们之间渗漏。
  • 触发方块现在每次有生物经过时都会触发,而不是只触发一次。

物品与交互修复


  • 更新了食用各种食物(从生肉到熟蔬菜)时的动画。
  • 搬运方块时不再能丢弃物品。
  • 橡木原木楼梯现在会被视为木头,而不是石头。
  • 使用工具槽中的工具破坏方块现在会正确减少该工具的耐久度。
  • 使用按方块计算耐久损失模式的工具现在会为每个方块损失耐久度。
  • 更新了废料钻头的动画。
  • 使用望远镜放大不再会阻止耐力恢复。

NPC 与实体修复


  • 已缩放尺寸的实体现在其命中箱会再次随之缩放。
  • 哥布林变得更勇敢了,不再会逃离它们遇到的几乎每种生物。
  • 哥布林炮塔不再会执着于它们没有看到或听到的威胁。
  • 较大的生物现在使用生成标记时会更可靠地生成。

UI 与体验增强修复


  • 传送门世界 UI 中的进度条现在会在时间耗尽时消失。
  • 传送门世界 UI 不再在没有时间限制的世界中显示倒计时或报告时间已耗尽。
  • 较长的传送门世界名称在某些本地化语言中不再被截断。
  • 模组浏览器现在会跳过过大或损坏的图像,而不是尝试渲染它们。
  • HUD 中的能力槽如果没有分配能力,将不再指示它们已准备就绪。
  • 工具物品不再被考虑用于武器能力,因此不会在 HUD 中显示能力槽。
  • 降低了耐力条的位置。
  • 耐力低时可能出现在耐力条周围的红色轮廓现在会具有正确的形状。

图形与渲染修复


  • 修复了可能导致交互引用的光束被标记为缺失的问题。
  • 当一天中的时间改变时,阳光光束不再消失。

音频修复


  • 当淡入前有延迟时,音乐过渡不再会比预期运行更久。
  • 附加到生物或投射物的声音现在如果你与它们一起移动会平滑播放。
  • 区域 4 的洞穴现在会播放预期的区域 4 洞穴音乐,而不是主世界音乐曲目。

性能修复


  • 打开世界地图不再会导致世界暂时卡顿。
  • 当服务器在其他地方生成地形时,传送和重生不再会被延迟。

本地化修复


  • 从若干物品和描述中移除了占位符标签。
  • 在一次尴尬的晚宴之后,我们得出结论鱼骨和盐是有区别的,并相应更新了原料名称。

稳定性修复


  • 修复了当一个区块在其动画方块更新时被卸载可能发生的崩溃。
  • 修复了当使用物品、方块或能力且客户端无法识别交互时可能发生的崩溃。

面向模组开发者的改动


世界生成


  • 添加了一个 Example_Vector_Offset_Constant 生物群系,提供了如何构建常量值随机向量偏移的示例。

NPC 与实体


  • 在关闭 NPC 伤害的世界中,单个 NPC 现在可以保持可伤害。角色上的新 IgnoreDisableNPCIncomingDamage 标志使该 NPC 忽略 CombatConfig.DisableNPCIncomingDamage。Test_Dummy_Stationary 默认启用了此功能。
  • NPC 现在也可以在对先前目标失去视线时切换目标。Component_Instruction_Combat_Target_Swap 上的新 TargetRequireLoS 参数(默认 true)仅在视线保持时将当前目标保持优先,默认 TargetSwitchTimer 范围从 [5, 5] 移至 [4, 6],因此切换不再同步发生。
  • 潜行 NPC 现在可以在搜索时环顾四周。Component_Step_Generic_Detection 获得了 Observe 标志(默认 true),以及 ObserveAngleRange、ObservePauseRange 和 ObserveRelativeTurnSpeed 来塑造头部动作。
  • NPC 角色现在可以对被击中做出反应。在角色上运行 Component_Instruction_Hit_Interrupt 现在会使其畏缩 0.5 秒、攻击延迟 0.7 秒,并在四秒内发生三次反应后获得临时保护。
  • 使用不同畏缩动作的模型可以在该组件上覆盖 FlinchAnimation,否则它会在 Action 槽中播放 Hurt。
  • 攻击指令和定身需要检查不存在 Hit_Interrupt_Stunned,以便排队中的攻击开始被阻止,而进攻性定身必须保留其 Attack 标签,以便取消能找到它们。
  • 自定义攻击可以告诉系统其反击在哪里结束。Hit_Interrupt_Begin_Protected_Attack 放在开始门之后,Hit_Interrupt_Finish_Protected_Attack 放在最后挥击和恢复之后,否则保护只会在八秒后超时。
  • NPC 角色现在可以隐藏在其上方绘制的血条或伤害数字。新的 HiddenUIComponents 键接受 EntityUIComponent ID 列表,例如 ["Healthbar"],省略它则保持一切像以前一样可见。
  • 生成标记现在可以寻找真正适合 NPC 的位置。SpawnPositionSearch 接受 Line 以遵循标记朝向,或 Range 进行有界二维扫描,MaxHorizontalSpawnOffset 设置其查看距离,最高 16 个方块。
  • 标记现在会检查自身放置。ValidatePosition 拒绝埋入固体方块太深的标记,ValidateBelowPosition 拒绝位于空列上方的标记,向下查看最多 192 个方块。
  • 范围搜索现在可以固定到你放置标记的高度。RequireFitAtMarkerHeight 将搜索限制在包含标记 Y 的垂直跨度内。
  • SpawnPositionSearchDebug 使用 Summary 或 Map 诊断报告失败的搜索,范围搜索失败现在会记录每个候选被拒绝的原因。
  • 生成位置限制现在有界。MaxDropHeight 最高为 32 个方块,BlockOverlapHeightCompensation 最高为 4,非有限或超出范围的资产值会在资产解码时被拒绝。

物品与交互


  • 每张床现在共享一个带有 Type=Bed 标签的 Block_Bed 根交互,因此床不再内联定义自己的使用交互。
  • 共享的命中链从 DamageEntityParent 移出到名为 DamageEntityParent_On_Hit 的链中。覆盖 Next 的资产可以指回该链,以保留正常伤害和通常的命中效果。
  • 持握交互现在可以让属性再生在持握期间继续进行。在 Charging 或 Wielding 交互上将 IgnoreForFlaggedConditions 参数设置为 true,将允许它被设置了 UseIgnoreFlag 参数为 true 的 Charging 和 Wielding 条件忽略。

方块与预制体


  • 从 45 个植被资产中移除了 UseDefaultDropWhenPlaced,因此玩家放置的灌木、浆果作物、草、树叶、苔藓、藤蔓、芦苇和海草会回退到其正常掉落列表。使用该标志构建的预制体不再交出植物本身。
  • Plant_Leaves_Autumn_Floor、Plant_Leaves_Jungle_Floor 和 Plant_Leaves_Poisoned_Floor 各自在 Gathering.Tools 中获得了 Shears 条目。
  • 生成的战利品容器,例如预制体中的箱子,现在可以配置为清空后保持打开。ItemContainerBlock 上的新 StayOpenWhenEmpty 标志会在最后一个窗口关闭时将空容器保持在其打开的方块状态。

资产架构与格式


  • 一个音乐层现在可以按自己的计划进入音频状态。StateDelta 接受一个可选的 Fade 块,包含 Duration、Curve 和 Delay,任何省略的字段仍会回退到轴。
  • Fade.Duration 和 Fade.Delay 是 BarBeatDuration 值,因此没有节奏的订阅者只保留 Ms 组件。服务器现在拒绝音频类别、环境铺底或声音事件上的小节或节拍,也会拒绝负的淡入值或未设置任何内容的 Fade。
  • 将松散的遭遇管理器资产按用途分组到文件夹中,涵盖示例、音乐、精英 NPC 和世界事件。遭遇仍按裸文件名绑定,因此移动不会改变运行时行为。

服务器与权限


  • 资产编辑器插件附带一个示例 EditorPropertyGallery 资产,在一个文件中显示每个属性控件。在你创建 mods/Hytale_AssetEditor/config.json 并将 EnablePropertyGallery 设置为 true 并重启服务器之前,它保持未注册,之后 Gallery_AllControls.json 会在编辑器中打开。
  • 世界事件现在可以用 /worldevent enable 按世界打开和关闭,它接受 true 或 false,省略参数时则切换。
  • WorldEvents 插件在新的 WorldEventsWorldConfig 中存储 EnableWorldEvents 标志,新的创造模式世界将其设置为 false。
  • 通过 TeleportInstanceInteraction 访问的传送门实例现在可以在其资产要求时在会话之间保留。从传送门设备召唤页面生成的世界仍会自行设置 setDeleteOnRemove 和 setDeleteOnUniverseStart,因此这些保持临时并在下次启动时被清除。
  • 世界现在可以关闭特定交互。GameplayConfig.WorldConfig 中的新 BlockedRootInteractionTags 列表接受根交互标签,任何匹配的内容都会在服务器上被阻止并从 HUD 中隐藏。
  • /spawning markers debuginvalidmarkers 现在会高亮无效标记放置,并在标记移动或旋转时重新验证标记,/spawning markers autoremoveinvalidmarkers 打开或关闭自动移除失败标记。

重命名与弃用


  • 将 Bear_Voidtaken_Tentacle_Model 和 Bear_Voidtaken_Tentacle_Marker_Model 服务器模型重命名为 Bear_Voidtaken_Tentacle 和 Bear_Voidtaken_Tentacle_Marker,使用它们的角色也已相应更新。
  • 移除了 Carryable_Block 物品动画资产。投掷现在位于 Block.json 中,Throw_Carryable_Block 指向新的 Heavy_Throw 动画。

协议与网络


  • 服务器现在必须在 AssetInitialize 中声明真实资产大小。客户端会断开发送字节数超过声明大小的服务器,单个资产上限为 256 MiB。

面向插件开发者


  • WorldChunk 和 BlockChunk 上的九个旧列访问器现在标记为 @RestrictedApi,因此如果使用 errorprone,仍调用 getBlockChunk、getFiller、getRotationIndex、getHeightmapColumn、getFluidLevel、getSupportValue、setState 或 setEnvironmentRange 的插件将不再编译。替代方案是来自 ChunkStore.getChunkSectionReferenceAtBlock 的区块引用的 BlockSection 组件。
  • 音频绑定验证现在需要知道订阅者是否有节奏,因此 AudioStateResolver.validateBindings 接受 SubscriberTempo 参数。MAY_HAVE 匹配旧行为。
  • 移除了未使用的 WorldChunk.setBlock 重载,它们接受 String、BlockType 或 BlockType 和旋转,以及 BlockChunk.setEnvironment。
  • 移除了 WorldChunk.breakBlock、IChunkAccessorSync.breakBlock 和 BlockChunk.getEnvironment(Vector3i)。使用 ChunkStore.getChunkSectionReferenceAtBlock 解析区块引用,然后使用 BlockOperations.setBlock 或 EnvironmentSection 组件。
  • WorldChunk.getBlock、BlockChunk.getBlock、World.getBlock 和 World.getBlockType 现在为 @RestrictedApi,因此仍调用它们的插件会无法通过 Error Prone 构建。改为读取区块引用 BlockSection 组件上的 BlockSection.get。
  • WorldChunk.getBlockComponentHolder 现在仅允许 BuilderTools 和 BlockSelection 使用,因为方块实体读取通过区块的 BlockComponentSection 进行。
  • 移除了 IChunkAccessorSync.setBlockInteractionState 和两个 WorldChunk.setBlockInteractionState 重载。交互状态现在通过来自 ChunkStore.getChunkSectionReferenceAtBlock 的区块引用的 BlockSection 组件写入,这跳过了阻塞性区块加载和旧的 0 到 320 高度上限。
  • 移除了最后几个接受方块 ID 或方块键的 WorldChunk.setBlock 重载,以及 IChunkAccessorSync.setBlock(String, SetBlockSettings)。方块写入现在通过来自 ChunkStore.getChunkSectionReferenceAtBlock 的区块引用上的 BlockOperations 进行,这跳过了阻塞性区块加载和旧的 0 到 320 高度上限。
  • 区块存储提供者现在在 initialize 上接受 readOnly 标志,并且必须回答 hasStoredChunks,而立方 IChunkLoader 必须实现 forEachSection。无法以只读方式打开的提供者应拒绝该标志,而不是以可写方式打开。
  • 实例验证不再构建整个世界来读取其存储的区块,因此 World.validate 和 WorldValidationUtil 已移除,改用 ChunkStorageValidator。ValidateBlockEvent 从 PrefabBufferValidator 移到 BlockValidator,现在也会为区块验证触发,并发且在世界线程之外,因此处理程序不得在事件之间保持状态。
  • 已弃用的区块查找现在对新调用者关闭。IChunkAccessorSync.getChunk、getNonTickingChunk、getChunkIfInMemory、loadChunkIfInMemory、getChunkIfLoaded、getChunkIfNonTicking、World.getBlockBulkRelative 以及构建 LocalCachedChunkAccessor 的每种方式都带有 @RestrictedApi,因此仍调用它们的插件会无法通过 Error Prone 构建。改为使用 ChunkStore.getChunkReference 解析列,并读取该引用上的组件。
  • ChunkAccessor.getFluidId 上移到 IChunkAccessorSync 中,与其他方块读取放在一起,ChunkAccessor 现在是它的空扩展。
  • 移除了 BlockChunk.getEnvironment(Vector3d),并将 (x, y, z) 重载限制为 BuilderTools。环境读取现在通过来自 ChunkStore.getChunkSectionReferenceAtBlock 的区块引用的 EnvironmentSection 组件进行,它可以在任意 Y 回答,而不是仅旧的 0 到 320 范围。
  • 移除了 IWorldChunksAsync.getChunkAsync(int, int),剩余的 getChunkAsync(long) 和 getNonTickingChunkAsync(long) 现在对 IWorldChunks 为 @RestrictedApi。列加载改为通过 ChunkStore.getChunkReferenceAsync,并且 /chunk load 和 /chunk marksave 会回答区块未加载,而不是抛出异常。

面向模组开发者的错误修复


NPC 与实体修复


  • 修复了 UIComponentList 实体组件忽略其 Components 键的问题,该问题导致每个实体获得所有组件。设置该键的实体现在只会收到那些组件,并且列表在变化时会重新发送。
  • 标记验证和范围搜索现在可在 Y 0 以下和 Y 319 以上的已加载立方区块中工作,缓存和跨度数学在整个方块范围内是溢出安全的。
  • NPC 目标切换现在使用正确的感知范围。每个引用 Component_Instruction_Combat_Target_Swap 的模板现在都从其自己的 ViewRange 和 HearingRange 设置 NextTargetRangeView 和 NextTargetRangeHearing。
  • 飞行 NPC 模板现在将 KnockbackScale 作为参数公开。

物品与交互修复


  • 修复了当 ChangeState 交互切换到的状态没有交互声音事件 ID 时失败的问题。
  • 圆柱区域选择器现在尊重其大小属性。AOECylinderSelector 将其范围和高度乘以 sizeAttribute 值,因此缩放其区域的能力终于会随之扩大圆柱。

方块与预制体修复


  • WaterGrowthModifierAsset 现在根据高度图决定雨水暴露,取作物处或下方的最高不透明方块,因此作物上方的不透明方块不再能为其挡雨。

资产架构与格式修复


  • 传送门实例配置现在带有 DisplayName,世界的显示名称会作为 Message 到达加入和离开消息,因此它会本地化,而不是打印原始键。
  • 嵌入 Trail 资产不再会断开客户端连接。未设置 texture 的轨迹现在会回退到 Trails/Basic.png,而不是验证失败。

服务器与权限修复


  • 方块生成器和预制体生成器命令不再等待区块而阻塞世界线程。它们会改为回复区块未加载,它们可在任意高度工作,而不是仅在旧列范围内,并且在未加载区块中定位预制体生成器不再报错。

面向插件开发者的修复


  • 实体命中箱现在遵循 EntityScaleComponent。BoundingBox 在重新计算之间保留实体缩放,并将其应用于细节框,新的 EntityScaleBoundingBoxSystem 使框与组件保持同步。
  • 插件现在可以在玩家正从关闭中的世界被排空时加载目标世界。DrainPlayerFromWorldEvent 是 IAsyncEvent,因此排空会等待监听器,你可以在世界准备好后调用 setWorld。
 

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


2026年10月1日

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

移动与战斗


  • 生命药水现在共享 15 秒冷却时间。
  • 耐力药水现在共享 30 秒冷却时间。
  • 新增凋零修饰符文石。此符文强化技能符文石,使其施加凋零减益。该减益会使受影响的敌人迟缓,并使其造成更少伤害。
  • 新增撕裂修饰符文石。此符文强化技能符文石,使其施加撕裂减益。该减益会使受影响的敌人在一段时间内流血,持续受到伤害,并受到更高的物理伤害。
  • 新增加速修饰符文石。此符文强化技能符文石,降低其冷却、法力消耗、持续时间和伤害。它还会提高其弹射物速度。
  • 新增节能修饰符文石。此符文强化技能符文石,使其造成更少伤害,但消耗更少法力。
  • 法力现在会从空到满在 30 秒内被动恢复。
  • 战技技能现在命中敌人时会恢复法力。同时命中多个敌人会恢复更多,但是收益递减。
  • 所有技能现在施放时会将施法者减速至其移动速度的 60%。
  • 蓄能穿射现在每蓄力一阶段会更多地减速施法者,并在完全蓄力时自动发射。
  • 裂地猛击不再定身施法者。
  • 裂地猛击现在消耗 40 法力(原为 30),冷却时间为 5 秒(原为 18)。
  • 火球现在消耗 30 法力(原为 25),冷却时间为 2 秒(原为 12),造成 28 点火元素伤害(原为 24),并且现在会飞行约 25 个方块。
  • 风击现在消耗 30 法力(原为 20),冷却时间为 2 秒(原为 10),造成 10 点风元素伤害(原为 8)。
  • 狂怒现在消耗 45 法力(原为 20),冷却时间为 4 秒(原为 16),持续时间现在为 8 秒(原为 10)。
  • 淬毒现在消耗 40 法力(原为 10),冷却时间为 4 秒(原为 18),持续时间现在为 6 秒(原为 8)。
  • 链钩现在消耗 50 法力(原为 15)。
  • 蓄能穿射现在固定消耗 35 法力,其冰寒效果现在持续 2 秒(原为 3 秒),并且现在会飞行约 25 个方块。
  • 巨大化符文石(原为扩大范围)现在使效果范围增加 60%(原为 100%)。它还会使弹射物大小增加 150%,伤害增加 40%,法力消耗增加 60%,并使弹射物速度降低 50%。
  • 额外时长符文石(中文不更改)现在使持续时间增加 50%(原为 +2 秒),法力消耗增加 30%,冷却增加 60%。
  • 分裂符文石(中文不更改)现在还会使分裂弹射物造成 30% 更少伤害,使分裂弹射物的效果范围和缩放降低 30%,冷却增加 20%,法力消耗增加 25%。
  • 反弹符文石(原为弹跳)现在还会使分裂弹射物造成 20% 更少伤害,使弹射物速度增加 40%,冷却增加 30%,法力消耗增加 25%。
  • 中毒已成为元素伤害的一个子类型。
  • 解毒剂现在会移除由淬毒符文石造成的中毒,并给予其短暂免疫。
  • 滑翔翼的次要加速动作已被移除,因为这是一个测试功能。
  • 铁弩连击伤害从 12.5 增加到 13。
  • 远古钢弩连击伤害从 13.125 增加到 14。
  • 粗制、青铜、钢和霜冻武器的耐久度从 80 增加到 120。
  • 铜制武器的耐久度从 100 增加到 200。
  • 铁制武器的耐久度从 120 增加到 250。
  • 钴和瑟银武器的耐久度从 150 增加到 350。
  • 精金和远古钢武器的耐久度从 180 增加到 500。
  • 裂地猛击获得了视觉重做。

世界生成


  • 一些蜘蛛学会了更有效地放置蜘蛛网,使蜘蛛遭遇中的蛛网斑块看起来更自然。
  • 蜘蛛洞穴布局现在更加多样化。
  • 哥布林矿洞布局现在更加多样化。
  • 哥布林喷火者在一次爆炸事故过多之后被禁止进入矿洞。
  • 墓穴洞穴布局现在更加多样化且更有氛围。
  • 墓穴中发现的哥布林现在会倾向于与里面的任何骷髅保持距离。

NPC 与实体


  • 发生在哥布林裂隙另一侧的狩猎现在需要一个虚空之心。
  • 单个裂隙中可进行的狩猎数量已减少。
  • 哥布林现在会掉落更符合它们携带物品的东西。
  • 大多数虚空敌人现在通常会掉落更多虚空精华,幼虫除外,幼虫什么都不掉落。
  • 虚空之心现在从虚空敌人掉落的频率降低。
  • 砂壳飞虫的毒性唾液现在只在 16 秒内造成 18 点伤害(原为 16 秒内 36 点伤害)。
  • 一些懒惰的哥布林找到了更好的睡觉地点。
  • 一些哥布林在研究时尚品味,会穿着不同的衣服和发型出现。
  • 中型虚空异变水晶学会了更好地保护自己。
  • 虚空异变水晶获得了新的视觉效果,以指示它们何时受到保护。

方块与遭遇


  • 哥布林裂隙可能出现的最短间隔时间已增加到 30 分钟(原为 10 分钟)。
  • 哥布林裂隙现在在出现时会将玩家弹开。
  • 哥布林裂隙被破坏时不再掉落自身物品。
  • 哥布林裂隙现在在其生成点周围有稍大的保护区域,阻止放置或破坏方块。
  • 开始形成的哥布林裂隙如果无人靠近,现在会在 5 分钟后消失(原为 10 分钟)。
  • 失落文明、木灵、酒馆和微风神庙的窗户现在使用透明玻璃。
  • 村庄窗户不再是空框架,现在有有色玻璃。
  • 炼金台上的瓶子和烧瓶现在也使用透明玻璃。
  • 哥布林锅炉和哥布林工作台,均可在哥布林实验室中找到,已获得视觉重做。
  • 哥布林铁、奥比斯铜和奥比斯铁套装的金属纹理已改进。
  • 毛绒玩具、蘑菇方块和大型金属管道已更新阴影。
  • 闪亮废料堆现在更闪亮,应该更容易被发现。

物品与交互


  • 第 1 章引入的若干物品的制作成本已调整。
  • 粗制镐和斧的耐久度从 150 增加到 200。
  • 铜镐和斧的耐久度从 200 增加到 300。
  • 铁镐和斧的耐久度从 250 增加到 500。
  • 钴和钍镐和斧的耐久度从 325 增加到 700。
  • 精金镐和斧的耐久度从 400 增加到 1000。
  • 废料钻的耐久度从 150 增加到 200。
  • 废料钻现在破坏 2x2 区域的方块,而不是 1x2 柱状区域。
  • 废料钻的动画和模型已略微更改,使其位置更低。
  • 哥布林裂隙另一侧发现的箱子现在奖励更丰厚。
  • 哥布林裂隙另一侧发现的箱子现在被搜刮后会保持打开。
  • 古代统治者雕像头部现在可制作。
  • 尖刺废料盾现在为罕见稀有度,与废料盾匹配。
  • 那些不知为何设法拾取了脚印或爪痕的人现在会发现其物品栏图标已更新。

UI 与体验增强


  • 世界事件现在可以在探索世界的世界设置屏幕中启用或禁用。
  • 剑、匕首、战斧、矛、钉锤、盾牌、短弓、弩和钩索现在显示一个小点作为准星,而不是圆环。
  • 造成致命一击现在会在准星周围闪现一个红色 X。
  • 冷却中的物品现在会变暗,并显示一个随冷却结束而排空的覆盖层。
  • 链钩获得了技能图标。
  • 第 1 章主菜单背景中出现的哥布林想起自己让营火还烧着,已经赶去处理了。
  • 主屏幕已添加提醒:Hytale 仍处于抢先体验阶段。
  • 狩猎地点在世界地图上获得了新图标。
  • 全屏消息现在会淡出并滑动到位,而不是滚动打开。

音频


  • 击打和破坏金属矿石现在更安静。
  • 链钩获得了一些额外声音。

创造工具


  • 建筑工具现在在立方世界中可在任意高度使用。
  • 复制选择区域时的高度限制已移除。
  • 对创造工具来说一次操作过大的编辑将不再尝试编辑,并会通知编辑者适合的大小。
  • 尝试保存比创造工具所能容纳的更宽的预制结构现在会失败,而不是只保存预制结构的一部分。
  • 撤销和重做现在会显示一条消息,说明撤销或重做了多少步。
  • 触发功能域计时器现在会受到世界时间速度的影响。这意味着 /time pause 或 /time dilation 等命令会被触发功能域计时器遵循。

命令


  • /portal 现在可以用来代替 /fragment。
  • /leave 命令现在已被替换为 /portal leave。

图形与渲染


  • 现在是雨季。下大雨时,视觉上来说会有更多雨滴。

命名与分类


  • 扩张符文石现在被称为巨大符文石。
  • 延长持续时间符文石现在被称为持久符文石。
  • 分叉符文石现在被称为碎裂符文石。
  • 弹跳符文石现在被称为反弹符文石。
  • 装饰方块套装中的青铜方块现在被称为赛博都市青铜。
  • 装饰方块套装中的铜方块现在被称为赛博都市铜。
  • 装饰方块套装中的铁方块现在被称为赛博都市铁。
  • 装饰方块套装中的锌方块现在被称为赛博都市锌。
  • 粗制、沙蚀、哥布林和铁箱子已重命名,以表明它们是小箱子还是大箱子。

性能


  • 玩家上方或下方远处的方块、流体和生物现在会暂停,直到玩家靠近。
  • 改进了哥布林裂隙另一侧世界的生成速度。

面向玩家的错误修复


移动与战斗修复


  • 盾牌不再能被举起以导致攻击动画被打断并提前结束,从而可能已经造成伤害。它们仍可用于打断攻击的蓄力,在造成伤害之前。
  • 切换快捷栏槽位不再允许在执行剑、匕首、钉锤或战斧攻击后比预期更早执行攻击。
  • 卡在方块内不再会将玩家推穿薄墙。玩家反而会被推回开放空间,如果找不到开放空间则被固定在原地。
  • 较小角色不再能通过攀爬穿过天花板。
  • 风击的命中框已修复。
  • 匕首攻击现在像其他武器一样检查视线,因此不再能穿过墙壁伤害实体。
  • 技能不再能伤害施法者。
  • 走下楼梯不再会短暂地将玩家置于下落状态。
  • 在地面上尝试展开滑翔翼不再会导致展开动画播放一瞬间后取消。
  • 在没有足够耐力使用盾牌防御时尝试防御,现在会显示耐力警告。

控制与输入修复


  • 如果在 Xbox Game Bar 等覆盖层打开时按下按钮,该按钮不再会被视为永久按下。
  • 菜单打开或关闭后,鼠标指针不再会意外滑出游戏窗口。

世界生成修复


  • 哥布林裂隙另一侧的世界不再会偶尔被哥布林前哨站泛滥。
  • 哥布林裂隙另一侧发现的派系会倾向于在地表更团结。
  • 生长在蜘蛛遭遇附近的树木不再会呈不均匀的丛状。
  • 修复了蜘蛛洞穴房间和隧道可能不对齐的问题。
  • 修复了哥布林矿洞中一个可能有蜘蛛的损坏房间。
  • 修复了一些小型或中型虚空异变水晶可能不出现的问题。
  • 盘龙林野传送门周围不再生成尖刺,因为它们可能阻止传送门居民可靠生成。
  • 修复了可能导致哥布林裂隙生成失败的问题。
  • 容纳亡灵护卫的墓穴不再会随机包含巨石。
  • 墓穴宝藏房间现在生成正确的地板。
  • 盛宴之主召集了他的室内装饰师,他们的房间现在更合他们心意。

世界与方块修复


  • 古代统治者雕像头部现在被视为石头,而不是木头。
  • 移除了如果玩家没有及时与哥布林裂隙互动时出现的调试消息。
  • 移除了一些第 1 章遭遇中尚未移除的若干杂散方块和装饰。
  • 尝试返回一个已被删除的世界现在会将玩家返回到新世界的出生点,而不是不安全的地方。
  • 在实例中关闭 Hytale 后尝试返回世界,现在会将玩家返回到正确的世界。
  • 灰烬沼泽树现在结构更稳固,更不容易炸成碎片。

创意工具修复


  • 修复了掀桌问题。翻转包含家具的方块选择区域不再会导致诸如留下不可见命中框之类的问题。
  • 修复了当只涉及一个方块、区块或步骤时计数读取错误的问题。
  • 定时触发功能域事件不再会在暂停的单人世界中偷偷倒计时,然后在游戏取消暂停时全部触发。

物品与交互修复


  • 从符文缚着之阵中移除技能符文石现在会将任何连接的修饰符文石移动到符文袋、存储或快捷栏。如果没有空间移动修饰符文石,则无法移除技能符文石。
  • 巨型盾牌图标现在会与其他盾牌的角度匹配。
  • 哥布林们发现使用不透明玻璃使他们的哥布林望远镜相当难用。哥布林望远镜现在只会使用可透视的玻璃。
  • 哥布林箱子现在可以更舒适地拿着。
  • 损坏的哥布林实验室设备现在会在你尝试修理时说出设备名称。
  • 哥布林动力发电机、锅炉、引擎和压缩机修复后可以再次交互。
  • 铜镐现在可以用来开采闪亮废料堆。
  • 移除了一些重复配方。

NPC 与实体修复


  • 远程攻击者现在会更稳定地追踪移动目标,并更频繁地命中。
  • 弹射物现在会在低重力或零重力环境中正确预判移动目标。
  • 哥布林机械师感觉更爱社交了,如果她的实验室被修复,她不再会在你靠近时总是离开。
  • 亡灵护卫现在会在第二阶段攻击它们能看到的人,并且会更少切换目标。

UI 与生活质量修复


  • HUD 中的技能图标在加入世界时不再会显示错误图案。
  • 第 1 章主菜单背景中你头像下方的阴影已修复。
  • 头饰和面部装备现在会正确隐藏它们覆盖的特征。
  • 地图屏幕底部的按钮不再包含重叠的按钮提示。
  • 远处敌人受到的伤害数字在敌人靠近时不再会一次性全部显示。

图形与渲染修复


  • 雨滴现在会朝向正确的方向。
  • 茂密草丛不再会显示不相关的方块纹理。
  • 修复了茂密草丛、虚土岩石锥和倒角楼梯的纹理。
  • 古代书架的后面板不再会闪烁。
  • 缓坡金属屋顶和陡坡金属屋顶不再会闪烁。

音频修复


  • 可能出现在墓地和沼泽中的雨不再会诡异无声。

性能修复


  • 修复了加入世界时可能发生的长时间卡顿。

本地化修复


  • 修复了一系列游戏内消息的措辞、标点和引号,并填补了缺失文本。
  • 物品名称和描述不再会包含小写的“Goblin”。
  • 每种死亡原因现在都有自己完整的消息,而不是显示由单独片段拼接而成的消息。
  • 基于 Noesis 的 UI 中的数字现在会遵循所选语言的格式设置。

稳定性修复


  • 修复了使用某些建筑工具时可能发生的渲染崩溃。
  • 修复了全新启动的服务器在多名玩家同时加入时可能冻结的问题。

面向模组开发者的更改


世界生成


  • 添加了两个示例生物群系:
    • Example_Vector_Offset_Gradient - 使用向量偏移和梯度密度来形成远离密度中心的尖刺。
    • Example_Sin_XValue - 使用 sin 创建沙丘形状。
  • World-Gen V2 现在动态管理上下文大小,将添加新生物群系和 POI 的性能影响与世界其余部分隔离开来。此功能可以在 Runtime 节点的新 ContextPrecision 设置中配置。

NPC 与实体


  • NPC 角色现在可以对宇宙范围的游戏标志做出反应。一个新的 GameFlag 传感器接受 Flag、Level 和 Comparator。
  • 遭遇现在可以在 Boss 栏上将他们的 Boss 标记为困难模式。SetEncounterBossBar 接受一个可选 HardMode 布尔值,默认为 false,并且由于每个动作会替换整个栏状态,省略它会把困难模式重新关闭。
  • 目标预判现在是可选项。Deflection 默认为 false,因此任何希望其远程攻击预判移动目标的 NPC 角色都必须将其设置为 true。

物品与交互


  • 物品堆叠现在只有在显式设置质量时才会存储质量。没有自己质量的堆叠会遵循其物品资产上的质量,因此更新后的物品会采用新值。
  • /give 命令获得了一个可选 quality 参数,用于覆盖物品资产原本会使用的质量。

资产模式与格式


  • 内容现在可以在行动前要求玩家确认,通过 OpenCustomUI 的新 Confirmation 页面。它接受用于文本的 TitleKey 和 MessageKey,用于按钮的可选 ConfirmKey 和 CancelKey,一个在确认时运行的必需 Success 根,以及一个用于页面关闭的所有其他方式的可选 Fail 根。

服务器与权限


  • BuilderTools 获得了两个限制,用于限制单次编辑预先加载多少世界,PrefetchColumnLimit(默认 1024)和 PrefetchSectionLimit(默认 10240)。超过任一限制的编辑会读取已在内存中的内容,并将其余部分报告为已跳过。

面向插件开发者


  • IChunkAccessorSync 中的两个 getBlockType 重载都已移除,因为没有东西调用它们。请改为通过来自 ChunkStore.getChunkSectionReferenceAtBlock 的区块区段引用读取方块。
  • 旧的列访问器接口已移除。IWorldChunks、IWorldChunksAsync、IChunkAccessorSync、ChunkAccessor、OverridableChunkAccessor 和 LocalCachedChunkAccessor 已删除,连同 World、WorldChunk 和 BlockChunk 上的方块访问器。方块读取现在通过来自 ChunkStore.getChunkSectionReferenceAtBlock 的区段运行。
  • 不接触列读取方块变得更简单。新的 BlockReader 接口带有 getBlock 和 getFluidId,SectionReader 在区块区段上实现它,而 SectionAccessor 扩展它。
  • 区块区段现在可以在异步编辑期间固定在内存中,通过 ChunkSection 上的 addKeepLoaded、removeKeepLoaded 和 shouldKeepLoaded。持有的区段本身不会保持其列常驻。
  • WorldChunk.getBlockComponentEntity 已移除,因此方块实体来自 BlockModule.getBlockEntity,其世界重载现在也会拒绝无效区段引用。BlockChunk 的方块、计数和 tick 访问器也随之移除,其 (IntBytePalette, BlockSection[]) 构造函数为私有。
  • 插件现在可以在玩家开始搬运方块时做出反应。新的 BlockCarriedEvent 在方块实体持有者上触发,带有搬运者引用,因此 EntityHolderEventSystem<ChunkStore, BlockCarriedEvent> 可以在那时调整你自己的组件。
  • 服务器端 Noesis UI 的暂定 API 已进入服务器,但目前尚不可用,因为我们仍在最终确定系统的一些部分,之后才能使用。所有新 API 都带有 dev_ 前缀,目前不应使用。
  • 立方世界生成器现在必须在 IWorldGen.Cubic 上实现 generateColumn(seed, index, x, z, stillNeeded, priority)。它返回一个 GeneratedColumn,仅持有列级数据,例如色调。
  • 在立方世界中,列和区段生成现在已拆分,不再要求列生成 0-9 范围。
  • UpdateBossBar 数据包获得了一个 HardMode 字段,这会改变网络布局。EncounterBossBarState.setTracked 和 UpdateBossBar 构造函数都接受一个末尾的 hardMode 参数。
  • 物品槽上绘制的冷却覆盖层可以重新换肤。ItemGridStyle 接受一个新的 CooldownOverlay 补丁属性,你可以在 .ui 样式块中设置。

面向模组开发者的错误修复


世界生成修复


  • 修复了 PositionsCellNoise 密度中的曼哈顿距离。
  • 修复了 CellWallDistance 密度。

物品与交互修复


  • 选择器现在会遵守其目标过滤器,并在过滤时忽略所有者。

方块与预制结构修复


  • 修复了搬运的容器方块再次放置后保持其保持打开行为的问题。用 CarryBlock 拾取方块现在会清除 ItemContainerBlock 上的 StayOpenWhenEmpty,因此搬运的预制结构战利品箱会像其他容器一样关闭。

资产模式与格式修复


  • 修复了资产编辑器中复选框在模式默认值为 true 时显示为未选中的问题。
  • 修复了颜色字段丢失默认值的问题。ColorCodec 和 ColorAlphaCodec 现在会读取默认值,而 LightColor 每个通道写入一个字节。
  • 伤害类型现在带有自己的死亡消息。每个伤害资产上的新 DeathMessageKey 取代了旧的在运行时粘合在一起的文本,中毒层数等实体效果也以同样方式设置它们的消息。
  • 修复了刷新资产包时的错误。AssetModule 在注销监听器完成读取之前关闭了资产包的 ZIP 文件系统,因此 NPC 监听器撞上了已关闭的文件系统。文件系统现在会在事件分发后关闭,即使监听器抛出异常。

服务器与权限修复


  • 通过 TeleportInstanceInteraction 到达的传送门世界现在会在传送门世界计时器到 0 时从磁盘移除。
  • 修复了 lighting invalidate --one 和 lighting info --detail 总是读取区段 0 的问题,因为两者都传入了一个区段索引,而那里期望的是方块 Y。lighting get、chunk lighting、chunk forcetick、chunk fixheight 和 chunk resend --clearcache 现在可在任意高度的已加载区段上工作,并且缺失的区段会以新的 commands.errors.sectionNotLoaded 消息回应。
  • 修复了传送门世界配置覆盖你打开用于编辑的实例设置的问题。实例编辑世界现在在 InstanceWorldConfig 上带有一个 isEditMode 标志,而 PortalWorldUtils 会不碰那些世界。

面向插件开发者的修复


  • 击杀提示中的击杀者和死者名称现在会渲染其标记,而不是显示原始标签。KillFeedComponent 会为 FormattedMessage 及其子项打开标记,因此粗体、斜体、下划线、删除线和颜色都能正确绘制。
  • 文档写入不再在公共池上运行。BsonUtil.writeDocument 现在使用自己的固定四个 Document Writer 线程池,涵盖世界配置、世界资产和玩家存档,因此世界 tick 不再会因为等待保存而饿死。
  • 所有四个 TargetUtil.getTargetBlockAvoidLocations 重载现在都接受 Collection<Int3OpenHashSet> 作为 blocksToIgnore,而不是 Collection<LongOpenHashSet>。旧的打包 long 形式会在 Y 0 以下的一次操作中使世界线程崩溃。