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!
- 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_Constantbiome 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
IgnoreDisableNPCIncomingDamageflag on a role makes that NPC ignoreCombatConfig.DisableNPCIncomingDamage.Test_Dummy_Stationaryhas this enabled by default. - NPCs can now also switch targets if LoS to the previous one has been lost.. The new
TargetRequireLoSparameter onComponent_Instruction_Combat_Target_Swap(true by default) keeps the current target prioritized only while line of sight holds, and the defaultTargetSwitchTimerrange 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_Detectionhas been given anObserveflag (true by default), as well asObserveAngleRange,ObservePauseRange, andObserveRelativeTurnSpeedto shape the head motion. - NPC roles can now react to being hit. Running
Component_Instruction_Hit_Interrupton 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
FlinchAnimationon that component, which otherwise playsHurtin the Action slot. - Attack instructions and roots need to check for the absence of
Hit_Interrupt_Stunnedso a queued attack start gets blocked, and offensive roots have to keep theirAttacktag for the cancel to find them. - A custom attack can tell the system where its counterattack ends.
Hit_Interrupt_Begin_Protected_Attackgoes after the start gate andHit_Interrupt_Finish_Protected_Attackafter 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
HiddenUIComponentskey takes a list ofEntityUIComponentids 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.
SpawnPositionSearchtakesLineto follow the marker orientation orRangefor a bounded two-dimensional sweep, andMaxHorizontalSpawnOffsetsets how far it looks, up to 16 blocks. - Markers now check their own placement.
ValidatePositionrejects a marker buried too far inside solid blocks, andValidateBelowPositionrejects 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.
RequireFitAtMarkerHeightrestricts the search to vertical spans that contain the marker Y. SpawnPositionSearchDebugreports on a failing search with eitherSummaryorMapdiagnostics, and range search failures now log why each candidate was turned down.- Spawn position limits are now bounded.
MaxDropHeighttops out at 32 blocks,BlockOverlapHeightCompensationat 4, and non-finite or out-of-range asset values are rejected as the asset decodes.
Items & Interactions
- Every bed now shares one
Block_Bedroot interaction carrying theType=Bedtag, so a bed no longer defines its own use interaction inline. - The shared on-hit chain moved out of
DamageEntityParentinto a namedDamageEntityParent_On_Hit. An asset that overridesNextcan 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
UseDefaultDropWhenPlacedis 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_FloorandPlant_Leaves_Poisoned_Flooreach gained aShearsentry inGathering.Tools.- Generated loot containers, such as chests found in prefabs, can now be configured to stay open once emptied. The new
StayOpenWhenEmptyflag onItemContainerBlockkeeps 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
StateDeltatakes an optionalFadeblock withDuration,CurveandDelay, and any field you leave out still falls back to the axis. Fade.DurationandFade.DelayareBarBeatDurationvalues, so a subscriber with no tempo keeps only theMscomponent. 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 aFadewith 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
EditorPropertyGalleryasset that shows every property control in one file. It stays unregistered until you createmods/Hytale_AssetEditor/config.jsonwithEnablePropertyGalleryset to true and restart the server, after whichGallery_AllControls.jsonopens 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
EnableWorldEventsflag in a newWorldEventsWorldConfig, and new Creative worlds get it set to false. - Portal instances accessed via
TeleportInstanceInteractioncan now stay around between sessions when their asset asks for it. Worlds spawned from the portal device summon page still setsetDeleteOnRemoveandsetDeleteOnUniverseStartthemselves, so those stay temporary and get swept on the next start. - A world can now switch off specific interactions. The new
BlockedRootInteractionTagslist inGameplayConfig.WorldConfigtakes root interaction tags, and anything matching is blocked on the server and hidden from the HUD. /spawning markers debuginvalidmarkersnow highlights invalid marker placements and revalidates markers that are moved or rotated, and/spawning markers autoremoveinvalidmarkersswitches automatic removal of failing markers on or off.
Renames & Deprecations
- Renamed the
Bear_Voidtaken_Tentacle_ModelandBear_Voidtaken_Tentacle_Marker_Modelserver models toBear_Voidtaken_TentacleandBear_Voidtaken_Tentacle_Marker, with the roles that use them updated to match. - Removed the
Carryable_Blockitem animation asset. The throw now lives inBlock.json, andThrow_Carryable_Blockpoints at the newHeavy_Throwanimations.
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
WorldChunkandBlockChunkare now marked@RestrictedApi, so a plugin that still callsgetBlockChunk,getFiller,getRotationIndex,getHeightmapColumn,getFluidLevel,getSupportValue,setStateorsetEnvironmentRangeno longer compiles if errorprone is used. The replacement is theBlockSectioncomponent of the section ref fromChunkStore.getChunkSectionReferenceAtBlock. - Audio binding validation now needs to know whether a subscriber has a tempo, so
AudioStateResolver.validateBindingstakes aSubscriberTempoparameter.MAY_HAVEmatches the old behavior. - Removed the unused
WorldChunk.setBlockoverloads that took aString, aBlockType, or aBlockTypeand a rotation, along withBlockChunk.setEnvironment. - Removed
WorldChunk.breakBlock,IChunkAccessorSync.breakBlockandBlockChunk.getEnvironment(Vector3i). Resolve the section ref withChunkStore.getChunkSectionReferenceAtBlock, then useBlockOperations.setBlockor theEnvironmentSectioncomponent. WorldChunk.getBlock,BlockChunk.getBlock,World.getBlockandWorld.getBlockTypeare now@RestrictedApi, so a plugin that still calls them fails the Error Prone build. ReadBlockSection.geton theBlockSectioncomponent of the section ref instead.WorldChunk.getBlockComponentHolderis now allowlisted for BuilderTools and BlockSelection only, since block entity reads go through the section'sBlockComponentSection.- Removed
IChunkAccessorSync.setBlockInteractionStateand bothWorldChunk.setBlockInteractionStateoverloads. Interaction state now writes through theBlockSectioncomponent of the section ref fromChunkStore.getChunkSectionReferenceAtBlock, which skips the blocking chunk load and the old 0 to 320 height cap. - Removed the last
WorldChunk.setBlockoverloads that took a block id or a block key, along withIChunkAccessorSync.setBlock(String, SetBlockSettings). Block writes now go throughBlockOperationson the section ref fromChunkStore.getChunkSectionReferenceAtBlock, which skips the blocking chunk load and the old 0 to 320 height cap. - Chunk storage providers now take a
readOnlyflag oninitializeand have to answerhasStoredChunks, and a cubicIChunkLoaderhas to implementforEachSection. 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.validateandWorldValidationUtilare gone in favor ofChunkStorageValidator.ValidateBlockEventmoved fromPrefabBufferValidatortoBlockValidatorand 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.getBlockBulkRelativeand every way to build aLocalCachedChunkAccessorcarry@RestrictedApi, so a plugin that still calls them fails the Error Prone build. Resolve the column withChunkStore.getChunkReferenceand read the components on that ref instead. ChunkAccessor.getFluidIdmoved up intoIChunkAccessorSync, next to the other block reads, andChunkAccessoris now an empty extension of it.- Removed
BlockChunk.getEnvironment(Vector3d)and restricted the(x, y, z)overload to BuilderTools. Environment reads now go through theEnvironmentSectioncomponent of the section ref fromChunkStore.getChunkSectionReferenceAtBlock, which answers at any Y rather than only the old 0 to 320 band. - Removed
IWorldChunksAsync.getChunkAsync(int, int), and the remaininggetChunkAsync(long)andgetNonTickingChunkAsync(long)are now@RestrictedApiforIWorldChunks. Column loads go throughChunkStore.getChunkReferenceAsyncinstead, and/chunk loadand/chunk marksaveanswer that the chunk is not loaded rather than throwing.
Modder-Facing Bug Fixes
NPC & Entity Fixes
- Fixed the
UIComponentListentity component ignoring itsComponentskey, 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_Swapnow setsNextTargetRangeViewandNextTargetRangeHearingfrom its ownViewRangeandHearingRange. - The flying NPC template now exposes
KnockbackScaleas a parameter.
Item & Interaction Fixes
- Fixed the
ChangeStateinteraction failing when the state it switched to had no interaction sound event id. - Cylinder area selectors now respect their size attribute.
AOECylinderSelectormultiplies its range and height by thesizeAttributevalue, so an ability that scales its area finally grows the cylinder with it.
Blocks & Prefab Fixes
WaterGrowthModifierAssetnow 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 aMessage, so it localizes instead of printing the raw key. - Embedding a
Trailasset no longer disconnects the client. A trail that sets notexturenow falls back toTrails/Basic.pnginstead 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.BoundingBoxkeeps the entity scale across recomputes and applies it to the detail boxes as well, and a newEntityScaleBoundingBoxSystemkeeps 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.
DrainPlayerFromWorldEventis anIAsyncEvent, so the drain waits for listeners and you can callsetWorldonce 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 ironand/kit adamantitecommands 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.
MemoriesUnlockedBytakesProximity(the default) orKill, andMemoriesKillRangesets how far a player can be and still be recorded. A Variant role needs its referenced template to declare both, the same asIsMemory.
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
EntityDamageCausefield onExplosionConfigsets the damage cause applied to entities in range, and it falls back toEnvironmentwhen 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'sUseinteraction and it reads both from the block item'sTranslationProperties. A block with no description opens nothing. - The
BlockLorepage takes an optionalTextAlignmentkey ofLeft,CenterorRight. It defaults toCenter.
Asset Schemas & Formats
- Trigger volume
PlaySoundeffects now takeVolumeDbin decibels from -100 to 0 andPitchSemitonesin semitones from -60 to 12, instead of the old linearVolumeandPitch. 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: 2000becomesDuration: { "Ms": 2000 },AudioState.DefaultSyncTo: "NextBar"becomesDefaultSyncTo: { "Point": "NextBar" }, andMusicTransition.FadeOutDuration,FadeOutDelayandFadeInDurationeach take an object instead of a number of seconds. - World map markers can be drawn larger. A new
IconSizeon block and objective marker configs takesDefaultorMajor, andMajorrenders 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
Classkey. Role files can still leave it out and fall back toRole. - Removed
BreachAtSecondsfrom the portalVoidEventconfig inGameplayConfigs/Portal.json. TheStageslist now drives the whole escalation on its own. - ModelVFX assets now inherit every field from their parent.
ModelVFX.CODECusesappendInheritedthroughout, 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,ParticleSystemandParticleAnimationFramehad their doc text reflowed for Fumadocs, and the spawner shape wording is clearer. - Custom UI pages can now reuse the runic console chrome.
Common.uigained a@RunicPanelgroup plus the@RunicTitleStyle,@RunicHeadlineStyleand@RunicBodyStyletext styles, and the title style shrinks to fit down to 12px. - Portal worlds can now be authored with no time limit at all.
PortalTypeandPortalKeyaccept 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
FitToHeightMaponly fits a point whose Y isInteger.MIN_VALUErather than any negative Y.
Server & Permissions
- Added a
/chunk heightcommand that dumps a column's heightmap for debugging./chunk fixheightalso 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.
AdventureMetadatanow carries the ephemeral flag,CursedItemsbecameEphemeralItems, and the/cursethiscommand is now/ephemeral. - The Void Spectre's attack interactions were renamed to match what they do.
Void_Spectre_Attackis nowVoid_Spectre_Charge,Void_Spectre_Attack_Damageis nowVoid_Spectre_Charge_Damage, and the root interaction is nowRoot_NPC_Void_Spectre_Charge.
Protocol & Networking
- Environments now stream one chunk section at a time.
SetChunkEnvironmentsis keyed to section coordinates and carries a single section payload, andSetColumnno longer carries environments at all. Clients and servers have to be on matching protocol versions. - Replaced the two way
AssetEditorUpdateAssetPackpacket withAssetEditorAssetPackUpdatedfrom the server andAssetEditorUpdateAssetPackManifestfrom the client.AssetEditorAssetPackSetupnow maps pack ids to anAssetPack, which carries the manifest along withIsReadOnlyandCanBeDeleted, rather than to anAssetPackManifest.
For Plugin Developers
- Cubic worlds now use a new tree heightmap, and
BlockSectionblobs 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.INSTANCEto a player entity blocks theToggleDebugScreenskeybind (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:ShrinkTextToFitdecorator scales its child down toMinFontSize, 10 by default. It never writesFontSize, so styles and triggers keep working. The wrapper needs a finite width, so it does not shrink inside a horizontalStackPanel, 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
ChargeAccelerationontoChargeAccelerationDistanceandChargeDecelerationDistance, which also clears the obsolete key warnings they were logging. - Reworked
Component_Instruction_Goblin_Flee_Voidso fleeing runs off attitudes instead of an NPC group query. It now swaps to a new threat mid-flee and has a.Waitstate that turns the Goblin back with animations.
Item & Interaction Fixes
- Fixed a crash when you added an entry to
OnHitEffectson anItemAbility. An empty entry used to throw aNullPointerExceptionin 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
InheritWorldSettingsto true underPlugin.Instancein 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 throughMemorySegment, and theprotectedreadStringPartAsLongUnsafeis calledreadStringPartAsLongWide. - 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.
readSegmentskeeps 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
SetEncounterBossBarnow 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,.italicand.underlinedonKillFeedEvent.KillerMessageandKillFeedEvent.DecedentMessage, with markup tags working whenMarkupEnabledis set. - Renamed
InstancesPlugin.inheritWorldConfigSettingstoinheritDefaultWorldConfigSettingsand 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
ManualCurveandFunctionForYnodes 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
/beamcommand.
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
WeatherIdslist onBeaconNPCSpawnkeeps 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_Voidrole along with itsSpawn_VoidandSpawn_Void_Manualspawn markers.Void_Spawn_Entombedtakes 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_Entryreload moved onto it inTemplate_Weapon_Crossbow. - Portal keys can now cap how many times each player enters.
PortalKeycarries the per-player limit, and the portal device pages show the limit and the entries left. - Removed the debug-only
Debug_Movement_Bootsarmor. - Items can now play a separate sound to the wearer when they use an extra jump. A new
ExtraJumpLocalSoundEventonItemMovementSettingstakes 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
AttachBeaminteraction 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
Lifetimevalue on theProjectileinteraction despawns the projectile once that duration runs out.
Asset Schemas & Formats
- Instance worlds no longer take
DocumentDisplayOnRemoval. A newEventTitleOnRemovalshows 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.
TimeLimitSecondsandAllowedEntryCountonPortalTypeapply to every key of that type, and aPortalKeyonly needs the fields when it wants to differ. - Interface sound volume from
SoundStyleandSoundEffectis now bounded to +10 dB, which matches every other authored gain field. AudioStatevolume 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
SoundEventIdonEventTitleConfigfires 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.
WorldEventAssetgained name and icon fields for the map entry, andIntervalConditiongained 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
/blockpoint commands and/block rownow work at any height in a cubic world, soget,set,getstate,setstateandsettickingreach above Y 320 and below Y 0. A section that is not loaded answers with the newserver.commands.block.noSectionmessage. /block bulk find-hereand/block bulk replacenow take their radius in chunk sections and sweep a sphere around you, including the sections above and below the old height range./block bulk findgained a--chunkYand a--radiusoption. 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.blockymodelandHookshot_Goblin_Projectile.blockymodelbecameScrap.blockymodelandScrap_Projectile.blockymodel, andTool_Hookshot.jsonandHookshot_Hook.jsonpoint at the new paths. - The Void tentacle animations moved and were renamed.
Bite2andBite3are nowBite_LeftandBite_Right, andIdleandIdle2sit in theDefaultfolder 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. ItemMovementSettingsgained a trailingExtraJumpLocalSoundEventIndex, 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.ChunkPreLoadProcessEventnow carries the world and exposesgetWorld(), matchingChunkSectionPreLoadProcessEvent. - Block tick callbacks can now get world coordinates without capturing them. A new
BlockSection.forEachTickingoverload takes the section coordinates and aTriObjectPositionBlockFunction, so the callback gets world positions and a third context value through its parameters. - Volume modifiers passed to
SoundUtil.playSoundEvent2dandplaySoundEvent3dare 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.executeWithBlockno longer receives aWorldChunk. It now gets theCommandContext, theChunkStore, aRef<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.
BlockHealthChunkis decode only, so read and change health throughBlockHealthSectionon the section entity, keyed byChunkUtil.indexBlock.WorldNotificationHandler.updateBlockDamageandgetBlockDamagePacketare gone, because damage replicates on its own once it is written to the section. PortalWorld.overrideRemainingSecondsis nowsetRemainingSeconds(world, seconds, force), and it leaves the timer alone when the portal world is already scheduled for removal.- The deprecation note on
WorldChunk.getBlocknow names the right replacement. Resolve the section withChunkStore.getChunkSectionReferenceAtBlockand read throughBlockSection.get, since the oldBlockChunk.getBlockroute is still capped to the legacy column range and cannot reach a section outside it. - The fluid and material helpers in
WorldUtilnow take theChunkStoreand resolve the block's section themselves, so they read correctly at any height.getWaterLevel,findFarthestEmptySpaceBelowandfindFarthestEmptySpaceAbovetake a caller bound rather than stopping at the column top, andPositionProbeBase.updateWaterLeveltakes theChunkStoretoo. BlockChunk.getSectionAtIndexis 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
Elementbase is now nullable-annotated, soHitTestandFind<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
ConcurrentFastUtiloffsun.misc.Unsafeand ontoVarHandle, 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
RangeandMaxHeightat 256, well above the 30 and 10 the shipped roles use. - Fixed the Void Spectre pointing its
MemoriesNameOverrideatSpectre_Void, which does not exist. The template, the variant and the static variant all useVoid_Spectrenow.
Server & Permission Fixes
- Fixed
/block bulk replacecounting blocks it never changed, and/block setstatethrowing 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
/blockcommand 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,PatrolPathMarkerEntityandSpawnBeaconnow mark theirWorldconstructor parameter@Nullable, which matches the null world thatEntity.clonealready 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
2DandYFor2Doptions in both the asset and the node editor.YOverrideintoCacheintoGradientWarpchain should be used instead.
NPCs & Entities
- An encounter can now force weather for everyone taking part.
SetEncounterWeathertakes aWeatherasset and an optionalTransitionSeconds(2 by default), andClearEncounterWeatherputs members back on the normal weather. Both are restricted toInstructionType.Encounter. - NPC weather sensors still read world weather only, so
Sensor: Weatherdoes not match an encounter's forced sky. Drive that behavior from encounter state or beacons instead. - The
Example_Bossencounter 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
MotionControllerWalkandMotionControllerBaseare holders now, so they can be computed and overridden from a template rather than fixed per role. ChargeAccelerationis gone fromBodyMotionCharge. The newChargeAccelerationDistanceandChargeDecelerationDistancesize 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.RemovedBlockSetis gone as well.IgnoredBlockSetnow 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.
ChargeDistanceModepicks how that distance is measured (MaxRange,TargetDistor one of the collider modes) andTargetDistanceRangeoffsets the stop point, with positive values stopping short of the target. - The charge ramps are fully shapeable.
ChargeAccelerationCurveModeandChargeDecelerationCurveModechoose whether the curve reads as speed or as distance covered, and the matchingMinimumRelativeSpeed,HalfTimeValue,HalfTimeSteepnessandEndSteepnesskeys tune the curve itself. - Movement behaviour of a charging NPC can now be modified.
ProbeRelaxedConstraintsacceptsWade,Damage,Drop,BreatheandFence, so a role can let a charge cross liquid or suffocating blocks it would otherwise refuse. ChargeStategainsInStopRange, which a role can match throughSensorChargeState. An NPC enters it when its target sits closer than the stop point the configuration asks for.ThrottleIgnoreCountandThrottleDelayRangeon the find and seek motions now also cover a blocked path, not only a failed search. SettingThrottleDelayRangeto[0, 0]restores the old behavior on an obstacle.- Rewards can be granted via the encounter manager. A new
GrantRewardaction on encounter templates points at a reward asset, andRewardExistsValidatorfails 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,TerminalVelocityandSpeedvalues on the item are gone, replaced by a wider set of fields onTemplate_Gliderthat also cover the dive and the climb. - Mace item animations gained a
SwingUpLeftvariant for abilities. - Dropped items can now merge over a distance you pick. A new inherited
MergeRadiuskey onItemEntityConfigsets how far in blocks a dropped item looks for others to stack with. Leaving it at-1.0Ffalls back to the world default.
Blocks & Prefabs
TickProcedure.onTicknow takes aCommandBuffer<ChunkStore>and the chunk sectionRef<ChunkStore>in place of theWorldandWorldChunkparameters, so any subclass override needs updating. The world is available fromcommandBuffer.getExternalData().getWorld().- Chosen blocks can stay breakable in a world that bans block breaking.
WorldConfig.BlockBreakingBypassTagnames a tag, and any block carrying it can still be broken whileAllowBlockBreakingis off. Explosions follow the same rule.
Asset Schemas & Formats
- Map marker overrides can change the display name of a marker. A new
DisplayNamekey onMapMarkerOverridetakes a localization key to use instead, and the marker override add command accepts it alongside--iconand--global. - World events can now wait on the clock. A new
TimeConditioncompletes once the world time reaches theDay,HourandMinuteyou set, and any part left at -1 is ignored, so a condition withoutDayis 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 theLevelyou set.Comparatorpicks how the two are compared and defaults toGreaterThan. - Three new trigger effects handle respawning.
SetRespawnPointtakesOrigin,Position,NameandClearExisting,SetWorldSpawntakesOrigin,Position,YawandClearPlayerRespawnPoints, andClearRespawnPointstakesNameandAllPlayers. - Event titles pick a named style in JSON now.
ShowEventTitleInteraction,ShowEventTitleEffectandInstanceDiscoveryConfigall take aStylevalue, and the oldIsMajorandMajorkeys still decode so existing assets keep working, however the oldIsMajorandMajorproperties are marked as deprecated and will be removed in a future version. - UI sprites gained two fields.
Colortints a sprite and lets you control its opacity, andKeepLastFrameholds 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.
TagConditiontakes aCompareAgainstfield that picks whether the tag is checked against a plain value (the default) or against a second tag named inCompareTagKey. - Respawn points can now set which way a player faces.
PlayerRespawnPointDataandSetRespawnPointEffectboth take aYawin degrees. - The event title effect on a trigger volume can now pick who sees it. A new
Recipientfield onShowEventTitleEffecttakes the same options asSendMessageEffectand defaults to the triggering player. - Added a
Beamasset type underEntity/Beamswith a singleTexturePathfield. The texture has to sit underBeams/orTrails/. - The event title action, for
WorldEvents, can now pick how the banner looks.ShowEventTitleActiontakes an optionalStyleand an optionalIcon, and falls back to the default style when you leaveStyleout.
Server & Permissions
- The
/eventtitlecommand takes--stylein place of--major, and the secondary line now defaults to empty rather than to “Event”. - Instance edit worlds now load a new
InstanceEditgameplay config that switches onAllowBlockBreaking,AllowBlockGatheringandAllowBlockPlacement, 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 inWildernessConfig, and the command warns when a world has it turned off. - Added a
/beamcommand for development work, withentity,position,spawnandclear. - 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-cacheand--backup-dir, and it prints the steps to move them somewhere safe before exiting with code 11. - Added an
--allow-install-dirflag, mirrored by thehytale.allow_install_dirsystem property, for anyone who wants to run there anyway and accept the data loss risk. Singleplayer runs,--help,--versionand a--barestart without--bootstrapskip the check already. - Server operators can now run
/auth login browseror/auth login devicewhile 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
SmallerThanis nowLessThan,SmallerOrEqualsis nowLessOrEqual, andSelectis nowSelector. - Two more density asset types lost their trailing s, so
Equalsis nowEqualandGreaterOrEqualsis nowGreaterOrEqual. The node editor entries carry the new names too. - The treasure map objective is gone, along with everything it used. The
TreasureMapobjective task, theOpenTreasureContainerandDestroyTreasureConditioninteractions, theLookBlocksBelowandTagBlockHeightworld location conditions and theTreasureChestblock 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. IsMajoris gone fromShowEventTitleEffect. TheStylefield 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_Voidis nowVoid_Spectreacross its model, drop list, icon and particles. - Asset file
Spiwer_Web_Full.pnghas been renamed toSpider_Web_Full.png,Fig_Blue_.pngis nowFig_Blue.png, and the duplicate fileTotem_Heal_BeamStart (1).particlespawnerhas been removed.
Audio
- Music can now hand off from one track to another by authored rule. Two new asset types,
MusicTransitionandStinger, live inAudio/MusicTransitionsandAudio/Stingers. - Handoffs can land on a musical boundary instead of a frame.
MusicSyncpicks the moment on the outgoing track (immediate, next beat, next bar, an exit marker or a named marker) andDestinationAlignpicks where the incoming track starts on its own timeline. - Overlap and crossfade are separate controls now.
ExitAtsets the handoff,PlayPostExitlets the outgoing track run to the end of the file, andFadeOutDurationwithFadeOutDelayramps it out instead, following aFadeCurvethat defaults to equal power. - Music containers picked up a batch of new fields.
MusicContainertakesTags,Align,AlignMarker,ExitAtandStingers,SegmentMusicContainertakes namedMarkers, andHorizontalMusicContainertakesAudioStatewithPhasesso 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.
StateTransitiongainedPostEvent, so an audio state edge can mark a musical moment without naming a stinger directly.
Protocol & Networking
- The
ShowEventTitlepacket droppedIsMajorin favor of anEventTitleStyle Stylefield, which breaks any plugin that builds the packet by hand. Styles includeDefaultandMajor. - The world's gameplay config is replicated to the client by a new
WorldGameplayConfigpacket, carryingWorldConfig,CombatConfigandPlayerConfigstructs that mirror the server assets. It goes out when a player joins a world and again whenever theGameplayConfigasset reloads. - The wire carries beams now.
BeamConfigandUpdateBeamConfigsship the beam assets, whileBeamInstanceand theBeamscomponent update carry the placements, so this needs a matching client.
For Plugin Developers
- The lighting pass now runs per chunk section, so
LightCalculation.inittakes aChunkStoreand a sectionRefrather than aWorldChunk,getSkyValuelost its unusedWorldChunkparameter, andChunkLightingManagerexposesinvalidateLightInChunkSectionsfor section-level invalidation. - Cursor server cameras work on a gamepad now. The right stick drives the real cursor through a new
GamepadCursorhelper, andPrimaryItemActionwithSecondaryItemActionsend the click packets, so triggers break and use whatever the cursor is over. com.hypixel.hytale.protocol.DurabilityOperatoris nowComparisonOperator, 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.WeatherTrackergainedtryClaimOverride,releaseOverrideandresolveUnoverriddenWeatherIndex.clearOverrideWeatherIndexnow drops the owner as well. One owner holds a weather override at a time.EventTitleUtilhas overloads that take anEventTitleStyle. The boolean overloads still work but are deprecated for removal.TargetUtil.getTargetBlockandgetTargetLocationtake aChunkStorewhere they used to take aWorld, so plugin code calling them directly has to passworld.getChunkStore()instead.- Explosions, block explosion effects, block harvesting, raycast selectors and the spectator camera all work in cubic worlds now that
TargetUtilno longer assumes a single vertical column. ClientFeatureno longer carriesDisplayHealthBars,DisplayCombatText,CanHideHelmet,CanHideCuirass,CanHideGauntlets,CanHidePants,AllowBlockPlacement,AllowBlockBreakingorAllowBlockGathering, and a plugin naming one of them stops compiling. Those rules live in theGameplayConfigasset now, whileClientFeaturekeeps the movement capabilities plugins register themselves.ChunkAccessor.performBlockUpdateandWorldChunk.setTickingare gone. UseBlockOperations.updateBlockAreafor a whole hitbox orBlockSection.setTickingwithChunkSection.markNeedsSavingfor one cell, and note thatupdateBlockAreanow takes theChunkSectionas well as theBlockSection.- Block writes are moving onto sections, so
WorldChunk.setBlockandWorldChunk.breakBlockare deprecated for removal and now delegate toBlockOperations.setBlock. They also fireBlockAnimationModule.onBlockReplaced, so block replace animations play for these writes, andWorldChunk.setBlockPhysicsalong withBlockTypeModule.SET_BLOCK_SETTINGSand 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
WorldChunkis now marked for removal, acrossIChunkAccessorSync,IWorldChunksAsync,IWorldChunks,WorldandLocalCachedChunkAccessor. Behavior is unchanged, but plugins compile with deprecation warnings and should move toChunkStore.getChunkReferenceand the section store. - The deprecated
IChunkAccessorSync.getBaseBlockis gone. Filler blocks now resolve throughBlockOperations.resolveBaseBlockPosition, which takes aChunkStoreand never triggers a chunk load. BlockDataProviderresolves its chunk and fluid sections once per block read instead of on every field access. ThereadBlockId,readRotation,readFiller,readFluidIdandreadFluidLevelmethods are private now, so a plugin that called them directly will not compile.Wildernessgainssize(),test(int)andisValid(), so a plugin can walk a player's tracked region by index and test one chunk without world coordinates.- Added a
Rewardsbuiltin module that plugins can extend with their own reward types. It ships one type for now,EntitlementReward, which grants an entitlement throughRewardAsset. - The remaining sync chunk accessor members are marked for removal now. The nine default methods on
IChunkAccessorSync,ChunkAccessor.getFluidIdandOverridableChunkAccessorall warn, soworld.getBlock,setBlock,breakBlockand the rest flag at every call site.IWorldChunks.waitForFutureWithoutLockis 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.setChunkSectionandgetMaximumHitboxExtent,PaletteTypeEnum.getPaletteId, and ten accessors onLocalCachedChunkAccessor. Read and write through the section ref instead, usingAbstractCachedAccessororChunkStore.getChunkReference. - The new
Hytale:Beambuiltin ships aBeamComponentholdingAttachedBeamentries, 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.spawncreates 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 aDespawnComponent.- The
GroundedConditioninteraction moved out of the Abilities builtin into the core server, so an interaction can use it without that plugin loaded. - The public
ItemMergeSystem#RADIUSconstant is gone. Merge distance now comes from the item's config throughItemComponent#getMergeRadius(ComponentAccessor), withItemComponent#setMergeRadius(float)for changing it at runtime.
Modder-Facing Bug Fixes
World Generation Fixes
- Fixed the
SectionSizepin of the Cache Positions node. - Added missing tooltips on Density nodes.
- Reduced severity for invalid Normalizer Density arguments (where
FromMinequalsFromMax) 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
Defaultstate differently from each other.
NPC & Entity Fixes
- Fixed
BuilderMotionControllerWalk.getFenceBlockSetthrowing 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.
DestroyTaggedVolumesInteractionpicked up the same guard. - Fixed a pathfinder crash on roles that turn
DiagonalMovesoff. - Fixed a blocked path being recomputed every tick.
Fixed the NPC charge probe accepting an invalid end position. - Cleaned up the
BodyMotionChargeconfig 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.
SendMessageandShowEventTitleboth 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
Float2ObjectMapfields now matches what the codec really reads and writes. The generated key pattern accepts scientific notation such as1.0E-4and leading-dot values such as.5, and it no longer lets non-numeric keys like1x2slip through.
Server & Permission Fixes
- The
world addcommand now tells you whether creation succeeded or failed instead of quietly dropping the result. - Fixed
/fluid setradiusonly making one block of the filled region flow instead of all of it, and/block settickingnow resolves the chunk section itself and tells you when it is not loaded. - A
MaxViewRadiusoutside 1 to 32 inconfig.jsonno 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
FormattedMessagetrees, item categories, command trees, and interaction chains. Real content sits far below that bound. UpdateLanguage.Languageis a required protocol field now instead of an optional one, and the protocol version was bumped for it. It andConnect.Languagealso 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
displayCursoronServerCameraSettingsgets cursor targeting back, and every movement direction uses the forward speed, so strafing is no longer slower than walking ahead. PlayerMouseButtonEventfires 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
MouseInteractionpackets no longer go out behind a UI overlay. - An
ItemGridin a custom UI page no longer needs aDefaultItemIcon. An item whose icon will not resolve falls back to the unknown item icon, andDefaultItemIconstill overrides that placeholder. - A universe resource whose codec comes from a plugin
getCodecRegistryis now written at shutdown. The final flush moved to the newShutdownEvent.FLUSH_UNIVERSE_RESOURCESstage, which runs afterSHUTDOWN_WORLDSwhile every plugin is still enabled. - A
ClientToolnow getsOnActiveStateChange(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.
I18nModulenow keys cached messages by the language returned from its newresolveLanguage()instead of the raw client string, andqueueTranslations()replacessendTranslations()so repeated language switches on one connection coalesce into a single send.
Additions (We forgot some stuff - sorry!
)
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
Transparentflag, that allows individual faces to be toggled transparent or not.Blocks have now gained the
Requires Alpha Blendingflag that allows per-block type transparency.Fixed
Anchor PropDistributionsharing that was using a global context instance.Limited the
Graph PositionProviderandGraph PropDistributionbounds to the output bounds.