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