Hypixel Studios · Pre-Release Patch Notes

HytaleUpdate 6

The complete pre-release changelog for Update 6, updated weekly across nine parts. Every headline feature, gameplay change, bug fix, and modder-facing API change — from the first drop to the latest.

Hardcore Mode Gyro Controls Color & Point Tools Block Palette Presets Hard-Collision Entities World Events Spectator Mode
Play the Pre-Release: enable it via Launcher → Settings → Pre-Release. Report bugs with the in-game reporter and flag feedback as 'pre-release'.
9+1
Parts & a hotfix
56
Days May 28 → Jul 23
6
Headline features
10
Community contributors
$20K
Security RCE bounty
2
New docs domains
Latest · Part 9

Update 6 · Part 9

July 23, 2026

A huge thank you to NoctuaAstrum for the fixes, features, and polish they've brought to this update. Your community contributions make Hytale better for everyone!

Headline Features
New Challenge

Hardcore Mode is here!

  • Hardcore Mode can only be activated when creating a new world. Once a world has been created, this setting cannot be adjusted.
  • Avatars won't respawn in Hardcore Mode, but will instead drop all of their worldly possessions and be switched into Spectator Mode.
  • Spectators won't be visible to others that aren't spectating themselves, nor will they be able to interact with the world they're in. Server ops can also toggle to and from Spectator Mode with the new /spectate command.
Documentation Site Update

New docs theme & new domains

New & Changed
Combat & Movement
  • Stamina will now begin refilling half a second faster after guarding with a weapon or shield.
  • The first two attacks in the Dagger combo now deal slightly more damage.
Controls & Input
  • Added a search box to the top of the controls page within the settings menu to quickly find keybinds.
World Generation
  • Added smooth color blending across biome borders, so terrain and foliage tints now fade gradually between biomes instead of switching abruptly.
Items & Interactions
  • Dirt blocks may now be crafted into two half-slab blocks at the Builder's Workbench.
Player-Facing Bug Fixes
Combat & Movement
  • Charged sword thrusts and other stab attacks will now be more consistent at hitting targets at max range.
  • Attacking with a Mace will no longer instantly restart Stamina regeneration.
  • Switching from a weapon or shield while guarding will no longer instantly restart Stamina regeneration.
  • Switching from a drawn Shortbow will no longer incorrectly delay Stamina regeneration.
  • Sliding will no longer cost Stamina.
  • Arrows may no longer be used to ineffectively guard against incoming attacks.
World & Block
  • The Greenwood Fence will now be held at a more comfortable angle.
  • Roof blocks placed at chunk-section boundaries now connect and shape correctly.
Creative
  • The /stack command will now correctly duplicate the entire selection instead of a single block.
  • Prefab anchors will now be scaled back down to their intended size.
  • Blocks that affect neighboring blocks will now behave as normal while editing a prefab or instance.
  • Creative undo restores brush strokes and other edits in the order they were made.
Trigger Volumes
  • Trigger Volume teleports will now correctly read and set the player body rotation rather than the player head rotation. Teleport effects will no longer rotate entities if no rotation is set.
  • Trigger Volumes that are generated into the world will no longer have duplicated names. They will now include a numbered suffix to remain unique.
Item & Interaction
  • Fully upgraded workbenches will no longer ignore their crafting speed bonus.
  • Gold Bricks are now instant to craft instead of taking around 10 seconds.
NPC & Entity
  • Enemies will no longer become aggressive towards encounter managers.
  • Walking NPCs will no longer visually stutter when descending from blocks.
UI & Quality of Life
  • Connection error screens will now display a helpful error message instead of only an error code. This will occur when a server can't be found, refuses you, crashes, the connection drops, or the connection cannot be secured.
Graphics & Rendering
  • Astronomers have reported that the stars at night "had begun to break". This cosmic anomaly has been fixed.
  • Pausing the game will no longer cause some entities to appear in the wrong place. This also fixes some related culling issues.
  • Pausing the game will also no longer cause moving entities to stutter.
  • Particles on the main menu will now be rotated correctly.
  • Transparent surfaces will now render correctly when you have a lot of them overlapping.
Performance
  • Downloaded assets will no longer be fetched again each launch and are kept between sessions. The on-disk cache also no longer grows without bound.
Localization
  • Added missing punctuation across a number of Creative Tools menus.
  • Added missing punctuation to the above patchnote.
Stability
  • Fixed an issue that could disconnect players that were moving when teleported between worlds.
  • Fixed an issue that could disconnect players if they teleported many times in a single session.
  • Fixed an issue with NaN values in player and entity rotations that would prevent players from joining.
  • Fixed a crash that could occur when trying to trade with an NPC just as it changed its stock.
Modder-Facing Changes
NPCs & Entities
  • Entities now need either a Health stat or a RespondToHit component to be attackable or picked as an attack target, so decorative and non-combat entities stop soaking up hits. Mounts were given RespondToHit so they still register attacks.
  • Attack selectors gained new aiming controls. The donut selector now takes a YawOffset, and the stab and horizontal selectors can aim independently of where the entity is looking.
  • Selectors also gained an Anchor setting that starts them from the entity's eyes or feet and adapts to its size, instead of hand-tuning the offset for each entity.
  • Movement configs can now tune how steep of ground players can handle. New MaxSlopeAngleDegrees and MaxWallAngleDegrees fields in MovementConfig set the steepest slope that still counts as safe to stand on and the steepest wall that can be stepped up.
Items, Armor & Projectiles
  • Interactions now can specify what happens when you swap items during them. The old CancelOnItemChange flag is gone, replaced by an OnItemChangeBehavior field that takes Ignore, Fail, Finish, or Cancel.
  • Items can now be turned into playable music tracks. A new Music block on an item asset (MusicContainer required, AudioCategoryOverride optional) marks the item as something a music player block will play.
  • Interactions can now describe themselves on the HUD. A new CarryInteractionHint localization key on RootInteraction makes the input-bindings legend label whichever input the interaction is bound to, and an item can refine the wording through Item.CarryInteractionHints.
  • Item containers now correctly return failure when trying to move items to full containers.
Blocks & Prefabs
  • Blocks can now act as music players. A MusicPlayerBlock block-entity component set alongside an ItemContainerBlock makes a block play an inserted music item from its own position. The track uses the block's authored attenuation, occlusion, and reverb, with all timing and spatialization driven from asset JSON.
Trigger Volumes
  • Trigger volume item checks can now look at and consume what a player is carrying, such as a held block, through a new CARRIED option on ItemCondition.
Asset Schemas & Formats
  • Added Min and Max entity stat operations for change-stat interactions, so a stat can be clamped to a floor or a ceiling.
  • MovementConfig.Fly is now a three-state fly capability (no fly, free fly, or a forced fly that keeps the player airborne with the in-game fly toggle disabled) in place of the old on/off boolean, which changes its wire format. It applies wherever the config applies, falling back to the game mode when unset.
  • Sound event layers can now fade in on their own through a new FadeIn field, so a single layer can rise gently beneath the others instead of every layer sharing one fade time.
  • The asset editor now has a dedicated picker for choosing Common assets like models and icons. It filters each field to the file types and folders that fit, shows relative paths with a full-path tooltip, and keeps the stored path relative to the asset.
Server & Permissions
  • Added a first-party spectator mode as an opt-in server feature. A new /spectate command (toggle, watch, target, free, exit, plus an admin set that can force a state) is gated behind its own permissions, and spectators are hidden from other players, ignored by NPCs, skipped for item pickup and spawn beacons, force-dismounted, and no longer hold dungeon instances open.
  • Spectator mode is built on a data-driven GameModeType layer. A custom GameModeType asset can declare per-player state that applies on enter and reverses on exit (MovementConfigId, Flying, NoClip, Invulnerable, Intangible, PreventInteractions, PreventItemDrops, TriggerBlocks, VoiceChannel, HudComponents, LockedCameraView, EntityEffectId, and Spectator), and the entered type is saved on the player so it restores on relog.
  • A DeathConfig.GameModeTypeOnDeath field sends dying players into a chosen gamemode type in place, keeping the respawn screen only as a fallback, which is how death-into-spectator is wired up.
  • HytaleServerConfig.Defaults gains a GameModeTypeOnDeath fallback for worlds whose own death config leaves the field unset, so a save can make death send players into a type without every instance and portal world needing its own death config.
  • GameModeType assets gain a DeathScreenMessage localization key. Set it and dying into that type opens a dismissable death screen showing the note with a Spectate button, instead of entering the type silently.
  • GameModeType assets gain a PreventInventoryAccess flag that stops the player opening or changing their inventory while the type is active.
Renames & Deprecations
  • Removed the unused Name and Description fields from ResourceType assets, since resource names have been read from server.resourceType.{id} localization keys for years.
Protocol & Networking
  • Spectator mode adds several new protocol fields a game mode can read. These include a Spectating boolean on each server player-list entry (surfaced as a grey status dot for players in your own world), a PreventInteractions component update, and a FollowAttachedEntity camera flag for follow cameras.
For Plugin Developers
  • Deprecated BlockUtil and moved its RADIUS_ADJUST constant into the new BlockShapeUtil, which the block shape helpers now read from.
  • Added an IgnoreTriggerVolumes component so specific entities can be skipped by trigger volumes, keeping them out of all events such as enter, exit, and entity-count checks.
  • Spectator mode ships several reusable primitives: a Spectating runtime marker, cancellable GameModeTypeEnterEvent and GameModeTypeExitEvent, a generic PreventInteractions component, and per-player named voice channels through VoiceChannels.
  • PendingTeleport is now a presence-only marker. Its queue, validation methods, and MAX_OFFSET constant are gone. Teleport ack bookkeeping is reachable through PlayerRef.getTeleportAckTracker(), and teleport completion now runs through TeleportSystems.completeTeleport.
  • PacketHandler.writePacket now returns whether the packet was actually sent or was swallowed by a packet filter.
  • Hytale.Protocol, its generated serializers, and the interop libraries can now be built straight from the public shared-source repo with a stock .NET 10 SDK, with the prebuilt zstd and quiche natives already in place.
Modder-Facing Bug Fixes
NPC & Entity
  • Fixed RotateAnchoredEntities for entities anchored to a body that rotates on more than one axis. The turn now follows the full orientation rather than yaw alone, so riders and platforms track correctly through pitch and roll.
Item, Armor & Projectile
  • Knockback and explosion configs no longer produce a NaN velocity when the source and target share the same position. The degenerate case now falls back to a defined direction, knocking the target straight up for explosions.
  • Fixed a TargetedDamage entry that omits DamageEffects throwing when its packet was built, so damage interactions without effects no longer crash.
  • Fixed a crash when an entity wearing armor with knockback enhancements dealt damage from a DamageCause the armor had no modifier for. The missing entry is now skipped instead of throwing.
Block & Prefab
  • Fixed random-tick block placement so it works in cubic worlds. PlaceBlockProcedure now writes through chunk sections instead of assuming a fixed world height.
  • Fixed fluid-placement interactions never honoring their UseLatestTarget setting. PlaceFluidInteraction now chains to SimpleBlockInteraction's codec, so the flag decodes and takes effect.
World Generation
  • Added Mix TintProvider that allows smooth tint transitions within a single biome.
  • Added support for DistanceToBiomeEdge to TintProviders.
Asset Schemas & Formats
  • The asset editor now refuses to rename a file into a different asset pack, an unsupported move that could leave an asset's pack no longer matching where it physically lives.
  • Fixed the model asset editor labeling the Particles section "Physics". It now titles the section after its own key like every sibling entry does.
  • Removed the Foog Cheese.
Server & Permission
  • Fixed /warp list letting a player warp to a destination without the warp.go permission, closing a way around the normal permission check.
  • /give armor now needs the new hytale.command.give.armor.other permission to target another player with --player. Using it on yourself is unchanged, and no built-in role is granted the permission by default.
  • The learn-other and forget-other recipe commands now require the new recipe.learn.other and recipe.forget.other permissions before they can change another player's recipes, and neither is granted to a built-in role by default.
  • Fixed whitelist enable and disable changes not saving straight away. The new state is now written before the call returns and rolls back to the previous value if the save fails, with state and membership writes serialized under the same lock.
  • Listing another player's recipes now needs its own command permission, recipe.list.other, which is not granted to any built-in role by default. Players can still list their own recipes as before.
For Plugin Developers
  • The BlockType copy constructor now also copies beds, randomTickProcedure and explosionConfig, which were previously dropped when cloning a populated block type.
Part 8

Update 6 · Part 8

July 22 & July 17, 2026
Security Disclosure · July 22

A PNG-loading flaw could have led to remote code execution

A security researcher privately reported a flaw in the way the client handled image files (PNGs) that a server sends to your game. On an affected client, a malicious or compromised server could send a specially crafted image that the client mishandled while loading it, and in the worst case use it to run code on the player's computer. It only affected people who connected to a server set up to abuse it; after a thorough investigation we have found no evidence it was ever used against players. The fix was shipped the same day it was reported.

While we were in there fixing this report, our team made several additional passes over the surrounding image, texture, and media loading code to further harden underlying systems and implementations.

$20,000
Bounty awarded to researcher 0x90 for the find and disclosure. Full technical write-up: "How a PNG became a $20,000 Hytale RCE."

We take security seriously, and reports like this one are exactly why. If you find a vulnerability in Hytale, we want to hear about it — our Vulnerability Disclosure Program details are at hytale.com/security.

A huge thank you to MelodicAlbuild and Eearslya for the fixes, features, and polish they've brought to this update (July 17). Your community contributions make Hytale better for everyone!

Headline Features
Hard-Collision Entities

Create new traps, obstacles, and parkour challenges using entities with hard collision!

  • Players can now stand on, and be smoothly pushed by, entities with hard collision.
  • Modders creating entities, such as moving walls or platforms, can use this new behavior to ferry around friends or trap trespassers!
  • For more complex obstacles, the Entity Tool may now be used to give entities rotated collision boxes that players can collide with.
  • At this stage, these changes will only affect collisions with players. Other entities will have to wait to experience these changes.
New & Changed
Avatar & Customization
  • Added a new unlockable cosmetic: the Bastion Cape! This new cape can only be wielded by security-conscious Avatars that have enabled two-factor authentication for their Hytale account.
Trigger Volume Tool
  • Added a new 'Time' Effect. This can set, pause, resume, or smoothly change the time of day over a duration. The effects may be applied to either everyone or just the player that caused the trigger.
  • Added a 'No Use' Always Active Effect. This can be used to block the usage of blocks or entities within the volume.
  • Added a 'Not Equal' comparison option for Tag Conditions, Item Conditions and Player Count Conditions.
  • Added the 'At Least', 'At Most', 'More Than', and 'Less Than' comparison options for Tag Conditions.
  • Multiple Trigger Volumes may now share the same display name. When this occurs, duplicated names are automatically numbered to distinguish them.
  • Trigger Volumes now keep their effects lined up correctly when you paste or generate a rotated prefab. Spawn points and other volume effects will now rotate along with the prefab.
Other Creative Tools
  • Using Creative Tools to place blocks with 'Draw' or 'Extrude' placement modes will now result in players seeing those blocks as you place them, rather than them all appearing at once at the end.
  • The 'Eraser' and 'Fast Place' placement settings may feel slightly faster or slower than before, following a rework of how block placement speed is controlled.
UI & Quality of Life
  • The Palette Editor, Color, and Point building tools now have updated icons.
Graphics & Rendering
  • Applied a completely new transparency algorithm to improve how overlapping transparent surfaces blend together. This change currently only impacts Windows and Linux users.
Player-Facing Bug Fixes
Combat & Movement
  • Launching players, items, or NPCs upwards faster than terminal velocity will no longer cause them to become completely unaffected by gravity.
  • Exiting a slide and going straight back into a sprint will no longer consume an incorrect amount of Stamina.
  • Fractional resistance values on equipment are no longer incorrectly rounded down during damage calculations.
World & Block
  • Grass will no longer turn to dirt when it's positioned beneath non-solid blocks or transparent blocks.
  • Tilled Soil will now revert back to Dirt once a crop has been harvested from it.
  • Dozens of flower varieties have been taking advantage of the sunny days and have now grown to their intended size.
  • Floating water plants will no longer sink beneath the surface.
  • Removed block sets will now disappear as soon as they are deleted, rather than lingering on screen until you reconnect.
  • Fixed an issue where blocks could be placed far out of reach via unintended means.
  • Warp names generated with the Teleporter will no longer unexpectedly change when settings are opened.
Creative Tools
  • Fixed a misspelling in the 'Continuous' placement option on the Line Brush Tool. Any saved tool using the old spelling will need 'Continuous' re-selected.
  • Prefab build previews should now be displayed correctly regardless of game mode.
  • Fixed an issue where prefab configs could fail to save, and improved the message shown when a save does fail.
  • The bulk block replace command will now replace rotatable blocks with non-rotatable ones instead of skipping them.
  • Using the 'redo' function after undoing an object being moved will now correctly put the object back where it was moved to.
  • The Paste Tool will now paste at every height level in cubic-chunk worlds. This is a primitive first implementation where certain blocks may not paste correctly.
  • Fixed a flickering effect that could occur when multiple entities were placed on the same spot with the Entity Tool's grid snapping.
Item & Interaction
  • Selecting the 'Craft All' button in Creative Mode will now craft as many items as your inventory can hold.
  • Portal key icons will now render correctly.
UI, Social & Menu
  • The Creative Inventory tabs and Quick Settings tabs will now display arrow navigation buttons if there are more tabs than would fit.
  • Fixed a crash that could occur when the inventory held more items than the item wheel has slots.
  • The reset icon in the builder tools quick settings will no longer be stretched.
  • Fixed the styling of the Entity Tool's dropdown settings.
Graphics & Rendering
  • Fixed an issue where shadows from entities with block models were rendering at half their intended size.
  • Clouds will no longer look corrupted while they transition on macOS.
  • Shaders are now set up in a way that more drivers accept, to prevent occurrences where they could fail to compile on some graphics drivers.
Performance
  • Improved network reliability when a server streams large amounts of data, so those transfers are far less likely to stall under heavy load.
  • Fixed poor performance caused by fluid updates in cubic worlds.
Localization
  • Fixed commands, game modes, and platform names being misread on servers running in certain languages such as Turkish, where letter casing works differently.
Stability
  • Fixed a crash that could happen during normal movement, including while standing still, on worlds whose view-bobbing settings did not cover every movement type.
  • Fixed a number of crashes that could occur just as you load into a world.
  • Fixed a crash that could occur with footstep sounds if no footstep timings were set.
  • Fixed a number of crashes that could happen when joining heavily modded servers that report unexpected weather, environment, fluid, or ambient sound values.
  • Fixed a crash that could occur when using Teleporters.
  • Fixed a crash that could occur if you were disconnected from a server while still connecting to it.
  • Fixed a crash that could occur when loading worlds saved in an older format.
  • Fixed an issue that could stop some players from spawning in worlds configured to let you select from several spawn points.
  • Fixed an issue where world data could be lost if the server was shut down while it was still saving chunks.
  • Improved memory management of the indexed storage backend.
  • Fixed a number of other miscellaneous crashes.
Modder-Facing Changes
NPCs, Entities & Encounters
  • Entities can now send beacon messages as part of an interaction chain. Add a SendBeacon interaction with a Message and Range to broadcast to nearby NPCs and encounter managers.
  • You can now toggle invulnerability from behavior. Use the SetInvulnerable action on an NPC to switch its own state, or SetTargetNPCInvulnerable from an encounter to switch it on the boss or other target NPCs.
  • You can now filter whether an entity is using an interaction with the ExecutingInteraction entity filter, for example to block an encounter phase change while a boss is still mid-attack.
  • You can now scale particles spawned by NPC behaviour. Set Scale (a multiplier, default 1) on an ActionSpawnParticles action.
  • You can now give an entity a rotated hard-collision box. Set the new RotatedCollision HitboxCollisionConfig on it and players will collide with its actual rotated box (player collision only for now).
Items, Armor & Projectiles
  • You can now scale movement speed from an entity effect. Set SpeedMultiplier on MovementEffects (default 1).
  • Projectiles can now fire at a random size drawn from the minimum and maximum scale on their model asset. Set UseModelScale: true in a ProjectileConfig (defaults to false, so existing projectiles keep their current size). Only the newer Projectile interaction type supports this, not the legacy LaunchProjectile.
  • Added a SignalNearbyVolumes interaction that sends a SignalReceived event to trigger volumes within a radius, optionally filtered by tag. Bind it to a tool or interaction to drive signal-listening volumes.
Blocks, Prefabs & Farming
  • Reworked block placement onto the interaction system. The quick place flags (QuickReplace, QuickRetype, NoPhysics) now come from assets and only apply when the server game mode is Creative, and the old AllowDragPlacement key was removed from placement interactions.
  • You can tune building throughput per placement mode by setting MaxBlocksPerTick and MaxBlocksPerGesture on the placement interaction assets.
  • You can now stop a Trigger Volume's effects rotating when its prefab is pasted or world-gen placed with a yaw turn. Set RotateEffectsOnPaste: false on the volume or group (defaults to true, so effect positions, rotations, and velocities turn with the prefab).
  • You can now make a block play music from its position in the world. The track fades with distance, pans, and muffles through walls, picking up your environmental reverb. Add the musicemitter block component referencing a MusicContainer.
Server & Permissions
  • Server-side no-clip landed for prototyping spectator-style modes. It now runs through the server with a new RequestNoClip packet and is gated behind a server permission, and players still need both no-clip and fly turned on so they do not fall through the ground.
  • Added a /floodfill <radius> <blocks> world editor command that fills the connected open space around you outward with a block or weighted pattern, bounded by a spherical radius. It never overwrites existing geometry and /undo reverts it.
  • Added a /locate dungeon <name> command that finds the nearest dungeon by name.
Renames & Deprecations
  • Plugins and custom servers must be rebuilt against the new protocol to connect, because the protocol CRC changed. The view-bobbing and camera-shake types (ViewBobbing, CameraShakeConfig, OffsetNoise, RotationNoise, NoiseConfig) now require non-null values. Existing view-bobbing and camera-shake JSON keeps working.
  • Removed the IsUsable block flag. Whether a block shows a Use or carry hint is now derived from its actual interactions and harvest data, so drop IsUsable from your block configs.
For Plugin Developers
  • Untrusted JSON is now parsed with a nesting cap so deeply nested input can no longer overflow the stack. Use BsonUtil.parseWithMaxDepth (default 256 levels) in place of BsonDocument.parse when you handle client-supplied data.
  • Removed the ClientPlaceBlock packet. Block placement, the eraser, and place-mode selection all flow through PlaceBlockInteraction and its new subtypes now, so rebuild plugins against the new protocol.
  • Custom UI can now page a TabNavigation when its tabs overflow. Set OverflowPaging: true and wire the chevron buttons with TabNavigation.AttachOverflowControls, and hide or show tabs through TabButton.Shown rather than Visible while paging is active.
  • Plugins can now register their own trigger volume event types. TriggerEventType is now registry-backed, so call TriggerVolumesPlugin.registerEventType(...) and fire them through the existing enqueue* methods. Serialization is unchanged, so existing volume and asset JSON loads as before.
Modder-Facing Bug Fixes
World Generation
  • Fixed wall patterns reading one voxel outside their declared bounds, so wall-attached decorations like vines now test against real block data near the edge of a generation window.
Items, Armor & Projectile
  • Fixed a potential server crash when picking up an item that defines a pickup interaction. No shipped item uses this path today, so it affects only custom items or plugins that add one.
  • Projectile hits now report their impact position to interactions much more reliably, so interactions that fire when a projectile strikes a block behave more consistently.
  • Fractional flat armor resistances now apply as configured instead of truncating to a whole number. ArmorResistanceModifiers's flatModifier accumulates in float, so a value like 0.5 is no longer rounded to 0, and broken-item resistance penalties keep their fractions too.
Blocks, Prefabs & Farming
  • A block's MovementSettings can no longer be null. A block asset that sets it to null now fails to load instead of risking a server crash.
Asset Schemas & Formats
  • You no longer need to define a view-bobbing profile for every movement type. Any type you leave out (such as Idle) now falls back to no bobbing instead of crashing the client.
  • Model footstep intervals can no longer be null. Use an empty array to mean "no footsteps", since an explicit null now fails asset load.
  • Malformed tag patterns in assets can no longer crash the client. A broken TagPattern tree now soft-fails to a never-match pattern and logs a warning, so bad asset edits fail safe.
  • Fixed the key paths shown in asset decode and validation errors, which could point at the wrong field, leave stale keys in unknown-key reports, and occasionally crash mid-decode when the key stack was full. Error reports now name the correct key.
Server & Permission
  • An asset pack whose files go missing on disk is no longer automatically unregistered, and its missing-pack warning now logs once instead of repeating. The pack is picked up again once its files return.
  • Fixed the /instances edit load, copy, and new commands being blocked on packaged servers even when the target instance lived in a writable pack. Each command now checks the pack it actually writes to.
  • Fixed the Load action in the instance list staying hidden on packaged servers. It now shows whenever any loaded pack is editable, and refuses to load an instance stored in an immutable pack.
  • Changing another player's model now requires a unique permission. The /model other, /model set other, and /model reset other subcommands need the model.other, model.set.other, and model.reset.other permission nodes respectively.
  • Fixed autocomplete for the /locate prefab command so it now matches prefabs with the typed text anywhere in the name, even in worlds with more prefabs than the suggestion list can hold.
For Plugin Developers
  • Fixed ObjectiveTaskAsset's all-args constructor never assigning mapMarkers, so task assets built in code rather than decoded from JSON now keep their map markers. No action needed beyond a recompile.
  • Fixed a crash in the reputation lookup when an NPC belongs to no reputation group. It now reports no group instead of throwing. This affects only plugins that call the public reputation API directly.
Part 7

Update 6 · Part 7

July 9, 2026

A huge thank you to MelodicAlbuild for the fixes, features, and polish they've brought to this update. Your community contributions make Hytale better for everyone!

Headline Features
Motion Aiming

Take aim with Gyro Controls!

  • Hytale now has gyroscope support for controllers! Those with a gyroscope-capable controller, such as a DualSense or Switch Pro, can now enable motion controls in the Controller settings to aim the camera by tilting the controller.
New & Changed
NPCs & Entities
  • Improved how the movement of other players and NPCs is interpolated. Movement will now be smoother across a wider range of frame rates, and the game automatically adjusts for unstable connections to reduce stuttering.
UI & Quality of Life
  • The view distance setting will now display if the server has a maximum view distance configured.
  • Opening the prefab browser will now display the last folder you navigated to and the search query you previously had active. Clicking 'Assets' will reset both.
Performance
  • Improved the order in which nearby chunks are prioritized for loading so the area around the player fills in sooner.
  • Improved frame pacing to reduce stutter during gameplay, resulting in smoother motion especially at capped frame rates.
Networking
  • Opening a world to connections will now be more reliable when using Wi-Fi, or on computers with VPN software installed.
  • Upon opening a world up for friends to join, if automatic port forwarding is unavailable, a message will appear stating that players outside of your local network may be unable to connect.
Player-Facing Bug Fixes
Combat & Movement
  • Fixed an issue where area of effect block interactions were unintentionally offset by one block.
  • Fixed an issue where physics objects were pitching downward and bouncing erratically.
  • Fixed an issue where physics objects would remain active indefinitely rather than settling to rest.
  • Fixed an issue where damage hit particles would not appear for all players near combat.
  • Fixed an issue for attacks using an offset with the DonutSelector to consider the direction the player is facing.
  • Fixed an issue where dashing with a weapon before mantling would carry the speed boost through the mantle.
Control & Input
  • Fixed an issue where the server list would scroll past more than one row at a time on the Server Discovery page with a controller.
  • Fixed numerous issues that prevented the filter, search, and detail panels from being fully navigable with a controller.
  • Fixed an issue where the Social Sidebar would not open on the Main Menu or while paused when using a controller.
World & Block
  • Fixed an issue with the sleeping feature where players would be stuck with the "Zzz" screen.
  • Fixed an issue where Teleporter cooldowns could be reset too quickly, resulting in them immediately sending players back.
  • Fixed an issue where Teleporters could appear inactive if the warp name contained capital letters.
  • Fixed an issue where branch and pipe corner blocks were not flipping correctly.
  • Fixed a loophole that allowed players to bypass block placement restrictions.
  • Fixed an issue where crops would lose their custom growth stage upon saving and reloading the world.
  • Fixed an issue where the night would still be skipped even if a player was awoken from their slumber.
  • Fixed breaking and placing blocks in cubic worlds outside the old range.
  • Fixed fluids not functioning in cubic worlds outside the old range.
  • Fixed an issue where doors, stairs, roofs and other connected blocks would not function properly in cubic worlds.
  • Fixed an issue with missing terrain sections that could appear on servers configured to skip saving newly generated chunks.
  • Fixed an issue with Calcite Brick and Calcite Cobble Wall blocks playing the wrong sounds.
  • Fixed an issue where players who weren't looking at any particular block while in Creative mode would be shown a block outline at the origin of the world.
World Generation
  • Fixed a world generation issue where certain prop placements could fail and leave gaps in the environment.
Creative
  • Fixed an issue where the Selection Tool's 'Move' and 'Stack' modes would only function when the game was set to English.
Item & Interaction
  • Fixed an issue with Storm Thistle crops dropping the wrong items when harvested.
  • Fixed an issue where tools that could break multiple blocks at once would display the wrong area being targeted if you were aiming at blocks overhead.
  • Fixed a loophole where animation canceling a crossbow attack could preserve or duplicate ammo.
  • Fixed an issue where deployable items configured to only work on the ground would reject this and happily cling to the ceiling instead.
NPC & Entity
  • Fixed an issue with NPC ranged attacks drifting to one side if their target was too close.
  • Fixed an issue with flocking NPCs standing still instead of steering towards their group.
  • Fixed an issue with NPC charge attacks not reporting all block hits.
  • Fixed an issue where NPCs performing charge attacks could climb on blocks to be considered empty.
  • Fixed an issue where NPCs could stop detecting nearby players and obstacles.
  • Fixed an issue where all Zombie variants would fail to generate memories.
  • Fixed an issue where if an invulnerable entity had a particular stat change blocked, none of its other stats could be modified at the same time.
Graphics & Rendering
  • Fixed an issue where the fog distance would snap inwards briefly after placing a block in an empty area of the world.
  • Fixed an issue where colors in lighting and shadows were less accurate than intended.
  • Fixed an issue where scrolling black lines could appear in fluids.
  • Fixed an issue where blocks, fluids, and models could have discolored edges or texture bleeding.
  • Added mitigations for an issue where item icons would render as black textures if many mods were loaded.
  • Fixed an issue that could cause incorrect lighting on some hardware configurations.
Performance
  • Fixed a memory leak in the map.
UI, Social & Menu
  • Fixed an issue where share codes would fail on certain routers, such as BT Smart Hubs.
  • Fixed an issue where direction dropdown labels for some Creative Tools would be cut off.
Stability
  • Fixed a crash that could occur with NPCs that use beacon messaging.
  • Fixed a crash that could occur with the /block row command.
  • Fixed a crash that could occur when armor applied an interaction referencing a stat with no modifier configured.
  • Fixed a crash that could occur when selecting a slot in a crafting window that is out of range.
  • Fixed a softlock that could occur when teleporting between worlds.
  • Fixed a server crash that could occur when a block-mounted entity was duplicated.
  • Fixed a server crash that could occur when an objective's assets reloaded while a player was on the final task.
  • Fixed a server freeze that could occur when loading an entity that contained an unrecognized interaction type.
  • Fixed a crash that could occur when unloading world sections.
  • Fixed a crash that could occur when the server tried to process a teleport request while none were waiting to be handled.
  • Fixed a number of crashes that could occur when joining servers with incomplete combat text, ambient sounds, sound events, interactions, deployable configurations, or item animation configurations.
  • Improved the error message when launching Hytale with a GPU or driver that does not meet Hytale's minimum graphics requirements.
Modder-Facing Changes
NPCs, Entities & Encounters
  • Variants can now forward modifiers directly into a macro element's own exposed parameters. Mark the template slot with "AcceptsForward": true, then add a "_ForwardedModifiers" block in the variant keyed by slot name to set that macro's parameters without threading them through the template.
  • Added a RemovedBlockSet field to BodyMotionCharge. List blocks destroyed during the charge here so they are correctly excluded from breathing checks after removal.
  • Encounter managers can now signal world event completion. Add a SignalWorldEvent action to an NPC's action list and pair it with a SignalCondition on the world event to trigger completion when the action fires, for example on a boss defeat.
  • Added an AdjustPortalTimer NPC action for encounter managers. Set "Type": "AdjustPortalTimer" with a positive or negative "Seconds" value to add or subtract time from the active portal timer at runtime.
  • Added an ActionSetHealthRegen NPC action that enables or disables health regeneration on an entity at runtime. NPCs now automatically include the new HealthRegenState component to support regeneration control through role behaviour logic.
Items, Armor & Projectiles
  • Added ExtraJumpSoundEvent to Armor.MovementSettings. Set it to the id of a mono, oneshot (non-looping) sound event to play a sound on each extra jump. It pairs with the existing ExtraJumpParticleSystem field.
  • Added zoom support to the interaction system for magnification/aim behavior on any item. Add a Zoom block under any step's Effects to zoom while that step is active, set PersistZoom: true to keep it applied for the rest of the chain, so chained steps can ramp or swap zoom mid-interaction. All fields are optional with sensible defaults.
  • Added example test items of developer quality that demonstrate zoom support:
    • Weapon_Test_Sniper_Rifle — single fixed zoom with a scope overlay, forces first-person.
    • Weapon_Test_Zoom_Rifle — three-level variable zoom that ramps and swaps the reticle per level.
    • Weapon_Shortbow_Test_Zoom — charge-draw zoom held across the shot.
  • Added the ability to hide the local player's held item in first-person during an interaction step. Set HideFirstPersonHeldItem: true in the step's InteractionEffects (other players still see the item).
Blocks, Prefabs & Farming
  • Prefabs stored in an asset pack can now be referenced in PrefabListAsset configs.
  • Encounter manager entities can now be stored in prefabs.
Asset Schemas & Formats
  • Added World Events system, a data-driven system for scripted, multi-stage events that occur dynamically within the world.
  • Added a PlaceBlock random-tick procedure: set "Type": "PlaceBlock" in a block's RandomTickProcedure with a required Offset and a Placements list, where each rule can target a block State and place a single Block or a weighted Blocks list. Placement skips silently when the target is occupied or out of world bounds, and invalid configs fail at asset validation time. (See the Test_PlaceBlockProcedure developer-quality block/item as a functional example.)
Server & Permissions
  • Added /worldevent start|cancel|list commands for managing active world events by asset type or event ID.
For Plugin Developers
  • Removed ItemStack.fromPacket(ItemQuantity). Replace any calls with getItemStackFromQuantity() in your packet handler, which rejects unknown items, enforces a positive quantity floor, and caps to the item's max stack size.
  • Added BlockOperations.setBlock as a future replacement for WorldChunk.setBlock, with correct handling of bounds checking, neighbor notifications, and block-entity creation. Recompile your plugin to use it; existing WorldChunk.setBlock calls remain available but may not work correctly in cubic worlds.
  • Added PointEntry.getTransform(), which returns a Transform with the entry's position and rotation already converted to radians.
  • Changed RemoveMapMarker.MarkerId from optional to required. Null is no longer a valid value. Recompile any plugin that creates or handles this packet.
  • Made several protocol interaction and sound fields required (previously nullable): DamageEntityInteraction.TargetedDamage, ChainingInteraction.ChainingNext, SerialInteraction.SerialInteractions, MemoriesConditionInteraction.MemoriesNext, SpawnDeployableFromRaycastInteraction.DeployableConfig, ApplyForceInteraction.Forces, RootInteraction.Interactions, SoundEventLayer.RandomSettings, and SoundEventLayer.Files must always be populated. Plugins that leave any of these null will now fail codec validation.
Modder-Facing Bug Fixes
World Generation
  • Fixed PrefabProp aborting world generation when a weighted path contained no prefab files. It now skips placement silently instead of failing, so a misconfigured pool no longer breaks surrounding generation.
Items, Armor & Projectile
  • Fixed DonutSelector not rotating its Offset by the entity's yaw. The offset is now applied relative to the entity's facing direction on both server and client, matching the intended authoring behavior.
Blocks, Prefabs & Farming
  • Fixed custom connected block patterns with non-zero roll computing wrong filler block offsets. The roll component now rotates on the correct axis. Existing configurations with roll will produce correct results without any changes needed.
Asset Schemas & Formats
  • Several protocol fields that previously accepted null are now required: CombatText color and animation fields, Interaction.Rules, AmbienceFX frequency, radius, and condition ranges, and ItemPlayerAnimations.Animations. Asset files with explicit null for these fields will be rejected at load time.
Server & Permission
  • Fixed the /tp world command crashing with a null pointer instead of reporting "spawn not set" when the target world's generator had not yet finished loading.
  • Fixed chunk sections 0–9 not being written to disk when SaveNewChunks: false was set in the world config. On the first save, sections were silently dropped and regenerated empty on reload. No config changes are needed.
For Plugin Developers
  • Fixed AOECircleSelector centering its selected block region one block off along X. Selections now land on the correct target center. No action is needed unless your plugin compensated for the old offset.
Part 6

Update 6 · Part 6

July 2, 2026

A huge thank you to MelodicAlbuild, TheNullicorn, Hadaward, narwhalscat, Neil, Eearslya, Blovien, Zoltus, and oskarscot for the fixes, features, and polish they've brought to this update. Your community contributions make Hytale better for everyone!

New & Changed
Trigger Volume Tool
  • Added a new 'On Volume Create' trigger that fires effects when a new volume is created within the existing volume.
  • Added a new 'Always active' option that can persistently apply various effects within the volume:
    • 'Creative Placement' — place blocks you have on you as if in Creative Mode.
    • 'Damage Multiplier' — make all, or particular, entities take increased or decreased damage.
    • 'Fly' — fly within the volume as if in Creative Mode.
    • 'No Build' — prevents block placement. Exceptions can be configured.
    • 'No Destroy' — prevents block destruction. Exceptions can be configured, including allowing particular tools to still break blocks.
    • 'No Door Open' — prevents doors from being opened.
    • 'No Harvest' — prevents harvesting crops. Exceptions can be configured.
    • 'No Heal' — Health can only decrease within the volume.
    • 'No Block Tick' — freezes time for blocks, preventing crop or tree growth.
  • Added a new 'Modify Always Active Rules' effect to toggle the persistent effects above.
  • Added a new 'Cancel VFX' effect that causes particles of a chosen type to expire within the volume.
  • Added a new 'Remove / Kill Entities' effect to remove unwanted entities of a particular type within the volume.
  • The 'Send Signal' effect now includes additional information (signal position, signal tags) so other trigger volumes can read exactly what caused it and react accordingly.
  • The 'On Block Broken' trigger will now respond to blocks broken by environmental effects such as fire.
  • The 'Teleport' effect can now be used to teleport players to an entirely different world.
  • Duplicating a trigger volume will now also copy its volume settings to the new trigger volume.
  • Saving a trigger volume preset now optionally saves the volume settings.
Creative Tools
  • Added a searchable dropdown to the Entity Tool panel allowing you to browse and swap the model of an entity directly from the tool settings.
  • Loading a prefab via the Prefab List will now result in a message about using the Paste Tool to then paste that prefab into the world.
Graphics & Rendering
  • Added a 'Water' quality option to the Advanced Rendering Settings menu. This affects how the water renders and has no impact on the purity of water.
  • Removed the 'Particle Quality' option from the Advanced Rendering Settings menu, as it doesn't currently change how particles render.
World Generation
  • Grass that generates within flat worlds will now have a darker tint.
  • World-Gen V2 will now use the Unknown material types instead of Empty when it can't load a material.
Audio
  • Goats, Mouflons and Turkeys now have distinct sounds.
UI & Quality of Life
  • The in-game plugin list now has a search bar! Plugins are sorted alphabetically with third-party plugins listed above built-in ones. Typing in the search bar filters and ranks results by name.
Performance
  • Increased world-gen V2's buffer size to improve performance.
  • Improved the chunk priority system in world-gen V2 to increase delivery speed of nearby chunks and reduce CPU usage of far away chunks.
Player-Facing Bug Fixes
Combat & Movement
  • Fixed an issue where damage number animations would not correctly inherit values and could display incorrectly.
  • Fixed an issue where having multiple instances of resistances applying at once would cause them to be less effective than intended.
  • Fixed an issue where aerial combo attacks did not apply their speed boost correctly.
  • Fixed an issue where entities could inherit incorrect air resistance values.
  • Player melee attacks will no longer connect through walls or beyond their normal reach.
  • Deployable items such as traps will now deal their configured damage type, rather than always dealing Physical damage.
World & Block
  • Fixed an issue where fluids could spread incorrectly when spreading to a block with fluid directly above it.
  • Fixed an issue where the teleporter UI would read the pitch rather than roll-relative setting.
  • Fixed an issue where players could face the wrong direction when sitting on a mountable block if cloned.
  • Fixed an issue where the moon phase and any active time-dilation changes could be incorrectly reset.
  • Fixed an issue where lava and water colliding could overwrite solid terrain and multiblock structures.
  • Fixed an issue where waking up from a bed would permanently prevent any further sleep.
  • Fixed an issue where spaces within animal coops would be considered filled even when the occupant has despawned.
  • Fixed an issue where faint dark dots would appear across the world map.
  • Slab blocks may no longer be placed on top of existing slabs in worlds where block placement is disabled.
  • Buckets may no longer be used to place fluids in worlds where block placement is disabled.
  • Dead coral plants no longer have solid collision.
  • Crude table placement previews will now render correctly.
  • The collision box of redwood fences now correctly matches their shape.
  • Color tints & environments applied via tools will now update immediately again.
World Generation
  • Multi-blocks (blocks which take up more than 1x1x1 in space, such as doors, roofs, or furniture) should now be rotated the correct way in World-Gen V2.
  • Fixed Prefab Prop artifacting World-Gen V2 output if a folder doesn't contain any Prefab files.
  • Fixed SwitchState Density always falling back to the default branch instead of following the active state.
  • Fixed an issue where cell-noise terrain features would be placed in a mirrored pattern causing landscape to appear symmetrical at times.
Creative
  • The Paste Tool will no longer incorrectly skip blocks when 'Paste Air' is turned off.
  • The Paste Tool will now correctly flip copied selections rather than spinning them 180 degrees.
  • The Extrude Tool will no longer cause multi-cell blocks to overlap when extruded, and the placement preview will now match what is placed.
  • The Selection Tool's 'Set', 'Fill', 'Replace' and 'Stack' operations should now work correctly with multi-cell blocks.
  • The Color Tool's gradient and coloring modes should now work correctly with multi-cell blocks.
  • The Paint Brush and Scripted Paint Brushes should now work correctly when multi-cell blocks are used as a brush material.
  • The Trigger Volume Tool's 'Replace Block Type' trigger effect should now work correctly when swapping multi-cell blocks.
Item & Interaction
  • Fixed an issue where emptied item containers such as chests could still be considered non-empty.
  • Fixed an issue where dropped items and projectiles could snap to an incorrect neighboring block.
  • Fixed an issue where items could be placed inside item containers when placement should have been blocked.
  • Fixed an issue where item cooldowns could not be correctly inherited, allowing some abilities to ignore cooldowns.
  • Armor particle effects should now render correctly when the armor is equipped.
  • Items should now correctly inherit item quality if they have none assigned.
Control & Input
  • Fixed an issue where using a gamepad to navigate menus could scroll only part of a UI element into view.
  • Fixed an issue where mouse input would stop working on the disconnect screen if you were disconnected while in a custom server UI.
NPC & Entity
  • Fixed an issue where NPCs would sometimes incorrectly choose longer paths to their destination.
  • Fixed an issue where fleeing NPCs could forget in their panic that they are allowed to run close to walls and other obstacles.
  • Fixed an issue where collision detection would use the wrong axis for height.
  • Fixed an issue where NPCs could incorrectly enter or remain in unintended states.
  • Fixed an issue where NPCs would not correctly inherit settings from parent assets.
  • Fixed an issue where entity effects would not correctly inherit settings from parent assets.
  • Fixed an issue where NPCs would incorrectly stop or slow down when pursuing a target.
  • Fixed an issue where strafing NPCs would sometimes step in the wrong direction.
  • Fixed an issue where NPCs would only dodge one another at the last second if they were zooming.
  • Fixed an issue where flocks of NPCs would all spawn facing the same direction.
  • Fixed an issue where NPCs configured to watch for events produced by other NPCs weren't reacting to them.
  • Fixed an issue where NPC despawn timers would be incorrectly modified.
  • Fixed an issue where ranged NPCs just didn't feel like attacking if they were too close to their target.
  • Fixed an issue where NPCs could spawn at incorrect heights when spawn configurations had been resaved multiple times.
  • Fixed an issue where flying NPCs would begin flying at an awkward angle if knocked back whilst gliding next to terrain.
  • Fixed an issue where some neutral creatures were in such awe of more complex interactions, they could fail to react entirely when damaged.
UI
  • Approved custom server images should now correctly appear within the server browser.
Audio
  • Fixed an issue where projectiles and deploying turrets would incorrectly load sound event configs.
Graphics & Rendering
  • Fixed the default player model from having an invalid scale.
  • Particle effects such as smoke and flames should now render at the correct position and size.
  • Particle effects such as smoke and flames will no longer duplicate each time the block that spawns them is resized.
  • Fog will no longer flicker as parts of the world are loaded.
  • The 'Graphics Preset' option in the Settings menu will now update automatically when all other graphics settings are manually changed to match a preset.
Performance
  • Improved server performance in worlds with many trigger volumes.
  • Moving or resizing trigger volumes will no longer cause tick-rate drops.
  • Server browser resources will no longer remain allocated in memory after entering a world.
  • If the frame rate cap is set to below 30FPS it will no longer increase to 30FPS when window focus is lost.
Localization
  • The 'Shore' and 'Shallow Ocean' region names will now be displayed properly (e.g. for Memories).
Stability
  • Fixed a server crash that could occur when duplicating instance entity configurations with no return point assigned.
  • Improved the resiliency of resources, permissions and some other data saving in the server to prevent data loss.
  • Fixed a crash that could occur during world generation.
  • Fixed a crash that could occur when unloading or reloading a built-in game plugin.
  • Fixed a crash that could occur during loot generation when an item drop container had no entries or all of its entries had a weighting of zero.
  • Fixed a crash that could occur when pressing a hotbar key for a slot that no longer exists due to modified capacity of the hotbar.
  • Fixed a server freeze that could occur during chunk generation or loading.
  • Fixed a server freeze that could occur when a repulsion zone's configuration was removed while entities were still inside it.
  • Fixed an issue that could cause players to become stuck on a loading screen.
Modder-Facing Changes
NPCs, Entities & Encounters
  • Added example encounter manager assets covering macro-based boss fights, including a stalactite attack pattern macro and transition macros for target-loss and health-range conditions.
Items, Armor & Projectiles
  • Added a new Donut interaction selector type. In an item's Interaction block, set Selector.Id to Donut and configure MinRadius, MaxRadius, Angle, and Height to target entities in a ring around the attacker.
  • Added a RequireBlockPlacement boolean to ChangeStateInteraction. Set it to true to block the interaction in worlds where block placement is disabled. The built-in half-block item now uses this to prevent stacking slabs where placement is restricted.
Asset Schemas & Formats
  • Encounter managers now support abstract base definitions and variant overrides. Set "Type": "Abstract" to declare overridable parameters, then use "Type": "Variant" with a Reference and Modify block to create a derived encounter manager that overrides only the fields it needs. See the new Example_Variant_Base.json and Example_Variant.json assets for usage.
Server & Permissions
  • Added key validation and tab-completion to the /world settings worldgentype, /world settings worldmaptype, /world settings chunkstoragetype, and /auth persistence commands. Typing an unknown provider key now fails at parse time with a 'did you mean' list of valid options. The /world add --storage argument also received a missing description string.
  • Added the /tpcinematic command as an example of the new server-driven camera sequence API. The camera flies to the destination along a cinematic path while the player dissolves out and back in. Supported path styles are FLYOVER, ARC, ORBIT and DOLLY. An optional height parameter controls fly-over altitude.
  • Block spawner blocks are now interactable in-world. Clicking one opens a configuration panel for creating, editing, and deleting spawner entries without commands. Grant the new block spawner permission to allow players to access the panel.
Renames & Deprecations
  • The CustomConcurrency field in SettingsAsset has been renamed to LowPriorityConcurrency. Two new companion fields, NormalPriorityConcurrency and HighPriorityConcurrency, control thread budgets for those generation tiers. Update any Settings assets that used the old name.
For Plugin Developers
  • Plugins now have a convenient API to emit Opus voice audio from non-player sources via three new VoiceModule methods: openEntityVoice, openPositionalVoice, and openDirectVoice, each returning a VoiceSpeaker handle. Push 48kHz mono Opus frames with pushOpus(byte[]) or play(List<byte[]>) to play a full clip, and call close() when done. Entity speakers follow the entity and auto-close on despawn, positional speakers support setPosition after opening, and direct speakers deliver to an explicit listener set regardless of distance.
  • Plugins can now intercept inbound player voice frames before routing. Register a PlayerVoiceInterceptor via VoiceModule.addPlayerVoiceInterceptor and unregister the returned Registration from your plugin's shutdown. The PlayerVoiceFrame argument exposes speaker, position, underwater flag, and Opus bytes as mutable properties, with drop(), deliverByProximity(), restrictProximityTo, excludeListener, and deliverTo for audience control. An EventPriority overload controls ordering when multiple interceptors are registered.
  • Added MutableDeathConfig for per-world death behavior overrides at runtime. Build one with new MutableDeathConfig(currentConfig), adjust the fields you need, and install it with WorldConfig.setDeathConfigOverride(config). The gameplay asset's DeathConfig is read-only and casting it to MutableDeathConfig fails at runtime.
  • Plugins can now hide the first-person held-item viewmodel from a server-controlled camera. Set HideHeldItem: true on ServerCameraSettings to suppress the hands and held item, leaving the view clear for scope overlays or cinematic shots.
  • Plugins can now hide the weapon abilities HUD overlay by removing HudComponent.Abilities from the set sent via UpdateVisibleHudComponents. The overlay is included in the default visible set and remains visible unless a plugin opts out.
  • Added a server-driven camera sequence API. Use CameraSequenceBuilder to define a keyframed path (position, look target, FOV, per-keyframe easing), then stream it to a client. The sequence source fires an onComplete callback when the client finishes playback. Supports CameraSequenceFlags: LockInput blocks movement, HideLocalPlayer hides the player model, and ReturnToGameplayCameraOnEnd hands control back to the gameplay camera when the sequence finishes.
  • Added CinematicTeleport.play(PlayerRef, destination, CinematicPath) for triggering a full cinematic teleport from a plugin. The camera flies along the chosen CinematicPath, the player dissolves out, teleports, and dissolves back in. Nearby players see the dissolve animation.
  • Added World.scheduleAfter(task, delay, unit) to post a task on the world thread after a specified delay. The method returns a ScheduledFuture.
  • Added Vector3dUtil.quadraticBezier(p0, control, p1, t, dest) for sampling a point on a quadratic Bezier curve.
  • Added EnvironmentBreakBlockEvent, fired when a block is removed by the world itself (fire spread, harvest) with no player instigator. Subscribe to it to react to environment-driven block removals in trigger logic.
  • VOLUME_CREATE now fires from every volume creation path: command, editor tool, prefab paste, worldgen, and spawn interaction.
  • Added FillerPlacementUtil for placing multi-cell blocks with correct filler, clearing overwritten structures, and tiling without footprint overlaps. Use it in custom tools that place multi-cell blocks.
  • Added multiCellFootprint, isFootprintFree, and markFootprint helpers to FillerBlockUtil for querying and marking multi-cell block footprints.
  • Added ChunkSectionPreLoadProcessEvent and SectionUnloadEvent events that fire during section load and unload respectively. Plugins can listen to these for per-section lifecycle hooks.
  • Added IChunkSaver.Cubic, an optional interface for storage backends that opts them into per-section and per-entity saves. Backends that do not implement it continue on the existing whole-column path without any changes required.
  • Added PointEntry.hasTags(Collection<Integer> tags), returning true when the entry holds all of the given tag indexes. Added a matching query method on PointManager to retrieve all points that contain a given set of String tags.
  • Stack-trace captures for entity removal and ref invalidation are now disabled by default. Set the -Dhytale.debug.captureThrowables=true system property to re-enable them for debugging.
Trigger Volumes
  • Actor and entity refs in trigger rule systems and DelayedEffectScheduler are now nullable. Plugins that receive them must add null checks or compilation will fail on @Nonnull annotations.
  • BlockUsedCondition has been removed. Replace it with BlockTypeCondition in any existing presets.
  • The 'Teleport' effect can now be used to teleport players to an entirely different world.
  • BlockTypeCondition can now sample the live world at a configured position rather than only the event block. Set PositionSource to EventBlock, WorldPosition, or EntityPosition, add a PositionOffset for an offset, and enable AxisRotation for per-axis rotation matching (X/Y/Z).
  • TagCondition now supports four source modes: Event, Self, Group, and Radius. Presets using Event source require no changes.
  • Signals now carry multiple key/value pairs via aligned SignalKeys and SignalValues arrays. A TagCondition with Source: Event matches when any one pair matches.
Modder-Facing Bug Fixes
NPC, Entity & Encounter
  • Fixed SubState in StateOption not being read or stored correctly. Child NPC role assets that set SubState had it silently ignored and the main state overwritten instead. No changes needed unless your roles use SubState.
  • Fixed CombatBalanceAsset not inheriting CombatActionEvaluator config from a parent asset. Child combat balance assets now correctly receive the parent evaluator config.
  • Fixed NPC collision avoidance computing its lookahead window using velocity squared instead of velocity. CollisionDistance values authored around the old behavior now take effect further from the NPC at speed.
  • Fixed SensorEntityEvent looking up NPC-produced events in the player event store, so sensors targeting NPCs never matched.
  • Fixed ActionDelayDespawn applying the shorten and extend branches in the wrong direction. Despawn-delay actions in NPC roles now shorten or extend the timer as authored.
  • Fixed SpawnMarker writing the square of MaxDropHeight when serializing, compounding the value on every editor save (5 → 25 → 625).
  • TimeSinceLastUsedCondition now reports the real elapsed time since a state option was last selected. The state evaluator records a timestamp on each selection, so you can use this condition to add cooldowns between state transitions in your NPC roles.
  • Fixed encounter and NPC asset validation skipping certain files on hot-reload. All affected files now re-validate correctly.
Items, Armor & Projectile
  • Fixed the world-space sound index leaking into the local sound slot for projectiles and deployable turrets. Setting LaunchWorldSoundEventId without a LaunchLocalSoundEventId on a projectile, or ProjectileHitWorldSoundEventId without ProjectileHitLocalSoundEventId on a turret, no longer causes the world sound to also play locally.
  • Fixed flat damage resistance modifiers not accumulating through inherited damage cause chains. Only the last parent's flat modifier was applying. Content that configures chained flat resistances will now deliver the full combined effect. Verify balance on any damage cause hierarchy that uses flatModifier.
  • Fixed PointKnockback applying incorrect rotations when OffsetX, OffsetZ, or RotateY were set, due to angle unit mismatches. RotateY is authored in degrees as documented. Retest any PointKnockback configs that set these fields.
  • Fixed ChoiceItemDropContainer throwing a NullPointerException when its Containers list was empty or every entry had a weight of zero. Loot generation now skips a null roll result and continues.
  • Fixed DeployableAoeConfig, DeployableTrapConfig, and DeployableTrapSpawnerConfig ignoring the authored DamageCause field and hardcoding Physical damage at all three detection call sites. The configured damage type now applies correctly.
  • Fixed ResetCooldownInteraction and TriggerCooldownInteraction not inheriting the Cooldown field from a parent interaction. Child interactions that omit Cooldown now correctly fall back to the parent's value.
  • Item stacks with no explicit quality assigned now correctly resolve to the item's configured default quality instead of falling back to quality index 0.
Asset Schema & Format
  • Fixed the RailPoint Normal field defaulting to NaN in common.json. It now defaults to {"X": 0.0, "Y": 0.0, "Z": 0.0}.
  • Fixed a crash in the Weather Forecast editor when editing. Improved adding entries to an Environment asset that had no existing hour data.
  • Fixed ParticleSpawner child assets not inheriting the SpawnBurst flag from their parent. Inherited particle spawner assets that set SpawnBurst on a parent will now pass it down correctly.
  • Fixed CombatTextUIComponentOpacityAnimationEvent, CombatTextUIComponentPositionAnimationEvent, and CombatTextUIComponentScaleAnimationEvent not copying StartOpacity/EndOpacity, PositionOffset, and StartScale/EndScale from parent assets. Child combat text UI events now inherit the correct parent values.
  • Fixed TeleporterSettingsPage encoding RollIsRelative using the pitch-relative flag. Adventures that configure a Teleporter with RollIsRelative: true were silently applying pitch-relative behavior instead.
  • Fixed NoiseConfig range normalization computing max against the already-updated min, which collapsed any range where min was greater than max to a single point. Camera noise assets with inverted min/max values now normalize both bounds correctly.
  • Fixed comboAirSpeedMultiplier in MovementConfig being overwritten by airSpeedMultiplier on every copy and network sync. Authored values now apply correctly. Verify movement balance if your config sets a distinct comboAirSpeedMultiplier.
  • Fixed block-breaking decal and block group assets not sending their removal notification to connected clients when unregistered at runtime. Clients now receive and clear the stale asset correctly.
  • Fixed ObjectiveLineAsset overwriting a manually authored objectiveTitleKey or objectiveDescriptionKey with an auto-derived key on load. Custom localization keys now take effect as authored.
  • Fixed the default value of NighttimeDurationSeconds in WorldConfig, which was being calculated as 60% of the total day instead of the documented 40%. Only gameplay configs that omit NighttimeDurationSeconds are affected. Configs that set the field explicitly are unchanged.
  • Fixed StatModifiers in EntityEffect assets: child effects that omit the StatModifiers block now correctly inherit the parent's modifiers instead of silently losing them.
  • Fixed AirResistanceMax in VelocityConfig assets: child configs that omit AirResistanceMax now correctly inherit the parent's value, and no longer overwrite the AirResistance value already inherited by the preceding entry.
  • Fixed CellNoise3DDensityAsset codec reading scaleZ instead of jitter for the Jitter field, causing save/load round-trips to overwrite the authored jitter value with scaleZ.
  • Fixed GradientWarpDensity placing the z-axis sample at (x, z, maxZ) instead of (x, y, maxZ), producing incorrect warp for the z component.
Server & Permission
  • Fixed /entity clean and /npc clean failing partway through when removing one entity cascaded to removing another (such as through flock membership or role references). Both commands now complete fully.
For Plugin Developers
  • Fixed Quad2d.getCenter() and Quad4d.getCenter() to average all four vertices instead of two. The centroid of a non-rectangular quad may differ from the previously returned value. Also fixed VectorUtil.shortestSegmentBetweenTwoSegments() using the wrong segment-length bound when clamping, giving incorrect results for segments of unequal length.
  • Fixed SteeringForcePursue(stopDistance, slowdownDistance) storing the two distances in the wrong order internally. Plugins that construct a SteeringForcePursue with distinct stop and slowdown values should retest NPC pursuit behavior after updating.
  • Fixed DamageCalculator.equals() always returning false even when all five fields matched. Plugins that compare or deduplicate DamageCalculator instances will now get correct results.
  • Fixed BlockMountComponent.clone() not copying expectedRotation. Cloned block mount components now retain their authored facing direction.
  • Fixed InstanceEntityConfig.clone() throwing NullPointerException when returnPoint or returnPointOverride was null. Instance entity configs that omit these fields now clone without error.
  • Fixed TimeResource.clone() dropping timeDilationModifier and WorldTimeResource.clone() dropping moonPhase. Cloned time resources now preserve all fields.
  • Fixed CircleOffsetFromArg scripted brush operations crashing with a NullPointerException when the circle radius argument was omitted. The operation now reports a clean error and returns.
  • Fixed Steering.assign() not copying roll and hasRoll, silently dropping roll state when one Steering was assigned onto another.
  • Fixed Steering.clearRotation() leaving roll and hasRoll set, so stale roll state could carry into the next steering output.
  • Fixed EventMessage.clone() dropping runtime state (enabled, activated, age, target). Cloned active messages now carry their target and age correctly.
  • Fixed a server boot crash that prevented sub-plugins from loading when their parent plugin had a non-zero patch version (for example, 0.8.6).
  • Fixed ConcurrentSizedTimeoutCache eviction logic using the wrong comparison direction, retaining expired entries and evicting recently-used ones.
  • Fixed FlatTimingProfiler.start() not setting hasStart, causing assertion failures and incorrect probe-state detection.
  • Fixed DeployableOwnerComponent.clone() returning a KnockbackComponent instead of a DeployableOwnerComponent. Cloning entities that own deployables now produces the correct component with empty deployable lists.
  • Fixed a NullPointerException thrown when unloading or reloading core plugins such as Hytale:ProjectileModule. JavaPlugin.getFile() is now @Nullable and PluginManager.unloadJavaPlugin was renamed to releasePluginClassLoader.
  • Fixed a crash that occurred when unloading the same plugin identifier twice in quick succession. The second call is now a no-op instead of throwing a null reference error.
  • Fixed an error thrown when reloading a plugin that registers its own asset types. Types registered through getAssetRegistry() are now cleaned up on shutdown, so reloading no longer throws a duplicate-registration error.
  • Fixed CompanionBlockSpawnerPlugin crashing when reloaded at runtime. If your plugin registers asset stores, call getAssetRegistry() rather than the static AssetRegistry so the store is unregistered cleanly at shutdown. Also ensure any ComponentType references used in spatial queries are held in instance fields, not static ones, so they stay current after a reload.
  • Fixed AOECylinderSelector drawing its debug volume as a sphere instead of a cylinder. It now renders a cylinder spanning the selector's configured radius and height. Only visible when SelectInteraction.SHOW_VISUAL_DEBUG is enabled.
  • Fixed the Point Inspector applying incorrect rotation when teleporting. The inspector now also closes automatically after the teleport button is used.
Part 5

Update 6 · Part 5

June 25, 2026
New & Changed
Graphics & Rendering
  • Hytale will now immediately close if you don't have OpenGL 4.1 or later. If the game no longer launches after this update, updating your graphics drivers should resolve it.
World Generation
  • New mage towers have been spotted! Keep an eye out for new and revamped landmarks in the Sandstone, Shale, and Volcanic biomes.
Blocks
  • A 'Green Build Lightsource' has been added to the Creative Inventory for builders to use.
Items
  • You can now hold a torch in your off-hand while carrying any type of seed.
  • All types of Gravel and their half-block variants may now be crafted at the Farming Bench.
    • The base 'Gravel' block now specifically requires 'Stone Rubble' rather than any Rubble.
    • 'Shale Gravel' now specifically requires 'Shale Rubble' rather than any Rubble.
    • 'Marble Gravel' now specifically requires 'Marble Rubble' rather than any Rubble.
Creative Tools
  • Added a Point Tool for Creative Mode. This tool allows you to place points that can be named, given tags, and teleported to. Points persist within the world, may be copied into prefabs, and come with their own Point Inspector UI panel.
  • Trigger Volumes now have an 'On Signal Received' event. Add a 'Send Signal' effect to any volume and it will fire the effects of other tagged volumes on demand, separate from their normal enter, exit, and tick behavior.
UI & Quality of Life
  • Server Discovery now supports custom server images. If an image isn't set or approved, the default image will be displayed.
  • A new 'Host With Quiche Transport (Experimental)' toggle has been added to the Settings menu. When turned on, any world you host runs on an experimental network transport.
Performance
  • World generation is now considerably faster!
  • Portals to the Dragonspire Weald should now take less time to appear.
  • World generation now uses fewer cores on Apple Silicon Macs to improve framerate.
  • The maximum number of chunks that can be loaded each frame has been increased.
  • Joining a friend's hosted world will now generally connect much faster.
  • Joining a server now has more time to complete its connection. This should result in more successful connections for those with slower or less stable connections.
Bug Fixes
Combat, Entity & Item
  • Fixed an issue where certain resized entities had incorrect collision and positioning.
  • Fixed an issue where some items could display the wrong quality tier.
  • Fixed an issue where NPCs could sometimes take a longer route than necessary. (Community contribution by MelodicAlbuild.)
World & Block
  • Breaking Mossy Stone Rubble will now drop it as an item, so it may be used in crafting recipes.
  • Fixed an issue where props and other objects placed in older versions could have their collision settings swapped.
  • Fixed an issue where explosions could deal the wrong amount of damage to blocks.
  • Fixed an issue where some blocks could spread incorrectly when fluid was above them. (Community contribution by MelodicAlbuild.)
Creative
  • Fixed an issue in the Color Tool where gradient mode would not properly update the guiding line and material weights after an empty material was removed from the list of materials.
  • Renamed a Color Tool control setting from 'Increase Height' to 'Decrease Height'.
Audio
  • Fixed an issue where two music tracks could play simultaneously during certain moments, rather than the previous track fading out before the new one began.
Control & Input
  • Block and entity interactions will now work while a server has the camera locked.
Rendering
  • Fixed an issue where entity effect particles could linger and reappear after the entity left and re-entered view range.
  • Fixed an issue where scaled entities could look shrunken when the game was paused.
  • Staring directly at the sun will no longer cause shadows to disappear but is still generally considered a bad idea.
UI
  • The Map Marker menu will no longer render off-screen when placing a marker near the bottom of the screen.
  • Fixed an issue where version mismatch and connection timeout messages were not showing their text correctly when being disconnected before fully joining a server.
  • Fixed a number of localization errors.
  • Fixed an issue where the world map showed faint dark dots at the corners of each chunk. (Community contribution by TheNullicorn.)
Other (Crashes & Stability)
  • Fixed a crash that could occur when connecting to a server that sent an oversized or malformed chunk data packet.
  • Fixed a crash that could occur when an entity was removed while the game was updating which entities are visible.
  • Fixed a crash that could occur when a server locked and then reset the camera.
  • Fixed a crash that could occur when an entity leaves the world while other entities are still tracking it.
  • Fixed a crash that could occur when loading an NPC whose saved active movement controller type no longer exists.
  • Fixed a crash that could occur when using an item interaction with an empty hand.
  • Fixed a crash that could occur on the avatar customization screen.
  • Fixed a crash that could occur immediately after spawning into a world.
  • Fixed crashes that could occur when signing out or closing the game while a friend request or invitation was pending.
  • Fixed a crash that could occur when loading a character model with incomplete camera settings.
  • Fixed crashes that could occur when switching camera modes, mounting a vehicle, or starting a wielding interaction before the player model finished loading.
  • Fixed a crash that could occur during certain interactions whose camera animation had no rotation defined.
  • Fixed an issue where large or complex asset files could fail to load or produce incorrect numeric values.
  • Fixed a gradual video memory leak that could occur during play, particularly when using the Ruler and Selection Tools.
Modder-Facing Changes
NPCs, Entities & Encounters
  • NPCs can now run actions against multiple world positions at once. Add an ActionForEach action to your NPC role config with a position-set sensor to execute a child action list at every returned position, enabling patterns such as spawning a ground indicator under each nearby player.
  • Added a new ActionProjectToGround action and SensorProjectToGround sensor that snap each position in a set down to the nearest solid ground surface below it. Handy for placing ground-level effects under targets that are airborne.
  • Added a new ActionAdjustPosition action used to offset each position in a ForEach set by a fixed vector before further actions run.
  • Added a new SignalTaggedVolumes action for NPC and EncounterManager instruction lists. It searches for trigger volumes carrying a given tag within a configurable radius and immediately fires their SIGNAL_RECEIVED effects.
  • Encounter managers can now control the music playing for all participants. Add StartEncounterMusic, SetEncounterAudioState, or StopEncounterMusic actions to an encounter instruction list and attach an EncounterAudioCollector to any entity sensor to populate the participant list. Late joiners receive the current music state automatically, and players who leave return to regular music.
  • Added a new SpawnInteraction NPC action that launches a named root interaction at every position a sensor returns. Set OrientationSource and optionally Pitch/Yaw to control the launch direction.
  • Added a new SensorPoints sensor for NPC and Encounter Manager roles. Set Type: "Points", a Tag, and a Range to gather all tagged world points within that radius as a position set for ActionForEach to act on. This works with points placed using the Point Tool.
  • ActionForEach now accepts a MaxCount field. When the position set is larger than the limit, positions are chosen at random using reservoir sampling rather than always taking the first N.
  • State evaluators can now use a TimeSinceLastUsed condition to put a cooldown between state selections, with the Test_State_Evaluator_TimeSinceLastUsed example role. (Community contribution by TheNullicorn.)
  • Fixed a state option's SubState writing to the main state field, which overwrote the state and dropped the substate. (Community contribution by MelodicAlbuild.)
  • Fixed combat balance assets not inheriting their combat action evaluator config from a parent asset. (Community contribution by MelodicAlbuild.)
  • Fixed the NPC collision-sphere radius helper using the box depth in place of its height, so entity height was ignored. (Community contribution by MelodicAlbuild.)
  • Fixed the two-argument SteeringForcePursue constructor storing its stop and slowdown distances swapped. (Community contribution by MelodicAlbuild.)
World Generation
  • Fixed PositionsCellNoise ChoiceDensity resolving on an incorrect position. It is now resolved on each cell's origin.
  • Thanks to MelodicAlbuild for the following community contributions:
    • Fixed CellNoise2DDensityAsset and CellNoise3DDensityAsset corrupting their Jitter on save or round-trip.
    • Fixed SwitchStateDensity not working.
    • Fixed GradientWarpDensity sampling its Z gradient at the wrong point (Z used in place of Y), distorting gradient-warped terrain.
    • Fixed FastNoiseLite.pointFor() mirroring cell points across the diagonal.
    • Fixed ConcurrentSizedTimeoutCache evicting fresh entries and keeping expired ones.
    • Fixed Quad2d and Quad4d center calculations to use all four corners (the center of an irregular quad may shift slightly to a more accurate value).
    • Fixed VectorUtil's shortest-segment clamp using the wrong length bound for segments of differing length.
Asset Schemas & Formats
  • Added a new SpawnTriggerVolume interaction type that can be added to an item or projectile interaction config to spawn a configured trigger volume at the instigator's position.
  • Added a new ExpiresAt field on VolumeEntry that can set a time at which a trigger volume despawns automatically, without needing a separate cleanup interaction.
  • Fixed an issue where BlockDamageFalloff in ExplosionConfig was reading from entityDamageFalloff instead of its own field. Configs with different values for the two falloffs will now deal the correct block damage.
  • Fixed the generated common.json asset schema being invalid JSON, caused by RailPoint's Normal default (a zero vector) being normalized to NaN during schema generation. Rail-point normals that cannot be normalized are now left unchanged. (Community contribution by TheNullicorn.)
  • Fixed ParticleSpawner not inheriting its SpawnBurst setting from a parent particle asset. (Community contribution by MelodicAlbuild.)
  • Fixed ResetCooldown and TriggerCooldown interactions not inheriting their Cooldown override from a parent asset. (Community contribution by MelodicAlbuild.)
Server & Permissions
  • The server console now supports tab-completion for commands, subcommands, arguments, and flags. Using the /help command within the console prints a formatted command list and per-command usage.
  • The /update status and /update check commands will now output in the server's configured language rather than always in English.
  • Added a new /worldgen2 concurrency <level> command that overrides the world-gen V2 worker thread count at runtime. The override resets on server restart, and passing 0 will restore the server default.
  • Added a new maxviewradius server console command to set the server's global maximum view radius:
    • maxviewradius reports the current view radius cap.
    • maxviewradius <n> sets the max view radius to between 1 and 512 chunks.
    • maxviewradius reset sets the max view radius to the default of 32 chunks.
Protocol & Networking
  • To support the new Point Tool, new point packets and a PointShapeType enum have been added to PlayerPackets.
  • ClientTeleport now carries two new bitmask fields: IgnoredTransformFields and RelativeTransformFields, both default to 0 for backwards compatibility. Use ModelTransformFields enum values to mark individual transform axes as skipped or as relative offsets when teleporting. The old NaN sentinel for partial teleports is no longer supported.
  • All float, double, Vector, Quaternion, and Matrix protocol fields now enforce finite values on send and receive. Plugins passing NaN or infinity in any packet field will now receive a protocol error.
  • Servers can now override a player's field of view while a custom server camera is active with the new FovOverride field. The value can be set between 1 and 180 degrees. Omit the value or set it to 0 to restore the player's own setting.
Renames & Deprecations
  • Several boolean-parameter overloads of PrefabUtil.paste and PrefabUtil.remove are now deprecated and will be removed in a future update. Switch to the new flag-based overloads using PrefabUtil.Flags constants such as FORCE and NO_ENTITIES.
For Plugin Developers
  • PluginManager now has a getPlugin(Class<T> pluginClass) method that returns the first loaded plugin assignable to the given type, or null if none is loaded. Use this instead of constructing a PluginIdentifier string when the plugin class is available directly.
  • The new Points built-in plugin exposes PointManager and PointSpatialIndex for creating, querying, and modifying world points from server-side code. Points integrate with the prefab system via PointPrefabContributor.
  • Protocol packets now automatically pack adjacent boolean fields into bitsets, fitting up to eight bools per byte. Any packet that had two or more adjacent bool fields has a changed wire layout.
  • The protocol now supports bitsets directly as packet field types. The Java side generates a companion class with named bit constants and has, with, without, and none helpers.
  • BlockEntity rendering behavior has been updated so that the visual center of the block model is now at the entity position (previously offset 0.5 blocks upwards), and an entity scale of 1.0 now renders at natural size (previously 2.0 was required for 1x size). Hitboxes are corrected to match, and existing block entities in worlds are migrated automatically.
  • ItemStack.getQuality() now returns the item asset's configured quality index when no explicit quality has been set on the stack, instead of always returning 0.
  • Fixed DeployableOwnerComponent cloning into an unrelated component type, which could attach a stray component when an entity that owns deployables was copied. (Community contribution by TheNullicorn.)
Part 4

Update 6 · Part 4

June 18, 2026
Headline Features
Creative Mode

Added a new Color Tool to Creative Mode!

  • The new Color Tool can be found in the Specialized Tools section within the Creative Inventory and has three modes to select from:
    • Coloring mode — replace blocks you are aiming at with another, and can preserve shape variants while doing so.
    • Gradient mode — paint smooth color transitions across an area.
    • Shading mode — apply lighter and darker tones based on a chosen light source, surface angle, or a custom palette.
New & Changed
Trigger Volume Tool
  • A single volume can now hold multiple independent rule sets on the same event. Group conditions and effects by having them share an Entry number together.
  • Added 2 new event types:
    • 'On Block Used' fires when a player interacts with a usable block such as a door, lever, or chest.
    • 'On Entity Died' fires when an entity within the volume dies.
  • Added 2 new conditions:
    • 'Block Used' allows you to filter by things such as a block type or state.
    • 'Entity Count' counts the number of living NPCs inside a volume. Combined with 'On Entity Died', this can quickly create encounters that require all enemies to be defeated to progress.
  • Added 2 new effects:
    • 'Spawn NPC' allows you to spawn one or more NPCs.
    • 'Play Animation' allows you to make the triggering entity, or all entities within the volume, perform an animation.
  • Adjusted 3 conditions:
    • 'Item Condition' now has additional options such as a 'Comparison' operator, 'Empty Inventory' toggle and can now specify metadata keys or values.
    • 'Block Type Condition' now has additional options regarding block rotation.
    • 'Tag Condition' now has a 'Doesn't Have Tag' option to invert the check performed.
  • Adjusted 8 effects:
    • 'Send Message' now has a 'Recipient' option allowing others to receive the triggered message.
    • 'Send Message' and 'Show Event Title' text can now include a volume tag's value by writing the tag's key in braces, such as {myKey}.
    • 'Play Sound' now has a 'Location' option and will default to the volume center rather than the triggering entity.
    • 'Run Root Interaction' now has an 'Equip Slot' field for using the 'Equipped' interaction type.
    • 'Place Block' and 'Replace Block Type' now have additional options regarding block rotation.
    • 'Teleport' now has a 'Relative to Volume' option.
    • 'Modify Tags' now has an 'Append' operation.
  • Added 4 new commands:
    • /triggervolume tag set can set a volume's tags from the chat interface.
    • /triggervolume tag remove can remove a volume's tags from the chat interface.
    • /triggervolume tp can teleport the player to a volume. This can now also be performed via the Trigger Volume's UI.
    • /triggervolume rename can rename a trigger volume. This can now also be performed via the Trigger Volume's UI.
  • Delayed and projectile-triggered effects will now fire at the correct location even after the projectile despawns.
  • Exit effects will now also run when an entity despawns or is removed, in addition to leaving the volume.
  • Resetting weather with a Trigger Volume will no longer briefly cause the sky to turn black.
  • Saving Trigger Volume Presets will no longer corrupt your Assets.zip. (Also fixed in hotpatch 0.5.6)
UI & Quality of Life
  • The Server Discovery screen can now be navigated with a controller.
  • The 'Use Legacy Network Stack' option has been removed from the settings.
Bug Fixes
Combat, Entity & Item
  • Fixed an issue where suppressing some specific NPCs from spawning could also incorrectly cause other unrelated NPCs to spawn.
  • Fixed an issue where NPC health would fully reset when reloaded.
  • Fixed an issue where NPCs would lose any active effects after being saved, reloaded, or duplicated.
  • Fixed an issue where summoned portals could fail to work if the destination world was just created but not yet fully loaded.
  • Portal devices will now show an error message and refund portal keys if the device was trying to open a portal to a world with no valid spawn location.
  • Fixed an issue where dying near a teleporter could still teleport the player.
  • Hedera eyes and mouths will no longer appear to be red.
World & Block
  • Fixed an issue where fluids placed by prefabs would always appear at maximum depth instead of the level defined in the prefab.
  • Fixed an issue where workbenches' hammer animation could not reset correctly when a tier upgrade was applied.
Creative
  • Fixed an issue where blocks would sometimes disappear when the place mode Placement Settings were set to 'Extrude' or 'Draw' and the distance was greater than the place distance.
  • Fixed an issue where blocks would ignore the no-physics setting when the place mode Placement Settings were set to 'Extrude' or 'Draw'.
  • Fixed an issue where the 'Eraser' mode in the Placement Settings could only be used with a block in hand.
  • Fixed an issue where 'Air Placing' would remain enabled after opting to reset Placement Settings.
Control & Input
  • Fixed an issue where emotes would continue to play when attacking or using items.
  • Fixed an issue where the sprint toggle could remain active in some situations.
Lighting
  • Very dark colors should now render at their correct brightness instead of appearing as purely black.
  • Bloom lighting now keeps its correct shape after resizing the game window.
Other (Crashes & Stability)
  • Hardened a few places in the client and protocol to prevent client crashes on custom server implementations.
  • Fixed a crash that could occur when multiple players join a server at the same time. This should also fix an issue where some players would not be displayed in the player list.
  • Fixed a crash that could occur when the game encountered an unrecognized block type while calculating audio.
  • Fixed a crash that could occur if the locally cached server list file got corrupted.
  • When a wrong system clock causes a login failure, the game will now show you how far off your clock is and prompt you to sync it instead of showing a generic error message.
    • Additional changes have been made on the services side to be more lenient of a fast system clock.
  • Fixed a client crash when a server locks the camera and then resets it.
  • Fixed block and entity interactions no longer working while a server has the camera locked.
  • Fixed a client crash that could occur when a server locks and then resets the camera.
  • Fixed an issue where block and entity interactions would stop working while a server has the camera locked.
  • Fixed a small VRAM leak caused by some specific locations that use text rendering.
Modder-Facing Changes
Creative Tools
  • You can now enable Builder Tools outside Creative Mode. Set SurvivalAllowed: true in a tool's asset JSON and grant players the matching permission (hytale.editor.tool.entity, hytale.editor.tool.ruler, or hytale.editor.tool.laserpointer). Both the flag and the permission are required.
Entities & Items
  • Added a new EncounterManager JSON asset type that lets you script multi-NPC encounter logic using reusable NPC instruction lists. Spawn an encounter in-world with the /encounter add <asset> command.
  • ActionTriggerSpawners can now mark the NPC it spawns as a boss target for encounter tracking. This can be accomplished by setting MarkAsTarget: true in the spawn action config.
  • Added a new EntityFilterDeath filter that lets role sensors react when a tracked entity dies.
  • NPCs now record all entities they have spawned and all entities those spawns produced. You may use SpawnLineageAttitudeProvider to set attitudes toward the full lineage.
  • Added a new ActionChangeTargetRole action that lets an encounter switch an NPC to a different role at runtime.
  • Marked targets now persist briefly during role changes, preventing target loss when an NPC transitions between roles.
  • Spawn suppression now correctly scopes to NPC groups. A suppressor with no SuppressedGroups continues to blanket-suppress all markers in range as before. A suppressor that lists groups now suppresses only markers whose NPCs belong to one of those groups.
  • Added a new BreakShape field to ItemTool assets that allows tools to break a configurable area of blocks per swing. Set BreakShapeDurabilityMode to PerSwing or PerBlock to control how the tool loses durability.
Asset Schemas & Formats
  • Added a new ClearParticlesOnRemove boolean field on ModelParticle assets. By default this is set to false; setting it to true will instantly clear all attached particles the moment a block or an entity is removed from the world or from the player's hand.
  • BlockBreakingDecal.StageTextures is now validated as non-null at asset load. An absent field defaults to an empty array and will load without issue. A field explicitly set to null will fail validation at load time.
  • Fixed MergedEnumMapCodec so that unrecognized enum values no longer cause the whole asset to fail decoding.
For Plugin Developers
  • Box.cube() and Box.centeredCube() now accept Vector3dc and Vector3ic interface types instead of the concrete Vector3d and Vector3i classes. Existing call sites passing concrete types need no changes.
  • When a server sends an invalid CustomUI command and the client disconnects, the error log now shows the message chain instead of a full stack trace.
  • ItemStack now carries a Quality field that overrides the item's configured quality index at runtime. Use itemStack.withQuality(index) to produce a copy with a different quality.
  • The handle method on AnchorActionHandler and WorldThreadAnchorActionHandler no longer takes a JsonObject data argument.
Part 3

Update 6 · Part 3

June 11, 2026
New & Changed
Entities & Combat
  • Scaraks have toughened up and will no longer be damaged by environmental hazards such as brambles. They've also developed an immunity to poison.
  • Tamed Mosshorn have developed a taste for the feedbag and will be attracted to it.
World & Blocks
  • Rise and shine! Sleeping through the night now causes you to leave your bed.
  • Arid Palm Leaves and Giant Palm Leaves now drop 1–5 Palm Tree Logs when broken.
  • Eternal Corn crops now yield twice as much Corn. Farmers should now receive 2–4 instead of 1–2.
Audio
  • Mushroom blocks will now play distinct sounds when they are walked upon, damaged, broken, or landed on.
  • Crystal and gem blocks will now play distinct sounds when they are walked upon, damaged, broken, or landed on.
  • Walking and landing on glass blocks will now play distinct sounds.
  • The Kweebec Plushie will now play distinct sounds when it's hit, broken or interacted with.
Naming & Categorization
  • The 'Environment' category in the Quick Settings has been renamed to 'Personal Environment' to make it clearer that these are your own client settings and separate from the world settings.
Bug Fixes
Avatar & Customization
  • Fixed an issue where other players' mouth animations would sometimes not play during voice chat.
  • Dying to fall damage while wearing armor will now result in a more appropriate animation playing.
Combat, Entity & Item
  • NPCs that charge should no longer stop abruptly when blocks are placed.
  • Tamed animals should no longer unexpectedly despawn when there are a lot of the same animal type in the area.
Block & Item
  • Fixed a crash that could occur when throwing a Healing Totem while moving between worlds.
  • Saplings will no longer be prevented from growing if there is insufficient room for their roots.
  • Breaking newly-planted Aubergines and Lettuce will now return their seeds.
  • Fixed an issue where inventory items could be corrupted or duplicated through malformed move and drop requests.
Creative
  • Fixed a crash that could occur when spawning NPCs using the /spawn command.
  • The autocomplete for commands such as /set, /fill, /replace, and /walls will now correctly show relevant block names.
Control & Input
  • Key bindings will now update correctly when you switch your keyboard layout or language.
  • Keyboard shortcuts will no longer trigger when typing in input fields.
  • Included profiles for more gamepad models. Previously, some gamepads were not recognized properly, resulting in unexpected behavior.
Rendering
  • Fixed an issue where shadows could appear missing or cut off at certain viewing distances and angles.
Other
  • Fixed various additional crashes.
  • Fixed a number of typographical errors.
Modder-Facing Changes
World Generation
  • Pin labels on the VectorProvider nodes (Adder, Cache, Cross, Multiplier, Normalizer, PlaneProjector, ScalarMultiplier, SetX/Y/Z, Subtracter) were renamed for clarity in the node editor.
Blocks, Prefabs & Farming
  • You can now stop players auto-stepping onto a block. Set DisableAutoStep: true in its BlockMovementSettings and players must jump up instead — useful for ledges and fences.
  • Prefab-grown plants (like saplings) can now tolerate obstructions within a height band instead of failing to grow. Add TolerateObstructionsBelowY / TolerateObstructionsAboveY to PrefabFarmingStageData (prefab-relative Y, origin block = 0) to mark a band where blocking world blocks are skipped rather than cancelling growth; ReplaceMaskTags still controls which blocks get replaced. Built-in saplings now default to TolerateObstructionsBelowY: -1. (Overlapping bands disable obstruction checks entirely and log a server warning.)
Items, Armor & Projectiles
  • Armor can now change how the player moves. Add a MovementSettings block to an ItemArmor asset to override walk/sprint speed, jump height, air control, and more per piece.
  • Projectiles can now ignore where the caster is aiming. Set IgnorePitch or IgnoreYaw on a LaunchProjectile or ProjectileConfig to lock that axis — handy for traps, turrets, and fixed-direction spells. Add RotationOffset to nudge the angle.
Protocol & Networking
  • Voice settings are now exposed to the server using the SyncPlayerPreferences. It has three new fields: VoiceChat, VoiceInput, and VoiceInputMode.
For Plugin Developers
  • Code-level changes — content/asset modders can skip this section.
  • Some code has been updated to use the JOML interface types (Vector3dc / Vector3ic):
    • The Teleport constructor
    • BlockIterator.iterateFromTo()
  • Custom NPC behavior code needs updating. NPC support objects (combat, state, world, etc.) are now ECS components instead of fields on Role / NPCEntity, and behavior methods now receive a Ref<EntityStore> + ExecutionSupport. Update any custom Sensors, Actions, or Motions. SpawnableWithModelBuilder is now DependencyTrackingBuilder.
  • Plugin code that called NPCEntity.getAlarmStore() directly should now read the AlarmStore ECS component instead. Existing saves migrate automatically — no action needed for save files.
Part 2

Update 6 · Part 2

June 4, 2026
New & Changed
Combat, NPCs, Items & Equipment
  • Removed Template_Aggressive_Zombies, its root interactions and its associated attack sequences. Zombies now use Template_Predator.
  • Added new death visual effects to several NPCs.
  • NPCs can now spawn with multiple entity effects active.
  • Added a new Template_Flying_Aggressive template meant to be used by flying hostile NPCs capable of ranged attack. Template_Eye, Template_Spirit and Template_Scarak_Seeker are now deprecated.
World & Blocks
  • Added the in-dev Graph System to World-Gen V2.
    • Added WhiteNoise Density.
    • Added Transparent MaterialProvider.
    • Added DirectionalJitter Positions.
    • Added VectorOffset Positions.
    • Added Anchor PropDistribution.
    • Added the following VectorProviders: Adder, Cross, Multiplier, Normalizer, Random, ScalarMultiplier, SetX, SetY, SetZ, Subtracter, VectorProjector and PlaneProjector.
  • Added an Explosive Block Component.
  • Added a new Wilderness Tracking system; it identifies areas of the world as being "Near Home" or "Wilderness" based on the player bed locations.
Modding & Creative Tools
  • Added support that allows control of whether a projectile's spawn position rotates with the entity firing it.
  • Implemented dev settings to tweak soft collisions based on entity hitbox volume.
  • Reworked soft collision radius to consider hitbox size.
  • ControlDoorsEffect and DoorInteraction now use a new DoorBlockUtils utility function to avoid duplicate code.
  • Added a Texture Atlas API — a unified API for compositing multiple keyed images into a single GPU texture.
  • The Asset Editor's item preview now respects an item's Model override, matching how the item appears in-game.
Audio
  • Audio Bus and Ducking rework.
    • When multiple sounds play at once, the game needs to decide which sounds to turn down so they don't overlap and fight in your ear. The new system allows better control over how and when sounds duck and quickly fade out.
  • Added sounds for walking and landing on sticks on the ground.
  • Added a new break sound for Deco_Treasure blocks.
  • Added new sounds for cactus blocks: walk, land, hit and break.
Bug Fixes
Movement
  • Added a guard to prevent Sprint from toggling while managing the inventory.
  • Reset orientation when dismounting sideways mountable blocks.
  • Fixed entity rotation when a mountable block is placed sideways on the X or Z axis.
  • Fixed sprint toggle mode no longer ending when you stop moving.
  • Sprinting is now preserved after sliding.
  • Fixed rolling failing to negate fall damage.
  • Fixed some controller-related settings resetting between restarts.
Combat, Entity & Item
  • Fixed Trork Hunter combat state loop when the NPC doesn't have a companion wolf.
  • Fixed Dungeon Variant NPCs not providing the correct memories.
  • Snowy Fir Leaves can be rotated like the other Fir Leaves.
  • Feed Bag can now rotate to player facing direction.
  • Fixed chests disappearing when combined into one while open.
  • Resolved an issue where crafted items could be utilized as ingredients for creating duplicates of themselves.
  • Fixed an issue causing livestock to not produce properly.
World & Block
  • Fixed player always facing North after using the World Map teleportation.
  • Added logic to use a fallback generator when WorldStructure cannot be built.
  • Fixed a series of defects that could cause SingleInstance to generate artifacts.
  • Fixed a defect causing all WorldStructure assets to be dropped when any WorldStructure asset is refreshed, preventing players from joining new instances when loading mods.
  • Texture fixes for Clay Raw Brick Half and Ornate Stone Brick.
Creative, Modding & Plugin
  • Fixed crash in SpawningContext caused by ground level rotation check when level is below 0.
  • Fixed a crash with the Trigger Volume tool.
  • Fixed /submerge and /set commands for fluids.
  • Fixed client crash when secondary interaction was added to Unarmed.Empty.
  • Updated Trigger Volumes trigger effects to make use of the chunk ref/store for accessing chunk data.
  • Fixed Trigger Volumes spawning broken in worlds.
  • Using /worldgen reload now properly deletes existing Trigger Volumes.
  • Fixed the mod manager warning that read "targets 0.5.1 but the current game version is 0.5.1" when a mod declared a bare ServerVersion like 0.5.1.
  • Fixed the Sculpt Tool crashing world at max world height.
  • Fixed /pedit spawning chests instead of prefab spawners.
  • Fixed Builder Tool Density clamp to a minimum of 0 rather than 1.
  • Changed the durability condition interaction so that it always succeeds when an item is unbreakable.
  • Improved prefab saving support modes, validation and overwrite flow.
  • Quantity field in CraftRecipeAction now requires a minimum quantity so that <0 numbers don't crash the server.
  • Adjusted caching behavior of search for command tab completion.
  • Fixed Pick Block for Extrude and Line tools.
  • If a duplicate localization key exists in a language file, a warning is now displayed instead of an exception being thrown.
  • Fixed reloading a layered asset pack sometimes reverting a customized asset back to the value it inherited from its parent.
UI & Display
  • A number of changes were made to the Server Discovery menu.
    • Server addresses are now hidden by default.
    • Fixed text not updating when the game's language was changed.
    • Server descriptions are now scrollable.
  • Fixed an issue where the social sidebar panel would jitter or snap to incorrect positions after being opened and closed multiple times.
  • Fixed players in the local (Your World) tab all showing the default avatar when their profile was not already cached.
  • Fixed the social sidebar friends scroll list getting stuck when the list was too large.
  • Hardened friends display names from rendering blank in the in-game Social Sidebar.
  • Fixed friend lookups failing when you import a large Discord friends list.
    • Lists over 500 people now load fully instead of erroring out.
  • Fixed Fullscreen toggle loop with F11.
  • Fixed F keys being not usable while UI windows were open in-game, such as the inventory or crafting UI.
  • Fixed double placing in storage & hotbar when using right-click drop.
  • Fixed icons updating when rebinding keyboard or controller keybindings.
Stability & Performance
  • Fixed a server crash that could occur when using a fluid-placing interaction with an empty hand.
  • Fixed a rare server crash caused by an entity spawning with an invalid rotation.
  • Fixed a client crash that could occur when clicking, typing, or using a controller while reconnecting or returning to the Main Menu.
  • Fixed a client crash that could occur when editing text in multi-line text fields.
  • Fixed a client crash that could occur when near a container holding an item with zero durability.
  • Fixed a memory leak that could occur after ending a session.
  • Fixed a rare crash when reloading assets.
Other
  • Fixed player death markers not appearing on the map if it occurred far from the spawn point.
  • The in-game bug reporting form now supports video attachments.
  • Fixed inventory input getting cleared when the game loses focus.
  • Fixed audio stuttering when the selected output device is unavailable.
  • Added checks in the game server to log warnings for potentially misbehaving game clients during interactions.
  • Fixed a number of typographical errors.
  • Avatars that reference renamed cosmetics will now be automatically repaired when you log in, instead of preventing you from joining. You'll be shown which cosmetic slots changed.
Part 1 · Hotfix 1

Update 6 · Part 1, Hotfix 1

May 29, 2026
Bug Fixes
Movement
  • Sprinting is now preserved when crouch-sliding, instead of dropping back to a walk.
  • Fixed the sprint input not resetting correctly when coming to a stop.
  • Rolling on landing now correctly reduces fall damage.
Stability & Performance
  • Fixed a deadlock that could occur when inviting a friend to a singleplayer world.
  • Fixed a memory leak that could occur after leaving a world.
  • Fixed a rare race condition that could result in incorrect block lighting.
UI
  • Long server descriptions can now be scrolled in the server details menu.
  • Fixed the Friends list scroll getting stuck when the list is long.
  • Fixed a confusing mod compatibility warning shown for mods that target a bare version.
World Generation
  • Fixed WorldStructure assets not reloading correctly.
Part 1 · The First Drop

Update 6 · Part 1

May 28, 2026
Headline Features
Builder Quality of Life

Save and reuse Block Palettes with the new Block Palette Presets!

  • A new side tab has been added to the Quick Settings menu to manage your block palettes.
  • Save block palettes as presets and load them back at any time.
  • A new Palette Editor lets you create, save, delete, and restore block palettes, with a color picker and a block eyedropper for selecting palette colors.
New & Changed
World & Blocks
  • Grass will no longer spread under water. Grass that has already been placed underwater will now slowly revert back to dirt.
UI & Quality of Life
  • Server Discovery: Servers with more than 4 tags will now show the first 3 tags followed by an overflow indicator. Hovering the overflow indicator displays the remaining tags in a tooltip.
  • The Creative item library will now always delete items dropped into it, including when they are dropped into empty slots.
  • You may now drop items one at a time from a stack in the Creative item library by right-clicking.
  • The 'EU' region name has been updated to 'Europe'.
Modding & Creative Tools
  • Added a new world setting, 'Resolve Block Spawners', which controls whether block spawner blocks resolve into their target blocks (such as whether chests spawn in).
  • The image and OBJ importing tools now use the new TextureComputedColor field (a dominant weighted color average of each item's textures) instead of the particle colors when matching block colors, giving more accurate imports. The importing tools will also filter out special quality items so they cannot be used in imports.
  • Added a new button to the Asset Editor that regenerates the TextureComputedColor field from an item's textures.
  • The Selection Tool has been updated to better handle longer localized text.
    • The Delete button no longer overlaps with the slider.
    • The menu will stay within bounds when displaying longer localized text.
    • Text can now scale smaller for longer localized text.
    • The slider and dropdown widths have been slightly reduced.
Audio
  • Added new break sounds for Trash Piles, combining the clay pot and brazier metal break sounds.
  • Added new break sounds for the Brazier, with a different soundset for each brazier material type. The torch flare sound will no longer play when an unlit brazier is broken.
  • Added new sounds for breaking and walking on Leaves.
  • Added new sounds for breaking Brambles.
  • Added new landing sounds for Cloth blocks, adjusted the walk volume of Cloth blocks, and removed the success sound from Cloth block break.
Bug Fixes
Movement
  • Player speed will no longer be clamped when sprinting in Creative with a speed multiplier less than 1.
Combat, Entity & Item
  • Projectile spawn positions are now derived from the server's authoritative entity transform, with the client-reported position only accepted when it falls within a velocity-based desync allowance.
  • NPC and mount interactions now validate the player's distance to the target entity, preventing modified clients from interacting with NPCs or mounting entities from arbitrary distances.
  • Item entities placed by the Entity Tool will now correctly play their item animations after being picked up by a player.
  • The Brush Sound Volume setting is now correctly applied to all builder tools.
World & Block
  • Fixed a crash related to block and fluid IDs in chunk lighting being out of range.
  • Fixed an issue where blocks configured to fall would not.
  • Fixed a number of art issues with models, textures, and animations, including the Barrels, Iridescent block, Hardwood Fence texture, Green Mycelium model, small tavern chest clipping, and door clipping.
Creative, Modding & Plugin
  • The Paste Tool's offset will no longer reset after pasting.
  • The Ruler Tool will no longer display the summation symbol on its last point, as it was not rendering properly.
  • The Ruler Tool will now always place a point on the first run of an interaction, preventing unexpected behavior when placing points rapidly.
  • Some builder tools were displaying notifications when the Show Tool Notifications setting was disabled. They will now respect the setting.
  • Moved some raw strings in the Paste Tool to language keys so they can be localized.
  • Empty blocks in Block Filters will now be parsed correctly (the empty fluid ID is now treated as the empty block ID).
UI & Display
  • The Feline eye style in the Avatar Editor now correctly displays as "Feline" instead of "Felin".
  • The Plain Jersey overtop now correctly displays as "Plain Jersey" instead of "Plain Hoodie", which was colliding with the separate Plain Hoodie cosmetic.
  • Fixed a client crash that could occur in the inventory drag handler when a server inventory update resized the inventory between mouse-down and mouse-move.
  • Fixed a client crash in mouse element handling that could occur when a mouse-out handler reentrantly cleared the mouse element.
  • When the server kicks, disconnects, or times out a player, the disconnect screen will now show the actual localized reason that was sent by the server, instead of a generic error message.
  • Singleplayer worlds that fail to start will now show the actual error on the disconnect screen, instead of silently returning to the main menu.
  • Singleplayer worlds with a missing world directory will now show a clear "world not found" message on the disconnect screen.
Other
  • Fixed a number of typographical errors.
  • A corrupt Settings.json will now be automatically recovered from its backup file, instead of crashing the client.
  • Gamepad open failures will no longer be reported as a crash, as they are a local device condition and not a client bug.
Modders Warning · Breaking API Changes
Pre-release Part 2
  • BlockChunk#getEnvironmentChunk() has been deprecated. Plugins should fetch EnvironmentChunk directly via the chunk entity ref. Additionally, three methods on WorldChunk are now deprecated: #getBlockChunk(), #getBlockComponentChunk(), and #getBlock(int, int, int). All three should be replaced with direct component fetches via the chunk entity ref. For #getBlock, use BlockChunk#getBlock(int, int, int) fetched from the ref instead.
  • ProcessingBenchBlock#getProcessingSlots() and #getProcessingFuelSlots() now return ShortSet instead of Set<Short>. ProcessingBenchWindow#setProcessingSlots(ShortSet) and #setProcessingFuelSlots(ShortSet) now accept ShortSet as their parameter type.
  • PrefabSaverSettings#isClearSupportValues() and #setClearSupportValues(boolean) have been removed. Plugins must migrate to #getSupportMode() / #setSupportMode(SupportMode). The new SupportMode enum provides three values: KEEP_EXISTING (equivalent to the old false), REMOVE (old true), and CALCULATE (new; automatically bakes support values from world physics).
  • ExplosionUtils#performExplosion(...) now requires a Rotation3f rotation parameter, and passes new Rotation3f(0, 0, 0) to preserve existing behavior. BlockHarvestUtils#performBlockDamage(...) now requires a boolean isExplosion parameter, passed false to preserve existing behavior.
  • ControlDoorsEffect#DoorAction has been changed from public to private. External references to this enum must be migrated to DoorBlockUtils#DoorState, which is now part of the public API and covers the same states.
  • SpatialStructure<T> has had all method signatures updated to use JOML immutable interface types; parameters previously typed as Vector3d and Vector3i are now Vector3dc and Vector3ic respectively. Any interface must update its method signatures accordingly.
  • DurabilityConditionInteraction now returns true when the held item is unbreakable, instead of false. Interaction chains that previously used a durability condition as a gate to suppress actions on unbreakable items will now pass through instead.
  • The base permission string for plugins whose manifest name contains spaces will now use underscores in place of spaces. A plugin previously registered as "My Plugin" in the group "com.example" had a base permission of com.example.my plugin; it is now com.example.my_plugin. Any hardcoded permission checks or configuration entries referencing the old form must be updated.
  • CodecException#getMessage() now returns the full enriched message including key and source context. To retrieve the bare constructor-passed message, use the new #getRawMessage() method instead.
Pre-release Part 1, Hotfix 1
  • Transport#bind(InetSocketAddress) now returns CompletableFuture<ServerListener> and no longer declares throws InterruptedException.
Pre-release Part 1
  • The network protocol version has been bumped from hytale/2 to hytale/3. Clients and servers on the previous protocol version will be unable to connect. A new Crash = 7 QuicApplicationErrorCode has also been added.
  • BedsPlugin#getInstance() has been renamed to #get() to match the accessor convention used by Universe, NPCPlugin, FarmingPlugin, and ObjectivePlugin.
  • A new shared Universe#transferPlayerAsync() API has been added, centralising the "remove from world → await target world → addPlayer" pattern. Callers should now use this helper and retain only their own fallback/cleanup logic in whenComplete.
  • The WorldGen SingleInstance field has been marked as experimental.
  • World#getChunkIfInMemory, World#getChunkIfLoaded, World#getChunkIfNonTicking, World#getChunkAsync, and World#getNonTickingChunkAsync have been deprecated. Chunk data should now be accessed as components from the chunk ref directly.