Minecraft Snapshot 25w45a
Release: 2 days ago
Greetings from the Tuesday snapshot shipping room! Our final set of features for Mounts of Mayhem brings the game's strongest armor tier to your favorite mount – with Netherite horse armor! As well as making your steed more stylish, Netherite horse armor will also make them sturdier, perfect for all those mounted challenges. On the submerged side of things, explorers of warmer waters can now swim-ble upon a rare variant of the zombie nautilus..
With this week's snapshot, we're also introducing a new concept for data packs called timelines, that can modify game behavior based on the in-game day time – more about that in the full changelog below.
Happy mining!
New Features
- Updated the panorama for the Mounts of Mayhem drop
- Added Netherite Horse Armor that can be obtained by upgrading Diamond Horse Armor with a Smithing Table
Spear Weapon
- Spears are now less forgiving if you miss a charge attack
Coral Zombie Nautilus
- Added a new variant of the Zombie Nautilus mob: the Coral Zombie Nautilus
- It Spawns in Warm Oceans, replacing the normal Zombie Nautilus
Camel Husk
- Drops 2-3 Rotten Flesh when killed, with extra 0-1 for each level of Looting
Advancements
- Added the "Mob Kabob" advancement for spearing 5 enemies with a Charge attack
Changes
- Zombie Horses, Camel Husks and Nautili become persistent with any interaction from a player, not just riding them
- Video memory impact of anisotropic filtering was reduced, but still remains quite high
- The color of the sky during sunrises and sunsets is now affected by rain and thunder
Technical Changes
- The Data Pack version is now 93.0
- The Resource Pack version is now 73.0
Data Pack Version 93.0
- Added new Coral Zombie Nautilus mob variant
- The Zombie Nautilus variants can be data-driven
- Item textures were split out of the
blocksatlas into a separate newitemsatlas- It means that the commands that were referencing the
blocksatlas for item textures now need to reference theitemsatlas instead
- It means that the commands that were referencing the
Zombie Nautilus Variants
- Zombie Nautilus variants can be data-driven by adding entries to
data/<namespace>/zombie_nautilus_variant/<id>.json - This feature is experimental
- Fields in file:
model- one of:normal,warmasset_id- namespaced id for this variant asset, resolves toassets/<namespace>/textures/<path>.pngspawn_conditions- a uniform variant selection rule explained below
Spawn conditions
minecraft:biome
- Checks if entity is spawning in specific biomes
- Fields:
biomes- single entry, list or a tag describing biomes
minecraft:moon_brightness
- Checks if current moon brightness is within certain range
- Fields:
range- floating point range (a single number or an object like{"min": 1, "max": 2})
minecraft:structures
- Checks if entity is spawning in specific structures
- Fields:
structures- single entry, list or a tag describing structures
Game Rules
- The limit for the
minecraft:max_entity_cramminggame rule has been changed to a minimum of0
Data Components
minecraft:piercing_weaponandminecraft:kinetic_weapondata components now have bounds on their reach parameters:min_reach: is now valid from0.0to128.0max_reach: is now valid from0.0to128.0hitbox_margin: is now valid from0.0to1.0
Timelines
Timelines are a new experimental concept defined in data packs under the timeline registry (i.e. found under data/<namespace>/timeline/<id>.json).
Timelines specify game behavior based on the absolute day time (that which is set by /time set). Timelines optionally can specify a period over which they will be repeated.
Primarily, Timelines are able to modify game behavior or visuals by acting as an Environment Attribute source to apply Environment Attribute modifiers.
Format: object with fields
period_ticks: optional integer, defines the duration in ticks over which the timeline will repeat- If not specified, the timeline will not repeat
tracks: optional map between Environment Attribute IDs and a corresponding Environment Attribute Track object- See the section on Environment Attributes below for details
Timelines by default have no effect unless they are included by a dimension - see the Dimension Types section below.
With the inclusion of Timelines, Environment Attribute sources are processed in the following order (from low to high priority):
- Dimensions
- Biomes
- Timelines
- Weather (not data-driven)
Interpolation
Timelines can define Attribute Tracks - these specify how a modifier for a particular Environment Attribute changes over time by defining keyframes. Depending on the attribute, interpolation may be used between each keyframe. If interpolation is not used, the previous keyframe value will always be selected.
For example, a Timeline with a period of 24000 might be set up as following:
- At time =
0, the timeline providessky_color = #ff0000(red) - At time =
1000, the timeline providessky_color = #ff0000(red) - At time =
6000, the timeline providessky_color = #ff00ff(magenta)
Between time = 0 and time = 1000, the sky color will be red. Between 1000 and 6000, it will shift from red to magenta. Then, from 6000 all the way until the timeline repeats and reaches time = 0 again, the color will slowly shift back to red.
Note: unlike biomes, if a Timeline uses a modifier instead of an override, interpolation is applied to the modifier arguments rather than the final modified values.
Attribute Tracks
An Attribute Track specified within a Timeline takes the format of an object with the following fields:
ease- optional Easing Type (see below), used to ease the interpolaton of the value between keyframes- Default:
linear - If the target attribute does not support interpolation, the easing mode will have no effect
- Default:
keyframes- list of keyframe objects, must be ordered by theticksfield:ticks- integer between0andperiod_ticks(if specified), defines the tick (within the period) at which this keyframe's value will be activevalue- the modifier argument (format dependent on the chosen modifier)- If no
modifieris specified (oroverrideis used), the type of this field is the same as the Environment Attribute itself - How this value is used depends on the type of modifier
- If no
- Note: at most two keyframes can be placed on the same tick, creating an immediate transition
modifier- optional string modifier ID, dependent on the Attribute Type (see the Common Modifiers section below)- Default:
override
- Default:
For example, the following Timeline has a period of 24000, and has an attribute track that modifies only minecraft:gameplay/cat_waking_up_gift_chance. Because the easing is constant, between tick 362 and 23667 the value is 0.0, while between tick 23667 and 362 it is 0.7.
Like other Environment Attribute sources, the specified value is used as the argument to the specified modifier. This is then applied on top of sources with a lower priority. In this case the modifier is maximum, so this timeline will only ever increase the value of cat_waking_up_gift_chance to the value specified in the track.
{
"period_ticks": 24000,
"tracks": {
"minecraft:gameplay/cat_waking_up_gift_chance": {
"ease": "constant",
"modifier": "maximum",
"keyframes": [
{ "ticks": 362, "value": 0.0 },
{ "ticks": 23667, "value": 0.7 }
]
}
}
}
Easing Types
Easing Types control the interpolation between two keyframes by applying a curve. The following built-in Easing Types are provided:
constant- always selects the previous keyframelinearin_backin_bouncein_circin_cubicin_elasticin_expoin_quadin_quartin_quintin_sinein_out_backin_out_bouncein_out_circin_out_cubicin_out_elasticin_out_expoin_out_quadin_out_quartin_out_quintin_out_sineout_backout_bounceout_circout_cubicout_elasticout_expoout_quadout_quartout_quintout_sine
An Easing Type may also be specified with a Cubic Bézier in the format: { "cubic_bezier": [ x1, y1, x2, y2 ] }
x1: float between0and1, x-coordinate of the first control pointy1: float, y-coordinate of the first control pointx2: float between0and1, x-coordinate of the second control pointy2: float, y-coordinate of the second control point
Developer's Note: To play around with and visualize easings, easings.net and cubic-bezier.com are great references!
Common Data Types
Mob Activity
A string ID from the minecraft:activity built-in registry. One of:
minecraft:coreminecraft:idleminecraft:workminecraft:playminecraft:restminecraft:meetminecraft:panicminecraft:raidminecraft:pre_raidminecraft:hideminecraft:fightminecraft:celebrateminecraft:admire_itemminecraft:avoidminecraft:rideminecraft:play_deadminecraft:long_jumpminecraft:ramminecraft:tongueminecraft:swimminecraft:lay_spawnminecraft:sniffminecraft:investigateminecraft:roarminecraft:emergeminecraft:dig
Modifiers
- Added
blend_to_grayRGB/ARGB modifier - modifies a color by taking its grayscale form, applying a brightness modifier, and mixing with this using some factor- Where
gray = brightness * (0.3 * red + 0.59 * green + 0.11 * blue),result = lerp(factor, subject, [gray, gray, gray]) - Argument format: object with fields:
brightness: float between0and1, a multiplier to apply to the grayscale valuefactor: float between0and1, the factor to mix with
- Where
New Environment Attributes
minecraft:visual/sunrise_sunset_color
Controls the color and intensity of the sunrise and sunset effect. If fully transparent, no sunrise or sunset will be rendered. Only visible with the overworld skybox type.
- Value type: ARGB Color
- Default value:
"#00000000" - Modifiers: ARGB Color Modifiers
- Interpolated: yes
- Resolved at the camera's position
minecraft:visual/sun_angle
The angle in degrees of the sun, clockwise from east to west, with 0 being directly up.
Only visible with the overworld skybox type.
- Value type: float, angle in degrees
- Default value:
0.0 - Modifiers: Float Modifiers
- Interpolated: yes
- Resolved at the camera's position
minecraft:visual/moon_angle
The angle in degrees of the moon, clockwise from east to west, with 0 being directly up. Only visible with the overworld skybox type.
- Value type: float, angle in degrees
- Default value:
0.0 - Modifiers: Float Modifiers
- Interpolated: yes
- Resolved at the camera's position
minecraft:visual/star_angle
The angle in degrees of the stars, clockwise from east to west, with 0 being directly up. Only visible with the overworld skybox type.
- Value type: float, angle in degrees
- Default value:
0.0 - Modifiers: Float Modifiers
- Interpolated: yes
- Resolved at the camera's position
minecraft:visual/moon_phase
The phase of the moon. Only visible with the overworld skybox type.
- Value type: string id, one of:
full_moonwaning_gibbousthird_quarterwaning_crescentnew_moonwaxing_crescentfirst_quarterwaxing_gibbous
- Default value:
"full_moon" - Modifiers:
override - Interpolated: no
- Resolved at the camera's position
minecraft:visual/star_brightness
The brightness of the stars in the sky, where 0.5 is the normal brightness during the night and 0 is fully hidden. Only visible with the overworld skybox type.
- Value type: float between
0and1 - Default value:
0.0 - Modifiers: Float Modifiers
- Interpolated: yes
- Resolved at the camera's position
minecraft:visual/sky_light_color
The visual color of sky light. For blocks with a sky light level of 0 (or minecraft:visual/sky_light_factor is 0), this will have no effect. This is the value passed to the lightmap.fsh shader as SkyLightColor.
- Value type: RGB Color
- Default value:
"#ffffff" - Modifiers: RGB Color Modifiers
- Interpolated: yes
- Resolved at the camera's position
minecraft:visual/sky_light_factor
The visual brightness of sky light. minecraft:visual/sky_light_color is multiplied by this value. This is the value passed to the lightmap.fsh shader as SkyFactor.
The corresponding gameplay effect is controlled entirely by minecraft:gameplay/sky_light_level.
- Value type: float
- Default value:
1.0 - Modifiers: Float Modifiers
- Interpolated: yes
- Resolved at the camera's position
minecraft:audio/firefly_bush_sounds
If true and not below an opaque block, Firefly Bushes will produce idle sounds.
- Value type: boolean
- Default value:
false - Modifiers: Boolean Modifiers
- Interpolated: no
- Resolved at the position of a Firefly Bush
minecraft:gameplay/sky_light_level
The effective light level of the sky used by mechanics such as mob spawning or Daylight Detectors. For example, a block fully exposed to the sky will be considered to have a light level of exactly this value, while a block deep in a cave will not be affected at all.
The corresponding visual effect is controlled entirely by minecraft:visual/sky_light_factor.
- Value type: float
- Default value:
15.0 - Modifiers: Float Modifiers
- Interpolated: yes
- Resolved for a whole dimension (cannot be specified on a Biome)
minecraft:gameplay/eyeblossom_open
If true, Closed Eyeblossoms will eventually open by random block ticks. If false, Open Eyeblossoms will do the opposite. If "default", Open or Closed Eyeblossoms will remain in their current state.
- Value type: one of:
truefalse"default"
- Default value:
"default" - Modifiers:
override - Interpolated: no
- Resolved at the Eyeblossom block's position
minecraft:gameplay/turtle_egg_hatch_chance
The chance that a Turtle Egg block will switch to its next hatching state when randomly ticked.
- Value type: float between
0and1 - Default value:
0.0 - Modifiers: Float Modifiers
- Interpolated: yes
- Resolved at the Turtle Egg block's position
minecraft:gameplay/creaking_active
While true, Creaking Heart blocks (and their corresponding Creaking) will become active. On the other hand, when false, it will enter its dormant state.
- Value type: boolean
- Default value:
false - Modifiers: Boolean Modifiers
- Interpolated: no
- Resolved at the Creaking Heart block's position
minecraft:gameplay/surface_slime_spawn_chance
An additional chance rolled when a natural Slime spawn attempt occurs in a biome with the #allows_surface_slime_spawns tag.
- Value type: float between
0and1 - Default value:
0.0 - Modifiers: Float Modifiers
- Interpolated: yes
- Resolved at the position of the Slime spawn attempt
minecraft:gameplay/cat_waking_up_gift_chance
The chance that a Cat lying on its owner's Bed will drop a gift (from the gameplay/cat_morning_gift loot table) when the player wakes up.
- Value type: float
- Default value:
0.0 - Modifiers: Float Modifiers
- Interpolated: yes
- Resolved at the Cat's position
minecraft:gameplay/bees_stay_in_hive
When true, Bees will try to navigate to their Hives and will not exit unless the Hive is broken or next to a Fire.
- Value type: boolean
- Default value:
false - Modifiers: Boolean Modifiers
- Interpolated: no
- Resolved at a Bee or Bee Hive block's position
minecraft:gameplay/monsters_burn
When true, monsters will burn while exposed to the sky.
- Value type: boolean
- Default value:
false - Modifiers: Boolean Modifiers
- Interpolated: no
- Resolved at the monster's position
minecraft:gameplay/can_pillager_patrol_spawn
When true, Pillager Patrols are able to spawn.
Note: the global skylight level must also be greater than 11.
- Value type: boolean
- Default value:
true - Modifiers: Boolean Modifiers
- Interpolated: no
- Resolved at the position of the patrol spawn attempt
- Replaces the
#without_patrol_spawnsbiome tag
minecraft:gameplay/villager_activity
Controls the default AI activity for adult Villagers.
Not all activities are supported by Villager AI - if an unsupported one is chosen, the Villager will do nothing. The following activities are supported:
corehideidlemeetpanicpre_raidraidrestworkValue type: Mob Activity
Default value:
"minecraft:idle"Modifiers:
overrideInterpolated: no
Resolved at the Villager's position
minecraft:gameplay/baby_villager_activity
Controls the default AI activity for baby Villagers.
Not all activities are supported by Villager AI - if an unsupported one is chosen, the Villager will do nothing. The following activities are supported:
corehideidlemeetpanicplaypre_raidraidrestValue type: Mob Activity
Default value:
"minecraft:idle"Modifiers:
overrideInterpolated: no
Resolved at the Villager's position
World Generation
Dimension Types
- Added a new optional
timelinesfield that specifies which Timelines are active in this dimension- Format: a Timeline ID, a list of Timeline IDs, or a Timeline Tag
- The
naturalfield has been fully replaced by theminecraft:gameplay/eyeblossom_openandminecraft:gameplay/creaking_activeEnvironment Attributes - The
effectsfield has been removed and replaced with the following new fields:skybox- the skybox rendering type to use, one of:none(wasminecraft:nethereffect ID)overworld(wasminecraft:overworldeffect ID)- Following environment attribues are applied only when the
skyboxisoverworld:minecraft:visual/sky_color,minecraft:visual/sun_angle,minecraft:visual/sunrise_sunset_color,minecraft:visual/moon_phase,minecraft:visual/moon_angle,minecraft:visual/star_angle,minecraft:visual/star_brightness
- Following environment attribues are applied only when the
end(wasminecraft:endeffect ID)- Default:
overworld
cardinal_light- the direction of cardinal lighting that affects blocks, one of:default(wasminecraft:overworldandminecraft:endeffect ID)nether(wasminecraft:nethereffect ID)- Default:
default
- The
fixed_timefield has been replaced by ahas_fixed_timeboolean (default:false)- Time-based effects such as the angle of the sun are now specified instead by Environment Attributes
- However, the remainder of behaviors formerly affected by
fixed_timebeing present will now instead use thehas_fixed_timeboolean
Tags
Biome Tags
- Removed
#without_patrol_spawns- replaced bygameplay/can_pillager_patrol_spawnEnvironment Attribute - Added
#spawns_coral_variant_zombie_nautilus- biomes where the Coral Variant of the Zombie Nautilus can spawn
Timeline Tags
- Added
#universal- Timelines that are active in every dimension - Added
#in_overworld- Timelines that are active in the Overworld - Added
#in_nether- Timelines that are active in the Nether - Added
#in_end- Timelines that are active in the End
Advancements
- Added new
spear_mobstrigger with fields:player: optional entity predicate, the player using the kinetic weaponcount: optional integer, the number of mobs hit in a single use of the kinetic weapon
Resource Pack Versions 73.0
- Item textures were split out of the
blocksatlas into a separate newitemsatlas that does not have mipmaps- All textures used in an item model have to come from the same (
itemsorblocks) atlas - All textures used in a block model have to come from the
blocksatlas
- All textures used in an item model have to come from the same (
Item Sprites
- Added new item sprites:
item/netherite_horse_armor
Entity Textures
- Added new entity textures:
entity/equipment/zombie_nautilus_coral.pngentity/equipment/horse_body/netherite.png
Sounds
- Added new sound events for the Parrot:
entity.parrot.imitate.parchedentity.parrot.imitate.zombie_horseentity.parrot.imitate.zombie_nautilus
Fixed bugs in 25w45a
- MC-199467 Certain entity animations stop after they've existed in world for too long
- MC-245895 View Bobbing stops working after long elytra flight
- MC-269295 Jump bar progress renders unused pixels from dynamic texture atlas
- MC-271729 Armadillo scute drops are not affected by the mob_drops game rule
- MC-271938 Mace smash attack can push players in creative mode that are flying
- MC-301424 entity_data item component detection is broken in resource packs
- MC-302184 Copper golems in cave/void air never turn into statues
- MC-302469 Creepers at the player's exact position with an explosion radius of 0 set the player's velocity to NaN
- MC-302477 Loot tables stopped supporting SNBT as entity data
- MC-302659 Items such as grass blocks and cacti have incorrect textures in inventories when mipmap levels are enabled
- MC-302663 Any form of attacking non-player entities always produces the “weak attack” sound instead of the appropriate sound
- MC-302703 Spear can dismount invulnerable, non-living, and otherwise inanimate passengers from any vehicle
- MC-302887 Spear charging animation in first person isn’t perfectly mirrored between the main hand and off hand
- MC-302911 If the sun texture cannot be loaded, the moon texture is reused instead
- MC-303067 Players can charge with the spear and deal damage while dying
- MC-303108 Inventory items are now mipmapped, making them look very blurry
- MC-303109 Tick freeze and memory spikes with long piercing_weapon ray reach
- MC-303226 Music doesn't restart after exiting a pale garden
- MC-303292 Cloud movement is jittery when the world's gametime value is large
- MC-303402 Hover events on text posted in the chat take effect even when in a GUI
- MC-303405 You can attack entities diagonally through solid blocks using spears
- MC-303413 Scrolling text does not get clipped properly in UI elements
- MC-303427 The lunge enchantment doesn’t work in creative mode if you have 6 or less hunger points
- MC-303510 Dropping a spear while charging slows down the player
- MC-303554 minecraft:piercing_weapon component causes attack cooldown damage penalty to be ignored
- MC-303654 Closed captions of parched show as strays
- MC-303656 Placing blocks in empty chunk sections inside loaded chunks shows the chunk fade animation
- MC-303658 Block textures are blurry on some systems, depending on mipmap and anisotropic filtering settings
- MC-303659 Elements within the language menu are not selected in order when using the TAB key
- MC-303671 Camel husks can despawn when wearing a saddle
- MC-303674 The hand animation plays when right clicking on a camel husk or zombie horse ridden by another mob with a lead
- MC-303677 Camel husks can despawn when attached to a lead
- MC-303680 Untamed zombie horses can despawn when attached to a lead
- MC-303681 Untamed zombie nautiluses can despawn when attached to a lead
- MC-303703 Entities and block entities are not affected by the chunk fade-in effect
- MC-303704 Statistics are no longer saved if the folder they would save into doesn't exist yet
- MC-303705 Entity cramming can no longer be disabled
- MC-303714 The jump bar's progress sprite is improperly scaled
- MC-303727 Short effect names can cause the effect duration to appear outside the effect box
- MC-303734 deprecated.json renames translation keys to nonexistent keys
- MC-303744 Ender pearls can launch players in the direction they are thrown
- MC-303746 Spear attacks can hurt entities through doors
- MC-303799 There is no 'Search...' text in the search field in the world selection screen
- MC-303802 Spamming right click and shift when getting into boat gives a speed boost
- MC-303891 Untamed zombie horses and skeleton horses cannot have saddles placed on their saddle slot using /item