{"title":"26.50 - Wilderness Bound","version":"26.50","patchNoteType":"retail","date":"2026-09-15","image":{"title":"26.50.jpg","url":"/v2/images/26.50.jpg"},"body":"<p>Wilderness Bound is out now in Minecraft! Pack your supplies and set off on an expedition into the dappled forest where the trails end and adventure begins. Seek out abandoned camps, build outposts among the poplar trees, sleep under the stars on straw beds, and share campfire stories atop cushions. Just remember that the wilderness rewards the prepared — and maps are lighter than regrets!<h1>Game Drop 3 Features</h1><h2>Abandoned Camp</h2><ul><li>The Abandoned Camp structure is a new kind of structure which can be found in the following biomes:<ul><li>Meadow<li>Cherry Grove<li>Forest<li>Birch Forest<li>Old Growth Birch Forest<li>Flower Forest<li>Windswept Forest<li>Dappled Forest<li>Taiga<li>Snowy Taiga<li>Old Growth Spruce Taiga<li>Old Growth Pine Taiga<li>Sparse Jungle<li>Bamboo Jungle<li>Swamp<li>Savanna<li>Wooded Badlands<li>Pale Garden</ul><li>Each of these biomes has its own variant of the structure with design based on that biome<li>Certain structure pieces are generic for all biome variants of the structure<li>Various Chests and Barrels with loot can be found at Abandoned Camps<li>Straw Beds can be found in Abandoned Camps<li>Cushions can be found in Abandoned Camps<li>Chests in Abandoned Camps contain Explorer Maps that lead to Ancient City, Mineshaft, Desert Pyramid, Warm Ocean Ruins, and other biome variants of Abandoned Camps</ul><h2>Blocks</h2><ul><li>Added Wool Stairs and Wool Slab blocks in all 16 colors<li>Added Concrete Stairs and Concrete Slab blocks in all 16 colors</ul><h2>Cushion</h2><ul><li>The Cushion is an item that the player can place in the world and interact with to sit on<li>Can be crafted in 16 colored variants<li>Cushions are crafted using 3 Wool Slabs of the same color</ul><h3>Cushion Placement Rules</h3><ul><li>A Cushion can be placed on any flat surface<li>Cushions always align horizontally to the grid, but vertically sit on top of the supporting surface<li>Cushions cannot move<li>Cushions break if the supporting block is removed<li>Cushions do not have collision and can overlap with other objects (except other Cushions)</ul><h2>Dappled Forest</h2><ul><li>The Dappled Forest is a new type of forest biome which can be found near cold biomes<li>Poplar Trees and fallen Poplar Trees generate here<li>Shelf Mushrooms can be found here, placed on Poplar Trees and fallen Poplar Trees<li>Red Shrubs generate here<li>The following passive and neutral mobs spawn in the Dappled Forest, using their cold variants where applicable:<ul><li>Sheep<li>Chicken<li>Cow<li>Pig<li>Rabbit<li>Fox</ul><li>A Dappled Forest variant of the new Abandoned Camp structure can be found here</ul><h3>Poplar Trees</h3><ul><li>Added the Poplar Tree to the game<ul><li>A new type of tree in the Dappled Forest which comes in three color variations:<li>Red Poplar Leaves<li>Orange Poplar Leaves<li>Yellow Poplar Leaves</ul><li>Each variant of the tree has its own variant of falling leaf particles matching the color of the leaves<li>Poplar Leaves drop Poplar Saplings which will randomly grow into any of the three different variants<li>Poplar Saplings can be found in trades with Wandering Trader<li>Shelf Mushrooms and Leaf Litter naturally generates on and around Poplar Trees<li>The trunk of the trees are made of Poplar Logs<li>Poplar Logs can be crafted into a new set of Poplar wood blocks<li>Forest ambience sounds are tied to the Poplar Leaf blocks</ul><h3>Red Shrub</h3><ul><li>Red Shrub is a new type of decorative plant block that can be found in small patches in the Dappled Forest<li>Can be used in the Composter<li>Using Bone Meal on a Red Shrub grows a Red Shrub in a random adjacent space, if possible</ul><h3>Shelf Mushroom</h3><ul><li>A new type of mushroom that generates on Poplar Trees and fallen Poplar Trees<li>Can be found in two sizes, small and large<li>A small Shelf Mushroom can be grown into a large Shelf Mushroom using Bone Meal<li>A large Shelf Mushroom drops two Shelf Mushroom items when broken<li>Can be used like other mushrooms to make Stews<li>Can be found in trades with Wandering Trader<li>Shelf Mushroom has a slight bounciness when stepped on, similar to Beds</ul><h2>Straw Bed</h2><ul><li>Straw Bed is a new type of bed which can be used to sleep through the night without setting your spawn point<li>It can only be used once and will be destroyed after use<li>It can not be used in the Nether or The End and will be destroyed if you try to sleep on it there<li>It is crafted using 3 Hay Bales and will give you 4 Straw Beds<li>Straw Beds breaks faster when using a Hoe</ul><h1>Features and Bug Fixes</h1><h2>Accessibility Features</h2><ul><li>The \"Text to Speech with Device Settings\" option has been removed. Text to speech can still be turned on or off through the accessibility settings, and a first time TTS discovery is still done on all devices as before.<li>A green vignette now appears while the nausea effect is active when screen distortion is turned all the way off via accessibility settings (<a href=https://bugs.mojang.com/browse/MCPE-239554 rel=\"noopener noreferrer\"target=_blank>MCPE-239554</a>)</ul><h2>Blocks</h2><ul><li>Restored the growth speed of Sulfur Spikes and Pointed Dripstone after a recent change accidentally made them grow 25 times faster<li>Cherry, Pale Oak, and Poplar Saplings are no longer flammable, matching all other Saplings<li>Fixed Saplings not growing when Leaves were above them (<a href=https://bugs.mojang.com/browse/MCPE-240014 rel=\"noopener noreferrer\"target=_blank>MCPE-240014</a>)<li>Fixed block connection states being lost when loading a world saved before those states existed, which could leave fences, stairs, thin fences, and trip wire drawn as if they were not connected</ul><h2>Character Creator</h2><ul><li>Skins can now have names consisting entirely of numbers</ul><h2>Gameplay</h2><ul><li>Fixed Hoppers unintentionally collecting items on its side at large coordinates (<a href=https://bugs.mojang.com/browse/MCPE-99462 rel=\"noopener noreferrer\"target=_blank>MCPE-99462</a>)<li>Fixed Droppers facing east or south inserting items into containers below them instead of ejecting items forward (<a href=https://bugs.mojang.com/browse/MCPE-167490 rel=\"noopener noreferrer\"target=_blank>MCPE-167490</a>)<li>Fixed a bug where damage calculation did not apply correctly to Players falling from certain heights through one block of water<li>Fixed an issue that could cause players who died while inside a Nether portal to respawn in the Nether<li>Fixed an issue where the same world seed would generate end portals with inconsistent amounts of Eyes of Ender (<a href=https://bugs.mojang.com/browse/MCPE-227980 rel=\"noopener noreferrer\"target=_blank>MCPE-227980</a>)<li>Fixed entity teleporting to unexpected location when using the teleport command between dimensions (<a href=https://bugs.mojang.com/browse/MCPE-181173 rel=\"noopener noreferrer\"target=_blank>MCPE-181173</a>)<li>Player Map icon now shows rotation even while outside of the map bounds<li>Explorer Maps now have new item icons to better indicate where they lead<li>Fixed Totem activation not synchronizing health when final health equals the original value<li>Fixed an issue where players and mobs could load in a world at (0,0,0) and lose all their items after reloading world<li>Lava lakes no longer replace nearby Beds or Doors with stone during world generation if a lake generates in a village</ul><h2>Graphical</h2><ul><li>Fixed missing Baby Fox texture (<a href=https://bugs.mojang.com/browse/MCPE-240546 rel=\"noopener noreferrer\"target=_blank>MCPE-240546</a>)<li>Fixed clouds rendering as bright white spots after switching to Vibrant Visuals in-game with low cloud render distance<li>Fixed tears in the dithering effect when looking through models in Vibrant Visuals.<li>In-game models and textures now load correctly when the network connection changes while joining a world (<a href=https://bugs.mojang.com/browse/MCPE-234954 rel=\"noopener noreferrer\"target=_blank>MCPE-234954</a>)<li>Fixed bug with item in hand jittering with temporal anti-aliasing upscaling enabled<li>Fixed an issue that caused the sky to render incorrectly when seen through boats in Vibrant Visuals<li>Changed the map color of the Red Shrub to Crimson Nylium<li>Changed the map color of the Shelf Mushroom to Terracotta Yellow</ul><h2>Items</h2><ul><li>Updated Sulfur Cube Spawn Egg icon's MERS (<a href=https://bugs.mojang.com/browse/MCPE-237771 rel=\"noopener noreferrer\"target=_blank>MCPE-237771</a>)<li>Projectiles can now only hit the entity that shot them, or entities in the same vehicle hierarchy (such as the shooter's mount), after they have spatially left that hierarchy (<a href=https://bugs.mojang.com/browse/MCPE-240527 rel=\"noopener noreferrer\"target=_blank>MCPE-240527</a>)<ul><li>This prevents players from damaging themselves with lightly charged Arrows</ul><li>Fixed issues that occurred when attempting to pick up a Small Sulfur Cube or a lit TNT Sulfur Cube with a Bucket (<a href=https://bugs.mojang.com/browse/MCPE-239750 rel=\"noopener noreferrer\"target=_blank>MCPE-239750</a>)<li>The targeted Sulfur Cube and water or lava sources, Powder Snow, or water from waterlogged blocks at the world origin no longer disappear<li>Using a Bucket from a stack larger than eight no longer creates additional Buckets</ul><h2>Mobs</h2><ul><li>Reduced stuttering that can occur when a mob is far away (<a href=https://bugs.mojang.com/browse/MCPE-108119 rel=\"noopener noreferrer\"target=_blank title=https://bugs.mojang.com/browse/mcpe-108119>MCPE-108119</a>)<li>Endermen will now always attempt to teleport away before being hit by a projectile (<a href=https://bugs.mojang.com/browse/MCPE-117298 rel=\"noopener noreferrer\"target=_blank>MCPE-117298</a>)<li>Armor Stands and Drowned are now harder for hostile mobs to detect while invisible<li>Bats now spawn in all Overworld biomes except the Deep Dark<li>Fixed a bug where Spiders and Cave Spiders would occasionally be slowed by Web blocks<li>Fixed an issue where mobs and players could reload with an inconsistent movement speed<li>Chains no longer prevent mobs from spawning in the space underneath them (<a href=https://bugs.mojang.com/browse/MCPE-190746 rel=\"noopener noreferrer\"target=_blank>MCPE-190746</a>)<li>Fixed issue where using a lava bucket on a cow produced a milk bucket.<li>Husks and Zombies now retain their held and equipped items when transforming into Zombies and Drowned<li>Fixed incorrect naming for the yellow tail parrot fish (<a href=https://bugs.mojang.com/browse/MCPE-117477 rel=\"noopener noreferrer\"target=_blank>MCPE-117477</a>)</ul><h2>Pack Settings</h2><ul><li>Fixed a bug when a pack's dependency packs would not load pack settings properly.</ul><h2>Realms</h2><ul><li>Fixed an issue where players would sometimes not respawn at their bed or respawn anchor after dying in a different dimension on a Realm (<a href=https://bugs.mojang.com/browse/REALMS-14459 rel=\"noopener noreferrer\"target=_blank>REALMS-14459</a>)<li>Fixed in-game realms system performance regression<li>Disable an expired Realm's Renew button when renewal is not supported on current device<li>Users are warned when applying custom packs to their realm and how they will appear when profanity filter is enabled &#38 custom pack names and descriptions are filtered when viewing in Edit World when profanity filter is enabled<li>Added support for realm name changed and realm description changed admin log events<li>Add different default values for some subscription details information that can come back null from Realms Services to avoid blocking players from viewing subscription related screens with an error modal<li>Added guards for cases where callbacks are fired after facet goes out of scope in create new world flow<li>Fix for when the user tries to download a copy of a Realm world after changing settings results in the download never happening<li>Fixed height on the members search bar<li>Introduced a localized loading spinner to replace the play button on the Realms tab when the client is fetching additional information from services, and a reload button that player can use to reload the tab should the fetch fails<li>Fixed the string Core and Plus sometimes are being translated in other languages<li>Fixed realm role actions not showing correctly for certain roles<li>Friend profiles now have a Realm-specific join button when the Realm is available<li>Fixed an issue that would sometimes cause a crash on opening Realms Edit World, particularly on iOS devices</ul><h2>Sounds</h2><ul><li>Multiple Jukeboxes can now play the same record independently<li>Broadcast sounds such as Jukebox records now play from the correct position for players who move into range or connect after the sound has started</ul><h2>Stability and Performance</h2><ul><li>Fixed a rare crash that could occur while ticking block entities<li>Fixed a crash that can occur when failing to parse certain resource pack contents.<li>Fixed an issue where updates to chunks would sometimes not save correctly when the same chunk was unloaded and loaded rapidly<li>Fixed a crash that could occur when opening Change Control Mode under Touch Settings after deleting a world<li>Fixed memory leaks when blocks are moved by a piston outside of simulation distance (<a href=https://bugs.mojang.com/browse/MCPE-238926 rel=\"noopener noreferrer\"target=_blank>MCPE-238926</a>)<li>Fixed a crash that could occur while retrieving network addresses on Android<li>Fix CPU usage increasing after idling on the pause screen or controller disconnected screen (<a href=https://bugs.mojang.com/browse/MCPE-235086 rel=\"noopener noreferrer\"target=_blank>MCPE-235086</a>)<li>Fixed some particles that crashed the game when ran as commands (<a href=https://bugs.mojang.com/browse/MCPE-184162 rel=\"noopener noreferrer\"target=_blank>MCPE-184162</a>)<li>Fixed a crash that could occur when flying over or through water bodies with entities nearby<li>Reduced main thread work during world load by removing the redundant precaching of the world settings screen<li>Fixed a crash that could occur when render controller expressions referenced variables of the wrong resource type<li>Fixed worlds containing chunks saved before block connection upgrades getting stuck while loading when creating the world<li>Fixed an issue that could disconnect players while loading worlds with certain add-on content (<a href=https://bugs.mojang.com/browse/MCPE-241505 rel=\"noopener noreferrer\"target=_blank>MCPE-241505</a>)<li>Fixed the game stuttering in world after long play sessions or after leaving the game suspended for an extended time<li>Reduced the memory used by animated Character Creator skins</ul><h2>User Interface</h2><ul><li>New social/friends drawer infrastructure with performance fixes.<li>The profile achievements screen now mentions \"Beta\" instead of \"Preview\" when on a Beta build (<a href=https://bugs.mojang.com/browse/MCPE-186514 rel=\"noopener noreferrer\"target=_blank>MCPE-186514</a>)<li>Added high-resolution Korean font support and fixed Korean text showing as question marks on mobile<li>Fix mouse wheel input sometimes not registering on Windows platform (<a href=https://bugs.mojang.com/browse/MCPE-234311 rel=\"noopener noreferrer\"target=_blank>MCPE-234311</a>)<li>Fixed a bug where bold text inside a book would extend beyond the page margins (<a href=https://bugs.mojang.com/browse/MCPE-235450 rel=\"noopener noreferrer\"target=_blank>MCPE-235450</a>)<li>Added missing translation text to layout button of Achievements screen<li>Selecting a Featured Item from the Dressing Room no longer requires 2 clicks to select the item<li>Ported the party eligibility check when joining multiplayer from JSON to the OreUI<li>Added a Clear Layout Cache action to Storage settings for cached Server tab content<li>Added a new grid option for viewing achievements and some general UX improvements<li>Updated the inventory panel in the Loom, Stonecutter, Cartography Table, Villager, and Wandering Trader screens in Pocket UI to match the header style used by the Inventory and Crafting Table screens<li>Added <code>Acquired Date</code> as the default sort option for the <code>Owned by Me</code> tab in <code>Create from template</code>, showing the most recently acquired templates first<li>Store the Furnaces recipe book preferences after reloading a world (<a href=https://bugs.mojang.com/browse/MCPE-239320 rel=\"noopener noreferrer\"target=_blank>MCPE-239320</a>)<li>Fix vertical menu screen reader narration in settings screens<li>Fixed the game crashing by pressing Tab repeatedly while dying (<a href=https://bugs.mojang.com/browse/MCPE-239639 rel=\"noopener noreferrer\"target=_blank>MCPE-239639</a>)<li>Japanese symbols are no longer displayed with a different font in specific areas of the UI (<a href=https://bugs.mojang.com/browse/MCPE-239802 rel=\"noopener noreferrer\"target=_blank>MCPE-239802</a>)<li>Text strings on world tile buttons across My World, My Templates and Servers menus are no longer truncated by ellipses<li>Screenshots can now be set as world thumbnails without triggering an assertion<li>Fixed cape causing visual discrepancies between the in game model and the model shown in the Dressing Room<li>Trusted servers no longer prompt players for confirmation after restarting the client<li>Fixed error message display when the Marketplace wishlist fails to load, ensuring players receive appropriate feedback about connectivity and service issues (US-1656572)<li>Updated Adjust brightness screen in Settings (in and out of game) to use new Ore UI design and tech.<li>Added an empty-state message for Marketplace Wishlist with a Browse Marketplace call to action<li>Updated the Chat Settings UI to increase readability of the Chat Color and My Mentions Color dropdowns<li>Fixed an issue that prevented TNT and Stonecutters from being crafted using quick crafting in the Recipe Book (<a href=https://bugs.mojang.com/browse/MCPE-240038 rel=\"noopener noreferrer\"target=_blank>MCPE-240038</a>)<li>Fixes 'out of space' error displaying when attempting to download large items regardless of available space<li>Fixed issue where setting the Cheats toggle to OFF during world creation would not reset cheats to default values<li>Added wishlist pagination with gamepad bumper navigation<li>Added dynamic wishlist grid row sizing for marketplace wishlist cards<li>Improved inventory item tooltips<ul><li>Let us know what you think <a href=https://aka.ms/mc-updatedbedrocktooltips rel=\"noopener noreferrer\"target=_blank>here</a></ul><li>PS4/PS5: GUI Scale modifier will now be respected on title launch (<a href=https://bugs.mojang.com/browse/MCPE-89543 rel=\"noopener noreferrer\"target=_blank>MCPE-89543</a>)<li>Updated style of \"Leave Boat\" button in the \"D-Pad &#38 tap to interact\" touch option (<a href=https://bugs.mojang.com/browse/MCPE-235723 rel=\"noopener noreferrer\"target=_blank>MCPE-235723</a>)<li>Achievement warnings are no longer displayed in Preview or Beta builds<li>Realms Plus subscribers who open Marketplace Pass from the Marketplace sidebar now go straight to the View All Packs screen instead of the subscription page<li>Improved inventory input mode switching between touch and mouse<li>Prevent gamepad button swapping for emotes<li>Fixed an issue where block items held on the cursor could render behind other block items, such as a Shelf Mushroom appearing behind a Snow Layer, in the inventory (<a href=https://bugs.mojang.com/browse/MCPE-240495 rel=\"noopener noreferrer\"target=_blank>MCPE-240495</a>)<li>Fixed double toast notification happening while importing an old world from PS4 preview to PS5 preview<li>Fixed leftover instances where button touch areas did not align with the buttons in windowed Android modes with a title bar, such as Samsung DeX and pop up view.<li>Some sign-in errors which were previously reported as \"Wool\" are now reported with a more specific codename<li>Screen narration now properly reads out the first focused element after opening the Pause Menu<li>Fixed a bug where a party leader using Join Game on a friend not in their party would spuriously see the \"Your party is too large\" message<li>The Shelf Mushroom now has the correct scale in the inventory slots<li>Prevent soft-locks when the game is unable to connect to a server (<a href=https://bugs.mojang.com/browse/MCPE-240897 rel=\"noopener noreferrer\"target=_blank>MCPE-240897</a>)<li>Fixed the gamepad cursor in menus becoming choppy after long play sessions or after leaving the game suspended for an extended time<li>Added an option to mute a player when reporting their chat messages</ul><h3>Marketplace</h3><ul><li>Migrated the Marketplace Wishlist flow to the OreUI factory pattern</ul><h3>Play Screen</h3><ul><li>Remove flickering icon and world card texture on layout change in Play screen. Additionally, the column layout now alternate between 4, 3 and 2 columns depending on screen size.</ul><h3>Settings</h3><ul><li>The Tick Speed can now be set to 0 inside Game Settings Tab. (<a href=https://bugs.mojang.com/browse/MCPE-238556 rel=\"noopener noreferrer\"target=_blank>MCPE-238556</a>)</ul><h3>Storage</h3><ul><li>Updated old world conversion flow in Ore UI Storage Settings Tab.<li>Ported in OreUI the Modal connected to the \"Sync Old World\" action in the Storage tab<li>Ported in OreUI the deletion modal used by the Storage list</ul><h1>Technical Updates</h1><h2>Actor Components</h2><ul><li>Made the 'minecraft:anger_level' schema stricter when parsing and fail to load an entity json that has invalid data in versions 1.26.50 and newer.<li>Made the 'minecraft:barter' schema stricter when parsing and fail to load an entity json that has invalid data in versions 1.26.50 and newer.</ul><h2>AI Components</h2><ul><li>Made schemas for the following components stricter when parsing and will fail to load an entity json that has invalid data in versions 1.26.50 and newer.<ul><li><code>minecraft:boss</code><li><code>minecraft:collision_box</code><li><code>minecraft:damage_over_time</code><li><code>minecraft:exhaustion_values</code><li><code>minecraft:flocking</code></ul><li>Made schemas for the following components stricter when parsing and will fail to load an entity json that has invalid data in versions 1.26.50 and newer.<ul><li><code>minecraft:game_event_movement_tracking</code><li><code>minecraft:grows_crop</code><li><code>minecraft:home</code><li><code>minecraft:trade_table</code><li><code>minecraft:physics</code></ul><li>Made schemas for <code>minecraft:interact</code> stricter when parsing and will fail to load an entity json that has invalid data in versions 1.26.50 and newer.<ul><li><code>interactions</code>, <code>spawn_entities</code>, and <code>play_sounds</code> fields has changed to only take arrays</ul><li>Made schema for <code>minecraft:projectile</code> stricter when parsing and will fail to load an entity json that has invalid data in versions 1.26.50 and newer.<ul><li>Alternate names for fields are no longer valid<li><code>first_spawn_chance</code> and <code>second_spawn_chance</code> fields under <code>spawn_chance</code> now take floats in the range 0.0 - 1.0<li><code>anchor</code> field now takes the following string values instead of integers: \"origin\", \"eye_height\", \"middle\"<li><code>damage</code> field under <code>impact_damage</code> now takes an object with <code>min</code> and <code>max</code> fields<li><code>effects</code> field under <code>mob_effects</code> now now takes an array of mob instances</ul><li>Made schema for the <code>minecraft:tamemount</code> component stricter when parsing and will fail to load an entity json that has invalid data in versions 1.26.50 and newer.<li>Made schema for the <code>minecraft:preferred_path</code> component stricter when parsing and will fail to load an entity json that has invalid data in versions 1.26.50 and newer.</ul><h2>AI Goals</h2><ul><li>Added <code>in_range_movement_mode</code> to <code>minecraft:behavior.ranged_attack</code> for format versions 1.26.50 and newer<ul><li><code>hold_position</code> makes the entity hold its position while within attack range<li><code>follow_target</code> makes the entity continue moving toward its target while within attack range</ul><li>Actor goal <code>minecraft:behavior.ranged_attack</code> now takes a float range for <code>attack_range</code> instead of <code>attack_radius_min</code> and <code>attack_radius</code> for format versions 1.26.50 and newer<li>Made the schema for <code>minecraft:behavior.follow_mob</code> stricter when parsing, now will fail to load an entity json that has invalid data in versions 1.26.50 and newer<li>Updated \"minecraft:behavior.follow_mob\" : whenever the goal stops or is removed through a component group change, the mob's navigation is always interrupted.</ul><h2>API</h2><ul><li>Fixed <code>EffectTypes.get()</code> and <code>EffectTypes.getAll()</code> so they can be called from before events<li>Released <code>@minecraft/server</code> version 2.10.0<li>Added <code>@minecraft/server</code> version 2.11.0-beta<li><code>SoundInstance</code> now exposes an <code>id</code> property that returns a unique identifier for the instance<li><code>SoundInstance</code> now exposes a <code>soundEventId</code> property that reports the sound event the instance was started with<li><code>SoundInstance</code> now exposes a <code>recipient</code> property that returns the <code>Player</code> the sound was played for, or <code>undefined</code> for broadcast sounds<li><code>SoundInstance</code> now exposes a <code>durationInfo</code> property that returns a <code>SoundDurationInfo</code> when the underlying sound definition includes duration information, otherwise <code>undefined</code><li>Added <code>SoundDurationInfo</code> with a <code>duration</code> property, an <code>isActive</code> property, and a <code>getPlaybackPosition()</code> getter that returns the elapsed playback time in seconds<li><code>WorldAfterEvents</code> now exposes a <code>soundCompleted</code> signal with a <code>soundInstanceId</code> property that matches the <code>id</code> of the <code>SoundInstance</code> that completed, which fires when a tracked sound's declared duration elapses<li>Released <code>interface BlockQueryOptions</code> from <code>beta</code> to <code>v2.10.0</code><li>Changed <code>function Dimension.getBlocks</code> to use <code>BlockQueryOptions</code> in <code>v2.10.0</code><li>Released <code>function BlockVolumeBase.getClosest</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>function BlockVolumeBase.getFarthest</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>function Camera.addShake</code> from <code>beta</code> to <code>V2.10.0</code><li>Released <code>function Camera.stopShaking</code> from <code>beta</code> to <code>V2.10.0</code><li>Released <code>interface CameraShakeOptions</code> from <code>beta</code> to <code>V2.10.0</code><li>Released <code>enum CameraShakeType</code> from <code>beta</code> to <code>V2.10.0</code><li>Renamed <code>EntityTamedEventFilter</code> to <code>EntityTamedEventOptions</code> for consistency<li> Released <code>class EntityTamedEventOptions</code>from <code>beta</code> to <code>v2.10.0</code><li>Released <code>class EntityTamedAfterEvent</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>class EntityTamedAfterEventSignal</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>class EntityTamedBeforeEvent</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>class EntityTamedBeforeEventSignal</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>interface EntityTamedEventOptions</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>property WorldAfterEvents.entityTamed</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>property WorldBeforeEvents.entityTamed</code> from <code>beta</code> to <code>v2.10.0</code><li>Moved <code>BlockInstrumentComponent</code> from beta into 2.10.0.<li>Released <code>class EntityStartSneakingAfterEvent</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>class EntityStartSneakingAfterEventSignal</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>class EntityStopSneakingAfterEvent</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>class EntityStopSneakingAfterEventSignal</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>interface EntitySneakingChangedEventOptions</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>property WorldAfterEvents.entityStartSneaking</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>property WorldAfterEvents.entityStopSneaking</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>Player.fogSettings</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>class FogSettings</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>class FogSettingsError</code> from <code>beta</code> to <code>v2.10.0</code><li>Released <code>class BlockDynamicPropertiesComponent</code> from <code>beta</code> to <code>V2.10.0</code>.<li>Released <code>class ItemBlockDynamicPropertiesComponent</code> from <code>beta</code> to <code>V2.10.0</code>.<li><code>Entity.teleport</code> now throws an <code>Error</code> when the entity has passengers and the target dimension is different from the entity's current dimension. Passengers must be dismounted before teleporting to another dimension. Current solution is scoped to fix current game breaking interruptions with future improvements backlogged.<li>Tamed pets no longer attempt to follow their owner when the owner travels to or from a custom dimension<li>Fixing 'scale' property on <code>DebugShape</code> when used with <code>DebugCone</code>, <code>DebugEllipsoid</code>, <code>DebugPyramid</code>, and <code>DebugCylinder</code>.<li>'rotation' property of <code>DebugShape</code> now applies to <code>DebugLine</code>, <code>DebugArrow</code>, <code>DebugCircle</code>, <code>DebugSphere</code>, and <code>DebugBox</code>.<li><code>World</code> now exposes a <code>soundDefinitionRegistry</code> property that returns a <code>SoundDefinitionRegistry</code> for querying registered server sound definitions<li>Added <code>SoundDefinitionRegistry</code> with a <code>getDefinitions()</code> method that returns the registered <code>SoundDefinition</code> entries and accepts an optional <code>SoundDefinitionFilter</code><li>Added <code>SoundDefinition</code> with a <code>soundEventId</code> property, a <code>durationInfo</code> property, a <code>musicInfo</code> property, and a <code>tags</code> property<li>Added <code>SoundDefinitionDurationInfo</code> with a <code>duration</code> property<li>Added <code>SoundDefinitionMusicInfo</code> with <code>genres</code>, <code>moods</code>, <code>artist</code>, and <code>title</code> properties<li>Added <code>SoundDefinitionFilter</code> with <code>minDuration</code>, <code>maxDuration</code>, <code>genres</code>, <code>moods</code>, <code>artists</code>, <code>titles</code>, and <code>tags</code> properties<li><code>Player.playSound</code> now accepts a <code>SoundDefinition</code> in addition to a sound event id<li>Fixed a bug where called the <code>Player.playSound</code> method could result in read-only errors when writing new properties to the player class afterwards.<li>Fixed <code>Player.fogSettings</code> APIs throwing when player re-joins server.<li>Releasing <code>PrimitiveShapesManager.getShapes</code> from beta to 2.10.0.<li>Releasing <code>PrimitiveShapeQueryOptions</code> from beta to 2.10.0.<li><code>DimensionTypes.get</code> and <code>DimensionTypes.getAll</code> now return custom dimension types in addition to vanilla dimension types</ul><h3>@minecraft/server-graphics</h3><ul><li>Released version 1.0.0 of <code>@minecraft/server-graphics</code>, promoting the module and all of its APIs out of beta<li><code>@minecraft/server-graphics</code> version 1.0.0 requires version 2.3.0 or later of <code>@minecraft/server</code></ul><h3>DDUI</h3><ul><li>Fixed a bug where large Images in CustomForms cause the background of the form to be invisible for an extended period of time.<li>Added <code>fixedFormatDigits</code> to <code>SliderOptions</code> within <code>@minecraft/server-ui</code> so the slider display can format to a certain decimal point.<li>Fixed a bug where hiding a <code>CustomForm</code> and then immediately showing another one would get the response <code>UserBusy</code>. Now it appropriately swaps to the second form.<li>Released <code>CustomForm.image</code> and <code>ImageOptions</code> to version 2.2.0 of <code>@minecraft/server-ui</code><li>The close button in DDUI forms now make a sound when clicked or when the form is closed with a key shortcut.<li>Fixed a issue where DDUI (CustomForm/MessageBox) was not working in split screen.</ul><h3>Dimension</h3><ul><li>Moved the <code>cloneBlocks</code> method from <code>beta</code> to <code>v2.10.0</code>, allowing regions of blocks to be cloned from one area of a dimension to another with support for clone modes and an optional block filter<ul><li>Released <code>enum CloneMode</code><li>Released the <code>Dimension</code> method <code>cloneBlocks</code></ul></ul><h3>Loot Tables</h3><ul><li>Added the optional <code>operator</code> field to all loot table conditions, allowing control of whether the condition's result is used directly or negated<ul><li><code>==</code> and <code>equals</code> apply when the condition evaluates to true<li><code>!=</code> and <code>not</code> apply when the condition evaluates to false<li>Omitting <code>operator</code> preserves the existing behavior and is equivalent to using <code>==</code></ul></ul><h4>Example</h4><p>The following condition allows a loot entry to be selected only when the loot context is not in a biome with the <code>plains</code> tag:<pre><code class=language-json>{\n  \"condition\": \"biome_has_tag\",\n  \"operator\": \"not\",\n  \"tag\": \"plains\"\n}\n</code></pre><h3>Pack Settings</h3><ul><li>Added a new <code>multiselect</code> pack setting type, letting pack authors declare a list of options   - Molang can query for active options in the multiselect via <code>query.is_pack_setting_selected</code>   - <code>world.getPackSettings()</code> now can return an array of strings for multiselect options in <code>@minecraft/server</code> beta   - <code>PackSettingsChangeAfterEvent.settingValue</code> now can be an array of strings for multiselect options in <code>@minecraft/server</code> beta</ul><h3>Script Debugger</h3><ul><li>Added the <code>script-debugger-listen-address</code> server property; script debugger listen mode now binds to loopback by default, and non-loopback listen addresses require a configured passcode</ul><h3>Server-ui</h3><ul><li>Released version 2.2.0 of <code>@minecraft/server-ui</code></ul><h3>Structure Files</h3><ul><li>Added version 2 of the structure (<code>.mcstructure</code>) file format<ul><li>The <code>block_indices</code> arrays are now stored as NBT <code>IntArrayTag</code>s instead of a <code>ListTag</code> containing one <code>IntTag</code> per block, which significantly reduces the time and memory needed to save and load structures<li>The second <code>block_indices</code> array is now optional in version 2 structure (<code>.mcstructure</code>) files, and is left out when nothing is stored in the extra block layer, making those files ~50% smaller<li>Version 1 structures still load correctly, and are upgraded to version 2 the next time they are saved</ul></ul><h2>Block Components</h2><ul><li>Fixed an issue where custom blocks and items without a display name component that use localization keys to chain translations displayed their text inconsistently depending on the presentation context. These blocks and items will now consistently display as raw text unless a display name component is used (<a href=https://bugs.mojang.com/browse/MCPE-236819 rel=\"noopener noreferrer\"target=_blank>MCPE-236819</a>)<li>Update Block JSON loader to support future optimization and out of game upgrade</ul><h3>Leaves</h3><ul><li>All vanilla leaves blocks now carry the <code>minecraft:leaves</code> tag<li>Vanilla tree features match leaves through <code>\"tags\": \"query.any_tag('minecraft:leaves')\"</code> in <code>may_replace</code> instead of listing each leaves block by name, so a new leaves block no longer has to be added to every tree feature to be grown through</ul><h3>minecraft:tags</h3><ul><li>The <code>minecraft:is_shears_item_destructible</code> block tag now also grants the Shears breaking speed bonus, matching the behavior of the other <code>is_*_item_destructible</code> tags</ul><h3>Thin Fences and Trip Wire</h3><ul><li>Vanilla glass panes, iron bars, copper bars, and trip wire blocks now expose <code>minecraft:connection_north</code>, <code>minecraft:connection_east</code>, <code>minecraft:connection_south</code>, and <code>minecraft:connection_west</code> block states reflecting which cardinal neighbors they connect to<li>For new worlds (base game version 1.26.50 and later), thin-fence and trip-wire connection-state changes now trigger neighbor block updates for parity with Java Edition; existing worlds keep the prior client-only update behavior</ul><h2>Blocks</h2><ul><li>Extended <code>/fill</code> command behaviour with multi-blocks to Scripting fill block APIs, such as <code>Dimension.fillBlocks</code><li>The block component <code>minecraft:block_entity</code> no longer requires the experimental toggle from format version 1.26.20 onward.<li>Removed <code>minecraft:block_entity</code> component restrictions for multi-blocks, each part will have its own block entity by design<li>Released horizontal multi-blocks, these are blocks defined with the <code>minecraft:multi_block</code> trait with a <code>direction</code> field that is horizontal. Upcoming Creator Features experiment is still required for them if <code>format_version</code> is less than 1.26.50<li>Chorus Plant<ul><li>Chorus plant blocks now expose the <code>minecraft:connection_north</code>, <code>minecraft:connection_east</code>, <code>minecraft:connection_south</code>, <code>minecraft:connection_west</code>, <code>minecraft:connection_up</code>, and <code>minecraft:connection_down</code> block states reflecting which adjacent chorus plants and chorus flowers they connect to</ul><li>Fire<ul><li>Fire blocks now expose the <code>minecraft:connection_north</code>, <code>minecraft:connection_east</code>, <code>minecraft:connection_south</code>, <code>minecraft:connection_west</code>, <code>minecraft:connection_up</code>, and <code>minecraft:connection_down</code> block states reflecting the flammable and supporting blocks around them</ul><li>Replacing a custom block that has a <code>minecraft:block_entity</code> component with a different block definition now creates a new block entity, so the previous block's dynamic properties are no longer carried over to the block that replaced it. Changing only a block state keeps the same block entity and its dynamic properties</ul><h3>Fences</h3><ul><li>Vanilla fence blocks now expose per-direction connection block states (<code>minecraft:connection_north</code>, <code>minecraft:connection_east</code>, <code>minecraft:connection_south</code>, <code>minecraft:connection_west</code>), reflecting which neighbors the fence connects to. Changing a fence's connections now sends block updates to neighboring blocks in worlds using version 1.26.50 and later</ul><h3>Stairs</h3><ul><li>Vanilla stair blocks now expose a <code>minecraft:corner</code> block state (<code>none</code>, <code>inner_left</code>, <code>inner_right</code>, <code>outer_left</code>, <code>outer_right</code>) reflecting the corner shape formed with adjacent stairs<li>For new worlds (base game version 1.26.40 and later), stair corner-state changes now trigger neighbor block updates for parity with Java Edition; existing worlds keep the prior client-only update behavior</ul><h2>Camera</h2><ul><li>Camera presets that inherit from minecraft:follow_orbit no longer reset the player's rotation the first time they are applied, for presets using format version 1.26.50 or later</ul><h2>Commands</h2><ul><li>Added the <code>serveridentity</code> command, which lets dedicated-server operators save, delete, and check the status of the server identity key<li>Removed self selection expansion when using commands (i.e. <code>/tell</code>) for non-operator players</ul><h2>Dedicated Server</h2><ul><li>NetherNet is now the default transport used by dedicated servers<li>Windows dedicated servers, including EDU, now use the correct application data directory for Bedrock and Education<li>Added a dedicated server option to unpack optimized creator packs into loose files</ul><h2>Editor</h2><ul><li>Fixed a bug where images and GIFs shown in Editor tooltips were rendered at a fixed small size instead of scaling to span the full width of the tooltip<li>Fixed a bug in the Flood tool where applying it in an invalid location could continue the previous operation, and it now provides feedback when a valid liquid level has not been set<li>Added missing keycodes to the <code>KeyboardKey</code> enum, enabling them to be selected as shortcuts in Keyboard Settings<li>Mitigated a possible crash scenario where the user unlocks their PC after being idle for > 10 minutes while in a Realm<li>Added the Color Block List UI to the Custom Mesh Tool so creators can review detected mesh colors, replace suggested blocks, and delete color rows before color-aware placement<li>The Selection Tool's Hollow trim option now uses a dedicated hollow-cube icon<li>Updated labels for Sort Type Options to '0-9, A-z' and 'z-A, 9-0' in List Pane. Also implemented natural sort algorithm.<li>Added <code>TransactionHandler</code> API for a better way to track transaction events. Transaction operation handlers will now get created from this object<li>Added <code>PendingTransaction.addVolumeListOperation</code> and <code>VolumeListTransactionOperationHandler</code> APIs for more performant volume transactions<li>Improved transaction handling for large Selection volumes<li>Enabled Editor Test World reloads via <code>/reload all</code> without a vanilla connection<li>Implemented support for relative JSON paths <code>./</code> to resolve issues with the Vibrant Visuals Schema<li>This PR adds support to set a tool in a 'staging' mode. Tool in staging mode is not shown in the Tool Rail.<li>Updated <code>addUserDefinedOperation</code> API methods to accept separate transaction payloads representing the previous and new operation states<li>Removed Header Action API from IRootPropertyPane<li>Added optional property for IRootPropertyPane API to disable scrolling<li>Fixed a bug where the editing template in Layouts Editor saved in wrong template after changing the selected template in the Layout Template Manager.<li>This PR adds a new action: Layouts Managements that implements the new UI for the existing Layout Template. It is behind feature toggle for now.<li>The Texel Size slider is now disabled when using Soft Shadows in Vibrant Visuals, as this setting has no effect on soft shadow rendering<li>Fixed a bug that caused UI to not load on player join when the server load is high<li>Added color-aware Custom Mesh Tool placement so creators can place imported colored meshes as matched block groups from the Color Block List<li>Added a Render Clouds setting to the Editor World View panel<li>Added <code>addHeader</code> API to <code>ISubPanePropertyItem</code> to create a custom sub pane header with an optional prebaked multiselect checkbox, an overflow menu, and a dynamic region of icon buttons and color pickers<li>Added <code>buildSubPaneViewControl</code> API to <code>ISubPanePropertyItem</code> to sort, filter, and manage a list of header sub panes<li>Added <code>tags</code> option to <code>ISubPanePropertyItemOptions</code> for filtering sub panes through a parent sub pane view control<li>List view control actions can now declare a <code>submenu</code>, so the overflow menu renders nested menus and reports only the clicked leaf action<li>Added user-friendly biome and block names to minimap hover tooltips, making it easier to identify biomes and blocks at a glance<li>Updated custom biome color handling so that color changes are now immediately displayed both in the biome list and on the minimap for Custom Biome Tool<li>Fixed a bug that caused undo operation to fail sometimes for large block operations<li>Added Undo/Redo functionality for Placing a layout instance.<li>Selecting Local Lights configuration from Vibrant Visuals will now display an error if the world doesn't have resource pack definitions<li>Added ControlHelp feature in the Editor. This allows the user to see what keyboard shortcuts are available in any context (globally and tool-specific) .<li><code>addColorPicker</code> on a sub pane header now renders a compact square swatch<li>Added <code>Swatch</code> variant to <code>ColorPickerPropertyItemVariant</code> for color pickers that need to collapse to a single square<li>Reworked the Cinematic tool's keyframe list to use expandable sub panes instead of a list pane<ul><li>Each keyframe now owns an expander holding its name, timestamp, camera position, a collapsible rotation section, and easing type, with a teleport button and an action menu in the header<li>Added a view control footer that selects, duplicates and deletes checked keyframes, redistributes timestamps, and copies or imports cinematic JSON, replacing the buttons that previously sat above the keyframe list</ul><li>Template Instance Editor - added confirmation dialog for the action of Baking an instance.<li>Improved Primitives tool placement performance and increased maximum allowed shape sizes</ul><h3>Block Picker</h3><ul><li>Fixed the Flowing Water and Flowing Lava blocks displaying as \"Water\" and \"Lava\", making them indistinguishable from their still variants</ul><h3>Paste Preview</h3><ul><li>Added a Move mode to the Paste Preview tool, which freezes the preview in place so it can be repositioned with a world gizmo or by typing exact coordinates</ul><h2>Entity Components</h2><ul><li>Added projectile-hit teleportation fields to the <code>minecraft:teleport</code> component<ul><li><code>teleports_on_projectile_hit</code> determines whether the entity attempts to teleport away from an incoming projectile and defaults to <code>false</code><li><code>projectile_filter</code> defines the conditions an incoming projectile must meet to trigger a teleport attempt</ul><li>Added type families to vanilla projectile entities<ul><li>All vanilla projectile entities now include the <code>projectile</code> family<li>Each projectile includes a type-specific family, such as <code>arrow</code>, <code>snowball</code>, or <code>wither_skull</code></ul><li>The <code>multiple_targets</code> field on the <code>minecraft:projectile</code> component is now defaulted to <code>false</code> with format version 1.26.50 and above while remaining defaulted to <code>true</code> otherwise.<li>Made the schema for <code>minecraft:insomnia</code> stricter for format version 1.26.50 and later<li>Immunity to the freezing from Powder Snow is no longer hardcoded at runtime and is instead defined by the <code>minecraft:freezing_immune</code> component<ul><li>The following mobs will be upgraded to automatically have this component:<ul><li>\"minecraft:creaking\"<li>\"minecraft:ender_dragon\"<li>\"minecraft:polar_bear\"<li>\"minecraft:skeleton\"<li>\"minecraft:snow_golem\"<li>\"minecraft:stray\"<li>\"minecraft:wither\"</ul><li>All non-mob entities are implicitly immune<li>Used by defining the component as follows:<pre><code>\"minecraft:freezing_immune\": {}\n</code></pre></ul><li>The ambient sounds of entities are no longer redefined at runtime and instead respect the conditions defined by <code>minecraft:ambient_sound_interval</code><ul><li>Previously the ambient sound event name of an entity would be overwritten in these conditions:<ul><li>If its head was in water then it would become <code>ambient.in.water</code><li>If it was not on the ground then it would become <code>ambient.in.air</code><li>If it would otherwise play <code>ambient</code> and it was a baby then it would become <code>ambient.baby</code></ul><li>If any of these conditions were true then it would override any user-defined entry in the <code>event_names</code> parameter of <code>minecraft:ambient_sound_interval</code><li>Now this will no longer happen and only the event name specified by <code>minecraft:ambient_sound_interval</code> will be used<li>Entities defined in any older version will fall back to the original overriding path as a <code>minecraft:uses_legacy_ambient_sounds</code> component will be added<li>The <code>minecraft:uses_legacy_ambient_sounds</code> is deprecated as users should now specify the indended behavior in <code>minecraft:ambient_sound_interval</code><li>Vanilla mobs have been upgraded to use this new syntax, which can be preserved as follows:</ul></ul><pre><code>\"minecraft:ambient_sound_interval\": {\n  \"event_name\": \"ambient\",\n  \"event_names\": [\n    {\n      \"condition\": \"query.head_is_in_water\",\n      \"event_name\": \"ambient.in.water\"\n    },\n    {\n      \"condition\": \"!query.is_on_ground\",\n      \"event_name\": \"ambient.in.air\"\n    },\n    {\n      \"condition\": \"query.is_baby\",\n      \"event_name\": \"ambient.baby\"\n    }\n  ],\n  \"range\": 16.0,\n  \"value\": 8.0\n}\n</code></pre><ul><li>Deprecated <code>minecraft:projectile_component</code>'s <code>owner_launch_immunity_ticks</code> field in favor of a spatial check that determines when the projectile has left its shooter's vehicle hierarchy<ul><li>Projectiles can now only hit the entity that shot them, or entities in the same vehicle hierarchy (such as the shooter's mount), after they have spatially left that hierarchy</ul><li>Made the <code>minecraft:instant_despawn</code> component schema stricter for entity JSON at format version 1.26.50 and later<li>Added the <code>minecraft:can_stand_on_powder_snow</code> component for entity definitions with a format version of 1.26.50 and later<ul><li>Entities with this component can stand on top of Powder Snow<li>The <code>lightweight</code> type family no longer grants this behavior to entity definitions using format version 1.26.50 or later<li>Entity definitions using an older format version that include the <code>lightweight</code> type family are automatically upgraded to include this component<li>The vanilla Endermite, Fox, Rabbit, and Silverfish entity definitions no longer include the <code>lightweight</code> type family</ul><li>Added the <code>minecraft:block_movement_slowdown_immunity</code> entity component<ul><li>When set, the entity is immune to movement slowdown from the specified blocks</ul><li>Fixed a bug that caused the server to crash when regenerating chunks from the Chunk Management tool<li>The Poplar Hanging Sign now has the correct name<li>Entities with the following runtime_identifiers will be upgraded to automatically have this component:<li>Vulnerability to freezing damage from Powder Snow is no longer hardcoded at runtime and is instead defined by the <code>minecraft:freezing_vulnerable</code> component     - Entities with the following runtime_identifiers will be upgraded to automatically have this component:         - \"minecraft:blaze\"         - \"minecraft:magma_cube\"         - \"minecraft:strider\"         \"minecraft:freezing_vulnerable\": {}<li>The <code>isolated_physics</code> field on <code>minecraft:projectile</code> now defaults to <code>true</code> for format version 1.26.30 and above, and <code>false</code> for older versions<ul><li>Vanilla projectile entities now explicitly set <code>isolated_physics</code> to <code>false</code> on their <code>minecraft:projectile</code> component<li>A content error is now emitted when <code>isolated_physics</code> is set to <code>true</code> on an entity using a Vanilla projectile <code>runtime_identifier</code> (e.g., <code>minecraft:arrow</code>), as it is not intended to be used with Vanilla projectiles</ul></ul><h2>Features</h2><ul><li>Added the <code>minecraft:conditional_list</code> feature which places features based on a collection of conditions evaluated in order<ul><li>The <code>conditional_features</code> field is an array of objects, each containing a <code>places_feature</code> reference and an optional Molang <code>condition</code> expression<li>The <code>early_out_scheme</code> field controls when evaluation stops: <code>condition_success</code> stops at the first condition that passes, <code>placement_success</code> stops at the first successful placement, and <code>none</code> (default) evaluates all entries without stopping early</ul><li>Added the <code>multipart_block_column_feature</code> that places an ordered column made of <strong>1–4 block types</strong>: <code>tip_block</code>, <code>frustum_block</code>, <code>middle_block</code>, and <code>base_block</code>.<li>Its default growth <code>direction</code> is <code>UP</code>.<li>The blocks used depend on the generated column height:<ul><li>1 block: <code>tip_block</code><li>2 blocks: <code>frustum_block</code> + <code>tip_block</code><li>3 blocks: <code>base_block</code> + <code>frustum_block</code> + <code>tip_block</code><li>4+ blocks: <code>base_block</code> + one or more <code>middle_block</code> + <code>frustum_block</code> + <code>tip_block</code></ul><li>The restrictions include: <code>may_place_on</code> which restricts valid placement surfaces and <code>may_replace</code> to restrict which existing blocks may be replaced (omit to allow any).</ul><h3>Example</h3><pre><code class=language-json>{\n  \"format_version\": \"1.13.0\",\n  \"minecraft:multipart_block_column_feature\": {\n    \"description\": {\n      \"identifier\": \"example:ice_cream_lolly\"\n    },\n    \"tip_block\": \"minecraft:red_wool\",\n    \"frustum_block\": \"minecraft:yellow_wool\",\n    \"middle_block\": \"minecraft:green_wool\",\n    \"base_block\": \"minecraft:oak_planks\",\n    \"height_range\": {\n      \"range_min\": 4,\n      \"range_max\": 9\n    },\n    \"direction\": \"UP\",\n    \"may_place_on\": [\n      \"minecraft:ice\",\n      \"minecraft:snow\"\n    ]\n  }\n}\n</code></pre><ul><li>A new value, <code>wall</code>, to the field <code>surface</code> has been added to the schema of <code>snap_to_surface_feature</code>, which allows the feature to be snapped to walls as well as ceilings and floors.<li>A new field <code>allow_non_air_placement</code> has been added to the schema of <code>snap_to_surface_feature</code>, which allows specifying whether the snapped feature can be snapped through solid blocks.<ul><li>If the snap is started inside a block that is not water or air, this field decides if the feature can snap out of it.</ul><li>Renaming the field <code>vertical_search_range</code> to <code>search_range</code> in the schema for <code>snap_to_surface_feature</code></ul><h2>Gameplay</h2><ul><li>The <code>minecraft:default_biome</code> component in dimension JSON is now optional and only supported on custom dimensions; using it on a vanilla dimension now produces a content error instead of being silently accepted<li>Added the <code>minecraft:default_biome</code> component to custom dimension JSON, allowing creators to configure the biome a custom dimension generates with<li>Added support for defining custom dimensions with JSON and configuring custom dimension heights</ul><h2>Graphics</h2><ul><li>Fixed MERS not applying to assets in multiple Vanilla content slices<ul><li>1.21.120 Copper Chest<li>1.21.120 gray, green, light blue, silver dye items<li>1.26.20 Baby Bee<li>1.26.20 Baby Fox</ul><li>Fixed .texture_set.json not being compatible with certain JSON tools<li>Fixed texture bleeding on custom blocks using automatic block face UV assignment with undersized textures<li>Updated Point Light Quality to Block Light Quality in Video Settings<li>Moved Block Light Quality Video Settings out of the RenderDragon Features for Creators Experiment<ul><li>Some options still require the RenderDragon Features for Creators Experiment<li>Some options may be hidden depending on device capabilities and resource pack configuration</ul><li>Fixed the alignment of the Spruce Shelf MERS texture<li>Fixed an issue which sometimes caused materials/entity.material from resource packs to have no effect.<li>\"Automatic\" upscaling quality now defaults to native resolution when using the Custom graphics preset<li>Vibrant Visuals are no longer disabled when loading a world with Education features enabled (<a href=https://bugs.mojang.com/browse/MCPE-240476 rel=\"noopener noreferrer\"target=_blank>MCPE-240476</a>)<li>Foxes now hold the Shelf Mushroom correctly in their mouths (<a href=https://bugs.mojang.com/browse/MCPE-241160 rel=\"noopener noreferrer\"target=_blank>MCPE-241160</a>)<li>The poplar door hinges now have a metallic reflectiveness<li>Fixed triangular gaps that could appear in water surfaces where water meets a bank or flows over a lip<li>Increased maximum view distance to 48 for Vibrant Visuals on Windows</ul><h2>JSON Schema</h2><ul><li>The JSON document upgrader now differentiates base game JSON from creator JSON, so base game content may use the <code>minecraft:</code> namespace while creator content continues to be validated against creator namespace rules</ul><h2>Minecraft Debugger</h2><ul><li>The Entity System and CPU Profiler views are now usable without a behavior pack enabled</ul><h2>Molang</h2><ul><li>Added <code>query.has_all_biome_tags</code> world generation Molang query that returns 1.0 if the biome at the current placement position has all of the specified tags<li>Added <code>query.has_any_biome_tags</code> world generation Molang query that returns 1.0 if the biome at the current placement position has at least one of the specified tags<li>Added new query <code>query.head_is_in_water</code> which checks if the head of the entity is in water</ul><h2>Packs</h2><ul><li>Dedicated server's system packs not loading pack settings has been fixed<li>System packs are now sorted into alpha-numeric ordering before being added to the stack<li>System packs that fail to load their manifest file, or fail to execute their script plugin (if available), will now stop dedicated server</ul><h2>Sounds</h2><ul><li>Released <code>minecaft:sound</code> block component out of experimental<ul><li>it can be used to assign a set of sounds to block and its permutations similar to <code>sound</code> field in <code>blocks.json</code><li><code>blocks.json</code> overrides values of <code>minecraft:sound</code> component, including values in all permutations</ul></ul><pre><code class=language-json>{\n\t\"format_version\": \"1.26.20\",\n\t\"minecraft:block\": {\n\t\t\"description\": {\n\t\t\t\"identifier\": \"test:test_block\",\n            \"states\": {\n                \"custom:int\": [0, 1, 2]\n            }\n\t\t},\n        \"permutations\": [\n            {\n                \"condition\": \"query.block_state('custom:int') == 1\",\n                \"components\": {\n                \"minecraft:sound\": {\n                    \"sound\": \"glass\"\n                }\n                }\n            },\n                    {\n                \"condition\": \"query.block_state('custom:int') == 2\",\n                \"components\": {\n                \"minecraft:sound\": {\n                    \"sound\": \"metal\"\n                }\n                }\n            },\n        ],\n\t\t\"components\": {\n\t\t\t\"minecraft:sound\": {\n\t\t\t\t\"sound\": \"snow\"\n\t\t\t}\n\t\t}\n\t}\n}\n</code></pre><ul><li>Added <code>allow_concurrent_streaming</code> to sound objects in <code>sound_definitions.json</code>, allowing streamed ordinary sound events to play independent simultaneous instances. The field defaults to <code>true</code> in format version 1.26.50 and later</ul><h2>Stability and Performance</h2><ul><li>Fixed an issue where transferring to another server with the same resource pack at a different version would cause players to load in with no resource pack applied.<li>Fixed issue where item catalog groups with long names crashed the game (<a href=https://bugs.mojang.com/browse/MCPE-240721 rel=\"noopener noreferrer\"target=_blank>MCPE-240721</a>)<li>Minor improvements to allocator performance and out-of-memory handling</ul><h2>User Interface</h2><ul><li>Fixed screens visited not mounting if another global route action happened while the screen was unmounting<li>Fixed an error when deeplinking from the subscribe now button from the Marketplace Pass site while client is closed<li>Fixed geometries using <code>\"item_display_transforms\" -> \"gui\" -> \"fit_to_frame\": false</code> being force-centered in the slot, so blocks intended to rest at the bottom are no longer moved to the center (<a href=https://bugs.mojang.com/browse/MCPE-240720 rel=\"noopener noreferrer\"target=_blank>MCPE-240720</a>)<li>Fixed <code>\"item_display_transforms\" -> \"gui\" -> \"translation\"</code> no longer affecting an item's position in the slot</ul><h1>Experimental Technical Updates</h1><h2>API</h2><ul><li>Added <code>lineHeightOverride</code> property to both <code>TextPrimitive</code> and <code>DebugText</code>. .<li>Changed the following beta APIs in @minecraft/server-admin<ul><li>Changed arguments for <code>AllowList.add()</code> take an <code>AllowListEntryNameInfo</code> and boolean to allow this player to ignore player limits when joining the server.<li>Changed arguments for <code>AllowList.contains()</code> to take an <code>AllowListEntryNameInfo</code><li>Changed arguments for <code>AllowList.remove()</code> to take an <code>AllowListEntryNameInfo</code><li>Added property <code>ignoresPlayerLimit</code> to <code>AllowListEntry</code><li>Added new <code>AllowListEntryNameInfo</code></ul><li>Added new tech and support for using scripting to interface with the VS Code debugger live diagnostics:<ul><li>Added class <code>DiagnosticsManager</code> to access the new debugger diagnostics tech.<li>Added class <code>DiagnosticsTab</code>, used to represent a tab view in the debugger live diagnostics page.<li>Added class <code>DiagnosticsView</code>, used to represent a single display view within a tab.<li>Added class <code>DiagnosticsStat</code> for representing data to be used with the live diagnostics.<li>Added class <code>DiagnosticsError</code> for diagnostics related errors.</ul><li>Added <code>WorldClock</code> class to <code>@minecraft/server</code> in beta<ul><li>Has properties for <code>name</code>, <code>time</code>, and <code>isPaused</code> to retrieve state of the world clock</ul><li>Added <code>WorldClockRegistry</code> class to <code>@minecraft/server</code> in beta<ul><li>Has a <code>registerClock</code> function to allow registrations of new world clocks during startup</ul><li>Added <code>WorldClockRegistrationError</code> class to <code>@minecraft/server</code> in beta. This is thrown by <code>WorldClockRegistry.registerClock</code> when registration of a world clock fails<li>Added <code>WorldClockReloadNewWorldClockError</code> class to <code>@minecraft/server</code> in beta. This is thrown when trying to register a new world clock after reloading scripts<li>Added <code>WorldClockInvalidRegistryError</code> class to <code>@minecraft/server</code> in beta. This is thrown when trying to register world clocks outside of the <code>BeforeStartupEvent</code><li>Added <code>WorldClockNotFoundError</code> class to <code>@minecraft/server</code> in beta. This is thrown by <code>World.getClock</code> when a world clock does not exist<li>Added <code>WorldClockRegistry</code> to <code>BeforeStartupEvent</code> in beta<li>Added <code>getClock</code> function to the <code>World</code> class in beta<li>Scripting websockets no longer send a ping packet to the socket server every second, this now send every 45 seconds.<li>The <code>minecraft:server_sound_definitions</code> payload in <code>sounds/sound_definitions.json</code> now accepts an optional <code>broadcast_range</code> field on each definition specifying an XZ range in blocks. When set, a broadcast play sound is delivered to players within this range of the sound<li>Added <code>TimeMarker</code> class to <code>@minecraft/server</code> in beta<ul><li>Has properties for <code>name</code>, <code>time</code>, and <code>period</code></ul><li>Added <code>WorldClockRegistrationOptions</code> interface to <code>@minecraft/server</code> in beta<li>Added <code>TimeMarkerOptions</code> interface to <code>@minecraft/server</code> in beta<li>Added <code>WorldClockReloadTimeMarkerError</code> class to <code>@minecraft/server</code> in beta. This is thrown when an existing world clock has an invalid time marker after reloading scripts<li>Added <code>WorldClockAddTimeMarkerError</code> class to <code>@minecraft/server</code> in beta. This is thrown by a <code>WorldClock.addTimeMarker</code> when adding a time marker fails<li>Added <code>WorldClockRemoveMinecraftTimeMarkerError</code> class to <code>@minecraft/server</code> in beta. This is thrown by <code>WorldClock.removeTimeMarker</code> when trying to remove a time marker with the <code>minecraft:</code> namespace<li>Added <code>WorldClockInvalidTimeMarkerError</code> class to <code>@minecraft/server</code> in beta. This is thrown when trying to access data on an invalid time marker <code>minecraft:</code> namespace<li>Added <code>WorldClockTimeMarkerNotFoundError</code> class to <code>@minecraft/server</code> in beta. This is thrown by a <code>WorldClock</code> when a time marker does not exist<li>Added <code>WorldClockRewindError</code> class to <code>@minecraft/server</code> in beta. This is thrown by <code>WorldClock.rewindTo</code> when the world clock's current time is behind the time marker's first occurrence<li>Added <code>WorldClockOnTimeModifiedAfterEvent</code> class to <code>@minecraft/server</code> in beta<ul><li>This event is fired when a world clock's time is directly changed through scripting or commands</ul><li>Added <code>WorldClockOnTimeModifiedAfterEventSignal</code> class to <code>@minecraft/server</code> in beta<li>Added <code>WorldClockOnPausedAfterEvent</code> class to <code>@minecraft/server</code> in beta<ul><li>This event is fired when a world clock is paused</ul><li>Added <code>WorldClockOnPausedAfterEventSignal</code> class to <code>@minecraft/server</code> in beta<li>Added <code>WorldClockOnResumedAfterEvent</code> class to <code>@minecraft/server</code> in beta<ul><li>This event is fired when a world clock is resumed</ul><li>Added <code>WorldClockOnResumedAfterEventSignal</code> class to <code>@minecraft/server</code> in beta<li>Added <code>WorldClockOnTimeMarkerAfterEvent</code> class to <code>@minecraft/server</code> in beta<ul><li>This event is fired when a world clock's time hits a time marker</ul><li>Added <code>WorldClockOnTimeMarkerAfterEventSignal</code> class to <code>@minecraft/server</code> in beta<li>Added <code>WorldClockOnRestartBeforeEvent</code> class to <code>@minecraft/server</code> in beta<ul><li>This event is fired when a world clock ticks at the maximum time and is about to restart<li>the <code>newTime</code> property on the event can be optionally set to set a custom restart time for the world clock</ul><li>Added <code>WorldClockOnRestartBeforeEventSignal</code> class to <code>@minecraft/server</code> in beta<li>Added <code>WorldClockEventOptions</code> interface to <code>@minecraft/server</code> in beta<ul><li>Has a <code>clock</code> property to filter out which clock the event should fire for</ul><li>Added <code>WorldClockTimeMarkerEventOptions</code> interface to <code>@minecraft/server</code> in beta<ul><li>Has a <code>clock</code> property to filter out which clock the event should fire for<li>Has an optional <code>timeMarker</code> property to filter out which time marker the event should fire for</ul></ul><h3>BlockUtilityTasks</h3><ul><li>Added the optional <code>directionMask</code> parameter to <code>floodSearch</code> for restricting traversal directions</ul><h3>ChatSendBeforeEvent</h3><ul><li>The <code>targets</code> property can now be modified to control which players receive the chat message</ul><h3>DDUI</h3><ul><li>Fixed input and HUD delay after closing Data Driven UI screens<li>Added support to show icons for buttons.<li>Changed interface <code>DropdownOptions</code><ul><li>Added property <code>tooltip</code> in <code>beta</code><pre><code class=language-ts>tooltip?: ObservableString | ObservableUIRawMessage | string | UIRawMessage\n</code></pre></ul><li>Changed interface <code>SliderOptions</code><ul><li>Added property <code>tooltip</code> in <code>beta</code><pre><code class=language-ts>tooltip?: ObservableString | ObservableUIRawMessage | string | UIRawMessage\n</code></pre></ul><li>Changed interface <code>TextFieldOptions</code><ul><li>Added property <code>tooltip</code> in <code>beta</code><pre><code class=language-ts>tooltip?: ObservableString | ObservableUIRawMessage | string | UIRawMessage\n</code></pre></ul><li>Changed interface <code>TextOptions</code><ul><li>Added property <code>tooltip</code> in <code>beta</code><pre><code class=language-ts>tooltip?: ObservableString | ObservableUIRawMessage | string | UIRawMessage\n</code></pre></ul><li>Changed interface <code>ToggleOptions</code><ul><li>Added property <code>tooltip</code> in <code>beta</code><pre><code class=language-ts>tooltip?: ObservableString | ObservableUIRawMessage | string | UIRawMessage\n</code></pre></ul><li>Changed class <code>MessageBox</code><ul><li>Added function <code>button1WithOptions</code><pre><code class=language-ts>button1WithOptions(label: ObservableString | ObservableUIRawMessage | \nstring | UIRawMessage, options?: MessageBoxButtonOptions): MessageBox\n</code></pre><li>Added function <code>button2WithOptions</code><pre><code class=language-ts>button2WithOptions(label: ObservableString | ObservableUIRawMessage | \nstring | UIRawMessage, options?: MessageBoxButtonOptions): MessageBox\n</code></pre></ul><li>Changed interface <code>ButtonOptions</code><ul><li>Added property <code>imageDetails</code><pre><code class=language-ts>imageDetails?: ImageDetails\n</code></pre></ul><li>Added interface <code>ImageDetails</code><pre><code class=language-ts>export interface ImageDetails {\n  imagePackId: ObservableString | string;\n  imageSrc: ObservableString | string;\n}\n</code></pre><li>Added interface <code>MessageBoxButtonOptions</code><pre><code class=language-ts>export interface MessageBoxButtonOptions {\n  imageDetails?: ImageDetails;\n  tooltip?: ObservableString | ObservableUIRawMessage | string | UIRawMessage;\n}\n</code></pre><li>Fixed wrapping for labels and headers when using large texts with no spaces between. [JIRA MCPE-241081] Fix for players when leaving world while having a DDUI screen is open, becoming soft-locked when re-joining.</ul><h3>EntityIsTamedComponent</h3><ul><li>Added read-only <code>tamedToPlayer</code> and <code>tamedToPlayerId</code> properties to <code>beta</code> that return the player and player id that tamed the entity</ul><h3>SoundDurationInfo</h3><ul><li>The playback position now restarts at the beginning of each iteration when a looping sound repeats, and a looping sound's duration is only considered complete after all of its iterations have played</ul><h3>WorldAfterEvents</h3><ul><li>Added the <code>worldClockOnTimeModified</code> event signal to <code>@minecraft/server</code> in beta. This is used to subscribe to world clock time modified events<li>Added the <code>worldClockOnPaused</code> event signal to <code>@minecraft/server</code> in beta. This is used to subscribe to world clock paused events<li>Added the <code>worldClockOnResumed</code> event signal to <code>@minecraft/server</code> in beta. This is used to subscribe to world clock resumed events<li>Added the <code>worldClockOnTimeMarker</code> event signal to <code>@minecraft/server</code> in beta. This is used to subscribe to world clock time marker events</ul><h3>WorldBeforeEvents</h3><ul><li>Added the <code>worldClockOnRestart</code> event signal to <code>@minecraft/server</code> in beta. This is used to subscribe to world clock restart events</ul><h3>WorldClock</h3><ul><li>Added <code>timeMarkers</code> property in beta<li>Added <code>addTimeMarker</code> function in beta<li>Added <code>removeTimeMarker</code> function in beta<li>Added <code>set</code> function in beta<li>Added <code>skipTo</code> function in beta<li>Added <code>rewindTo</code> function in beta</ul><h3>WorldClockRegistry</h3><ul><li>Added <code>registrationOptions</code> parameter to <code>registerClock</code> function to optionally create time markers during registration in beta</ul><h2>Blocks</h2><ul><li>Blocks defined with the <code>minecraft:multi_block</code> trait cannot also define the <code>minecraft:random_offset</code> component if the multi-block <code>direction</code> field is horizontal :<li>Added the <code>container</code> field to the <code>minecraft:block_entity</code> block component, which gives a custom block a container that holds up to 54 item stacks, persists with the world, drops its contents when the block is broken, and opens a container screen when the block is used<li>Replacing a custom block whose <code>minecraft:block_entity</code> declares a <code>container</code> with a different block definition rebuilds its block entity, so the outgoing block drops its container contents rather than handing them to the new block<li>Added scripting access to custom block inventories provided by <code>minecraft:block_entity</code> containers</ul><h2>Commands</h2><ul><li>Add new <code>/time of</code> sub-command for modifying world clocks under the Creator World Clocks Features experiment<ul><li><code>/time of &#60clock> add &#60time></code> - Adds time to the clock. Cannot result in a negative time<li><code>/time of &#60clock> set &#60time></code> - Sets the clock to the specified time. Cannot be set to negative.<li><code>/time of &#60clock> set &#60timemarker> (next|previous|stay)</code> - Sets the clock to the occurrence of the time marker. Cannot result in a negative time<li><code>/time of &#60clock> pause</code> - Pauses the clock<li><code>/time of &#60clock> resume</code> - Resumes the clock<li><code>/time of &#60clock> query time</code> - Outputs the clock's current time</ul></ul><h2>Features</h2><ul><li>Add scripting API to query Points of Interest (POI) in the current dimension</ul><h2>Gameplay</h2><ul><li>Added the 'Creator World Clocks Features' experiment toggle<li>Custom dimension heights defined in a dimension JSON file can once again span the full -512 to 512 block range instead of being capped to the default Overworld heights of -64 to 320 (<a href=https://bugs.mojang.com/browse/MCPE-241528 rel=\"noopener noreferrer\"target=_blank>MCPE-241528</a>)<li>Added experimental support for defining point-of-interest types and hierarchical tags in behavior packs<li>Added a beta Script API for querying and managing registered points in the current dimension<li>Added <code>/locate poi</code> for locating registered points by type or tag</ul><h2>Graphical</h2><ul><li>Fixed Book and Quill's lighting value when on a Lectern when Block Light Quality is set to Volumetric Lights or above<ul><li>Fixed an issue that caused the brightness of some point lights to oscillate</ul></ul>","id":"f97d0b95c0ba1acf9d8e41bcd251320831caf6d8c0a14f0f5dbf0f124c05bcb1","needsTranslation":false}