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!
blocks atlas into a separate new items atlasblocks atlas for item textures now need to reference the items atlas insteaddata/<namespace>/zombie_nautilus_variant/<id>.jsonmodel - one of: normal, warmasset_id - namespaced id for this variant asset, resolves to assets/<namespace>/textures/<path>.pngspawn_conditions - a uniform variant selection rule explained belowminecraft:biomebiomes - single entry, list or a tag describing biomesminecraft:moon_brightnessrange - floating point range (a single number or an object like {"min": 1, "max": 2})minecraft:structuresstructures - single entry, list or a tag describing structuresminecraft:max_entity_cramming game rule has been changed to a minimum of 0minecraft:piercing_weapon and minecraft:kinetic_weapon data components now have bounds on their reach parameters:min_reach: is now valid from 0.0 to 128.0max_reach: is now valid from 0.0 to 128.0hitbox_margin: is now valid from 0.0 to 1.0Timelines 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 repeattracks: optional map between Environment Attribute IDs and a corresponding Environment Attribute Track objectTimelines 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):
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:
0, the timeline provides sky_color = #ff0000 (red)1000, the timeline provides sky_color = #ff0000 (red)6000, the timeline provides sky_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.
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 keyframeslinearkeyframes - list of keyframe objects, must be ordered by the ticks field:ticks - integer between 0 and period_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)modifier is specified (or override is used), the type of this field is the same as the Environment Attribute itselfmodifier - optional string modifier ID, dependent on the Attribute Type (see the Common Modifiers section below)overrideFor 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 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_sineAn Easing Type may also be specified with a Cubic Bézier in the format: { "cubic_bezier": [ x1, y1, x2, y2 ] }
x1: float between 0 and 1, x-coordinate of the first control pointy1: float, y-coordinate of the first control pointx2: float between 0 and 1, x-coordinate of the second control pointy2: float, y-coordinate of the second control pointDeveloper's Note: To play around with and visualize easings, easings.net and cubic-bezier.com are great references!
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:digblend_to_gray RGB/ARGB modifier - modifies a color by taking its grayscale form, applying a brightness modifier, and mixing with this using some factorgray = brightness * (0.3 * red + 0.59 * green + 0.11 * blue), result = lerp(factor, subject, [gray, gray, gray])brightness: float between 0 and 1, a multiplier to apply to the grayscale valuefactor: float between 0 and 1, the factor to mix withminecraft:visual/sunrise_sunset_colorControls 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.
"#00000000"minecraft:visual/sun_angleThe angle in degrees of the sun, clockwise from east to west, with 0 being directly up.
Only visible with the overworld skybox type.
0.0minecraft:visual/moon_angleThe angle in degrees of the moon, clockwise from east to west, with 0 being directly up. Only visible with the overworld skybox type.
0.0minecraft:visual/star_angleThe angle in degrees of the stars, clockwise from east to west, with 0 being directly up. Only visible with the overworld skybox type.
0.0minecraft:visual/moon_phaseThe phase of the moon. Only visible with the overworld skybox type.
full_moonwaning_gibbousthird_quarterwaning_crescentnew_moonwaxing_crescentfirst_quarterwaxing_gibbous"full_moon"overrideminecraft:visual/star_brightnessThe 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.
0 and 10.0minecraft:visual/sky_light_colorThe 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.
"#ffffff"minecraft:visual/sky_light_factorThe 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.
1.0minecraft:audio/firefly_bush_soundsIf true and not below an opaque block, Firefly Bushes will produce idle sounds.
falseminecraft:gameplay/sky_light_levelThe 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.
15.0minecraft:gameplay/eyeblossom_openIf 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.
truefalse"default""default"overrideminecraft:gameplay/turtle_egg_hatch_chanceThe chance that a Turtle Egg block will switch to its next hatching state when randomly ticked.
0 and 10.0minecraft:gameplay/creaking_activeWhile true, Creaking Heart blocks (and their corresponding Creaking) will become active. On the other hand, when false, it will enter its dormant state.
falseminecraft:gameplay/surface_slime_spawn_chanceAn additional chance rolled when a natural Slime spawn attempt occurs in a biome with the #allows_surface_slime_spawns tag.
0 and 10.0minecraft:gameplay/cat_waking_up_gift_chanceThe 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.
0.0minecraft:gameplay/bees_stay_in_hiveWhen true, Bees will try to navigate to their Hives and will not exit unless the Hive is broken or next to a Fire.
falseminecraft:gameplay/monsters_burnWhen true, monsters will burn while exposed to the sky.
falseminecraft:gameplay/can_pillager_patrol_spawnWhen true, Pillager Patrols are able to spawn.
Note: the global skylight level must also be greater than 11.
true#without_patrol_spawns biome tagminecraft:gameplay/villager_activityControls 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:
core
hide
idle
meet
panic
pre_raid
raid
rest
work
Value type: Mob Activity
Default value: "minecraft:idle"
Modifiers: override
Interpolated: no
Resolved at the Villager's position
minecraft:gameplay/baby_villager_activityControls 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:
core
hide
idle
meet
panic
play
pre_raid
raid
rest
Value type: Mob Activity
Default value: "minecraft:idle"
Modifiers: override
Interpolated: no
Resolved at the Villager's position
timelines field that specifies which Timelines are active in this dimensionnatural field has been fully replaced by the minecraft:gameplay/eyeblossom_open and minecraft:gameplay/creaking_active Environment Attributeseffects field has been removed and replaced with the following new fields:skybox - the skybox rendering type to use, one of:none (was minecraft:nether effect ID)overworld (was minecraft:overworld effect ID)skybox is overworld: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_brightnessend (was minecraft:end effect ID)overworldcardinal_light - the direction of cardinal lighting that affects blocks, one of:default (was minecraft:overworld and minecraft:end effect ID)nether (was minecraft:nether effect ID)defaultfixed_time field has been replaced by a has_fixed_time boolean (default: false)fixed_time being present will now instead use the has_fixed_time boolean#without_patrol_spawns - replaced by gameplay/can_pillager_patrol_spawn Environment Attribute#spawns_coral_variant_zombie_nautilus - biomes where the Coral Variant of the Zombie Nautilus can spawn#universal - Timelines that are active in every dimension#in_overworld - Timelines that are active in the Overworld#in_nether - Timelines that are active in the Nether#in_end - Timelines that are active in the Endspear_mobs trigger 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 weaponblocks atlas into a separate new items atlas that does not have mipmapsitems or blocks) atlasblocks atlasitem/netherite_horse_armorentity/equipment/zombie_nautilus_coral.pngentity/equipment/horse_body/netherite.pngentity.parrot.imitate.parchedentity.parrot.imitate.zombie_horseentity.parrot.imitate.zombie_nautilus