{"title":"1.21.130 - Mounts of Mayhem","version":"1.21.130","patchNoteType":"retail","date":"2025-12-09","image":{"title":"1.21.130.png","url":"/v2/images/1.21.130.png"},"body":"<p>Today Mounts of Mayhem charges into Minecraft, bringing a new weapon to wield, mounts to tame, foes to face, and strategies to master! Challengers await beneath scorching suns, night skies, and deep in the ocean's depths - and each clash will demand a fresh strategy. Fight back with the spear, a new tiered weapon which deals damage based on your precision and the speed of your trusted steed. So, riders of the Overworld - mount up and lead the charge in the Mounts of Mayhem drop!<h1>New Features</h1><h2>Mounts of Mayhem</h2><h3>Mount improvements</h3><ul><li>Horses, Zombie Horses, Donkeys, Mules, and Camels no longer sink when ridden by players while swimming<li>Added Netherite Horse Armor<ul><li>Can be crafted at a Smithing Table using a Diamond Horse Armor, a Netherite Ingot, and a Netherite Upgrade<li>Provides 19 armor points</ul></ul><h2>Nautilus</h2><ul><li>New neutral aquatic mob<li>Attacks using a Dash attack if provoked<li>Spawns in all ocean biomes<li>Tamed using Pufferfish or a Bucket of Pufferfish<li>Tamed Nautilus can be mounted using a Saddle<li>Has a Dash skill similar to Camels, used by pressing Jump button<li>Occasionally attacks Pufferfish within range using Dash attack<li>Adds \"Breath of the Nautilus\" effect to mounted player<li>Tamed Nautilus without Saddle has a roaming restriction of 32 blocks<li>Tamed Nautilus with Saddle has a roaming restriction of 16 blocks<li>Nautilus has a charge attack cooldown of 4 seconds<li>Takes suffocation damage on land<li>A Nautilus can spawn between Y-Level 38 and 58</ul><h2>Nautilus Armor</h2><ul><li>Equipable on Nautilus and Zombie Nautilus<li>Comes in Copper, Golden, Iron, Diamond, and Netherite versions<li>Using Shears on a Nautilus will first remove its armor, and then its Saddle</ul><h2>Breath of the Nautilus</h2><ul><li>Effect that affects mounted player<li>Pauses player oxygen consumption (but does not replenish oxygen)</ul><h2>Zombie Nautilus</h2><ul><li>New neutral underwater mob<li>Attacks using a Dash attack<li>Spawns with a Drowned rider wielding a Trident<li>Is hostile if the rider is a hostile mob<li>Neutral without a rider<li>Tamed using Pufferfish or a Bucket of Pufferfish<li>Tamed Zombie Nautilus can be mounted using a Saddle<li>Has a Dash skill similar to Camels, used by pressing Jump button<li>Occasionally attacks Pufferfish within range using Dash attack<li>Adds \"Breath of the Nautilus\" effect to mounted player<li>Cannot be bred<li>Tamed Zombie Nautilus without Saddle has a roaming restriction of 32 blocks<li>Tamed Zombie Nautilus with Saddle has a roaming restriction of 16 blocks<li>Takes suffocation damage on land</ul><h3>Coral Zombie Nautilus</h3><ul><li>New Zombie Nautilus variant<li>Spawns in Warm Oceans, replacing the normal Zombie Nautilus<li>Visual variant, functions identically to the normal Zombie Nautilus</ul><h2>Spear</h2><ul><li>New weapon that can be crafted in Wood, Stone, Copper, Iron, Gold, Diamond, and Netherite versions<li>Each material has different stats for timing, influencing how fast they are to use<li>Has a minimum reach for damage, being too close to a target will yield no damage<li>Has extended maximum reach compared to other tools and weapons<li>Zombies and Piglins can spawn with the Spear<li>Has two attacks: Jab and Charge<li>Animals defeated in one hit by the charge attack of a Spear with the Fire Aspect enchantment will drop cooked food</ul><h3>Charge Attack</h3><ul><li>Press and hold secondary action button to use<li>Damage based on Spear material, the player's view angle and velocity of both player and target<li>While holding down button the attack goes through three stages before returning to idle:<ul><li>Engaged: Spear can deal damage, knockback, and dismount mounted enemies if speed is above the required thresholds<li>Tired: Indicated by Spear rotating to a vertical position and shaking Spear can deal damage and knockback (but not dismount) if the speed is above the required thresholds<li>Disengaged: Indicated by Spear being lowered, pointing downwards Spear gives damage but not knockback or dismount if the speed is above the required threshold</ul></ul><h3>Jab Attack</h3><ul><li>Quick press primary action button to use<li>Low damage attack with knockback<li>Cooldown between attacks<li>Wood spears have the fastest cooldown; Netherite the slowest<li>Can hit multiple enemies<li>Does not destroy blocks</ul><h3>Lunge Enchantment</h3><ul><li>Spear exclusive enchantment<li>Only works with the Jab attack<li>When doing a Jab attack with Lunge it propels the player horizontally in the view direction<li>View angle needs to be perfectly leveled horizontally to achieve maximum lunge distance<li>Using the Lunge attack consumes hunger<ul><li>Level 1 Lunge consumes 1 hunger point, level 2 consumes 2 points, and level 3 consumes 3 points</ul><li>Cost of 1 Durability point for using Lunge for all Enchantment levels</ul><h2>Zombie Horse</h2><ul><li>Spawns naturally at night in Plains and Savanna biomes<li>Spawns with a Zombie rider wielding a Spear<li>Is hostile if the rider is a hostile mob<li>Neutral without a rider<li>Tamed like normal Horses<li>Favorite food is Red Mushroom<li>Tamed Zombie Horse can be mounted using a Saddle<li>Cannot be bred<li>Zombie Horses avoid areas with sunlight<li>Zombie Horses can be leashed when they are untamed, but not when mounted by a Zombie</ul><h2>Parched</h2><ul><li>New Skeleton variant<li>Spawns at 0 light level in Deserts, replacing some of the regular Skeletons<li>Does not burn in sunlight<li>Shoots Arrows of Weakness<li>Has a slower rate of fire compared to normal Skeletons, similar to Bogged<li>Does not spawn in caves, following the Husk's spawning rules<li>Parched have a chance of spawning riding Spiders and Cave Spiders in Deserts, instead of regular Skeletons</ul><h2>Camel Husk</h2><ul><li>New undead Camel variant<li>Spawns at 0 light level in Deserts<li>Does not burn in sunlight<li>Spawns with two riders: A Husk wielding a Spear and a Parched<li>Does not spawn in caves, following the Husk's spawning rules<li>Is hostile if the rider is a hostile mob<li>Passive without a rider<li>Despawns like other hostile mobs, but becomes persistent when ridden by a player<li>Favorite food is Rabbit Foot<li>Cannot be bred<li>As a mount, they work similar to normal Camels<li>Zombie Husks that spawn riding a Camel Husk have a 50% chance of dropping a Rabbit Foot<li>The Camel Husk can not be leashed while being ridden by a hostile mob</ul><h1>Features and Bug Fixes</h1><h2>Audio</h2><ul><li>The swimming sound no longer plays when flying underwater<li>The critical hit sound now correctly plays when a player lands a critical hit</ul><h2>Blocks</h2><ul><li>Hanging Roots can now be waterlogged (<a href=https://bugs.mojang.com/browse/MCPE-128957 rel=\"noopener noreferrer\"target=_blank>MCPE-128957</a>)<li>Crimson Roots and Crimson Fungus now generate in the Warped Forest biome (<a href=https://bugs.mojang.com/browse/MCPE-83616 rel=\"noopener noreferrer\"target=_blank>MCPE-83616</a>)</ul><h2>Character Creator</h2><ul><li>Players are no longer prevented from loading into a world due to an Invalid Platform Skin error<li>Fixed an issue where remote player skins would sometimes change to a default skin when they moved in and out of render range (<a href=https://bugs.mojang.com/browse/MCPE-222444 rel=\"noopener noreferrer\"target=_blank>MCPE-222444</a>)</ul><h2>Gameplay</h2><ul><li>Hoppers now have a short cooldown after being moved by a Piston that prevents interaction. This fixes a bug with Bundle duplication<li>Fixed a bug preventing players from growing Pink Petals, Wildflowers, or Leaf Litter by targeting the side of a block (<a href=https://bugs.mojang.com/browse/MCPE-190684 rel=\"noopener noreferrer\"target=_blank>MCPE-190684</a>)<li>Added the Damage Tilt slider to Video settings, controlling how much the screen tilts when the player takes damage, in parity with Java<li>Hoppers can no longer stack multiple Bottles in one slot inside a Brewing Stand (<a href=https://bugs.mojang.com/browse/MCPE-228374 rel=\"noopener noreferrer\"target=_blank>MCPE-228374</a>)</ul><h2>General</h2><ul><li>Fixed a bug where pressing ALT + F4 in-game opened the pause menu instead of closing the game (<a href=https://bugs.mojang.com/browse/MCPE-228098 rel=\"noopener noreferrer\"target=_blank>MCPE-228098</a>)<li>Resolved an issue on Windows where shared worlds (those available to all players) did not load resource or behavior packs (<a href=https://bugs.mojang.com/browse/MCPE-228607 rel=\"noopener noreferrer\"target=_blank>MCPE-228607</a>)<li>Reenabled missing music for several biomes<li>Fixed an issue where signing in at the exact wrong time would make many online features unable to load for 5 minutes<li>Added splash text \"One does not simply walk to the Far Lands\"<blockquote><p><strong>Developer's Note:</strong> <em>This statement was proven false on October 4, 2025.</em></blockquote></ul><h2>Graphical</h2><ul><li>The first critical hit particle for Arrows is now slightly delayed<li>The nose of the Copper Golem is now rotated correctly while the Golem is sitting down (<a href=https://bugs.mojang.com/browse/MCPE-228256 rel=\"noopener noreferrer\"target=_blank>MCPE-228256</a>)<li>Fixed large flipbook textures corrupting other textures<li>Fixed a bug where the fade command would fade to black instead of the specified color when Vibrant Visuals is enabled. Also fixed certain effects such as fire and the Spyglass overlay rendering in front of the fade effect (<a href=https://bugs.mojang.com/browse/MCPE-223049 rel=\"noopener noreferrer\"target=_blank>MCPE-223049</a>)<li>Fixed snowflakes flickering during player movement<li>The partial transparency applied to mobs when close to the camera now also applies to players. (<a href=https://bugs.mojang.com/browse/MCPE-227786 rel=\"noopener noreferrer\"target=_blank>MCPE-227786</a>)<li>Fixed Mooshroom's mushrooms and armor on mobs not being affected by \"Enable Dithering\" setting (<a href=https://bugs.mojang.com/browse/MCPE-228281 rel=\"noopener noreferrer\"target=_blank>MCPE-228281</a>) (<a href=https://bugs.mojang.com/browse/MCPE-228296 rel=\"noopener noreferrer\"target=_blank>MCPE-228296</a>)<li>Fixed a regression where Torches and Lanterns weren't emitting point lights in raytracing-enabled worlds</ul><h2>Input</h2><ul><li>Automatically selects the Chat screen text field on opening for Windows when using Keyboard and Mouse, enabling text input as soon as screen opens (<a href=https://bugs.mojang.com/browse/MCPE-229046 rel=\"noopener noreferrer\"target=_blank>MCPE-229046</a>)<li>Fixed a bug on Windows where disabling the system setting \"Scroll inactive windows when hovering over them\" had no effect (<a href=https://bugs.mojang.com/browse/MCPE-229088 rel=\"noopener noreferrer\"target=_blank>MCPE-229088</a>)<li>On-Screen Keyboard will no longer appear over the chat box when docked; Input screens, such as signs, will no longer close when switching between different input modes (<a href=https://bugs.mojang.com/browse/MCPE-228584 rel=\"noopener noreferrer\"target=_blank>MCPE-228584</a>)<li>Fixed a bug on Windows where the game widgets would interact with the cursor when another window was focused (<a href=https://bugs.mojang.com/browse/MCPE-229548 rel=\"noopener noreferrer\"target=_blank>MCPE-229548</a>)<li>Fixed an issue where Xbox controllers connected to ROG Xbox Ally did not work while built-in controller was active (<a href=https://bugs.mojang.com/browse/MCPE-184251 rel=\"noopener noreferrer\"target=_blank>MCPE-184251</a>) (<a href=https://bugs.mojang.com/browse/MCPE-180470 rel=\"noopener noreferrer\"target=_blank>MCPE-180470</a>)<li>Fixed a bug on Windows where the mouse cursor moved in the background during gameplay (<a href=https://bugs.mojang.com/browse/MCPE-230832 rel=\"noopener noreferrer\"target=_blank>MCPE-230832</a>)</ul><h2>Items</h2><ul><li>Gold Horse Armor has been renamed to Golden Horse Armor (<a href=https://bugs.mojang.com/browse/MCPE-101388 rel=\"noopener noreferrer\"target=_blank>MCPE-101388</a>)</ul><h2>Mobs</h2><ul><li>Fixed bug where Camels could not dash when standing in water<li>Pufferfish can now spawn in the Lukewarm Ocean and Deep Lukewarm Ocean biomes<li>Pufferfish and Tropical Fish can now be caught when fishing in Jungle biomes<li>Drowned attack now knockbacks attacked mob into air when mob is not in water (<a href=https://bugs.mojang.com/browse/MCPE-133343 rel=\"noopener noreferrer\"target=_blank>MCPE-133343</a>)<li>Added chance for Zombie Horse Riders to spawn in Savannas and Plains<li>Camels now take fall damage starting 4 blocks higher when walking or dashing (<a href=https://bugs.mojang.com/browse/MCPE-171996 rel=\"noopener noreferrer\"target=_blank>MCPE-171996</a>)<li>Phantoms can no longer drown (<a href=https://bugs.mojang.com/browse/MCPE-101541 rel=\"noopener noreferrer\"target=_blank>MCPE-101541</a>)<li>Wolf shadow and model are now centered (<a href=https://bugs.mojang.com/browse/MCPE-176018 rel=\"noopener noreferrer\"target=_blank>MCPE-176018</a>)<li>Fixed some Goat sounds not being controlled by the Friendly Mobs slider (<a href=https://bugs.mojang.com/browse/MCPE-178232 rel=\"noopener noreferrer\"target=_blank>MCPE-178232</a>)<li>Piglins will no longer scream with enthusiasm while admiring gold <a href=https://bugs.mojang.com/browse/MCPE/issues/MCPE-229509 rel=\"noopener noreferrer\"target=_blank>MCPE-229509</a><ul><li>They will instead do a courteous grunt of acknowledgement<li>Very polite, just like on Java</ul><li>Only Baby Zombie jockeys and Baby Husk jockeys can ride the following mobs:<ul><li>Adult Chickens<li>Untamed Ocelots<li>Untamed Cats<li>Untamed Wolves<li>Adult Zombies<li>Adult Husks<li>Adult Zombified Villagers<li>Adult Zombified Piglins<li>Cows<li>Adult unsaddled Pigs<li>Sheep<li>Adult untamed Horses<li>Adult untamed Donkeys<li>Adult untamed Mules<li>Adult Skeleton Horses<li>Adult Zombie Horses<li>Mooshrooms<li>Spiders that were not spawned as jockey mounts<li>Cave Spiders that were not spawned as jockey mounts</ul><li>Zombies and Husks that have been spawned as their rider configuration can only ride Zombie Horses and Camel Husks, respectively<li>Dolphins no longer spawn in the Cold Ocean or Deep Cold Ocean biomes<li>It is no longer possible for two mobs to mount each other simultaneously</ul><h2>Profile</h2><ul><li>Removed unexpected Sign Out button on user profile on Windows. Players should sign out via the Xbox app (<a href=https://bugs.mojang.com/browse/MCPE-228176 rel=\"noopener noreferrer\"target=_blank>MCPE-228176</a>)</ul><h2>Realms</h2><ul><li>Fixed Realm server selection behaving unpredictably<li>Fixed controller focus being cut off for the top of the Realms Timeline Opted-Out members list<li>Realms Manage Feed is now located within Realms Stories instead of Realms Settings<li>Fixed an issue where players could get temporarily stuck when adding members to a newly purchased Realm<li>Navigate players back to either the start screen or the settings screen when they confirm the message about not being able to connect to a network<li>Present players with the option to play using mobile data or to change their game settings if mobile data is disabled when attempting to join a newly purchased Realm<li>Introducing Realms Saves, a new and improved version of our previous backup system. Keep your Realms worlds safe with a new bank of cloud storage included with your Realms subscription. Realms saves come in two flavors:<ul><li>Automatic saves are functionally the same as our previous \"backups\" system:<ul><li>They are on by default - no need to enable anything to keep your Realm world safe with automatic saves.<li>They are taken at the end of every Realms play session when the server shuts down, or every 30 minutes during a play session.<li>They are only retained for a limited time, according to our retention policy (which has not changed with this update): <a href=https://help.minecraft.net/hc/en-us/articles/28717462139149-How-Mojang-Saves-Backups-for-Your-Minecraft-Realm rel=\"noopener noreferrer\"target=_blank>How Mojang Saves Backups for Your Minecraft Realm | Minecraft Help</a><li>They do not count towards your bank of cloud storage.<li>All previous Realms backups will be converted to automatic saves.</ul><li>Manual saves are created by the Realm owner and count towards a bank of storage that comes with your Realms subscription.<ul><li>Manual saves are retained as long as your Realm is. They are not automatically deleted by our retention policy*, but Realm owners can delete manual saves if they want to free up storage space.<li>Realms plus subscriptions come with 10gb of manual save storage and Realms core subscriptions come with 5gb.<li>Automatic saves can be turned into manual saves by the Realm owner.</ul><li>Realms saves can be found in the Realms settings menu accessed via the \"Edit Realm\" button rather than the Realms world settings menu that backups used to show up in. While playing on the Realm, saves can also be found in the in-game settings menu for the Realm owner.<li>Realms saves will also now list the world name and the packs that were applied at the time of the save.</ul></ul><h2>Settings</h2><h3>Storage</h3><ul><li>Display \"Unlisted Worlds\" that cannot be loaded so they can be deleted (<a href=https://bugs.mojang.com/browse/MCPE-223708 rel=\"noopener noreferrer\"target=_blank>MCPE-223708</a>)</ul><h2>Stability and Performance</h2><ul><li>If syncing world from cloud fails on Xbox, automatically attempt to join the local copy<li>Improved loading times when exiting worlds<li>Improved loading times when using the /reload all command<li>Fixed a crash from using a Data Driven Renderer<li>Improved loading times when re-entering similar worlds<li>Improved loading times when transferring between servers</ul><h2>User Interface</h2><ul><li>Touch Controls: The camera Y-sensitivity for D-Pad controls has been decreased, matching the sensitivity for Joystick controls<li>Hotbar hotkeys now also work when hovering over output slots of Grindstone and Anvil (<a href=https://bugs.mojang.com/browse/MCPE-228276 rel=\"noopener noreferrer\"target=_blank>MCPE-228276</a>)<li>Touch Controls: There is now an option to increase the size of the top row of buttons in the HUD<li>New achievements page: Fixed a bug where some achievements could not be manually removed from the In Progress list<li>Touch Controls: Customizable controls are now always on<li>Updated the Add-Ons navigation button to have proper spacing between the icon and the text<li>Fix issue with rendering custom blocks as \"flying items\" and with quick move animation (<a href=https://bugs.mojang.com/browse/MCPE-180489 rel=\"noopener noreferrer\"target=_blank>MCPE-180489</a>)<li>Text input in certain inputs such as Book and Quill, will now prevent new lines if it will push text out of the input window<li>Fix suggested commands in chat misplaced when resizing window (<a href=https://bugs.mojang.com/browse/MCPE-147816 rel=\"noopener noreferrer\"target=_blank>MCPE-147816</a>)<li>Fixed the social drawer lacking a border when opened in-game (<a href=https://bugs.mojang.com/browse/MCPE-227007 rel=\"noopener noreferrer\"target=_blank>MCPE-227007</a>)<li>Fixed a bug where the text to speech settings incorrectly auto enabled when starting a world<li>Fixed the Social drawer lacking a border when opened within a world (<a href=https://bugs.mojang.com/browse/MCPE-227007 rel=\"noopener noreferrer\"target=_blank>MCPE-227007</a>)<li>Added a new joystick for touch controls when using the control schemes 'player_relative_strafe' or 'camera_relative_strafe'<ul><li>The new joystick is only available with \"Joystick &#38 tap to interact\" and \"Joystick &#38 aim crosshair\"<li>Players who are using \"D-Pad &#38 tap to interact\" when entering into one of the two control schemes will be put into \"Joystick &#38 tap to interact\" and then returned to \"D-Pad &#38 tap to interact\" after they stop using one of the two control schemes</ul><li>Added missing options to the new Accessibility settings page (<a href=https://bugs.mojang.com/browse/MCPE-228101 rel=\"noopener noreferrer\"target=_blank>MCPE-228101</a>)<li>Accessibility option \"Enable Open Chat Message\" has been renamed to \"Chat Instructions on Join\"<li>Implemented the same HUD icon for ambient mob effects as Java (like the ones applied by Beacons, Conduits, or Breath of the Nautilus)<li>Fixed ambient mob effects constantly flashing like they are timing out<li>All items now show the Hit attack prompt when aiming at a Mob<li>Items with dedicated interaction prompts now show when aiming at a Mob if there is no other special Mob interaction prompt<li>Fixed a bug where holding up on the D-Pad would not continuously scroll in menus (<a href=https://bugs.mojang.com/browse/MCPE-226509 rel=\"noopener noreferrer\"target=_blank>MCPE-226509</a>)<li>Fixed an issue where the paste button on some screens would paste text twice (<a href=https://bugs.mojang.com/browse/MCPE-228233 rel=\"noopener noreferrer\"target=_blank>MCPE-228233</a>)<li>Title bar of game on PC will now respect Windows dark mode (<a href=https://bugs.mojang.com/browse/MCPE-227846 rel=\"noopener noreferrer\"target=_blank>MCPE-227846</a>)<li>Fixed issue where game icon doesn't show on taskbar and title bar on Windows (<a href=https://bugs.mojang.com/browse/MCPE-227849 rel=\"noopener noreferrer\"target=_blank>MCPE-227849</a>)<li>The mob's inventory panel is now hidden for all unchested mobs in the default UI<li>Open windows such as inventory, trading, or chat, will now close when you are hurt by a mob<ul><li>Windows will not close repeatedly if you are attacked multiple times in quick succession</ul></ul><h3>Items</h3><ul><li>Spawn Eggs are now sorted thematically in the Creative Inventory, according to the following categories:<ul><li>Overworld<ul><li>Farm Animals<li>Mounts<li>Pets<li>Wild Animals<li>Aquatic<li>Miscellaneous<li>Golems<li>Villagers<li>Undead<li>Spiders<li>Monsters<li>Illagers</ul><li>Nether<li>The End</ul><li>Tools and weapons now lose durability when used to attack Armor Stands, just like they do when damaging other entities such as Minecarts, Paintings, Boats, or Leash Knots</ul><h1>Technical Updates</h1><h2>AI Goals</h2><ul><li>Made schemas for goals <code>minecraft:behavior.explore_outskirts</code> and <code>minecraft:behavior.investigate_suspicious_location</code> stricter when parsing and will fail to load an entity json that has invalid data in versions 1.21.130 and newer<li>Added the \"minecraft:behavior.use_kinetic_weapon\" AI goal<ul><li>Description:<ul><li>Allows a mob to make use of items with a \"minecraft:kinetic_weapon\" item component<li>The mob will approach the target before using the weapon and charging with it<li>If the target gets too close, the mob will retreat and reposition before charging again<li>Once all \"max_duration\"s in the item's \"minecraft:kinetic_weapon\" component have elapsed, the mob goes on cooldown and retreats before approaching again</ul><li>Fields:<ul><li>\"approach_distance\": The distance to the target within which the mob begins using its kinetic weapon<li>\"reposition_distance\": The distance the mob retreats to once the target is closer than the midpoint of the item's \"minecraft:kinetic_weapon\" component's minimum and maximum \"reach\"<li>\"reposition_speed_multiplier\": Multiplier applied to the mob's movement speed while repositioning<li>\"cooldown_distance\": The distance the mob retreats to after all of the item's \"minecraft:kinetic_weapon\" component's \"max_duration\" values have elapsed<li>\"cooldown_speed_multiplier\": Multiplier applied to the mob's movement speed while on cooldown<li>\"weapon_reach_multiplier\": Multiplier applied to the item's \"minecraft:kinetic_weapon\" component's \"reach\"<li>\"weapon_min_speed_multiplier\": Multiplier applied to each \"min_speed\" and \"min_relative_speed\" condition in the item's \"minecraft:kinetic_weapon\" component<li>\"min_path_time\": Minimum base time, in seconds, before recalculating a new attack path to the target (before increases are applied)<li>\"max_path_time\": Maximum base time, in seconds, before recalculating a new attack path to the target (before increases are applied)<li>\"path_fail_time_increase\": Time, in seconds, added to the attack path recalculation interval when the mob cannot move along the current path<li>\"inner_boundary_time_increase\": Time, in seconds, added to the attack path recalculation interval when the target is beyond \"path_inner_boundary\"<li>\"outer_boundary_time_increase\": Time, in seconds, added to the attack path recalculation interval when the target is beyond \"path_outer_boundary\"<li>\"path_inner_boundary\": Distance at which to increase attack path recalculation by \"inner_boundary_time_increase\"<li>\"path_outer_boundary\": Distance at which to increase attack path recalculation by \"outer_boundary_time_increase\"<li>\"speed_multiplier\": Multiplier applied to the mob's movement speed when moving toward its target<li>\"require_complete_path\": Specifies whether a full navigation path from the mob to the target is required<li>\"track_target\": Allows the mob to track its target even if it lacks a hard-coded sensing component<li>\"cooldown_time\": Cooldown time, in seconds, between consecutive attacks<li>\"melee_fov\": Field of view, in degrees, used by the hard-coded sensing component to detect a valid attack target<li>\"x_max_rotation\": Maximum rotation, in degrees, on the X-axis while the mob is trying to look at its target<li>\"y_max_head_rotation\": Maximum rotation, in degrees, on the Y-axis while the mob is trying to look at its target<li>\"random_stop_interval\": Defines a 1-in-N chance for the mob to stop its current attack, where N equals \"random_stop_interval\"<li>\"attack_once\": Allows the mob to perform this melee attack behavior only once during its lifetime</ul><li>Requirements:<ul><li>The mob must have an item with the \"minecraft:kinetic_weapon\" item component<li>Must otherwise fulfill the same conditions as other melee attack goals</ul></ul><li>\"minecraft:behavior.melee_box_attack\", \"minecraft:behavior.delayed_attack\", \"minecraft:behavior.melee_attack\", and \"minecraft:behavior.stomp_attack\" now correctly apply their \"path_inner_boundary\" field<li>Added two new fields to <code>behavior.float</code> to enable more control of floating and how long the vehicle can be underwater before dismounting its passengers<ul><li><code>chance_per_tick_to_float</code>: The chance per tick to cause an upward impulse<li><code>time_under_water_to_dismount_passengers</code>: Time in seconds that a floating vehicles head can be underwater before it causes its passengers to dismount</ul><li>Added a new field to <code>behavior.nearest_attackable_target</code> to enable a probability of target being chosen by <code>behavior.nearest_attackable_target</code> goal<ul><li><code>target_acquisition_probability</code>: Probability (0.0 to 1.0) that a entity will accept a found target<li>The default value unless specified is 1.0</ul><li>Modified <code>behavior.nearest_attackable_target</code>'s <code>attack_interval</code> field to support a range of value instead<ul><li><code>range_min</code>: Minimum time in seconds before the entity searches for a attack target, can now be set to other values than just 0<li><code>range_max</code>: Maximum time in seconds before the entity searches for a attack target</ul><li>Added the \"hijack_mount_navigation\" field to the \"minecraft:behavior.use_kinetic_weapon\" AI goal<ul><li>Allows a mob to override its mount's navigation behavior with the one defined by this goal<li>Requires the mount to be running the \"minecraft:behavior.mount_pathing\" goal, whose default behavior will be ignored</ul></ul><h2>API</h2><ul><li>Fixed an issue where <code>Dimension.getEntitiesFromRay</code> and <code>Entity.getEntitiesFromViewDirection</code> stopped working for some entities such as <code>minecraft:xp_orb</code>, ground items, <code>minecraft:arrow</code>, <code>minecraft:snowball</code> and <code>minecraft:thrown_trident</code><li>Released <code>AABB</code> from <code>beta</code> to <code>v2.4.0</code><li>Released <code>Entity.getAABB</code> from <code>beta</code> to <code>v2.4.0</code><li>Released <code>ControlScheme</code> from <code>beta</code> to <code>v2.4.0</code><li>Released <code>Player.setControlScheme</code> from <code>beta</code> to <code>v2.4.0</code><li>Released <code>Player.getControlScheme</code> from <code>beta</code> to <code>v2.4.0</code><li>Released <code>GetBlocksStandingOnOptions</code> from <code>beta</code> to <code>v2.4.0</code><li>Released <code>Entity.getBlockStandingOn</code> from <code>beta</code> to <code>v2.4.0</code><li>Released <code>Entity.getAllBlocksStandingOn</code> from <code>beta</code> to <code>v2.4.0</code><li>Added new module <code>@minecraft/server-graphics</code> to change graphics and rendering settings. The current set of APIs are associated with Atmospheric Scattering parameters in Vibrant Visuals<li>The /clone command now fires onBreak beta API event for custom blocks overridden at source destination<li>Moved Loot Table Discovery APIs from beta into <code>2.4.0</code><li>Released class BlockRedstoneProducerComponent from <code>beta</code> to <code>v2.4.0</code><li>Released class InvalidBlockComponentError from <code>beta</code> to <code>v2.4.0</code><li>Released <code>LiquidSettings</code> from <code>beta</code> to <code>v2.4.0</code><li>JigsawPlaceOptions<ul><li>Moved <code>liquidSettings?: LiquidSettings</code> from <code>beta</code> to <code>v2.4.0</code></ul><li>JigsawStructurePlaceOptions<ul><li>Moved <code>liquidSettings?: LiquidSettings</code> from <code>beta</code> to <code>v2.4.0</code></ul><li>Fixing an issue in new worlds where calling <code>world.getDimension</code>, before a player has spawned, could result in a different spawn location than intended (<a href=https://bugs.mojang.com/browse/MCPE-228041 rel=\"noopener noreferrer\"target=_blank>MCPE-228041</a>)<li>Released <code>BlockComponentBlockBreakEvent</code> from <code>beta</code> to <code>v2.4.0</code><li>/structure and /place commands and StructureManager API Place function now trigger onBreak beta API event for custom blocks when overridden<li>Moved class <code>Potions</code> from <code>beta</code> to <code>V2.4.0</code><li>Moved component <code>ItemPotionComponent</code> from <code>beta</code> to <code>V2.4.0</code><li>Moved class <code>PotionDeliveryType</code> from <code>beta</code> to <code>V2.4.0</code><li>Moved class <code>PotionEffectType</code> from <code>beta</code> to <code>V2.4.0</code><li>Moved error <code>InvalidPotionDeliveryTypeError</code> from <code>beta</code> to <code>V2.4.0</code><li>Moved error <code>InvalidPotionEffectTypeError</code> from <code>beta</code> to <code>V2.4.0</code><li>Player method <code>clearPropertyOverridesForEntity</code> can now take an Entity or Entity ID as valid arguments in <code>v1.19.0</code></ul><h2>Biomes</h2><ul><li>Fixed an issue where replacement biomes were not read for client-side chunk generation<li>The client side Molang queries <code>query.entity_biome_has_all_tags</code>, <code>query.entity_biome_has_any_tags</code>, and <code>query.entity_biome_has_any_identifier</code> no longer need the Upcoming Creator Features toggle to be used<li>Fixed biome replacement component (<a href=https://bugs.mojang.com/browse/MCPE-229476 rel=\"noopener noreferrer\"target=_blank>MCPE-229476</a>)</ul><h2>Blocks</h2><ul><li>The \"fit_to_frame\" option in geometry files can no longer be disabled to render block-items larger than its frame from \"format_version\" 1.21.130 onward<li>Fixed <code>minecraft:redstone_producer</code> component not properly updating redstone signal for custom blocks on block state change (<a href=https://bugs.mojang.com/browse/MCPE-229570 rel=\"noopener noreferrer\"target=_blank>MCPE-229570</a>)<li>Custom blocks will no longer be overly bright when flying between two inventory slots<li>Moved the Block Precipitations Interactions component from experimental to stable<li>Fixed <code>\"ambient_occlusion\"</code> field in <code>\"minecraft:material_instances\"</code> block component<li>\"minecraft:collision_box\" height is extended to 24 when using a format version of <code>1.21.130</code> or higher and the <code>Upcoming Creator Features</code> toggle is enabled<li>\"minecraft:collision_box\" now supports arrays of boxes when using a format version of <code>1.21.130</code> or higher and the <code>Upcoming Creator Features</code> toggle is enabled</ul><h2>Block Rendering</h2><ul><li>Fixed custom blocks rendered in Structure Block GUI</ul><h2>Commands</h2><ul><li>The clone command will no longer clone extra blocks sharing a position with a filtered out block (<a href=https://bugs.mojang.com/browse/MCPE-179847 rel=\"noopener noreferrer\"target=_blank>MCPE-179847</a>)</ul><h2>Components</h2><ul><li>Added <code>is_controlling_passenger_family</code> entity filter to check if the passenger controlling a mount is of the specified family<li>Added <code>has_item_with_component</code> entity filter to check if the entity has equipped an item with the designated component name<li>Updates to <code>minecraft:dash_action</code><ul><li>Added new field \"can_dash_underwater\" that allows entities with this component to dash underwater<li>Disabled by default</ul></ul><h2>Gameplay</h2><ul><li>Legacy tree features now respect biome borders (<a href=https://bugs.mojang.com/browse/MCPE-168996 rel=\"noopener noreferrer\"target=_blank>MCPE-168996</a>)</ul><h2>General</h2><ul><li>Fixed disabling of building and mining abilities for players with operator permissions while in Creative mode</ul><h2>Editor</h2><ul><li>Added <code>IListPanePropertyItem</code> to pane API to create lists with text, button, checkbox, and image components<li>Added cubemap controls to the Vibrant Visuals Settings Pane<li>Updated Line Tool's middle selector to now change to Hermite curve automatically when moving the gizmo<li>Updated Jigsaw Tool to automatically import template pools from loaded behavior packs<li>Fixed a bug that caused Editor scaling to be broken<li>Fixed a bug that prevented Summon tool from spawning custom entities<li>Updated Settings data to be saved across sessions, users need to manually save the <code>Settings</code><li>Fixed a bug which caused detached gizmo to appear during ruler drag while axis locked<li>Fixed a bug that updated the rotation range to (-360~360) for Summon tool and Brush tool<li>Updated the settings for UI Settings, Tutorial, Keyboard and Graphics mode, users need to manually save these settings<li>Added new <code>IModalDialog</code> API to create scripted dialog windows. They can be registered from <code>IModalDialogManager</code>, and then activated like core dialogs<li>Added new selection tool utility \"Quick Move\" mode that allows you to easily move the contents of a selection in any one direction. Can also specify a specific destination<li>Added cursor setting to Farm Generator tool; player can place the farm at a position with the target mode<li>Adds a new EditorTagContainer UI component with accompanying modal for adding tags. Swapped theme color mapping for SecondaryActive and SecondaryDefault<li>Added support for Jigsaw blocks to Block Inspector tool<li>Editor will attempt to load jigsaw files from Behavior Packs if they do not conflict with an existing Jigsaw collection name<li>Fixed a bug that the previews position of repeater tool were displaced from the intended position<li>Fixed a bug that prevented the action bar selection menu from closing when pressing the Escape key<li>Moved the brush shapes rotation settings into Rotation sub pane<li>Added Tag management section in the Structure details panel, where tags can be added and removed<li>Fixed a bug that caused the default deleted hotbar to be re-added after re-entering a session<li>Fixed a bug that caused some cursor and brush tooltips to show incorrect key bindings<li>Fixed a bug that auto-save the keyboard binding after reset and reset all to the default<li>Fixed a bug that caused mob effects shortcut to not work in crosshair mode<li>Fixed a bug that caused tutorial message window and dimmer overlay to be misaligned<li>Added <code>shrinkToIcon</code> API property for <code>IButtonPropertyItem</code> creation options<li>Added <code>maxVisibleEntries</code> API property for <code>IDropdownPropertyItem</code> to modify menu size<li>Added <code>enabled</code> API property for <code>IToggleGroupPropertyItemEntry</code><li>Changed <code>ButtonPropertyItemVariant</code> API enum to <code>ButtonVariant</code><li>Added Generate Manifest button to Selection Tool<ul><li>Added Deselect and Replace operations to Selection Tool block manifest - allows removing or replacing specific block types from the selection</ul><li>Added \"Paint\" key bind for pencil in keyboard settings<li>Added filtering options in the Structure panel. Filtering can be by structure display name or Structure tags<li>Added Jigsaw block editing to the block inspector<li>Added bypass validation warning screen to generate jigsaw workflow<li>Added localized message and sub message support for logging APIs<li>Added new Raise and Lower Elevation modes for Terrain Tool<ul><li>Ability to adjust brush falloff<li>Ability to specify how many terrain layers to clone or preserve when raising/lowering<li>Ability to adjust the brush radius<li>Added ability to hold the SHIFT key to lock the brush XZ coordinates in place while painting</ul><li>Added Layout Instance baking (bake individual instances and added to export world and playtest) so that layouts are converted from holograms to actual blocks (Only works for Overworld at the moment)<ul><li>Added Mirror/Rotation to layout templates<li>Added Mirror/Rotation to layout instances<li>Added Mirror and Rotation properties to instance Editor<li>Note: Only Overworld is supported for layout baking at the moment. The Nether and End will be supported in a future update</ul><li>Updated the selection limit for Selection, Paste Preview, Line, Pencil, Brush, Smartfill, Terrain, Workbench, Ruler, Block inspector, Scale, Farm generator tools to match the video render distance setting<li>Updated UI and added multiplayer behaviors in Navigation Pane<ul><li>Stored Locations are shared across all creators in the project and synced for new joiners<li>Implemented edit functionality for name, coordinates, and color of Stored Locations<li>Added select/deselect-all and delete option with confirmation modal; deletion affects all users<li>Introduced a new panel listing all creators in the project with color indicators<li>Added teleportation feature to jump to any other creator</ul><li>Updated Quick Move functionality<ul><li>Changed switching to Quick Move mode binding from M to N<li>Changed default keybinding for moving with the arrow keys with Alt+Shift+arrow<li>Both previous changes remove keybinding conflicts with other Selection mode shortcuts<li>Made it so the gizmo arm won't disappear after you use it<li>Made the preview more transparent<li>You cannot enter quick move now if there is no selection<li>Fixed a bug where if you went from quick move to a selection (creation) mode that wasn't the last you used the selection state would get messed up. Now it correctly will clear the selection</ul><li>Fixed structure panel UI performance for projects containing a large number of structures<li>Fixed an issue where selecting certain Vibrant Visual settings caused an error<li>Fixed brush applying masked blocks incorrectly after switching dimensions<li>Fixed unhandled extrude tool error when it's being applied out of world bounds<li>Fixed a critical crash and several logic issues in the Ruler Tool when using axis locks and editing start/end points<li>Fixed an issue where if you tried to move blocks outside of the bounds of the world, it would freeze the Editor.</ul><h2>Entity Components</h2><ul><li>Added the <code>minecraft:body_rotation_locked_to_vehicle</code> component, that causes the entity's body to automatically rotate to align with its mounted vehicle<li>Added new field <code>protection_slot</code> to <code>minecraft:burns_in_daylight</code>, which allows specifying an equipment slot that should provide protection from burning in daylight. Valid values are \"slot.weapon.offhand\", \"slot.armor.head\", \"slot.armor.chest\", \"slot.armor.legs\", \"slot.armor.feet\", and \"slot.armor.body\". Leaving this field unspecified will default to having the Head armor slot provide protection from burning in daylight<li>In the \"minecraft:ageable\" and \"minecraft:breedable\" components, the \"transform_to_item\" field has been renamed to \"result_item\"<ul><li>This field is now defined for each item entry in each component's \"items\" list, enabling item-specific transformations on use</ul><li>Added \"result_item\" field to the items in the \"minecraft:healable\" and \"minecraft:tameable\" components<ul><li>This field is defined for each item entry in the \"items\" list<li>On a successful interaction, the consumed item is replaced with this item</ul><li>Upgraded the <code>minecraft:addrider</code> entity component, allowing it to take an array of riders<ul><li>Description:<ul><li>Allows a rideable mob to spawn with one or more riders</ul><li>Fields:<ul><li>\"riders\": Array of riders to add to the entity, with the mandatory field <code>entity_type</code> and optional field <code>spawn_event</code></ul><li><code>riders</code> Fields:<ul><li><code>entity_type</code>: The type of mob to spawn<li><code>spawn_event</code>: An optional event to spawn with the mob</ul><li>Requirements:<ul><li>The mob must have a <code>minecraft:rideable</code> entity component<li>The array of <code>riders</code> must be no longer than <code>minecraft:rideable</code> has <code>seat_count</code></ul></ul><li>Added new boolean field <code>can_dehydrate</code> to <code>minecraft:breathable</code>. The field defaults to false to preserve previous breathable behaviour. When set to true, entities that only breathe water will take dehydration damage when out of water<li>Renamed the <code>minecraft:body_rotation_locked_to_vehicle</code> component to <code>minecraft:rotation_locked_to_vehicle</code><ul><li>The component now aligns both the entity's body rotation and its overall rotation with that of its mounted vehicle</ul><li>Added a <code>lunge</code> field to the <code>minecraft:exhaustion_values</code> component<ul><li>Defines the amount of exhaustion applied when triggering the lunge enchantment, multiplied by the enchantment level</ul><li>Added the <code>ambient</code> field to <code>minecraft:mob_effect</code> component<ul><li>Causes the effect to render with the ambient effect background<li>Causes the effect to not pulse for timing out</ul></ul><h2>Gameplay</h2><ul><li>Custom items tagged with <code>minecraft::is_shovel</code> now build paths on all blocks the Shovel does</ul><h2>General</h2><ul><li>Added file name to the assertion message for \"MERS uniforms is being set more than once\" to make future debugging easier</ul><h2>Graphical</h2><ul><li>Fix blocks using \"render_method\":\"blend\" always being semi-transparent<li>Fix blocks using \"render_method\":\"blend\" and \"render_method\":\"alpha_test\" not having shaded sides in the inventory<li>Added cubemap controls to the Editor's Vibrant Visuals Settings Pane<li>Added the ability to data-drive cubemap lighting and effects in Vibrant Visuals. See the updated Creator portal for more information<ul><li>The new cubemap configuration files should be placed in the <em>cubemaps</em> directory of a resource pack.<li>Example of a cubemap configuration file with path <code>cubemaps/mycubemap.json</code>:</ul><pre><code>{\n\t\"format_version\": \"1.21.130\",\n\t\"minecraft:cubemap_settings\": {\n\t\t\"description\": {\n\t\t\t\"identifier\": \"mypack:mycubemap\"\n\t\t},\n\t\t\"lighting\": {\n\t\t\t\"ambient_light_illuminance\": {\n\t\t\t\t\"0.00000\": 4.0,\n\t\t\t\t\"1.000000\": 4.0\n\t\t\t},\n\t\t\t\"sky_light_contribution\": 1.0,\n\t\t\t\"directional_light_contribution\": 1.0,\n\t\t\t\"affected_by_atmospheric_scattering\": true,\n\t\t\t\"affected_by_volumetric_scattering\": true\n\t\t}\n\t}\n}\n</code></pre><ul><li><em>format_version</em>: Required field containing \"1.21.130\"<li><em>minecraft:cubemap_settings</em>: Required field<li><em>minecraft:cubemap_settings/description/identifier</em>: Required field. If the identifier is equal to <em>minecraft:default_cubemap</em>, it will be used by default in all biomes. Otherwise, the cubemap configuration can be applied to a biome by supplying the same identifier in the respective <em>.client_biome.json</em> file for that biome. Example of a biome configuration file with path <code>biomes/river.client_biome.json</code>:</ul><pre><code>{\n  \"format_version\": \"1.21.130\",\n  \"minecraft:client_biome\": {\n\t\"description\": {\n\t  \"identifier\": \"minecraft:river\"\n\t},\n\t\"components\": {\n\t  \"minecraft:cubemap_identifier\": {\n\t\t\"cubemap_identifier\": \"mypack:mycubemap\"\n\t  }\n\t}\n  }\n}\n</code></pre><ul><li><em>minecraft:cubemap_settings/lighting</em>: Required field. Any fields inside <em>lighting</em> are optional<li><em>minecraft:cubemap_settings/lighting/ambient_light_illuminance</em>: Contains pairs of numbers, where the first number should be between 0.0 and 1.0 (time of day) and the second number should be between 0.0 and 100000.0 (ambient light). Default value is 5.625 for all times of day<li><em>minecraft:cubemap_settings/lighting/sky_light_contribution</em>: Contribution of the sky light. It should be between 0.0 and 1.0. Default value is 1.0<li><em>minecraft:cubemap_settings/lighting/directional_light_contribution</em>: Contribution of the directional light. It should be between 0.0 and 1.0. Default value is 0.0<li><em>minecraft:cubemap_settings/lighting/affected_by_atmospheric_scattering</em>: Value is a boolean and controls the state of the atmospheric scattering effect applied the cubemap. Default value is false<li><em>minecraft:cubemap_settings/lighting/affected_by_volumetric_scattering</em>: Value is a boolean and controls the state of the volumetric scattering effect applied the cubemap. Default value is true</ul><li>Fixed black bars appears at the bottom of the screen when launching the game in fullscreen mode (<a href=https://bugs.mojang.com/browse/MCPE-227955 rel=\"noopener noreferrer\"target=_blank>MCPE-227955</a>)<li>Fixed an issue where blocks moved by Pistons are too dark<li>Added Kelp Block to the list of blocks affected by dithering when near the player camera<li>Fixed blocks flashing yellow when pushed with a Piston with Vibrant Visuals enabled<li>Reduced flickering and fixed incorrect reflections on low roughness materials with height maps in Vibrant Visuals<li>Fixed damage particles sometimes rendering as black with vanilla renderer<li>Fixed archaeology items sometimes rendering as nearly black<li>Light absorption in water has been changed from 2 to 1 units, to match Java Edition<li>Updated supported devices for Vibrant Visuals on iOS and Android including additional support for the Adreno 700 series (<a href=https://bugs.mojang.com/browse/MCPE-229154 rel=\"noopener noreferrer\"target=_blank>MCPE-229154</a>)<li>Fixed an issue where Improved Input Latency Response toggle would cause a crash at startup (<a href=https://bugs.mojang.com/browse/MCPE-231485 rel=\"noopener noreferrer\"target=_blank>MCPE-231485</a> )</ul><h2>Items</h2><ul><li>Fix issue with rendering custom blocks as \"flying items\" (<a href=https://bugs.mojang.com/browse/MCPE-180489 rel=\"noopener noreferrer\"target=_blank>MCPE-180489</a>)</ul><h2>Item Components</h2><ul><li>Added the <code>minecraft:swing_sounds</code> item component<ul><li>Allows overriding the swing sounds emitted by the user<li>Fields:<ul><li>\"attack_miss\": sound played when an attack misses or deals no damage due to invulnerability<li>\"attack_hit\": sound played when an attack hits<li>\"attack_critical_hit\": sound played when an attack hits and deals critical damage</ul><li>At least one field needs to be specified</ul><li>Added the <code>minecraft:kinetic_weapon</code> item component<ul><li>Description:<ul><li>Allows an item to deal damage and other effects every tick while in use, to all unobstructed targets found in a straight line from the user's view vector<li>Damage is computed based on both the user's and target's velocity projected onto the view vector (via dot product)<li>The more the user and target move toward each other and align with the view vector, the higher the damage<li>After applying \"damage_multiplier\" and \"damage_modifier\", the resulting damage is floored to the nearest lower integer</ul><li>Fields:<ul><li>\"delay\": Ticks to wait before applying damage and effects<li>\"reach\": Range along the view vector where entities can be hit<li>\"hitbox_size\": Extra tolerance on the raycast to detect entities<li>\"damage_multiplier\": Multiplies the sum of the projected velocities<li>\"damage_modifier\": Adds to the multiplied sum of the projected velocities<li>\"damage_conditions\": Conditions that need to be satisfied for damage to be applied<li>\"knockback_conditions\": Conditions that need to be satisfied for knockback to be applied<li>\"dismount_conditions\": Conditions that need to be satisfied for riders to be dismounted</ul><li>\"damage_conditions\", \"knockback_conditions\" and \"dismount_conditions\" fields:<ul><li>\"max_duration\": Time, in ticks, during which the effect can be applied after \"delay\" elapses<li>\"min_speed\": Minimum user's speed (projected onto the view vector via a dot product) required for the effect to be applied<li>\"min_relative_speed\": Minimum relative speed of the user with respect to the target (projected onto the view vector via a dot product) required for the effect to be applied<li>If omitted, the corresponding effect does not apply</ul><li>Requirements:<ul><li>Requires the \"minecraft:use_modifiers\" item component on the same item</ul></ul><li>Added the \"minecraft:piercing_weapon\" item component<ul><li>Description:<ul><li>Allows an item to deal damage to all entities detected in a straight line along the user's view vector<li>Items with this component cannot destroy blocks, as the attack action always takes priority, regardless of what the user is looking at</ul><li>Fields:<ul><li>\"reach\": Range along the view vector where entities can be hit<li>\"hitbox_size\": Extra tolerance on the raycast to detect entities</ul><li>Requirements:</ul><li>The \"minecraft:cooldown\" item component now supports a \"type\" field<ul><li>Defines the action the cooldown applies to, in a mutually exclusive way, so cooldowns for one action type do not affect the other<li>Values:<ul><li>\"use\": puts the item on cooldown when used, preventing further use until it expires, but still allowing attacks, mining, and interaction<li>\"attack\": puts the item on cooldown when attacking, preventing further attacks until it expires, but still allowing use, mining, and interaction</ul><li>\"use\" is the default value, preserving the component's original behavior</ul><li>Added the <code>creative_reach</code> field to <code>minecraft:kinetic_weapon</code> item component<ul><li>Defines the reach used when the user is in Creative Mode<li>Defaults to <code>reach</code> if unspecified</ul><li>Added the <code>creative_reach</code> field to <code>minecraft:piercing_weapon</code> item component<ul><li>Defines the reach used when the user is in Creative Mode<li>Defaults to <code>reach</code> if unspecified</ul><li>Added the <code>start_sound</code> field to the <code>minecraft:use_modifiers</code> item component<ul><li>Defines the sound to play when starting using the item</ul></ul><h2>Mobs</h2><ul><li>Fixed content warning that incorrectly occurred for <code>format_version</code> field in entity json in versions before 1.8.0<li>Lowered the <code>min_engine_version</code> of the latest zombie_pigman.entity.json slice back to 1.8.0, allowing it to be overridden by existing third-party content (<a href=https://bugs.mojang.com/browse/MCPE-229868 rel=\"noopener noreferrer\"target=_blank>MCPE-229868</a>)</ul><h2>Molang</h2><ul><li>Added four new Molang queries pertaining to the <code>minecraft:on_use_kinetic_damage</code> item component:<ul><li><code>query.get_kinetic_item_delay</code>, Returns the <code>delay</code> value from the main-hand item's <code>minecraft:on_use_kinetic_damage</code> component, or 0 if the component is not present<li><code>query.get_kinetic_item_damage_duration</code>, Returns the <code>damage_duration</code> value from the main-hand item's <code>minecraft:on_use_kinetic_damage</code> component, or 0 if the component is not present<li><code>query.get_kinetic_item_knockback_duration</code>, Returns the <code>knockback_duration</code> value from the main-hand item's <code>minecraft:on_use_kinetic_damage</code> component, or 0 if the component is not present<li><code>query.get_kinetic_item_dismount_duration</code>, Returns the <code>dismount_duration</code> value from the main-hand item's <code>minecraft:on_use_kinetic_damage</code> component, or 0 if the component is not present</ul><li>Added \"query.kinetic_weapon_delay\", which returns the \"delay\" value from the main-hand item's \"minecraft:kinetic_weapon\" component, or 0 if the component is not present<li>Added \"query.kinetic_weapon_damage_duration\", which returns the \"max_duration\" value of \"damage_conditions\" from the main-hand item's \"minecraft:kinetic_weapon\" component, or 0 if the component is not present<li>Added \"query.kinetic_weapon_knockback_duration\", which returns the \"max_duration\" value of \"knockback_conditions\" from the main-hand item's \"minecraft:kinetic_weapon\" component, or 0 if the component is not present<li>Added \"query.kinetic_weapon_dismount_duration\", which returns the \"max_duration\" value of \"dismount_conditions\" from the main-hand item's \"minecraft:kinetic_weapon\" component, or 0 if the component is not present<li>Added \"query.ticks_since_last_kinetic_weapon_hit\", which returns the number of ticks elapsed since the user last hit something while using a kinetic weapon<ul><li>Returns -1.0 if no kinetic weapon is being used or if nothing has been hit yet<li>Hits that occur while the user is unloaded are not counted</ul><li>Added Pack Settings Molang queries<li><code>query.get_pack_setting('ns:slider_name')</code> the value of a slider<li><code>query.is_pack_setting_enabled('ns:toggle_name')</code> check if toggle is enabled<li><code>query.is_pack_setting_selected('ns:dropdown_name', 'dropdown_option_name')</code> if a dropdown option is selected</ul><h2>Network Protocol</h2><ul><li>Added ActorFlags::BODY_ROTATION_LOCKED_TO_VEHICLE<li>LevelSoundEventPacket modified: added LevelSoundEvent::SpearAttackHit, LevelSoundEvent::SpearAttackMiss, LevelSoundEvent::WoodenSpearAttackHit and LevelSoundEvent::WoodenSpearAttackMiss<li>ActorEventPacket modified: added ActorEvent::KINETIC_DAMAGE_DEALT<li>Added new Level Sound Event <code>imitate.camel_husk</code><li>Added new Level Sound Event <code>imitate.parched</code><li>Renamed <code>ActorFlags::BODY_ROTATION_LOCKED_TO_VEHICLE</code> to <code>ActorFlags::ROTATION_LOCKED_TO_VEHICLE</code><li>Added <code>Ambient</code> bool field to <code>MobEffectPacket</code>, defines if the effect is considered ambient (like the ones applied by Beacons or Conduits)<li><code>LevelSoundEventPacket</code> modified: added <code>LevelSoundEvent::SpearUse</code> and <code>LevelSoundEvent::WoodenSpearUse</code></ul><h2>Particles</h2><ul><li>Fixed a bug that caused incorrect validation errors for particle texture path (<a href=https://bugs.mojang.com/browse/MCPE-220351 rel=\"noopener noreferrer\"target=_blank>MCPE-220351</a>)</ul><h2>Scripting</h2><ul><li>Breakpoints that are checked by MC and considered invalid will appear disabled in VSCode<li>Fix bug causing breakpoints to miss under certain conditions</ul><h2>Structures</h2><ul><li>Prevented a crash when trying to export structures in unsupported platforms<li>Fixed rotation and mirroring of Vine blocks during structure placement</ul><h2>User Interface</h2><ul><li>String multiplication in UI expressions is now limited exclusively to <code>%.&#60number>s</code><li>Added <code>resolve_ancestor_scope</code> boolean to view bindings as a way to bind to an ancestor that matches the <code>source_control_name</code></ul><h1>Experimental Technical Updates</h1><h2>API</h2><ul><li>Debug drawing tech in <code>@minecraft/debug-utilities</code> now supports rendering shapes in different dimensions:<ul><li>Added <code>setLocation(location: minecraftserver.DimensionLocation | minecraftserver.Vector3): void</code> method to <code>DebugShape</code><li>The <code>location</code> property on <code>DebugShape</code> has been changed to read only (use <code>setLocation</code> above to modify the location)<li>Added <code>dimension</code> readonly property to <code>DebugShape</code><li>Changed the constructors of all the debug shapes to instead take a variant of <code>Vector3</code> or <code>DimensionLocation</code></ul><li>Fixed triggering of <code>PlayerSwingStartAfterEvent</code> to only happen on the start of a swing<li>Fixed issue where onBreak beta API event would not fire if a Piston was the breaking cause<li>Released <code>@minecraft/server</code> version 2.4.0<li>Added <code>@minecraft/server</code> version 2.5.0-beta<li>Debug Drawing<ul><li>Fixed a bug where <code>timeLeft</code> would cause the <code>DebugShape</code> to be removed immediately<li>Fixed a bug where the arrow head of the <code>DebugArrow</code> would look incorrect at certain rotations</ul><li>Fixed issue in preview where <code>world.afterEvents.playerBreakBlock</code> was providing an invalid block position (<a href=https://bugs.mojang.com/browse/MCPE-229538 rel=\"noopener noreferrer\"target=_blank>MCPE-229538</a>)<li>Sends global dynamic property values to the Minecraft debugger's Live Diagnostics when attached<li>Added <code>EntitySwingSource</code> for providing context of player swings to <code>beta</code><li>Added <code>PlayerSwingStartAfterEvent.swingSource</code> to <code>beta</code><li>Added <code>PlayerSwingEventOptions.swingSource</code> to <code>beta</code><li>Fixed an issue where <code>DebugShape</code> objects were not cleaned up properly after running /reload<li>Fixed an issue where <code>DebugText</code> would not be affected by the <code>scale</code> property<li>World<ul><li>Added property <code>readonly tickingAreaManager: TickingAreaManager</code> to beta</ul><li>Added class <code>TickingAreaManager</code> to <code>beta</code>. This manager is used to add, remove or query temporary ticking areas to a dimension<ul><li>These ticking areas are limited by a fixed amount of ticking chunks per pack independent of the command limits</ul><li>Added interface <code>TickingArea</code> to <code>beta</code>. This provides information about a specific ticking area<li>Added interface <code>TickingAreaOptions</code> to <code>beta</code>. Options to create a ticking area using the TickingAreaManager<li>Added class <code>TickingAreaError</code> to <code>beta</code><li>Added enum <code>TickingAreaErrorReason</code> to <code>beta</code><ul><li>Enum for the reason that a <code>TickingAreaError</code> was thrown</ul><li>Added <code>BlockComponentRedstoneUpdateEvent</code>, which can be subscribed by custom block components<li>Added <code>onRedstoneUpdate</code> custom component subscription in <code>beta</code> with the following conditions<ul><li>Block has <code>minecraft:redstone_consumer</code> component, otherwise CONTENT_ERROR is thrown<li>Subscription is not queued if the <code>BlockComponentRedstoneUpdateEvent.powerLevel</code> is less than <code>minecraft:redstone_consumer</code> field <code>min_power</code> Here is an example of a custom component json and the subscription script:</ul></ul><pre><code>{\n\t\"format_version\": \"1.21.130\",\n\t\"minecraft:block\": {\n\t\t\"description\": {\n\t\t\t\"identifier\": \"test:custom_block\"\n\t\t},\n\t\t\"components\": {\n\t\t\t\"minecraft:redstone_consumer\": {\n\t\t\t\t\"min_power\": 10,\n\t\t\t\t\"propogates_power\": true\n\t\t\t},\n\t\t\t\"test:custom_component\": {}\n\t\t}\n\t}\n}\n</code></pre><pre><code>import { system } from '@minecraft/server-wrapper';\nsystem.beforeEvents.startup.subscribe(init => {\n    init.blockComponentRegistry.registerCustomComponent(\"test:custom_component\", {\n        onRedstoneUpdate: _ => {\n            //insert logic here\n        }\n    });\n});\n</code></pre><h2>API Infra</h2><ul><li>Modernized CommandOutputPacket serialization<ul><li>Max number of \"Output Messages\" set max to 100<ul><li>Field \"Message Id\", set max size to 512 characters<li>Max number of \"Parameters\" set to 512</ul></ul><li>Modernized CommandRequestPacket serialization<ul><li>Field \"Request ID\", set max size to 39 characters</ul><li>Modernized AvailableCommandsPacket serialization. Added these constraints:<ul><li>Chained Subcommand Data / Name max size set to 512 characters<li>Commands / Name max size set to 512 characters<li>Commands / Description max size set to 1000 characters<li>Commands / Chained Subcommand Indexes max size set to 250 elements<li>Commands / Overloads max size set to 250 elements<li>Constraints / Constraint Indices max size set to 250 elements</ul></ul><h2>Blocks</h2><ul><li>Added component <code>minecraft:support</code> behind the Upcoming Creator Features toggle Example:</ul><pre><code>\"minecraft:support\": { \n    \"shape\": \"stair\" // \"fence\" is also valid \n}\n</code></pre><ul><li>Created a new block trait, <code>minecraft:connection</code>, to expose behavior like Fences or Glass Panes from Vanilla where blocks connect to other blocks around them. Using this trait with the example below adds the bool states <code>minecraft:connection_north</code>, <code>minecraft:connection_east</code>, <code>minecraft:connection_south</code>, and <code>minecraft:connection_west</code>. This is only available while the \"Upcoming Creator Features\" toggle is enabled Example:</ul><pre><code>{\n    \"format_version\": \"1.21.130\",\n    \"minecraft:block\": {\n        \"description\": {\n            \"identifier\": \"test:connection_block\",\n            \"traits\": {\n                \"minecraft:connection\": {\n                    \"enabled_states\": [\"minecraft:cardinal_connections\"]\n                }\n            }\n        }\n    }\n}\n</code></pre><ul><li><p>One known issue with this is that blocks using <code>minecraft:connection</code> don't properly decide connections to blocks like Fences, Walls, Iron Bars, Fence Gates, and Glass Panes. Addressing this issue is currently in development<li><p>Added component <code>minecraft:connection_rule</code> behind the Upcoming Creator Features toggle which allows custom blocks to define whether other blocks with connection behavior - such as fences, walls, bars, and glass panes - can try to create a connection.<li><p>Added VanillaBlockTag <code>minecraft:has_fence_connections</code> that can be used to identify a custom block as a block that creates connections like a fence; this tag is required to create connections between custom and Vanilla fences. The component and tag can be used along with the <code>minecraft:connection</code> block trait to make a custom fence that creates connections like a Vanilla fence. The following is an example of how they fit into the JSON of a custom fence block:</ul><pre><code>{\n    \"format_version\": \"1.21.130\",\n    \"minecraft:block\": {\n        \"description\": {\n            \"identifier\": \"test:my_fence\",\n            \"traits\": {\n                \"minecraft:connection\": {\n                    \"enabled_states\": [\"minecraft:cardinal_connections\"]\n                }\n            }\n        },\n        \"components\": {\n            \"tag:minecraft:has_fence_connections\": {},\n            \"minecraft:connection_rule\": {\n                \"accepts_connections_from\": \"only_fences\"\n            }\n        }\n    }\n}\n</code></pre><ul><li>Added new state <code>minecraft:corner_and_cardinal_direction</code> to the <code>minecraft:placement_direction</code> block trait which enables the <code>minecraft:corner</code> with values <code>none</code>, <code>inner_left</code>, <code>inner_right</code>, <code>outer_left</code>, and <code>outer_right</code> to provide similar behavior to how stairs in Vanilla work<ul><li>When this is set, you can use the field <code>blocks_to_corner_with</code> to decide the criteria with an array of block descriptors to determine what blocks to form a corner with<li>The default behavior for this field is to corner with the same block name<li>This all requires the Beta APIs toggle to be enabled on a world and the <code>use_beta_features</code> flag on your block</ul></ul><pre><code class=language-json>  \"format_version\": \"1.21.130\",\n  \"use_beta_features\": true,\n  \"minecraft:block\": {\n    \"description\": {\n      \"identifier\": \"custom:custom_block\",\n      \"traits\": {\n        \"minecraft:placement_position\": {\n          \"enabled_states\": [\"minecraft:vertical_half\"]\n        \"minecraft:placement_direction\": {\n          \"enabled_states\": [\"minecraft:corner_and_cardinal_direction\"],\n          \"blocks_to_corner_with\": [{\"tags\": \"q.any_tag('minecraft:cornerable_stairs')\"}]\n      }\n  }\n</code></pre><ul><li>With the Beta APIs toggle on, Vanilla Stairs have the tag <code>minecraft:cornerable_stairs</code> available, and can corner with custom blocks with the same tag if the block also uses <code>minecraft:cardinal_direction</code> block states<li>Blocks using <code>minecraft:placement_direction</code> Block Trait with the <code>minecraft:corner_and_cardinal_direction</code> had the inner_left/outer_left and inner_right/outer_right states backwards when a block was facing south or west<li>Made blocks that use the <code>minecraft:placement_position</code> block trait with the state <code>minecraft:vertical_half</code> and <code>minecraft:placement_direction</code> with the state <code>minecraft:corner_and_cardinal_direction</code> update the corner state immediately instead of happening a tick later<li>We now will mirror the <code>minecraft:corner</code> block state when used within a structure<li>Added <code>minecraft:redstone_consumer</code> component behind the <code>Upcoming Creator Features</code> experiment. A component describing how a block can consume and potentially propogate a redstone signal<ul><li>Contains optional field <code>min_power</code> which defines the minimum value for incoming signal stregth. If signal strength is greater than or equal to this value then the <code>onRedstoneUpdate</code> event is sent to Scripts. Defaults to 0 meaning event is always emitted<li>Contains optional field <code>propogates_power</code> a Boolean to control whether a signal can pass through this block or not, defaults to false<li>This component is currently not available for block permutations<li>Example:<pre><code>{\n\t\"format_version\": \"1.21.130\",\n\t\"minecraft:block\": {\n\t\t\"description\": {\n\t\t\t\"identifier\": \"test:custom_consumer_block\"\n\t\t},\n\t\t\"components\": {\n\t\t\t\"minecraft:redstone_consumer\": {\n\t\t\t\t\"min_power\": 5,\n\t\t\t\t\"propogates_power\": true\n\t\t\t}\n\t\t}\n\t}\n}\n</code></pre></ul><li>Modified <code>minecraft:material_instances</code> block component<ul><li>Removed redundant experimental field <code>shaded</code> formerly named <code>emissive</code><li>Same effect can be achieved with existing fields, example below</ul></ul><pre><code>\"minecraft:material_instances\" : {\n\t\"*\": {\n\t\t\"texture\": \"my_texture\",\n\t\t\"render_method\": \"opaque\",\n\t\t\"face_dimming\": false,\n\t\t\"ambient_occlusion\", false\n\t}\n}\n</code></pre><ul><li>Added <code>minecraft:leashable</code> block component, which allows custom blocks to receive a lead attachment, including an offset field to change the position of the leash knot. Currently only available with \"Upcoming Creator Features\" enabled</ul><h2>Editor</h2><ul><li>Initial experimental support for \"Prefabs\" in the Editor<ul><li>This feature is highly experimental, has some issues, is guaranteed to change and is not yet documented<li>Do not use in production projects</ul><li>Added a \"Prefab Template Manager\" to help create, edit and delete prefab templates<li>Added a \"Prefab Instance Editor\" to allow placement of prefabs in the scene, and edit the properties of the instance</ul><h2>Graphical</h2><ul><li>Fixed an error where Marketplace content containing local_lighting.json could spam content errors (<a href=https://bugs.mojang.com/browse/MCPE-1498487 rel=\"noopener noreferrer\"target=_blank>MCPE-1498487</a>)</ul>","id":"75e38bfa18dddbddb4d3e2e75edcc9947d858a1e76ec413000616cd0195cb933","needsTranslation":false}