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

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

大家好!

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

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

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

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

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



本帖楼下

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


2026年9月3日
衷心感谢 BlovienNullicornNoctuaAstrum 为本更新带来的修复、功能和优化。你们的社区贡献让 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 在重建实体时已传入的空世界相匹配。