The changelogs are currently being added, and some versions are missing.
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.
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.
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
--renderDebugLabelsis 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
/datacan now create and modify heterogeneous lists transparently
Entity Data
- The
FallFlyingfield will no longer be preserved if removed - The
HealthandAirfields now default to their respective maximum value if not specified
area_effect_cloud
- The
Durationfield now defaults to-1if not specified - If the
Durationfield 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
Fusefield now defaults to30if not specified - The
ExplosionRadiusfield now defaults to3if not specified
dolphin
- The
Moistnessfield now defaults to2400if not specified
ender_dragon
- The
DragonDeathTimefield now defaults to0if not specified
falling_block
- The
BlockStatefield can now beair(will despawn immediately) - if otherwise not specified or invalid, defaults tosand - The
HurtEntitiesfield now defaults tofalseif not specified (ortrueifBlockStateisanvil) - The
FallHurtAmountfield now defaults to0if not specified - The
FallHurtMaxfield now defaults to40if not specified - The
DropItemfield now defaults totrueif not specified - The
TileEntityDatafield will no longer be preserved if removed
firework_rocket
- The
ShotAtAnglefield now defaults tofalseif not specified
fox
- The
Trustedfield now defaults to empty if not specified (and will no longer be merged with the previous state if modified by/data)
ghast
- The
ExplosionPowerfield now defaults to1if not specified
goat
- The
HasLeftHornandHasRightHornfields now default totrueif not specified
interaction
- The
widthandheightfields now default to1if not specified
item
- The
Healthfield now defaults to5if not specified - The
PickupDelayfield now defaults to0if not specified - The
Agefield now defaults to0if not specified - The
OwnerandThrowerfields will no longer be preserved when removed
item_frame and glow_item_frame
- The
ItemDropChancefield now defaults to1.0if not specified
primed_tnt
- The
fusefield now defaults to80if not specified - The
explosion_powerfield now defaults to4if not specified
shulker
- The
Colorfield now defaults to16(no color) if not specified
skeleton
- The
StrayConversionTimefield will no longer be preserved when removed
spectral_arrow
- The
Durationfield now defaults to200if not specified
snow_golem
- The
Pumpkinfield now defaults totrueif not specified
tnt_minecart
- The
fusefield now defaults to80if not specified - The
explosion_powerfield now defaults to4if not specified - The
explosion_speed_factorfield now defaults to1if not specified
trader_llama
- The
DespawnDelayfield now defaults to47999
villager
- The
FoodLevelandXpfields now default to0if not specified - The
ConversionTimefield will no longer be preserved when removed
wandering_trader
- The
DespawnDelayfield now defaults to0if not specified
zombie
- The
DrownedConversionTimefield will no longer be preserved when removed
zombie_villager
- The
Xpfield now defaults to0if not specified - The
ConversionTimefield will no longer be preserved when removed
arrow, spectral_arrow, trident
- The
damagefield now defaults to2if not specified
dragon_fireball, wind_charge, breeze_wind_charge, wither_skull, small_fireball, and large_fireball
- The
acceleration_powerfield now defaults to0.1if not specified
small_fireball and large_fireball
- The
ExplosionPowerfield now defaults to1if not specified
block_display, item_display, and text_display
- The
interpolation_duration,teleport_duration, andstart_interpolationfields now default to0if not specified - The
view_rangefield now defaults to1if not specified - The
shadow_radiusfield now defaults to0if not specified - The
shadow_strengthfield now defaults to1if not specified - The
widthandheightfields now default to0if not specified
Block Entity Data
campfire
- The
CookingTimesandCookingTotalTimesfields will no longer be preserved when removed
chiseled_bookshelf
- The
last_interacted_slotfield now defaults to-1if not specified
hopper
- The
TransferCooldownfield now default to-1if not specified
jigsaw
- The
name,target, andpoolfields now default tominecraft:emptyif not specified - The
final_statefield now defaults tominecraft:airif not specified
sculk_shrieker
- The
warning_levelfield now defaults to0if not specified
structure_block
- The
ignoreEntitiesandshowboundingboxfields now default totrueif not specified - The
posYfield now defaults to1if 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
/datawill 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
- Inserting or replacing into a list of a different type with
/datacan 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:
.1and1.are valid now
- Examples:
- Float numbers now use E notation
- Example: both
1.2e3and1.2E3,1.2E+3,12000e-1are now a valid way to represent1200.0
- Example: both
- Integer numbers can now be prefixed with
0xto represent hexadecimal numbers and0bto represent binary numbers- Example:
0xbad(equal to2989),0xCAFE(equal to51966),0b101(equal to5)
- Example:
- 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
- Example:
NaN,Infor hexadecimal float representation are NOT supported- Type suffixes have been extended:
- Integer type suffixes (
borB- byte,sorS- short,iorI- integer,lorL) can now be prefixed withs(signed) oruunsigned - New suffixes only affect valid range when parsing - values are still stored as signed
- Example:
240ubis equal to-16sb, while240sbdoes not parse
- Example:
- When a suffix is used without
uors, it defaults to signed for decimal numbers and unsigned for binary and hexadecimal numbers - Note: since
bis also a valid hexadecimal digit, byte sized hexadecimal values can only be written with a signed suffix, like0x11ubor0x11sb
- Integer type suffixes (
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]
- Example:
- 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]
- Example:
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
- Example:
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
- Example:
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