PRE-RELEASE PATCH NOTES (UPDATE 7)

Posted by Hytale Team September 3, 2026
PRE-RELEASE PATCH NOTES (UPDATE 7)

Hello, everyone!
Below you will find the pre-release patch notes for Update 7, which we will update weekly!

Please report any bugs via the in-game bug reporter, and submit any feedback/suggestions via the Feedback Request page. Be sure to note 'pre-release' in your feedback!

To access Pre-Release version: Enable via Launcher → Settings → Pre-Release

Thank you for your continued support! :hypixel-heart:

  • The Hytale team

Pre-Release (Update 7 Part 4)

September 24, 2026

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

The second wave of Chapter 1 content!

We are adding our second wave of content for the upcoming Chapter 1! The content is still being actively developed, and things will continue to change between now and Chapter 1’s release. As before, please continue to send in your feedback and bug reports, as these really help us to improve the content further!

For this pre-release, you can begin engaging in Chapter 1 content immediately by visiting the Forgotten Temple. Alternatively, you can wait a few days and see what happens. A lot of what you’ll encounter in this second wave deliberately isn’t mentioned in these patch notes, so you’ll have to experience it for yourself!

Localization

  • French has now been added to the list of available languages!

Runestones

  • Runestones have now been renamed to only include the ability name.
  • Runestone tooltips now show whether a runestone is an Ability Runestone or a Modifier Runestone.
  • Ability Runestones are now Rare quality, and Modifier Runestones are now Uncommon quality.
  • Added the Chain Hook Ability Runestone. This rune grants the ability to throw out a hook that damages your enemies and reels them toward you.
  • Added the Charged Shot Ability Runestone. This rune grants the ability to channel a bolt of frost that, when released, deals damage and slows the enemy depending on how long it was charged.
  • Added the Expansion Runestone. This rune augments an Ability Runestone, causing its area of effect to be increased by 100%.
  • Added the Extended Duration Modifier Runestone. This rune augments an Ability Runestone, causing its duration to be increased by 2%.
  • Added the Fork Modifier Runestone. This rune augments an Ability Runestone, causing projectiles fired to be split into additional projectiles. These additional projectiles cannot fork again.
  • Added the Ricochet Modifier Runestone. This rune augments an Ability Runestone, causing projectiles fired to bounce off of enemies.
  • Increased the impact damage of the Ground Slam Ability Runestone from 10 to 15, and the damage of its earthen spikes from 20 to 35. The earthen spikes now launch enemies higher, the ability now roots the player for roughly half the previous duration, the weapon restrictions have been relaxed, and the cooldown has been increased from 14 to 18 seconds.
  • Reduced the damage of Wind Strike from 14 to 8, relaxed the weapon restrictions, and reduced the cooldown from 15 to 10 seconds.
  • Enrage’s animation has been updated.

Additional Combat Changes

  • Taking damage will no longer interrupt consuming food or potions.
  • Movement speed will now be reduced while consuming food or potions by 25% (previously 60%).
  • Food now takes 2.5 seconds to consume (previously 2-3 seconds, depending on the type).
  • Bread, Popcorn, and Cheese now restore 10% Health (previously 15%).
  • Consuming raw fruit, vegetables, or crops will now grant a minor Health regeneration buff for 1 minute. Raw meat, fish, and eggs do not grant this buff.
  • Buffs granted from consuming cooked food will now last 6 minutes. This affects Health regeneration, maximum Health, and the maximum Stamina buffs various cooked food can grant.
  • Attacking with a crossbow will now reduce movement speed during the attack by 50% (previously 0%).
  • Attacking with a sword, mace, or battleaxe will now reduce movement speed during the attack by 25% (previously 0-40% depending on the attack).
  • Attacking with daggers will now reduce movement speed during the attack by 15% (previously 0-50% depending on the attack).
  • Iron Crossbow combo shot damage has been reduced from 27 to 12.5.
  • Ancient Steel Crossbow standard shot damage has been reduced from 16 to 10.5, the combo shot damage has been reduced from 42 to 13.125, and the Signature Attack damage has been reduced from 123 to 82.
  • Arrows now set off Goblin Boom Barrels.
  • Sword, dagger, mace, and battleaxe attacks are now roughly 15% faster.
  • Sword hits will now cause less vertical knockback.
  • Swords and battleaxes have received new casting animations.
  • Swords will now play an enchanting animation when casting Poison Imbue or Wind Strike.
  • The animations used when carrying blocks have been updated.

NPCs & Entities

  • Non-Elite enemies you encounter in areas related to Chapter 1 will now flinch when hurt, interrupting their attacks. If an enemy is made to flinch too many times in a short duration, they will temporarily become immune to further flinching.
  • Void-aligned creatures will no longer appear within the Echo of Orbis at night.
  • Void-aligned creatures have been rebalanced, given new looks or attacks.
  • Goblin animations have been updated. They now walk, run, and look around while prowling.
  • Goblins can now sprint and run backwards.
  • The Goblin Feastmaster animations have been updated.
  • The Skeleton Elite (now renamed the Revenant Guardian) has retrieved its own armor and weapons
  • The Revenant Guardian has had their sprinting and running animations updated.
  • The armor worn by various Skeletons has been visually updated.
  • Goblin Scrapper, Miner and Guardian melee hits will now cause less vertical knockback.

World & Blocks

  • Added a ‘World Events’ option to the World Settings screen for Creative Worlds, so that they can be toggled on and off.
  • Creative Worlds will now have world events switched off by default.
  • Hedera’s Lair will no longer end in a void breach.
  • Foliage such as bushes, vines, leaves, or seaweed can no longer be broken with weapons.
  • Breaking player-placed foliage now drops the same things it would in the wild, such as sticks and berries, rather than the plant itself. Use shears if you want the plant back. As a reminder, shears can be crafted at the Farmer’s Workbench.
  • Shears may now be used to gather fallen leaf piles.
  • Coconuts have shrunk in size, baffling botanists.

Items & Interactions

  • Ruined Giant longswords and shields are now accessible in the Creative Inventory.
  • Added falling animations for the glider, played when Stamina runs out earlier than planned.
  • Whatever’s happening at the Forgotten Temple has made it too difficult to sleep there right now, so the bed can no longer be interacted with.

UI & Quality of Life

  • The Asset Node Editor in Creative Tools now opens on Linux.

Audio

  • Added 5 new exploration tracks to Zone 2.
  • Added 10 new exploration tracks to Zone 3.
  • Added 24 new exploration tracks to Zone 4.
  • Caves and sewers in Zone 4 now have their own music.
  • Added sounds to the Hookshot.
  • Added sounds to the Scrap Glider.
  • Ancient Platform Traps now play a sound as they break.

Commands

  • World events may be toggled on and off with the command /worldevent.

Graphics & Rendering

  • Softened the sun shadows very slightly.
  • Replaced the overlay that appears when using the Spyglass.

Naming & Categorization

  • The Runebinder’s Effigy is now referred to as the Runebinder’s Lattice.
  • Skeleton Elites are now referred to as Revenant Guardians.

Performance

  • Creatures that are far away from players will scan their surroundings for opponents less often.

Player-Facing Bug Fixes

Movement & Combat Fixes

  • Mantling will is now possible when stood atop a half-slab or horizontal beam.
  • Projectile impacts will no longer lose their visual and sound effect prematurely.
  • Adjustments to the horizontal movement speed from entity effects are now applied when in the air, swimming, climbing, or rolling.

Control & Input Fixes

  • The Home and End keys will now function within some additional menus and textboxes.

World & Block Fixes

  • Non-opaque blocks placed above crops will no longer prevent the crops from growing in cubic worlds.
  • When a world shuts down and the prior world is unloaded, that world will now be loaded correctly, rather than sending players to a fallback world.
  • Traveling between worlds will no longer cause terrain colors or lighting to bleed between them.
  • Trigger blocks will now fire every time a creature moves over them, instead of just once.

Item & Interaction Fixes

  • Updated the animations when consuming various foods, from raw meats to cooked vegetables.
  • Items can no longer be dropped while a block is being carried.
  • Oak Log Stairs will now be treated like wood, rather than stone.
  • Breaking blocks using a tool in the utility slot will now correctly reduce that tool’s durability.
  • Tools that uses the per-block durability loss mode will now lose durability for each block.
  • Updated the Scrap Drill’s animation.
  • Zooming in with the Spyglass will no longer prevent Stamina from recovering.

NPC & Entity Fixes

  • Entities that have been scaled in size will now have their hitbox scale with them again.
  • Goblins have gotten braver and will no longer run from almost every creature they encounter.
  • Goblin Turrets will no longer fixate on threats they haven’t seen or heard.
  • Larger creatures will now spawn more reliably with spawn markers.

UI & Quality of Life Fixes

  • The progress bar within the Portal World UI will now disappear when the time has run out.
  • The Portal World UI will no longer show a countdown, or report that time has run out, in worlds that have no time limit.
  • Longer Portal World names will no longer be cut off in some localized languages.
  • The Mod Browser will now skip over oversized or broken images, instead of trying to render them.
  • Ability slots in the HUD will no longer indicate they’re ready if they don’t have an ability assigned to them.
  • Utility items are no longer considered for weapon abilities and thus won’t display the ability slots in the HUD.
  • Lowered the position of the Stamina bar.
  • The red outline that can appear around the Stamina bar when Stamina is low will now have the correct shape.

Graphics & Rendering Fixes

  • Fixed an issue that could cause beams referenced by interactions to be marked as missing.
  • Sunshafts will no longer vanish when the time of day is changed.

Audio Fixes

  • Music transitions will no longer run longer than intended when a fade has a delay in front of it.
  • Sounds that are attached to creatures or projectiles will now play smoothly if you move alongside them.
  • Caves in Zone 4 will now play the intended Zone 4 cave music, rather than overworld music tracks.

Performance Fixes

  • Opening the world map will no longer cause the world to temporarily stall.
  • Teleports and respawns will no longer be delayed while the server is generating terrain elsewhere.

Localization Fixes

  • Removed placeholder tags from a number of items and descriptions.
  • After an awkward dinner party, we’ve concluded there is a difference between fishbones and salt, and we’ve updated ingredient names accordingly.

Stability Fixes

  • Fixed a crash that could occur when a chunk unloaded while its animated blocks were updating.
  • Fixed a crash that could occur when an item, block, or ability was used and the client did not recognize the interaction.

Modder-Facing Changes

World Generation

  • Added an Example_Vector_Offset_Constant biome that provides an example of how to build a constant value random vector offset.

NPCs & Entities

  • A single NPC can now stay damageable in worlds that switch off NPC damage. The new IgnoreDisableNPCIncomingDamage flag on a role makes that NPC ignore CombatConfig.DisableNPCIncomingDamage. Test_Dummy_Stationary has this enabled by default.
  • NPCs can now also switch targets if LoS to the previous one has been lost.. The new TargetRequireLoS parameter on Component_Instruction_Combat_Target_Swap (true by default) keeps the current target prioritized only while line of sight holds, and the default TargetSwitchTimer range moved from [5, 5] to [4, 6] so switches no longer happen in lockstep.
  • Prowling NPCs can now glance around while they search. Component_Step_Generic_Detection has been given an Observe flag (true by default), as well as ObserveAngleRange, ObservePauseRange, and ObserveRelativeTurnSpeed to shape the head motion.
  • NPC roles can now react to being hit. Running Component_Instruction_Hit_Interrupt on a role now gives it a 0.5 second flinch, a 0.7 second attack delay and temporary protection after three reactions occurring within four seconds.
  • Models that use a different flinch move can override FlinchAnimation on that component, which otherwise plays Hurt in the Action slot.
  • Attack instructions and roots need to check for the absence of Hit_Interrupt_Stunned so a queued attack start gets blocked, and offensive roots have to keep their Attack tag for the cancel to find them.
  • A custom attack can tell the system where its counterattack ends. Hit_Interrupt_Begin_Protected_Attack goes after the start gate and Hit_Interrupt_Finish_Protected_Attack after the final swing and recovery, otherwise protection just times out after eight seconds.
  • An NPC role can now hide the healthbar or the damage numbers that draw above it. The new HiddenUIComponents key takes a list of EntityUIComponent ids such as ["Healthbar"], and leaving it out keeps everything visible as before.
  • Spawn markers can now hunt for a position that actually fits the NPC. SpawnPositionSearch takes Line to follow the marker orientation or Range for a bounded two-dimensional sweep, and MaxHorizontalSpawnOffset sets how far it looks, up to 16 blocks.
  • Markers now check their own placement. ValidatePosition rejects a marker buried too far inside solid blocks, and ValidateBelowPosition rejects one sitting over an empty column, looking up to 192 blocks down.
  • Range searches can now be pinned to the height you placed the marker at. RequireFitAtMarkerHeight restricts the search to vertical spans that contain the marker Y.
  • SpawnPositionSearchDebug reports on a failing search with either Summary or Map diagnostics, and range search failures now log why each candidate was turned down.
  • Spawn position limits are now bounded. MaxDropHeight tops out at 32 blocks, BlockOverlapHeightCompensation at 4, and non-finite or out-of-range asset values are rejected as the asset decodes.

Items & Interactions

  • Every bed now shares one Block_Bed root interaction carrying the Type=Bed tag, so a bed no longer defines its own use interaction inline.
  • The shared on-hit chain moved out of DamageEntityParent into a named DamageEntityParent_On_Hit. An asset that overrides Next can point back at that chain to keep normal damage and the usual hit effects.
  • A wielding interaction can now let stat regeneration carry on while it is held. Setting the ”IgnoreForFlaggedConditions” parameter on a Charging or Wielding interaction to true will allow it to be ignored by Charging and Wielding conditions that have the “UseIgnoreFlag” parameter set to true.

Blocks & Prefabs

  • UseDefaultDropWhenPlaced is gone from 45 foliage assets, so player-placed bushes, berry crops, grass, leaves, moss, vines, reeds and seaweed fall back to their normal drop lists. Prefabs built with that flag no longer hand out the plant itself.
  • Plant_Leaves_Autumn_Floor, Plant_Leaves_Jungle_Floor and Plant_Leaves_Poisoned_Floor each gained a Shears entry in Gathering.Tools.
  • Generated loot containers, such as chests found in prefabs, can now be configured to stay open once emptied. The new StayOpenWhenEmpty flag on ItemContainerBlock keeps an empty container in its open block state when the last window closes.

Asset Schemas & Formats

  • One music layer can now enter an audio state on its own schedule. A StateDelta takes an optional Fade block with Duration, Curve and Delay, and any field you leave out still falls back to the axis.
  • Fade.Duration and Fade.Delay are BarBeatDuration values, so a subscriber with no tempo keeps only the Ms component. The server now rejects bars or beats on an audio category, an ambient bed or a sound event, and it also rejects a negative fade value or a Fade with nothing set.
  • Grouped the loose encounter manager assets into folders by purpose, covering examples, music, elite NPCs and world events. Encounters still bind by bare file name, so the move changes nothing at runtime.

Server & Permissions

  • The Asset Editor plugin ships a sample EditorPropertyGallery asset that shows every property control in one file. It stays unregistered until you create mods/Hytale_AssetEditor/config.json with EnablePropertyGallery set to true and restart the server, after which Gallery_AllControls.json opens in the editor.
  • World events can now be switched on and off per world with /worldevent enable, which takes true or false and toggles when you leave the argument off.
  • The WorldEvents plugin stores an EnableWorldEvents flag in a new WorldEventsWorldConfig, and new Creative worlds get it set to false.
  • Portal instances accessed via TeleportInstanceInteraction can now stay around between sessions when their asset asks for it. Worlds spawned from the portal device summon page still set setDeleteOnRemove and setDeleteOnUniverseStart themselves, so those stay temporary and get swept on the next start.
  • A world can now switch off specific interactions. The new BlockedRootInteractionTags list in GameplayConfig.WorldConfig takes root interaction tags, and anything matching is blocked on the server and hidden from the HUD.
  • /spawning markers debuginvalidmarkers now highlights invalid marker placements and revalidates markers that are moved or rotated, and /spawning markers autoremoveinvalidmarkers switches automatic removal of failing markers on or off.

Renames & Deprecations

  • Renamed the Bear_Voidtaken_Tentacle_Model and Bear_Voidtaken_Tentacle_Marker_Model server models to Bear_Voidtaken_Tentacle and Bear_Voidtaken_Tentacle_Marker, with the roles that use them updated to match.
  • Removed the Carryable_Block item animation asset. The throw now lives in Block.json, and Throw_Carryable_Block points at the new Heavy_Throw animations.

Protocol & Networking

  • A server must now declare the true asset size in AssetInitialize. The client disconnects a server that sends more bytes than it declared, and a single asset is capped at 256 MiB.

For Plugin Developers

  • Nine legacy column accessors on WorldChunk and BlockChunk are now marked @RestrictedApi, so a plugin that still calls getBlockChunk, getFiller, getRotationIndex, getHeightmapColumn, getFluidLevel, getSupportValue, setState or setEnvironmentRange no longer compiles if errorprone is used. The replacement is the BlockSection component of the section ref from ChunkStore.getChunkSectionReferenceAtBlock.
  • Audio binding validation now needs to know whether a subscriber has a tempo, so AudioStateResolver.validateBindings takes a SubscriberTempo parameter. MAY_HAVE matches the old behavior.
  • Removed the unused WorldChunk.setBlock overloads that took a String, a BlockType, or a BlockType and a rotation, along with BlockChunk.setEnvironment.
  • Removed WorldChunk.breakBlock, IChunkAccessorSync.breakBlock and BlockChunk.getEnvironment(Vector3i). Resolve the section ref with ChunkStore.getChunkSectionReferenceAtBlock, then use BlockOperations.setBlock or the EnvironmentSection component.
  • WorldChunk.getBlock, BlockChunk.getBlock, World.getBlock and World.getBlockType are now @RestrictedApi, so a plugin that still calls them fails the Error Prone build. Read BlockSection.get on the BlockSection component of the section ref instead.
  • WorldChunk.getBlockComponentHolder is now allowlisted for BuilderTools and BlockSelection only, since block entity reads go through the section's BlockComponentSection.
  • Removed IChunkAccessorSync.setBlockInteractionState and both WorldChunk.setBlockInteractionState overloads. Interaction state now writes through the BlockSection component of the section ref from ChunkStore.getChunkSectionReferenceAtBlock, which skips the blocking chunk load and the old 0 to 320 height cap.
  • Removed the last WorldChunk.setBlock overloads that took a block id or a block key, along with IChunkAccessorSync.setBlock(String, SetBlockSettings). Block writes now go through BlockOperations on the section ref from ChunkStore.getChunkSectionReferenceAtBlock, which skips the blocking chunk load and the old 0 to 320 height cap.
  • Chunk storage providers now take a readOnly flag on initialize and have to answer hasStoredChunks, and a cubic IChunkLoader has to implement forEachSection. A provider that cannot open read only should reject the flag rather than open writable.
  • Instance validation no longer builds a whole world to read its stored chunks, so World.validate and WorldValidationUtil are gone in favor of ChunkStorageValidator. ValidateBlockEvent moved from PrefabBufferValidator to BlockValidator and now fires for chunk validation too, concurrently and off the world thread, so a handler must not keep state between events.
  • The deprecated chunk lookups are now closed to new callers. IChunkAccessorSync.getChunk, getNonTickingChunk, getChunkIfInMemory, loadChunkIfInMemory, getChunkIfLoaded, getChunkIfNonTicking, World.getBlockBulkRelative and every way to build a LocalCachedChunkAccessor carry @RestrictedApi, so a plugin that still calls them fails the Error Prone build. Resolve the column with ChunkStore.getChunkReference and read the components on that ref instead.
  • ChunkAccessor.getFluidId moved up into IChunkAccessorSync, next to the other block reads, and ChunkAccessor is now an empty extension of it.
  • Removed BlockChunk.getEnvironment(Vector3d) and restricted the (x, y, z) overload to BuilderTools. Environment reads now go through the EnvironmentSection component of the section ref from ChunkStore.getChunkSectionReferenceAtBlock, which answers at any Y rather than only the old 0 to 320 band.
  • Removed IWorldChunksAsync.getChunkAsync(int, int), and the remaining getChunkAsync(long) and getNonTickingChunkAsync(long) are now @RestrictedApi for IWorldChunks. Column loads go through ChunkStore.getChunkReferenceAsync instead, and /chunk load and /chunk marksave answer that the chunk is not loaded rather than throwing.

Modder-Facing Bug Fixes

NPC & Entity Fixes

  • Fixed the UIComponentList entity component ignoring its Components key, which gave every entity every component. An entity that sets the key now receives only those components, and the list is resent when it changes.
  • Marker validation and range searches now work in loaded cubic sections below Y 0 and above Y 319, and the cache and span math is overflow safe across the full block range.
  • NPC target swapping now uses the right sense ranges. Every template that references Component_Instruction_Combat_Target_Swap now sets NextTargetRangeView and NextTargetRangeHearing from its own ViewRange and HearingRange.
  • The flying NPC template now exposes KnockbackScale as a parameter.

Item & Interaction Fixes

  • Fixed the ChangeState interaction failing when the state it switched to had no interaction sound event id.
  • Cylinder area selectors now respect their size attribute. AOECylinderSelector multiplies its range and height by the sizeAttribute value, so an ability that scales its area finally grows the cylinder with it.

Blocks & Prefab Fixes

  • WaterGrowthModifierAsset now decides rain exposure from the heightmap, taking the highest opaque block at or below the crop, so a non-opaque block above a crop no longer keeps the rain off it.

Asset Schema & Format Fixes

  • Portal instance configs now carry a DisplayName, and a world's display name reaches join and leave messages as a Message, so it localizes instead of printing the raw key.
  • Embedding a Trail asset no longer disconnects the client. A trail that sets no texture now falls back to Trails/Basic.png instead of failing validation.

Server & Permission Fixes

  • The block spawner and prefab spawner commands no longer stall the world thread waiting on a chunk. They reply that the chunk is not loaded instead, they work at any height rather than only inside the old column range, and targeting a prefab spawner in an unloaded chunk no longer errors out.

Fixes for Plugin Developers

  • Entity hitboxes now follow EntityScaleComponent. BoundingBox keeps the entity scale across recomputes and applies it to the detail boxes as well, and a new EntityScaleBoundingBoxSystem keeps the box in step with the component.
  • A plugin can now load a target world while players are being drained out of a world that is shutting down. DrainPlayerFromWorldEvent is an IAsyncEvent, so the drain waits for listeners and you can call setWorld once the world is ready.

Pre-Release (Update 7 Part 3)

September 17, 2026

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

NPCs & Entities

  • Some creatures must now be defeated in combat before you gain their Memories.
  • Feastmasters will now animate climbing, swimming, diving, flying, spawning, and sleeping.
  • The Skeleton Elite’s Flowing Slashes attack now moves faster.
  • The Skeleton Elite has been given a new set of sounds.

World & Blocks

  • Portal worlds can now remain open without a time limit.

Items & Interactions

  • Explosive Barrels are now thrown using the primary input. This is left click by default.
  • Runes have now been renamed to make it clear whether they’re Ability Runes or Modifier Runes.
  • The Scrap Glider model has been reworked and the idle animation has been updated.
  • Windwillow Fruits have had their particles reworked.
  • Updated the Scrap Drill’s description.

Commands

  • The /kit iron and /kit adamantite commands now include food and health potions matching their tier. Neither grants longswords, one-handed axes, clubs, spears, or staves.

UI & Quality of Life

  • The debug overlay that appears when F7 is pressed twice has been rebuilt. Panels may be individually moved, resized, or hidden, and custom layouts can be created to switch between them.
  • The ‘Return to Crossroads’ button that appears in Creative Worlds has been moved.

Audio

  • The Goblin Burner’s flamethrower now plays overheating and reloading sounds.
  • The Skeleton Elite Attacks now have appropriate sounds and footstep playback.

Performance

  • Saved worlds now take up less disk space than before. Existing worlds will upgrade themselves the first time they load.
  • Improved how servers compress world data as it’s saved, which lowers memory use on busy servers.

Naming & Categorization

  • ‘Web Rope’ is now called ‘Spiderweb Rope’.
  • ‘Spider Web - Diagonal’ is now called ‘Spiderweb Rope - Diagonal’.
  • ‘Large Kenolite Stalactite’ is now called ‘Kenolite Stalactite - Large’.

Player-Facing Bug Fixes

Movement & Combat Fixes

  • Updated the Ground Slam ability so that it may now be used with Battleaxes.
  • Additional height can no longer be gained by repeatedly jumping with the Scrap Glider.

World & Block Fixes

  • Environmental damaging effects have decided pacifism isn’t for them and will once again deal damage.
  • Other worlds that you access through Portal Devices will now adhere to the world settings selected when the original world was created, such as those related to fall damage and PvP.

Item & Interaction Fixes

  • The Stamina Potion cooldown will no longer appear as a debuff.
  • The Root Wand and Stoneskin Wand now fire beams from the correct position.

NPC & Entity Fixes

  • NPCs will now successfully find solid ground in worlds where the terrain sits outside of the old fixed height range.
  • Inter-species relations have broken down and large predators will now attack spiders on sight.
  • Goblins have gotten better at running from Void-aligned creatures.

UI & Quality of Life Fixes

  • Play Sound settings on Trigger Volumes now show proper Volume and Pitch labels rather than raw text ids.
  • Choosing a layout, layout hotkey, or a panel to show in the debug overlay will now take effect right away.
  • Fixed a number of typographical errors.

Graphics & Rendering Fixes

  • Beam effects will no longer cause blocks and items to briefly display the wrong texture.
  • Particle effects and trails will now appear in the correct positions on entities with block models.
  • Fixed an issue where missing or wrong textures could occur on worlds with a lot of custom content due to the texture atlas being full.

Audio Fixes

  • Sounds played by Trigger Volumes will no longer play far louder than intended.
  • Looping music and ambience fades will no longer stall just before the loop point.

Performance Fixes

  • Fixed a freeze that could occur when someone joined a brand new world.

Localization Fixes

  • Hytale will no longer fall back to English when your system language includes a regional variant, such as French (Canada).
  • Longer words in other languages no longer cause rendering issues for the ‘Installed Mods’ button in the Mod Browser.

Stability Fixes

  • Fixed sign-in failing on macOS when Hytale was launched from Finder, Spotlight, or Apple Games.
  • Fixed a crash that could occur on Windows when antivirus software interrupted a world being saved.
  • Fixed a crash that could occur with an incorrect or oversized invite code.
  • Fixed a client memory leak that could occur when joining a world.
  • Fixed a memory leak that could occur after a world map had been drawn.
  • Fixed a temporary freeze that could occur for up to two seconds when leaving or canceling a peer-to-peer session.
  • Fixed a retried join failing to use a router that another connection attempt had already found.
  • Fixed a random crash that could happen on the main menu or inventory screens when playing on a computer with integrated Intel graphics.

Modder-Facing Changes

NPCs & Entities

  • Roles can now hand out their Memory on death rather than on approach. MemoriesUnlockedBy takes Proximity (the default) or Kill, and MemoriesKillRange sets how far a player can be and still be recorded. A Variant role needs its referenced template to declare both, the same as IsMemory.

Items & Interactions

  • The blockymodel files for most food items were rebuilt to drive the new eating animations. Custom animations that reference the old node names may break.
  • Explosions can now define the damage cause. A new EntityDamageCause field on ExplosionConfig sets the damage cause applied to entities in range, and it falls back to Environment when you leave it out.

Blocks & Prefabs

  • Blocks can now show their own name and item description in game without being broken first. Put "Page": { "Id": "BlockLore" } under the block's Use interaction and it reads both from the block item's TranslationProperties. A block with no description opens nothing.
  • The BlockLore page takes an optional TextAlignment key of Left, Center or Right. It defaults to Center.

Asset Schemas & Formats

  • Trigger volume PlaySound effects now take VolumeDb in decibels from -100 to 0 and PitchSemitones in semitones from -60 to 12, instead of the old linear Volume and Pitch. The old keys still load from existing JSON, but they no longer appear as rows in the trigger volume editor. Volume is capped at 0 dB, so a trigger can only quiet a sound and never boost it. To make something louder, raise the volume on the sound event itself.
  • Audio timing now speaks one vocabulary, and the old spellings no longer decode. StateTransition.DurationMs: 2000 becomes Duration: { "Ms": 2000 }, AudioState.DefaultSyncTo: "NextBar" becomes DefaultSyncTo: { "Point": "NextBar" }, and MusicTransition.FadeOutDuration, FadeOutDelay and FadeInDuration each take an object instead of a number of seconds.
  • World map markers can be drawn larger. A new IconSize on block and objective marker configs takes Default or Major, and Major renders at 64 pixels with a matching hitbox and text offset. Markers that leave it out keep the standard size.
  • Encounter asset files must now declare the top-level Class key. Role files can still leave it out and fall back to Role.
  • Removed BreachAtSeconds from the portal VoidEvent config in GameplayConfigs/Portal.json. The Stages list now drives the whole escalation on its own.
  • ModelVFX assets now inherit every field from their parent. ModelVFX.CODEC uses appendInherited throughout, so pointing an asset at a parent no longer leaves most of its values unset.
  • The particle asset documentation reads properly on the docs site now. Particle, ParticleSpawner, ParticleAttractor, ParticleCollision, ParticleSystem and ParticleAnimationFrame had their doc text reflowed for Fumadocs, and the spawner shape wording is clearer.
  • Custom UI pages can now reuse the runic console chrome. Common.ui gained a @RunicPanel group plus the @RunicTitleStyle, @RunicHeadlineStyle and @RunicBodyStyle text styles, and the title style shrinks to fit down to 12px.
  • Portal worlds can now be authored with no time limit at all. PortalType and PortalKey accept a portal without a duration.
  • Custom content that overflows a texture atlas now falls back to the missing texture and logs a warning instead of vanishing without a word. Atlases also pack across several pages, up to 16 for the block atlas and 4 for the others.
  • Spawn points placed below Y 0 now stay where you put them, because FitToHeightMap only fits a point whose Y is Integer.MIN_VALUE rather than any negative Y.

Server & Permissions

  • Added a /chunk height command that dumps a column's heightmap for debugging. /chunk fixheight also rebuilds the column into a fresh backend now, so a stored height that sat too high can finally be corrected instead of only ever being raised.
  • Command coordinates written with the _ height flag now answer with a chunk-not-loaded message when the column is not in memory, rather than force loading it on the world thread.

Renames & Deprecations

  • Renamed the portal curse surface to ephemeral items. AdventureMetadata now carries the ephemeral flag, CursedItems became EphemeralItems, and the /cursethis command is now /ephemeral.
  • The Void Spectre's attack interactions were renamed to match what they do. Void_Spectre_Attack is now Void_Spectre_Charge, Void_Spectre_Attack_Damage is now Void_Spectre_Charge_Damage, and the root interaction is now Root_NPC_Void_Spectre_Charge.

Protocol & Networking

  • Environments now stream one chunk section at a time. SetChunkEnvironments is keyed to section coordinates and carries a single section payload, and SetColumn no longer carries environments at all. Clients and servers have to be on matching protocol versions.
  • Replaced the two way AssetEditorUpdateAssetPack packet with AssetEditorAssetPackUpdated from the server and AssetEditorUpdateAssetPackManifest from the client. AssetEditorAssetPackSetup now maps pack ids to an AssetPack, which carries the manifest along with IsReadOnly and CanBeDeleted, rather than to an AssetPackManifest.

For Plugin Developers

  • Cubic worlds now use a new tree heightmap, and BlockSection blobs moved to version 7. Older servers cannot read those blobs, so a world loaded on this version cannot be opened on an older one.
  • Plugins can now build entity hierarchies in the ECS store, creating parent and child entities, reparenting them, and iterating a parent's children. Systems process root entities by default, and overriding getHierarchyScope() lets a system take in children or handle only parents.
  • Plugins can block players from opening Debug Screens. Adding PreventDebugScreens.INSTANCE to a player entity blocks the ToggleDebugScreens keybind (F7 by default) and closes any debug screen that is already open, and removing it gives the screens back. The component is runtime only and does not persist across a reload.
  • Noesis pages can now shrink text that would otherwise be cut off. The new hy:ShrinkTextToFit decorator scales its child down to MinFontSize, 10 by default. It never writes FontSize, so styles and triggers keep working. The wrapper needs a finite width, so it does not shrink inside a horizontal StackPanel, and wrapping children are not supported.

Modder-Facing Bug Fixes

World Generation Fixes

  • Fixed SmoothClamp Density not reading its input.
  • Fixed the Offset Pattern node editor schema to use the proper node type for the Offset vector.

NPC & Entity Fixes

  • NPC charge motions use distance based ramps now. Four shipped templates moved off the obsolete ChargeAcceleration onto ChargeAccelerationDistance and ChargeDecelerationDistance, which also clears the obsolete key warnings they were logging.
  • Reworked Component_Instruction_Goblin_Flee_Void so fleeing runs off attitudes instead of an NPC group query. It now swaps to a new threat mid-flee and has a .Wait state that turns the Goblin back with animations.

Item & Interaction Fixes

  • Fixed a crash when you added an entry to OnHitEffects on an ItemAbility. An empty entry used to throw a NullPointerException in the asset editor and on the server, and validation now rejects it instead.

Asset Schema & Format Fixes

  • Instances can now take the world settings a player chose for the parent world. Set InheritWorldSettings to true under Plugin.Instance in the instance config, which the Portals instances now do.

Server & Permission Fixes

  • Bans and kicks now close every connection an account has open, including Asset Editor connections that previously remained connected.

Fixes for Plugin Developers

  • Fixed an out-of-bounds read in RawJsonReader, where a one-char wide read near the end of the buffer could run up to three chars past it. The reader now goes through MemorySegment, and the protected readStringPartAsLongUnsafe is called readStringPartAsLongWide.
  • Chunk saves now borrow their scratch buffers from a bounded direct buffer pool instead of allocating a fresh one per save, which is what stops busy servers from running past the direct memory limit. readSegments keeps its signature, but the buffer it returns is pooled, so a caller must not hold on to it after the read finishes.
  • A boss bar name set through SetEncounterBossBar now renders text markup such as <s> and <color> instead of printing the tags. Markup applies to translated names only, so a raw display name from the tracked entity stays literal.
  • Kill feed entries now honor Message.strikethrough, .color, .bold, .italic and .underlined on KillFeedEvent.KillerMessage and KillFeedEvent.DecedentMessage, with markup tags working when MarkupEnabled is set.
  • Renamed InstancesPlugin.inheritWorldConfigSettings to inheritDefaultWorldConfigSettings and dropped its origin world parameter. It now always copies fall damage and PvP settings from the universe default world, which is what fixes instances and portal worlds inheriting from the wrong world.
  • Your other listeners now keep running when one of them throws, and the failure is logged instead of stopping the dispatch.

Pre-Release (Update 7 Part 2)

September 10, 2026

Node Editor

  • The Node Editor now opens to display a start screen, where you can pick what to create or jump straight back into a recent file.
  • The Node Editor now reopens on the workspace type you used last.
  • Files dropped onto the Node Editor will now open directly, on Windows and macOS.
  • The Node Editor now has a light theme and a dark theme. Select the one you prefer by going to File > Preferences.
  • Added a graph minimap, toggled from the View menu. It frames your current viewport, highlights your selection, and clicking anywhere on it jumps you to that part of the graph.
  • Dragging nodes now snaps them into line with their neighbors and to a grid, with guide lines showing what they are lining up against. Multi-node selections keep their internal alignments as they’re dragged.
  • The ManualCurve and FunctionForY nodes now have an interactive curve graph. Right-click the plot to add a point, press Delete or Backspace to remove one, and points can cross each other or move outside of the visible range without the plot locking up. Panning and zooming the canvas no longer interferes with editing.
  • Curve values snap to whole numbers as they’re dragged. Hold Alt for a fractional value.
  • Material fields now use a searchable asset picker, with a texture thumbnail rendered for each material in the picker itself.
  • Added a Trig Density node to the WorldGen workspace.
  • Added an option to keep undoing for as long as Ctrl+Z is held down. This is switched off by default.
  • The Node Editor now provides a clearer error message when it cannot read a file.
  • Brown and Bright Red are now available as node colors.

NPCs & Entities

  • Creatures aligned with the Void are now hostile toward Goblins.
  • Most of the Goblins will now try to run away from any Void creatures they encounter, unless they have enough allies nearby, in which case they’ll try to hold their ground.
  • Goblin Burners, Feastmasters, Guardians, Lobbers, Miners, and Scrappers will no longer chase their targets indefinitely.
  • The Goblin Burner’s attacks will now result in considerably less knockback.

Items & Interactions

  • Reduced the knockback of the Goblin Flamethrower.
  • Portals may now be given a per-player entry limit. These will be displayed in the Ancient Gateway UI.
  • Reworked the look of the hookshot and its firing animation.
  • Updated the Scrap Glider’s model and texture, and its wings will now flap.

Controls & Input

  • Reworked ability controls on a controller so that you hold the right bumper and then press a different button for different abilities.
  • When rebinding a keykind, it now shows which keys and controller buttons can be held down as part of a combo binding.

UI & Quality of Life

  • The search feature in the Creative Inventory has been reworked to better match the player’s intention. It will also now allow for “one-step” typos (so ‘swrd’ and ‘swodr’ will both return a ‘sword’), and will also return results even if diacritical marks aren’t used (for example if an item, contains ‘é’, just typing ‘e’ will work).
  • Performed a visual pass on the Runebinder’s Effigy ‘Ability Workbench’ UI.
  • Runes will now display their ability tags within the tooltips.
  • The UI within portal worlds will now make it clearer when additional time is gained.

Audio

  • Added an impact sound for when a block is struck with a tool too weak to break it.
  • Reduced the number of breaking sounds heard when mining with the Scrap Drill.
  • The Feastmaster has received some new sound effects, and some existing ones have been improved.
  • Nearby Goblins will now quiet down temporarily if the Feastmaster is yelling at them.
  • The sound that plays when the Signature Ability is charged has been updated, and brought down in volume.
  • Rocket Boots now have their own sound effect when you trigger their rocket burst double jump.

Multiplayer & Networking

  • Fixed automatic port forwarding failing to find the router when other devices on the home network answered first.
  • Fixed an issue where having multiple devices access Hytale on the same network could result in disconnections occurring when a world was joined.
  • Fixed an issue that prevented rejoining friends' worlds after being disconnected, which previously required both players to restart the game to resolve.

Performance

  • Improved server performance while ticking blocks, fluids and farmland, so busy areas cost the world less work each tick.

Player-Facing Bug Fixes

Node Editor Fixes

  • Opening and closing a large graph will no longer cause the editor to freeze, and files load in the background so the editor remains responsive.
  • Fixed a number of crashes and inconsistent states when switching between workspace types.
  • Fixed a memory leak where every graph opened stayed in memory for the rest of the session.
  • Fixed a node type the editor does not recognize losing information when a graph was saved.
  • Copying and pasting nodes no longer loses the connections between them.
  • Shift-clicking to select nodes now works reliably.
  • Fixed a number of visual issues related to group titles.
  • Fixed a number of startup and stability problems.

Movement & Combat Fixes

  • Explosions will now deal damage to entities in worlds where block breaking is disabled.

NPC & Entity Fixes

  • Entities with block models saved in Update 5 worlds now keep the correct position and scale when the world is upgraded. Note this does NOT repair entities that were already upgraded with the wrong position and scale.
  • Rotating a block selection with the builder tools now rotates entities with block models correctly for multi-axis rotations.
  • The Goblin Burner will no longer damage its neck when it needs to refuel.
  • Goblin Burners will no longer taunt every time they need to reload the flamethrower.

Item & Interaction Fixes

  • Explosive Barrels will now display a tooltip indicating they may be picked up.
  • Hatchets may now be used as an unconventional way to set off explosive blocks.
  • The Snapjaw Trap now stuns those it traps for two seconds instead of indefinitely.
  • Hookshot projectiles will no longer occasionally hang around in the world for a long time after they’ve stopped moving.

Creative Tool Fixes

  • The map now refreshes across the whole area when you paste a prefab or a clipboard with the builder tools, instead of only the chunk under your cursor. Undoing and redoing an edit refreshes the map for the area it changes as well.

UI & Quality of Life Fixes

  • The background for player portraits in the Social Sidebar has been set back to blue.
  • Improved the help text for the /beam command.

Graphics & Rendering Fixes

  • Fixed an issue where held items that had their appearance changed would re-apply instantly movement animations.

Audio Fixes

  • Reduced the volume of distant sounds that were louder than intended.
  • Adjusted some sounds so that their volume will be altered correctly based on the audio settings.
  • Increased the volume of the flamethrower.

Stability Fixes

  • Fixed a crash that could occur when a server sent a fluid update before some blocks had finished loading.
  • Fixed a crash that could occur when returning to the main menu with a machinima scene loaded.
  • Fixed a server error that would occur when an explosion with no blast radius was set off.
  • Fixed a server error that would occur when a player left the server at the same moment they confirmed respawning.
  • Fixed a server error that would occur when an objective was started with tasks that required the spawning of creatures.

Modder-Facing Changes

NPCs & Entities

  • Local spawn beacons can now be limited by weather. An optional WeatherIds list on BeaconNPCSpawn keeps the beacon spawning only while the current weather is one of those, and a placed beacon removes itself and despawns its NPCs when the weather stops matching.
  • The weather a beacon checks is the world's forced weather, otherwise the weather of the environment at the beacon, which a new WeatherResource.getEffectiveWeatherIndex(environmentId) resolves. Per-player weather such as a trigger volume override does not count.
  • Removed the deprecated Spawn_Void role along with its Spawn_Void and Spawn_Void_Manual spawn markers. Void_Spawn_Entombed takes over from it, and its name now points at the correct lang key.

Items & Interactions

  • Items can now hang an interaction off a fourth ability slot instead of only the three, and the crossbow's Root_Common_StatAmmoReload_Entry reload moved onto it in Template_Weapon_Crossbow.
  • Portal keys can now cap how many times each player enters. PortalKey carries the per-player limit, and the portal device pages show the limit and the entries left.
  • Removed the debug-only Debug_Movement_Boots armor.
  • Items can now play a separate sound to the wearer when they use an extra jump. A new ExtraJumpLocalSoundEvent on ItemMovementSettings takes a one shot event and accepts stereo files, and the rocket boots use it alongside the world sound.
  • Textured beams can now be rendered between entities. A new AttachBeam interaction hangs a beam between the interaction context owner and the entity you name in the parameter, which is how the hookshot draws its rope.
  • Projectiles can now be given a lifespan. A Lifetime value on the Projectile interaction despawns the projectile once that duration runs out.

Asset Schemas & Formats

  • Instance worlds no longer take DocumentDisplayOnRemoval. A new EventTitleOnRemoval shows an event title while the instance closes, and the close delay follows the title timing. Leave it out and the world closes right away.
  • Portal types now carry the default time limit and entry count. TimeLimitSeconds and AllowedEntryCount on PortalType apply to every key of that type, and a PortalKey only needs the fields when it wants to differ.
  • Interface sound volume from SoundStyle and SoundEffect is now bounded to +10 dB, which matches every other authored gain field.
  • AudioState volume deltas are now bounded to +10 dB per axis on the per-voice path, the same bound the server already documents. A pack leaning on a bigger per-voice delta gets clamped.
  • Event titles can now play a sound alongside the text. An optional SoundEventId on EventTitleConfig fires once the title is sent, and assets that leave it out behave as before.
  • World events can now show themselves on the player world map. WorldEventAsset gained name and icon fields for the map entry, and IntervalCondition gained fields that decide when the event appears and what text it shows.

Server & Permissions

  • Added a fragment timer add <seconds> command that adds time to the fragment timer instead of replacing it, which is what triggers the gained time tag on the HUD.
  • The /block point commands and /block row now work at any height in a cubic world, so get, set, getstate, setstate and setticking reach above Y 320 and below Y 0. A section that is not loaded answers with the new server.commands.block.noSection message.
  • /block bulk find-here and /block bulk replace now take their radius in chunk sections and sweep a sphere around you, including the sections above and below the old height range.
  • /block bulk find gained a --chunkY and a --radius option. It searches a sphere around that chunk position, up to the server's maximum view radius, instead of spiraling outward across the world until it times out.

Renames & Deprecations

  • The Goblin hookshot models are now named after scrap. Hookshot_Goblin.blockymodel and Hookshot_Goblin_Projectile.blockymodel became Scrap.blockymodel and Scrap_Projectile.blockymodel, and Tool_Hookshot.json and Hookshot_Hook.json point at the new paths.
  • The Void tentacle animations moved and were renamed. Bite2 and Bite3 are now Bite_Left and Bite_Right, and Idle and Idle2 sit in the Default folder next to the new spawn animations.

Protocol & Networking

  • The portal state now carries BonusSeconds, the time just added to the fragment timer. The server clears it after the broadcast so later ticks do not replay the animation.
  • ItemMovementSettings gained a trailing ExtraJumpLocalSoundEventIndex, which changes its wire layout. The client and the server have to be built from the same protocol build.

For Plugin Developers

  • Removed WorldChunk.getWorld(), so a chunk no longer points back at its own world. ChunkPreLoadProcessEvent now carries the world and exposes getWorld(), matching ChunkSectionPreLoadProcessEvent.
  • Block tick callbacks can now get world coordinates without capturing them. A new BlockSection.forEachTicking overload takes the section coordinates and a TriObjectPositionBlockFunction, so the callback gets world positions and a third context value through its parameters.
  • Volume modifiers passed to SoundUtil.playSoundEvent2d and playSoundEvent3d are linear multipliers, not decibels, and they were thrown away above 1.0. They now take effect, so a plugin passing 3.0 goes from roughly unity to about +7.5 dB. Nothing validates them, so check any modifier above 1.0.
  • SimpleBlockCommand.executeWithBlock no longer receives a WorldChunk. It now gets the CommandContext, the ChunkStore, a Ref<ChunkStore> section reference and the block coordinates, so a custom block command can reach any height.
  • Block health now lives on the chunk section rather than the column. BlockHealthChunk is decode only, so read and change health through BlockHealthSection on the section entity, keyed by ChunkUtil.indexBlock. WorldNotificationHandler.updateBlockDamage and getBlockDamagePacket are gone, because damage replicates on its own once it is written to the section.
  • PortalWorld.overrideRemainingSeconds is now setRemainingSeconds(world, seconds, force), and it leaves the timer alone when the portal world is already scheduled for removal.
  • The deprecation note on WorldChunk.getBlock now names the right replacement. Resolve the section with ChunkStore.getChunkSectionReferenceAtBlock and read through BlockSection.get, since the old BlockChunk.getBlock route is still capped to the legacy column range and cannot reach a section outside it.
  • The fluid and material helpers in WorldUtil now take the ChunkStore and resolve the block's section themselves, so they read correctly at any height. getWaterLevel, findFarthestEmptySpaceBelow and findFarthestEmptySpaceAbove take a caller bound rather than stopping at the column top, and PositionProbeBase.updateWaterLevel takes the ChunkStore too.
  • BlockChunk.getSectionAtIndex is gone, since it indexed the legacy 0 to 9 section array and threw outside it.
  • You can now ask a selection which world region it will write to before you place it. BlockSelection.computePlacementBounds(Vector3ic, Vector3i, Vector3i) reports those bounds and returns false for a selection with no cells.
  • The legacy UI Element base is now nullable-annotated, so HitTest and Find<T> return a nullable element and the constructor takes a nullable parent. Runtime behavior is the same, but an override that declares a non-nullable return needs a ? to match.
  • Moved the generated concurrent maps in ConcurrentFastUtil off sun.misc.Unsafe and onto VarHandle, keeping volatile ordering on every field and table access, which removes one of the three sources of the deprecation warning at server launch.

Modder-Facing Bug Fixes

World Generation Fixes

  • Props placed with an Anchor PropDistribution no longer come out with random parts missing in an 8x8 grid pattern.
  • Fixed gradient Density nodes producing grid-aligned artifacts in generated terrain.

NPC & Entity Fixes

  • NPC block sensors and resource reservations now work at any height instead of being clamped to the 0 to 320 band, so a role can find and reserve blocks in a cubic world above or below that range. The Block sensor also caps Range and MaxHeight at 256, well above the 30 and 10 the shipped roles use.
  • Fixed the Void Spectre pointing its MemoriesNameOverride at Spectre_Void, which does not exist. The template, the variant and the static variant all use Void_Spectre now.

Server & Permission Fixes

  • Fixed /block bulk replace counting blocks it never changed, and /block setstate throwing on an unknown block id instead of reporting one. A block command that fails partway through now tells the sender rather than going quiet.
  • Fixed a block placed by a /block command into a freshly loaded section staying inert. The command now loads the section as ticking, so the block ticks and its block entity spawns.

Fixes for Plugin Developers

  • LivingEntity, NPCEntity, PatrolPathMarkerEntity and SpawnBeacon now mark their World constructor parameter @Nullable, which matches the null world that Entity.clone already passes when it rebuilds an entity.

Pre-Release (Update 7 Part 1)

September 3, 2026

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

The first wave of Chapter 1 content!

This pre-release we’re including the first wave of content for the upcoming Chapter 1! This is the first of several waves landing over the coming weeks, and the content is still being actively developed. Some of it, the Rune Ability system in particular, will change a lot between now and Chapter 1’s release. Reports and feedback help us enormously, both in fixing what’s broken and in hearing what you love, so please let us know your thoughts and experiences! For this pre-release, the Chapter 1 content is mostly reached through Creative Mode.

Movement & Combat

  • Introducing the Rune Ability system! Collect Runes and then place them within a Runebinder’s Effigy to augment your combat abilities.
  • Added an initial five runes:
    • Rune: Enrage, used to channel primal rage to increase damage both dealt and received
    • Rune: Fireball, used to launch a fireball that explodes on impact
    • Rune: Imbue Poison, used to imbue your weapon with poison, causing its attacks to apply a stacking poison debuff
    • Rune: Ground Slam, used to sunder the earth, causing an earthen spike to erupt forth that launches foes upward
    • Rune: Wind Strike, used to imbue your weapon with the elemental wind, causing the next three attacks to launch piercing arcs of wind
  • Gliding has been reworked. It’s now possible to dive and ascend by pressing/releasing the Sprint keybind. The glider will also now keep your velocity when you deploy it.

NPCs & Entities

  • Reworked numerous NPCs related to Chapter 1, including:
    • The Goblin Scrapper, a light melee combatant that likes to swarm its foes
    • The Goblin Miner, a heavy melee combatant with a powerful leap attack
    • The Goblin Guardian, a heavily armored Goblin that defends with a shield
    • The Goblin Lobber, a bomb-loving ranged combatant with an explosive arsenal
    • The Goblin Burner, a dangerous ranged combatant armed with a flamethrower
    • The Goblin Feastmaster, a physically imposing gargantuan gobbler of grub
  • Charging NPCs acceleration and deceleration can be tweaked in more detail.

World & Blocks

  • Added a number of new blocks, including:
    • An Enkindled Copper blockset
    • An Enkindled Iron blockset
    • A Goblin Iron blockset
    • A set of Goblin decorations
  • The Gold block set has been updated with new models and a texture polish.
  • Instance editing now lets you break, gather and place blocks, even when the instance itself does not normally allow it.
  • Server rule changes now affect players immediately, so health bars, combat text, armor hiding and the rules for placing or breaking blocks all update without needing to leave and rejoin the server.
  • Explosions no longer break blocks in worlds where block breaking is turned off.
  • Reworked how the void event in Hedera’s Lair builds up. It now escalates after fixed amounts of time.

Items & Interactions

  • The Goblins have brought a few gadgets with them for Chapter 1:
    • The Scrap Drill, a mining tool that can break multiple blocks at once
    • The Spyglass, which zooms your view in on whatever is happening in the distance
    • The Scrap Glider, a tool that allows you to take to the skies
    • The Rocket Boots, a set of stylish footwear that provides double jumps
    • The Hookshot (and Hook Anchors), used to traverse the world in style
  • The offensive capabilities of the Watering Can have been removed.

Trigger Volumes

  • Trigger volumes can now set your respawn point, move a world's spawn, or clear your respawn points.
  • A Tag Condition on a trigger volume can now compare one tag against another tag instead of only against a fixed value.
  • The Show Event Title trigger volume effect now has a Style option in place of the old "Is Major" toggle, so you pick the look of the title directly. Its field labels also show correctly again.
  • Added an Activate Trigger Volumes toggle to the creative mode quick settings. With it switched off, you can walk through your own trigger volumes without setting them off.

UI & Quality of Life

  • The portal panel within portal worlds has been redesigned! The countdown, portal names, and progress bar all have a new look.
  • Mods can now contain whole worlds, which appear in your world list once installed, and any world you make from one remains even if the mod is removed.
  • Added one-time full-screen announcements that can appear after the splash screen, so news about new content is harder to miss.
  • Creating a world from a mod now asks for permission to do so first.
  • Mod categories in the mod browser now show readable names on the cards, the filters and the detail page.
  • The Online Play screen now says in plain words whether your friends will be able to join, and what to do if they cannot.
  • Added a Copy Network Report button to the Online Play screen. It copies a short diagnostic report with no addresses in it, so you can paste it when you ask for help.
  • Added a copy button next to the report ID you get after sending a bug report, so you can grab the ID in one click.

Audio

  • Attempting to use an ability which can’t be activated will now play different sounds depending on the reason it couldn’t be used. For instance, insufficient charges, the ability being on cooldown, and the wrong weapon type being used.

Performance

  • Deduplicated the block lookups behind entity collision, which run for every moving player and creature on the server.
  • Reworked the world map to load in small pieces instead of one huge image, so it uses a fraction of the memory it used to and no longer stutters while it is open.
  • Improved block breaking on the server, which no longer stops to load chunks while it works out what you broke.
  • Multiplayer sessions now prefer a direct route where one exists, instead of alternatives that would increase ping.

Player-Facing Bug Fixes

Movement & Combat Fixes

  • Watering cans and battleaxes will now be held correctly when taken for a swim.

World & Block Fixes

  • Fixed an issue where blocks could fail to update when an adjacent block was placed or broken.
  • Fixed an issue where unloading an area could cause blocks to forget that they updated after an adjacent block was placed or broken.
  • Breaking a rotated multi-block will now update surrounding blocks correctly, possibly causing supported blocks to fall, or fluids to flow.
  • Picking up blocks will no longer trigger the interaction that would occur if the block was broken.
  • Fixed an issue where teleporters very high up or very low down might not function properly.

NPC & Entity Fixes

  • Creatures standing in shallow water won’t be able anymore to automatically walk into deep water without relaxed constraints. This also fixed an issue where NPCs could get stuck close to liquids.
  • A charging NPC close to a target will now only turn to face the target instead of cycling the whole internal charge states.
  • Memories gathered during a session are no longer lost when that session ends.

Item & Interaction Fixes

  • Fixed the interaction hints appearing on blocks in worlds where placing, breaking or gathering is disabled.
  • Upgraded workbenches have voted unanimously to keep their new look, rather than reverting to their old appearance whenever someone uses them.
  • Crafting animations on upgraded workbenches will now also loop correctly.

Creative Tool Fixes

  • Trigger volumes set to apply to the source of projectiles will now correctly do so, rather than considering the projectile as its own source.
  • Builder tools will now be deactivated when leaving a world.

UI & Quality of Life Fixes

  • Images of worlds within the world list will now only display the freshest of screenshots rather than older versions of the world.
  • Fixed an issue that prevented the friends list and invitations from appearing correctly if a slow connection was experienced at startup.
  • Fixed an issue that prevented the social sidebar from opening when social features were switched on partway through a session.
  • Fixed an issue that caused default avatar portraits to be displayed in large friend lists.
  • Fixed an issue that caused correct avatar portraits to fall back to the default portrait.
  • The notifications menu will now open a lot faster for those with many pending friend requests.
  • Items with no icon configured will now display a mysterious ‘Unknown Item’ icon.
  • Installing a mod from the mod browser will now work as intended, even if you’ve already manually placed the mod contents in the corresponding folder.
  • The mod browser will no longer claim a connection issue is preventing a mod installation when a different file with the same name is causing an issue.

Graphics & Rendering Fixes

  • Rolled back a recent change to how see-through surfaces are rendered as it caused visual problems.
  • Fixed an issue with the Machinima editor where having new scenes with almost identical names to existing ones could cause the new scenes to be dropped.
  • Cleaned up memory left behind by the Machinima editor's camera view.
  • Transparent parts of the HUD will no longer render unintentionally darker.
  • Visual effects with a set duration in singleplayer worlds will now pause that duration when the world is paused.
  • NPCs with textures that are too large, causing an overflow, will now render as black rather than winvisible.
  • NPCs will now cast shadows correctly once again.

Audio Fixes

  • Ambient world sounds now always stop the moment you leave a world, instead of looping over the main menu for a few seconds in some rare cases.

Stability Fixes

  • Fixed a crash that could occur when leaving a world or moving between servers, along with the small memory leak that came with it.
  • Fixed a crash that could occur when broken or malicious network data nested messages, command trees, item categories or interaction chains far too deep.
  • Fixed a crash that could occur when you joined a world running several large custom skins at once, since textures that no longer fit are now skipped with a warning instead.
  • Fixed a crash that could occur when a server refreshed your interface, which also left item and character previews in menus broken.
  • Fixed a crash that could occur when dropping a stack of zero items.
  • Fixed a crash that could occur when serializing forked interactions.
  • Fixed a crash that could occur when dropping an item with no icon onto the entity tool.
  • Fixed a crash that could occur on older NVIDIA graphics cards, covering the GeForce 400 to 700 series and their laptop versions.
  • Fixed a memory and graphics leak every time you closed a menu that shows your character, so long sessions of opening and closing menus no longer eat memory.
  • Fixed several memory and graphics leaks during play, when switching worlds and when closing the game, so a long session no longer creeps up in memory use.
  • Fixed a fault where a single player's connection could break networking for everyone else on the server.
  • Fixed switching a shared world back to private sometimes leaving the world reachable for several more seconds.
  • Fixed the world list failing to load when one of your saves had a broken settings file.
  • The world map will no longer permanently freeze at high view distances on graphics cards with a smaller texture limit.
  • Fixed a brief server stutter that could occur when a teleport block removed itself after a delay in an area that had already been unloaded.
  • Servers now close connections cleanly when they shut down, so you no longer sit and wait for the connection to time out.
  • Servers and worlds will no longer refuse to start if the saved view distance is higher than Hytale allows. This value is now capped at 32 chunks.

Modder-Facing Changes

World Generation

  • Updated the public HyaleGenerator documentation, which can be found here under “pre-release”.
  • Dropped the GradientWarp Density node’s stale 2D and YFor2D options in both the asset and the node editor. YOverride into Cache into GradientWarp chain should be used instead.

NPCs & Entities

  • An encounter can now force weather for everyone taking part. SetEncounterWeather takes a Weather asset and an optional TransitionSeconds (2 by default), and ClearEncounterWeather puts members back on the normal weather. Both are restricted to InstructionType.Encounter.
  • NPC weather sensors still read world weather only, so Sensor: Weather does not match an encounter's forced sky. Drive that behavior from encounter state or beacons instead.
  • The Example_Boss encounter now uses both actions as a worked example. It forces a Blood Moon on the transition into Phase 1 and clears it when the boss dies.
  • All the meaningful config values on MotionControllerWalk and MotionControllerBase are holders now, so they can be computed and overridden from a template rather than fixed per role.
  • ChargeAcceleration is gone from BodyMotionCharge. The new ChargeAccelerationDistance and ChargeDecelerationDistance size each ramp in blocks instead of setting a rate. A role that still sets the old key only warns at load and loses the behavior.
  • RemovedBlockSet is gone as well. IgnoredBlockSet now covers it, and the charge probe treats those blocks as non-colliding and breathable, so list only the blocks a charge really passes through.
  • A charge can now stop at a chosen distance from its target. ChargeDistanceMode picks how that distance is measured (MaxRange, TargetDist or one of the collider modes) and TargetDistanceRange offsets the stop point, with positive values stopping short of the target.
  • The charge ramps are fully shapeable. ChargeAccelerationCurveMode and ChargeDecelerationCurveMode choose whether the curve reads as speed or as distance covered, and the matching MinimumRelativeSpeed, HalfTimeValue, HalfTimeSteepness and EndSteepness keys tune the curve itself.
  • Movement behaviour of a charging NPC can now be modified. ProbeRelaxedConstraints accepts Wade, Damage, Drop, Breathe and Fence, so a role can let a charge cross liquid or suffocating blocks it would otherwise refuse.
  • ChargeState gains InStopRange, which a role can match through SensorChargeState. An NPC enters it when its target sits closer than the stop point the configuration asks for.
  • ThrottleIgnoreCount and ThrottleDelayRange on the find and seek motions now also cover a blocked path, not only a failed search. Setting ThrottleDelayRange to [0, 0] restores the old behavior on an obstacle.
  • Rewards can be granted via the encounter manager. A new GrantReward action on encounter templates points at a reward asset, and RewardExistsValidator fails the load when that name does not resolve.
  • Removed the orphan Goblin Hermit and Scavenger assets, including their generated icons, the Hermit drop list and the Hermit model.
  • The deprecated Goblin Duke phase 1 and phase 3 templates now use the Scrapper model.

Items & Interactions

  • Glider tuning was rebuilt for the new movement state machine. The old FallSpeedMultiplier, HorizontalSpeedMultiplier, TerminalVelocity and Speed values on the item are gone, replaced by a wider set of fields on Template_Glider that also cover the dive and the climb.
  • Mace item animations gained a SwingUpLeft variant for abilities.
  • Dropped items can now merge over a distance you pick. A new inherited MergeRadius key on ItemEntityConfig sets how far in blocks a dropped item looks for others to stack with. Leaving it at -1.0F falls back to the world default.

Blocks & Prefabs

  • TickProcedure.onTick now takes a CommandBuffer<ChunkStore> and the chunk section Ref<ChunkStore> in place of the World and WorldChunk parameters, so any subclass override needs updating. The world is available from commandBuffer.getExternalData().getWorld().
  • Chosen blocks can stay breakable in a world that bans block breaking. WorldConfig.BlockBreakingBypassTag names a tag, and any block carrying it can still be broken while AllowBlockBreaking is off. Explosions follow the same rule.

Asset Schemas & Formats

  • Map marker overrides can change the display name of a marker. A new DisplayName key on MapMarkerOverride takes a localization key to use instead, and the marker override add command accepts it alongside --icon and --global.
  • World events can now wait on the clock. A new TimeCondition completes once the world time reaches the Day, Hour and Minute you set, and any part left at -1 is ignored, so a condition without Day is simply a time of day that comes around again.
  • World events can also gate on campaign progress with GameFlagLevelCondition, which completes once a game flag reaches the Level you set. Comparator picks how the two are compared and defaults to GreaterThan.
  • Three new trigger effects handle respawning. SetRespawnPoint takes Origin, Position, Name and ClearExisting, SetWorldSpawn takes Origin, Position, Yaw and ClearPlayerRespawnPoints, and ClearRespawnPoints takes Name and AllPlayers.
  • Event titles pick a named style in JSON now. ShowEventTitleInteraction, ShowEventTitleEffect and InstanceDiscoveryConfig all take a Style value, and the old IsMajor and Major keys still decode so existing assets keep working, however the old IsMajor and Major properties are marked as deprecated and will be removed in a future version.
  • UI sprites gained two fields. Color tints a sprite and lets you control its opacity, and KeepLastFrame holds an animation on its final frame instead of snapping back to the first.
  • Trigger volume tags can now be used like variables and compared to each other. TagCondition takes a CompareAgainst field that picks whether the tag is checked against a plain value (the default) or against a second tag named in CompareTagKey.
  • Respawn points can now set which way a player faces. PlayerRespawnPointData and SetRespawnPointEffect both take a Yaw in degrees.
  • The event title effect on a trigger volume can now pick who sees it. A new Recipient field on ShowEventTitleEffect takes the same options as SendMessageEffect and defaults to the triggering player.
  • Added a Beam asset type under Entity/Beams with a single TexturePath field. The texture has to sit under Beams/ or Trails/.
  • The event title action, for WorldEvents, can now pick how the banner looks. ShowEventTitleAction takes an optional Style and an optional Icon, and falls back to the default style when you leave Style out.

Server & Permissions

  • The /eventtitle command takes --style in place of --major, and the secondary line now defaults to empty rather than to “Event”.
  • Instance edit worlds now load a new InstanceEdit gameplay config that switches on AllowBlockBreaking, AllowBlockGathering and AllowBlockPlacement, so an instance with restrictive rules stays editable.
  • Server operators can now check which chunks the wilderness system counts as wilderness and which count as home. The new /wilderness debug [enabled] [player] command tints those chunks green and red on one player's world map and draws matching cubes in the world. Wilderness tracking stays off by default in WildernessConfig, and the command warns when a world has it turned off.
  • Added a /beam command for development work, with entity, position, spawn and clear.
  • The server now refuses to boot when the content it writes would land inside the launcher's install folder, which every update patches or wipes. The check covers the working directory plus --universe, --prefab-cache and --backup-dir, and it prints the steps to move them somewhere safe before exiting with code 11.
  • Added an --allow-install-dir flag, mirrored by the hytale.allow_install_dir system property, for anyone who wants to run there anyway and accept the data loss risk. Singleplayer runs, --help, --version and a --bare start without --bootstrap skip the check already.
  • Server operators can now run /auth login browser or /auth login device while already signed in, without signing out first. The existing session stays active until the new sign-in finishes, so a cancelled or failed login leaves the server signed in as it was.

Renames & Deprecations

  • Three density asset types were renamed, so SmallerThan is now LessThan, SmallerOrEquals is now LessOrEqual, and Select is now Selector.
  • Two more density asset types lost their trailing s, so Equals is now Equal and GreaterOrEquals is now GreaterOrEqual. The node editor entries carry the new names too.
  • The treasure map objective is gone, along with everything it used. The TreasureMap objective task, the OpenTreasureContainer and DestroyTreasureCondition interactions, the LookBlocksBelow and TagBlockHeight world location conditions and the TreasureChest block entity component no longer decode, so any asset that names one fails to load. A world with a placed treasure chest still loads, since the server keeps the component as unknown data.
  • IsMajor is gone from ShowEventTitleEffect. The Style field covers it, so pick the look you want there instead of flipping a boolean.
  • The void spectre assets were merged under one name, so anything pointing at the old ids no longer resolves. Spectre_Void is now Void_Spectre across its model, drop list, icon and particles.
  • Asset file Spiwer_Web_Full.png has been renamed to Spider_Web_Full.png, Fig_Blue_.png is now Fig_Blue.png, and the duplicate file Totem_Heal_BeamStart (1).particlespawner has been removed.

Audio

  • Music can now hand off from one track to another by authored rule. Two new asset types, MusicTransition and Stinger, live in Audio/MusicTransitions and Audio/Stingers.
  • Handoffs can land on a musical boundary instead of a frame. MusicSync picks the moment on the outgoing track (immediate, next beat, next bar, an exit marker or a named marker) and DestinationAlign picks where the incoming track starts on its own timeline.
  • Overlap and crossfade are separate controls now. ExitAt sets the handoff, PlayPostExit lets the outgoing track run to the end of the file, and FadeOutDuration with FadeOutDelay ramps it out instead, following a FadeCurve that defaults to equal power.
  • Music containers picked up a batch of new fields. MusicContainer takes Tags, Align, AlignMarker, ExitAt and Stingers, SegmentMusicContainer takes named Markers, and HorizontalMusicContainer takes AudioState with Phases so it can switch phase from a state axis.
  • Stingers hang off a free-form music event on a container rather than being referenced directly. Anything can post the event, the deepest active container that binds it decides what plays, and stingers sort by priority inside an exclusion group.
  • StateTransition gained PostEvent, so an audio state edge can mark a musical moment without naming a stinger directly.

Protocol & Networking

  • The ShowEventTitle packet dropped IsMajor in favor of an EventTitleStyle Style field, which breaks any plugin that builds the packet by hand. Styles include Default and Major.
  • The world's gameplay config is replicated to the client by a new WorldGameplayConfig packet, carrying WorldConfig, CombatConfig and PlayerConfig structs that mirror the server assets. It goes out when a player joins a world and again whenever the GameplayConfig asset reloads.
  • The wire carries beams now. BeamConfig and UpdateBeamConfigs ship the beam assets, while BeamInstance and the Beams component update carry the placements, so this needs a matching client.

For Plugin Developers

  • The lighting pass now runs per chunk section, so LightCalculation.init takes a ChunkStore and a section Ref rather than a WorldChunk, getSkyValue lost its unused WorldChunk parameter, and ChunkLightingManager exposes invalidateLightInChunkSections for section-level invalidation.
  • Cursor server cameras work on a gamepad now. The right stick drives the real cursor through a new GamepadCursor helper, and PrimaryItemAction with SecondaryItemAction send the click packets, so triggers break and use whatever the cursor is over.
  • com.hypixel.hytale.protocol.DurabilityOperator is now ComparisonOperator, because the same comparison list serves durability checks and the new game flag condition. Plugin code that names the old type has to switch, while asset JSON and the wire format stay exactly as they were.
  • WeatherTracker gained tryClaimOverride, releaseOverride and resolveUnoverriddenWeatherIndex. clearOverrideWeatherIndex now drops the owner as well. One owner holds a weather override at a time.
  • EventTitleUtil has overloads that take an EventTitleStyle. The boolean overloads still work but are deprecated for removal.
  • TargetUtil.getTargetBlock and getTargetLocation take a ChunkStore where they used to take a World, so plugin code calling them directly has to pass world.getChunkStore() instead.
  • Explosions, block explosion effects, block harvesting, raycast selectors and the spectator camera all work in cubic worlds now that TargetUtil no longer assumes a single vertical column.
  • ClientFeature no longer carries DisplayHealthBars, DisplayCombatText, CanHideHelmet, CanHideCuirass, CanHideGauntlets, CanHidePants, AllowBlockPlacement, AllowBlockBreaking or AllowBlockGathering, and a plugin naming one of them stops compiling. Those rules live in the GameplayConfig asset now, while ClientFeature keeps the movement capabilities plugins register themselves.
  • ChunkAccessor.performBlockUpdate and WorldChunk.setTicking are gone. Use BlockOperations.updateBlockArea for a whole hitbox or BlockSection.setTicking with ChunkSection.markNeedsSaving for one cell, and note that updateBlockArea now takes the ChunkSection as well as the BlockSection.
  • Block writes are moving onto sections, so WorldChunk.setBlock and WorldChunk.breakBlock are deprecated for removal and now delegate to BlockOperations.setBlock. They also fire BlockAnimationModule.onBlockReplaced, so block replace animations play for these writes, and WorldChunk.setBlockPhysics along with BlockTypeModule.SET_BLOCK_SETTINGS and its filler helpers have been removed.
  • Door and refill interactions no longer pull in a neighbor chunk just to update it. An unloaded neighbor is skipped, the same as every other block update.
  • Every chunk lookup that returns a WorldChunk is now marked for removal, across IChunkAccessorSync, IWorldChunksAsync, IWorldChunks, World and LocalCachedChunkAccessor. Behavior is unchanged, but plugins compile with deprecation warnings and should move to ChunkStore.getChunkReference and the section store.
  • The deprecated IChunkAccessorSync.getBaseBlock is gone. Filler blocks now resolve through BlockOperations.resolveBaseBlockPosition, which takes a ChunkStore and never triggers a chunk load.
  • BlockDataProvider resolves its chunk and fluid sections once per block read instead of on every field access. The readBlockId, readRotation, readFiller, readFluidId and readFluidLevel methods are private now, so a plugin that called them directly will not compile.
  • Wilderness gains size(), test(int) and isValid(), so a plugin can walk a player's tracked region by index and test one chunk without world coordinates.
  • Added a Rewards builtin module that plugins can extend with their own reward types. It ships one type for now, EntitlementReward, which grants an entitlement through RewardAsset.
  • The remaining sync chunk accessor members are marked for removal now. The nine default methods on IChunkAccessorSync, ChunkAccessor.getFluidId and OverridableChunkAccessor all warn, so world.getBlock, setBlock, breakBlock and the rest flag at every call site. IWorldChunks.waitForFutureWithoutLock is private and can no longer be called from outside the interface.
  • Seventeen unused members are gone from the chunk access surface, so a plugin still calling them will not compile. That covers IChunkAccessorSync.getBlockComponentHolder, IWorldChunksAsync.getNonTickingChunkAsync(int, int), BlockChunk.getSectionRefAtIndex, BlockComponentSection.getBlockReferences, BlockSection.setChunkSection and getMaximumHitboxExtent, PaletteTypeEnum.getPaletteId, and ten accessors on LocalCachedChunkAccessor. Read and write through the section ref instead, using AbstractCachedAccessor or ChunkStore.getChunkReference.
  • The new Hytale:Beam builtin ships a BeamComponent holding AttachedBeam entries, and each one runs from an attachment point on the owner to another entity, a node on that entity's model, or a fixed world position. Beams are runtime state, so they never save with the entity.
  • BeamComponent.spawn creates a replicated entity that carries beams and no model, for a beam that belongs to nothing else. It takes an optional lifetime and applies it with a DespawnComponent.
  • The GroundedCondition interaction moved out of the Abilities builtin into the core server, so an interaction can use it without that plugin loaded.
  • The public ItemMergeSystem#RADIUS constant is gone. Merge distance now comes from the item's config through ItemComponent#getMergeRadius(ComponentAccessor), with ItemComponent#setMergeRadius(float) for changing it at runtime.

Modder-Facing Bug Fixes

World Generation Fixes

  • Fixed the SectionSize pin of the Cache Positions node.
  • Added missing tooltips on Density nodes.
  • Reduced severity for invalid Normalizer Density arguments (where FromMin equals FromMax) from Error to Warning to give more time for mods to update. Going forward the new logical Density nodes should be used to create boolean maps instead.
  • Fixed Rotator Density when the target axis is the inverted Y-axis.
  • Enabled an optimization for Plane Density when configured for an anchored horizontal plane.
  • Fixed the Switch and SwitchState Density nodes reading the Default state differently from each other.

NPC & Entity Fixes

  • Fixed BuilderMotionControllerWalk.getFenceBlockSet throwing when the configured block set was empty or missing.
  • Fixed a trigger volume signaled by an NPC firing its effects twice, so a volume with a single message effect no longer sends the same chat message twice. DestroyTaggedVolumesInteraction picked up the same guard.
  • Fixed a pathfinder crash on roles that turn DiagonalMoves off.
  • Fixed a blocked path being recomputed every tick.
    Fixed the NPC charge probe accepting an invalid end position.
  • Cleaned up the BodyMotionCharge config descriptions for template authors.
  • NPCs that place blocks now write through section storage, so a placement above or below the old height band lands instead of being dropped. An unknown block type key in role data is skipped quietly rather than throwing.
  • Restored the deprecated goblin spawn markers under _Deprecated, including the Ogre, Scavenger and the patrol variants, so worlds that still point at them keep loading.

Item & Interaction Fixes

  • Cleared a batch of warnings out of the item interaction assets. Unused fields are gone from the teleporter config, the glowing mushroom eating interactions, the quartzite gravel half block, the guard bash and the staff interactions, and the geyser ambient sound key is spelled correctly again.
  • Fixed a piercing projectile that could stop ticking and sit in the world forever.

Block & Prefab Fixes

  • Block tick procedures now run in chunk sections at any height. Scheduled ticking used to stop outside Y 0 to 319, so a procedure written for that range has to cope with negative and high coordinates.
  • Trigger volume text now resolves a volume tag's value in plain written text, not just behind a translation key. SendMessage and ShowEventTitle both handle it.
  • Fixed formatted text losing a character whenever it met a placeholder it did not recognize, so an unknown {tag} is left exactly as you wrote it.

Asset Schema & Format Fixes

  • Creating a folder in the asset editor now makes any missing parent folders along the way, so you can organize a brand new asset type without making a throwaway asset first.
  • Schema validation for Float2ObjectMap fields now matches what the codec really reads and writes. The generated key pattern accepts scientific notation such as 1.0E-4 and leading-dot values such as .5, and it no longer lets non-numeric keys like 1x2 slip through.

Server & Permission Fixes

  • The world add command now tells you whether creation succeeded or failed instead of quietly dropping the result.
  • Fixed /fluid setradius only making one block of the filled region flow instead of all of it, and /block setticking now resolves the chunk section itself and tells you when it is not loaded.
  • A MaxViewRadius outside 1 to 32 in config.json no longer stops the server booting. The value is clamped in memory with a warning, and the file keeps whatever you wrote.
  • The max view radius command rejects anything above 32 now, instead of 512.

Protocol & Networking Fixes

  • A peer now rejects a structure that nests inside itself more than 32 levels deep, covering FormattedMessage trees, item categories, command trees, and interaction chains. Real content sits far below that bound.
  • UpdateLanguage.Language is a required protocol field now instead of an optional one, and the protocol version was bumped for it. It and Connect.Language also widened from a 16-character cap to 100 characters, which fits any .NET CultureInfo.Name.

Fixes for Plugin Developers

  • Cursor server cameras are playable again. A plugin that sets displayCursor on ServerCameraSettings gets cursor targeting back, and every movement direction uses the forward speed, so strafing is no longer slower than walking ahead.
  • PlayerMouseButtonEvent fires on clicks under a cursor camera again, carrying the target block or entity and the screen point for custom click logic from a top-down view.
  • Fixed a cursor camera reading mouse input while a menu, chat or page was open. Opening the pause menu used to spin the character, and MouseInteraction packets no longer go out behind a UI overlay.
  • An ItemGrid in a custom UI page no longer needs a DefaultItemIcon. An item whose icon will not resolve falls back to the unknown item icon, and DefaultItemIcon still overrides that placeholder.
  • A universe resource whose codec comes from a plugin getCodecRegistry is now written at shutdown. The final flush moved to the new ShutdownEvent.FLUSH_UNIVERSE_RESOURCES stage, which runs after SHUTDOWN_WORLDS while every plugin is still enabled.
  • A ClientTool now gets OnActiveStateChange(false) when the world is torn down while the tool is active, and that runs before the tool is disposed.
  • Fixed unbounded growth of the server translation cache. I18nModule now keys cached messages by the language returned from its new resolveLanguage() instead of the raw client string, and queueTranslations() replaces sendTranslations() so repeated language switches on one connection coalesce into a single send.

Additions (We forgot some stuff - sorry! :hypixel-confused: )

The following notes were added after the initial Update 7, Part 1 pre-release patch notes were released.

Player-Facing

  • Ability Keys 1, 2, and 3, have been moved to a modifier system, now usable with RB + Face Button to trigger an ability, for example:
    • Ability 1 - RB + Y - Signature Move
    • Ability 2 - RB + X - Skill 1
    • Ability 3 - RB + B - Skill 2
    • Ability 4 - RB + A - Ability 4
  • Prevented a crash that happens during explosions if blocks and items are not loaded fast enough.

Modder-Facing

  • BlockyModels have gained a new Transparent flag, that allows individual faces to be toggled transparent or not.

  • Blocks have now gained the Requires Alpha Blending flag that allows per-block type transparency.

  • Fixed Anchor PropDistribution sharing that was using a global context instance.

  • Limited the Graph PositionProvider and Graph PropDistribution bounds to the output bounds.

Previous post