{"title":"Minecraft Snapshot 25w09a","version":"25w09a","type":"snapshot","image":{"title":"25w09a_540x540.jpg","url":"/v2/images/25w09a540x540.jpg"},"body":"<p>In this week's snapshot, we are bringing a long-awaited feature into parity as fallen trees are making their debut in Java Edition. Additionally, firefly bushes can now generate in mangrove swamps and rarely in badlands.<p>On the technical side, SNBT syntax in commands has been expanded and improved, including fixing bugs related to SNBT text components preventing escapes from working.<h1>New Features</h1><ul><li>Added fallen trees to be in parity with Bedrock Edition</ul><h2>Fallen Trees</h2><ul><li>Fallen trees are a new decorative variant of trees<li>Fallen trees come in four different wood type variants:<ul><li>Oak<li>Birch<li>Jungle<li>Spruce</ul><li>Birch fallen trees can come in a shorter version or a longer version<li>Some fallen trees can be decorated with mushroom or vines<li>Fallen trees can be found in all biomes where their standing tree variant grow, except the following:<ul><li>Meadow<li>Bamboo Jungle<li>River<li>Grove<li>Flower Forest has fallen birch trees but not fallen oak trees</ul></ul><h1>Changes</h1><h2>Leaf Litter</h2><ul><li>Leaf Litter is now replaceable by other blocks</ul><h2>Firefly Bush</h2><ul><li>The Firefly Bush can now generate near water in Mangrove Swamps and Badlands (very rarely), like other biomes with water</ul><h1>Technical Changes</h1><ul><li>The Data Pack version is now 69<li>New command line argument <code>--renderDebugLabels</code> is available for the client<ul><li>Adds debug labels to relevant OpenGL objects, making debugging rendering easier for developers</ul></ul><h1>Data Pack Version 69</h1><ul><li>Object notation used in commands for NBT, text components and inline predicates (a.k.a. SNBT) has been extended</ul><h2>Commands</h2><ul><li><code>/data</code> can now create and modify heterogeneous lists transparently</ul><h2>Entity Data</h2><ul><li>The <code>FallFlying</code> field will no longer be preserved if removed<li>The <code>Health</code> and <code>Air</code> fields now default to their respective maximum value if not specified</ul><h3><code>area_effect_cloud</code></h3><ul><li>The <code>Duration</code> field now defaults to <code>-1</code> if not specified<li>If the <code>Duration</code> field is <code>-1</code>, the Area Effect Cloud will never run out<li>This means that an Area Effect Cloud summoned with no duration specified will no longer immediately disappear</ul><h3><code>creeper</code></h3><ul><li>The <code>Fuse</code> field now defaults to <code>30</code> if not specified<li>The <code>ExplosionRadius</code> field now defaults to <code>3</code> if not specified</ul><h3><code>dolphin</code></h3><ul><li>The <code>Moistness</code> field now defaults to <code>2400</code> if not specified</ul><h3><code>ender_dragon</code></h3><ul><li>The <code>DragonDeathTime</code> field now defaults to <code>0</code> if not specified</ul><h3><code>falling_block</code></h3><ul><li>The <code>BlockState</code> field can now be <code>air</code> (will despawn immediately) - if otherwise not specified or invalid, defaults to <code>sand</code><li>The <code>HurtEntities</code> field now defaults to <code>false</code> if not specified (or <code>true</code> if <code>BlockState</code> is <code>anvil</code>)<li>The <code>FallHurtAmount</code> field now defaults to <code>0</code> if not specified<li>The <code>FallHurtMax</code> field now defaults to <code>40</code> if not specified<li>The <code>DropItem</code> field now defaults to <code>true</code> if not specified<li>The <code>TileEntityData</code> field will no longer be preserved if removed</ul><h3><code>firework_rocket</code></h3><ul><li>The <code>ShotAtAngle</code> field now defaults to <code>false</code> if not specified</ul><h3><code>fox</code></h3><ul><li>The <code>Trusted</code> field now defaults to empty if not specified (and will no longer be merged with the previous state if modified by <code>/data</code>)</ul><h3><code>ghast</code></h3><ul><li>The <code>ExplosionPower</code> field now defaults to <code>1</code> if not specified</ul><h3><code>goat</code></h3><ul><li>The <code>HasLeftHorn</code> and <code>HasRightHorn</code> fields now default to <code>true</code> if not specified</ul><h3><code>interaction</code></h3><ul><li>The <code>width</code> and <code>height</code> fields now default to <code>1</code> if not specified</ul><h3><code>item</code></h3><ul><li>The <code>Health</code> field now defaults to <code>5</code> if not specified<li>The <code>PickupDelay</code> field now defaults to <code>0</code> if not specified<li>The <code>Age</code> field now defaults to <code>0</code> if not specified<li>The <code>Owner</code> and <code>Thrower</code> fields will no longer be preserved when removed</ul><h3><code>item_frame</code> and <code>glow_item_frame</code></h3><ul><li>The <code>ItemDropChance</code> field now defaults to <code>1.0</code> if not specified</ul><h3><code>primed_tnt</code></h3><ul><li>The <code>fuse</code> field now defaults to <code>80</code> if not specified<li>The <code>explosion_power</code> field now defaults to <code>4</code> if not specified</ul><h3><code>shulker</code></h3><ul><li>The <code>Color</code> field now defaults to <code>16</code> (no color) if not specified</ul><h3><code>skeleton</code></h3><ul><li>The <code>StrayConversionTime</code> field will no longer be preserved when removed</ul><h3><code>spectral_arrow</code></h3><ul><li>The <code>Duration</code> field now defaults to <code>200</code> if not specified</ul><h3><code>snow_golem</code></h3><ul><li>The <code>Pumpkin</code> field now defaults to <code>true</code> if not specified</ul><h3><code>tnt_minecart</code></h3><ul><li>The <code>fuse</code> field now defaults to <code>80</code> if not specified<li>The <code>explosion_power</code> field now defaults to <code>4</code> if not specified<li>The <code>explosion_speed_factor</code> field now defaults to <code>1</code> if not specified</ul><h3><code>trader_llama</code></h3><ul><li>The <code>DespawnDelay</code> field now defaults to <code>47999</code></ul><h3><code>villager</code></h3><ul><li>The <code>FoodLevel</code> and <code>Xp</code> fields now default to <code>0</code> if not specified<li>The <code>ConversionTime</code> field will no longer be preserved when removed</ul><h3><code>wandering_trader</code></h3><ul><li>The <code>DespawnDelay</code> field now defaults to <code>0</code> if not specified</ul><h3><code>zombie</code></h3><ul><li>The <code>DrownedConversionTime</code> field will no longer be preserved when removed</ul><h3><code>zombie_villager</code></h3><ul><li>The <code>Xp</code> field now defaults to <code>0</code> if not specified<li>The <code>ConversionTime</code> field will no longer be preserved when removed</ul><h3><code>arrow</code>, <code>spectral_arrow</code>, <code>trident</code></h3><ul><li>The <code>damage</code> field now defaults to <code>2</code> if not specified</ul><h3><code>dragon_fireball</code>, <code>wind_charge</code>, <code>breeze_wind_charge</code>, <code>wither_skull</code>, <code>small_fireball</code>, and <code>large_fireball</code></h3><ul><li>The <code>acceleration_power</code> field now defaults to <code>0.1</code> if not specified</ul><h3><code>small_fireball</code> and <code>large_fireball</code></h3><ul><li>The <code>ExplosionPower</code> field now defaults to <code>1</code> if not specified</ul><h3><code>block_display</code>, <code>item_display</code>, and <code>text_display</code></h3><ul><li>The <code>interpolation_duration</code>, <code>teleport_duration</code>, and <code>start_interpolation</code> fields now default to <code>0</code> if not specified<li>The <code>view_range</code> field now defaults to <code>1</code> if not specified<li>The <code>shadow_radius</code> field now defaults to <code>0</code> if not specified<li>The <code>shadow_strength</code> field now defaults to <code>1</code> if not specified<li>The <code>width</code> and <code>height</code> fields now default to <code>0</code> if not specified</ul><h2>Block Entity Data</h2><h3><code>campfire</code></h3><ul><li>The <code>CookingTimes</code> and <code>CookingTotalTimes</code> fields will no longer be preserved when removed</ul><h3><code>chiseled_bookshelf</code></h3><ul><li>The <code>last_interacted_slot</code> field now defaults to <code>-1</code> if not specified</ul><h3><code>hopper</code></h3><ul><li>The <code>TransferCooldown</code> field now default to <code>-1</code> if not specified</ul><h3><code>jigsaw</code></h3><ul><li>The <code>name</code>, <code>target</code>, and <code>pool</code> fields now default to <code>minecraft:empty</code> if not specified<li>The <code>final_state</code> field now defaults to <code>minecraft:air</code> if not specified</ul><h3><code>sculk_shrieker</code></h3><ul><li>The <code>warning_level</code> field now defaults to <code>0</code> if not specified</ul><h3><code>structure_block</code></h3><ul><li>The <code>ignoreEntities</code> and <code>showboundingbox</code> fields now default to <code>true</code> if not specified<li>The <code>posY</code> field now defaults to <code>1</code> if not specified</ul><h2>NBT changes</h2><ul><li>Any interface with NBT data within the game (SNBT representation, <code>/data</code>) now supports heterogeneous lists, i.e. ones where elements are not of the same type<ul><li>Inserting or replacing into a list of a different type with <code>/data</code> will no longer give an error<li>Inserting into an array type (e.g. <code>[I;1,2,3]</code>) is still type-restricted<li>This means that the 'wrapper' objects previously used to represent heterogeneous lists will no longer be observable by in-game means</ul><li><code>/data</code> can no longer traverse paths with an empty key (e.g. <code>/data get ... foo.''.bar</code>)<li>The NBT file format is unchanged:<ul><li>Heterogeneous lists are transformed before storage to bypass NBT constraints<li>Example transform: <code>['a', {'b':3}]</code> is stored as <code>[{'':'a'},{'b':3}]</code><li>Existing external tools will still be able to read NBT files as before, but heterogeneous lists will be displayed in the transformed form</ul><li>No data produced by the game has changed: objects such as Text Components were already producing heterogeneous lists in this form<li>Note: these wrapper objects may never be observed in-game, they are only relevant to developers working with the NBT file or network format directly</ul><h2>SNBT Changes</h2><ul><li>The text format for describing object-like data in commands (like NBT, text components, predicates, etc.) has been extended</ul><h3>Number Format</h3><ul><li>Either whole or fraction parts of a float number can be omitted<ul><li>Examples: <code>.1</code> and <code>1.</code> are valid now</ul><li>Float numbers now use E notation<ul><li>Example: both <code>1.2e3</code> and <code>1.2E3</code>, <code>1.2E+3</code>, <code>12000e-1</code> are now a valid way to represent <code>1200.0</code></ul><li>Integer numbers can now be prefixed with <code>0x</code> to represent hexadecimal numbers and <code>0b</code> to represent binary numbers<ul><li>Example: <code>0xbad</code> (equal to <code>2989</code>), <code>0xCAFE</code> (equal to <code>51966</code>), <code>0b101</code> (equal to <code>5</code>)</ul><li>Integer numbers now can't start with <code>0</code><ul><li>Normally it would mean number is in base-8, but we are restricting it to avoid accidental use</ul><li>Numbers can now contain <code>_</code> character between sequences of digits (but not at the start or the end of sequence)<ul><li>Example: <code>0b10_01</code>, <code>0xAB_CD</code>, <code>1_2.3_4__5f</code>, <code>1_2e3_4</code></ul><li><code>NaN</code>, <code>Inf</code> or hexadecimal float representation are NOT supported<li>Type suffixes have been extended:<ul><li>Integer type suffixes (<code>b</code> or <code>B</code> - byte, <code>s</code> or <code>S</code> - short, <code>i</code> or <code>I</code> - integer, <code>l</code> or <code>L</code>) can now be prefixed with <code>s</code> (signed) or <code>u</code> unsigned<li>New suffixes only affect valid range when parsing - values are still stored as signed<ul><li>Example: <code>240ub</code> is equal to <code>-16sb</code>, while <code>240sb</code> does not parse</ul><li>When a suffix is used without <code>u</code> or <code>s</code>, it defaults to signed for decimal numbers and unsigned for binary and hexadecimal numbers<li>Note: since <code>b</code> is also a valid hexadecimal digit, byte sized hexadecimal values can only be written with a signed suffix, like <code>0x11ub</code> or <code>0x11sb</code></ul></ul><h3>Strings</h3><ul><li>Quoted strings can now use escape sequences beyond <code>\\'</code>, <code>\\\"</code> and <code>\\\\</code>:<ul><li>Unicode escapes:<ul><li><code>\\x</code> - two digit escape, like <code>\\x42</code><li><code>\\u</code> - four digit escape, like <code>\\u2603</code><li><code>\\U</code> - eight digit escape, like <code>\\U00002603</code><li><code>\\N{&#60name>}</code> - named Unicode character, like <code>\\N{Snowman}</code></ul><li>Built-in escape sequences:<ul><li><code>\\b</code> - backspace, Unicode <code>\\x08</code><li><code>\\s</code> - space, Unicode <code>\\x20</code><li><code>\\t</code> - horizontal tab, Unicode <code>\\x09</code><li><code>\\n</code> - linefeed, Unicode <code>\\u0a</code><li><code>\\f</code> - form feed, Unicode <code>\\u0c</code><li><code>\\r</code> - carriage return, Unicode <code>\\u0d</code></ul></ul><li>Unquoted strings now can't start with <code>0-9</code>, <code>.</code>, <code>+</code>, <code>-</code> to avoid accidental collision with numbers</ul><h3>Number arrays</h3><ul><li>Values in arrays (<code>[B;]</code>, <code>[I;]</code>, <code>[L;]</code>) without a suffix are now assumed to have suffix matching the type of the array<ul><li>Example: <code>[B;1,2]</code> is equivalent to <code>[B; 1b, 2b]</code></ul><li>Arrays can now also accept types smaller than the array type<ul><li>Example: <code>[I;1b,2s,3]</code> is valid and equivalent to <code>[I;1i,2i,3i]</code></ul></ul><h3>Lists</h3><ul><li>Lists now accept trailing commas<ul><li>Example: <code>[1,2,]</code> is valid and equivalent to <code>[1,2]</code><li>Only one trailing comma is allowed, and it must come after a valid element - both <code>[,]</code> and <code>[1,,]</code> are invalid</ul></ul><h3>Compounds</h3><ul><li>Compounds (maps) now accept trailing commas<ul><li>Example: <code>{a:b,}</code><li>Only one trailing comma is allowed, and it must come after a valid key-value pair - both <code>{,}</code> and <code>{a:b,,}</code> are invalid</ul></ul><h1>Fixed bugs in 25w09a</h1><ul><li><a href=https://bugs.mojang.com/browse/MC-168262 rel=\"noopener noreferrer\"target=_blank>MC-168262</a> Dead bushes cannot be placed on farmland<li><a href=https://bugs.mojang.com/browse/MC-236100 rel=\"noopener noreferrer\"target=_blank>MC-236100</a> End crystal beam appears to be black<li><a href=https://bugs.mojang.com/browse/MC-276861 rel=\"noopener noreferrer\"target=_blank>MC-276861</a> The player can sometimes teleport through blocked end portals when moving very fast<li><a href=https://bugs.mojang.com/browse/MC-279229 rel=\"noopener noreferrer\"target=_blank>MC-279229</a> SNBT text components prevent \\n and \\t from working<li><a href=https://bugs.mojang.com/browse/MC-279236 rel=\"noopener noreferrer\"target=_blank>MC-279236</a> Flying into water with an elytra puts the player into an erroneous state<li><a href=https://bugs.mojang.com/browse/MC-279250 rel=\"noopener noreferrer\"target=_blank>MC-279250</a> SNBT text components prevent unicode escapes from working<li><a href=https://bugs.mojang.com/browse/MC-279252 rel=\"noopener noreferrer\"target=_blank>MC-279252</a> Changing a single line of a sign with /data is no longer possible in some situations<li><a href=https://bugs.mojang.com/browse/MC-279278 rel=\"noopener noreferrer\"target=_blank>MC-279278</a> Strafing twice in rapid succession while walking forward causes player to sprint<li><a href=https://bugs.mojang.com/browse/MC-279928 rel=\"noopener noreferrer\"target=_blank>MC-279928</a> Beacon beam clips into beacon block when far enough away<li><a href=https://bugs.mojang.com/browse/MC-279932 rel=\"noopener noreferrer\"target=_blank>MC-279932</a> Beacon beam disappears and reappears when approaching it<li><a href=https://bugs.mojang.com/browse/MC-279942 rel=\"noopener noreferrer\"target=_blank>MC-279942</a> Beacon beam can render over fog when outside render distance<li><a href=https://bugs.mojang.com/browse/MC-279947 rel=\"noopener noreferrer\"target=_blank>MC-279947</a> Snout of the new cow model is offset vertically by 0.1 pixels<li><a href=https://bugs.mojang.com/browse/MC-280022 rel=\"noopener noreferrer\"target=_blank>MC-280022</a> Players can be lit by lava while stepping onto solid blocks next to it<li><a href=https://bugs.mojang.com/browse/MC-280033 rel=\"noopener noreferrer\"target=_blank>MC-280033</a> Beacon beams render beyond client render distance<li><a href=https://bugs.mojang.com/browse/MC-280121 rel=\"noopener noreferrer\"target=_blank>MC-280121</a> Leaf litter can be placed on walls and fences<li><a href=https://bugs.mojang.com/browse/MC-280123 rel=\"noopener noreferrer\"target=_blank>MC-280123</a> Short dry grass and tall dry grass aren't randomly offset, unlike similar blocks<li><a href=https://bugs.mojang.com/browse/MC-280155 rel=\"noopener noreferrer\"target=_blank>MC-280155</a> Random ticks can cause entity build-up in lazy chunks<li><a href=https://bugs.mojang.com/browse/MC-280170 rel=\"noopener noreferrer\"target=_blank>MC-280170</a> Goats can no longer ram armor stands unless the game rule mobGriefing is set to false<li><a href=https://bugs.mojang.com/browse/MC-280211 rel=\"noopener noreferrer\"target=_blank>MC-280211</a> End crystal beams cause OpenGL errors with glDebugVerbosity set to 3</ul>","id":"35acf9e9e2182a57d803f4810cda9d49c94a08b996cf9d37eb979de0a0a27a24","date":"2025-02-26T15:16:02.000Z","needsTranslation":null}