Today Mounts of Mayhem charges into Minecraft, bringing a new weapon to wield, mounts to tame, foes to face, and strategies to master! Challengers await beneath scorching suns, night skies, and deep in the ocean’s depths – and each clash will demand a fresh strategy. Fight back with the spear, a new tiered weapon which deals damage based on your precision and the speed of your trusted steed. So, riders of the Overworld – mount up and lead the charge in the Mounts of Mayhem drop!

New Features

  • Added Nautilus and Zombie Nautilus
  • Added Nautilus Armor
  • Added Spear Weapon
  • Updated advancements to include the Nautilus, the Zombie Nautilus, the Zombie Horse, the Camel Husk, and the Parched
  • Added new graphical options "Texture Filtering" and "Anisotropic Filtering"
  • Added Netherite Horse Armor that can be obtained by upgrading Diamond Horse Armor with a Smithing Table

Nautilus

Nautilus swimming above coral reef with fish and squid in the background.

  • Nautilus is a new neutral aquatic mob
  • Spawns in all ocean biomes
  • Attacks using a Dash attack, if provoked
  • Occasionally attacks Pufferfish within range using the Dash attack
  • Has a Dash skill similar to Camels, used by pressing the Jump button
  • Takes suffocation damage on land
  • Adds the "Breath of the Nautilus" effect to mounted players
  • Nautilus can be bred and tamed using Pufferfish or a Bucket of Pufferfish
  • Despawn naturally, however become persistent when interacted with by a player
  • A Tamed Nautilus:
    • Can be mounted using a Saddle
    • With a Saddle has a roaming restriction of 16 blocks
    • Without a Saddle has a roaming restriction of 32 blocks

Zombie Nautilus

  • Zombie Nautilus is a new underwater mob that spawns with a Drowned rider wielding a Trident
  • Zombie Nautilus is only hostile if ridden by a hostile mob
  • Zombie Nautilus behaves similar to the Nautilus except that it cannot be bred

Coral Zombie Nautilus

A drowned riding a coral zombie nautilus in the water.

  • The Zombie Nautilus has a Coral Zombie Nautilus variant that spawns in the Warm Ocean biome

Nautilus Armor

  • Equippable on the Nautilus and Zombie Nautilus
  • Comes in Copper, Golden, Iron, Diamond and Netherite versions

Parched

  • New Skeleton variant
  • Spawns at light level 0 in Deserts replacing some of the regular Skeletons
  • Does not burn in sunlight
  • Shoots Arrows of Weakness
  • Is immune to Weakness effect
  • Has a slower rate of fire compared to normal Skeletons, similar to Bogged
  • Does not spawn in caves, following the Husk's spawning rules

Camel Husk

A husk holding a spear and a parched holding a bow riding a camel husk in the desert, next to cacti.

  • New undead Camel variant
  • Spawns a 0 light level in Deserts
  • Does not burn in sunlight
  • Spawns with two riders: A Husk wielding a Spear and a Parched
  • Do not spawn in caves, following Husks spawning rules
  • Is hostile if the rider is a hostile mob
  • Passive without a rider
  • Despawns with other hostile mobs, however becomes persistent when interacted with
  • Favorite food is Rabbit Foot
  • Cannot be bred
  • As a mount they work similar to normal Camels
  • Drops 2-3 Rotten Flesh when killed, with extra 0-1 for each level of Looting

Spear Weapon

  • New weapon that can be crafted in Wood, Stone, Copper, Iron, Gold, Diamond and Netherite versions
  • Each material has different stats for timing, influencing how fast they are to use
  • Has a minimum reach for damage, being too close to a target will yield no damage
  • Has extended maximum reach compared to other tools and weapons
  • Bounces back visually on hit
  • Has two attacks. Jab and Charge
  • Does not cause item interact vibrations
  • Zombies, Husks, Zombified Piglins and Piglins can spawn with the Spear
  • Golden Spear is considered a preferred weapon by Piglins

Jab Attack

  • Quick-press primary action button to use
  • Low damage attack with knockback
  • Cooldown between attacks
  • Wooden Spears have the fastest cooldown; Netherite the slowest
  • Can hit multiple enemies
  • Does not destroy blocks

Charge Attack

Sunny standing next to a fence performing a charge attack.

  • Press and hold the secondary action button to use
  • Damage is based on Spear material, the player’s view angle, and the velocity of both the player and the target
  • While holding down the button, the attack goes through three stages before returning to idle:
    • Engaged: The Spear can deal damage, knockback, and dismount mounted enemies if the speed is above the required thresholds
    • Tired: Indicated by the Spear rotating to a vertical position and shaking. The Spear can deal damage and knockback (but not dismount) if the speed is above the required thresholds
    • Disengaged: Indicated by the Spear being lowered, pointing downwards. The Spear gives damage but not knockback or dismount if the speed is above the required threshold
  • The Spear's range when used by mobs is half of that when used by players, but they can deal damage, dismount and knockback at lower speeds than the players
  • Zombies, Husks, Zombified Piglins and Piglins know how to charge with a Spear

Lunge Enchantment

  • Spear exclusive enchantment
  • Only works with the Jab attack
  • When doing a Jab attack with Lunge, it propels the player horizontally in the view direction
  • The view angle needs to be perfectly leveled horizontally to achieve maximum lunge distance
  • Using Lunge has a durability cost of 1 for using Lunge across all Enchantment levels
  • Using Lunge consumes hunger points by exhausting the player, similar to sprinting or jumping
    • Level 1 Lunge consumes 1 hunger point, level 2 consumes 2 hunger points, and level 3 consumes 3 hunger points
    • Lunge can only be used if the player has at least 6 hunger points in their hunger bar
  • Does not work when the player is in water or flying with Elytra

Advancements

  • Added the "Mob Kabob" advancement for spearing 5 enemies with a Charge attack
  • Updated the "How did we get here?" advancement to include the Breath of the Nautilus effect
  • Updated the "Best Friends Forever" advancement to include the Nautilus, Zombie Nautilus, and the Zombie Horse
  • Updated the "The Parrots and the Bats" advancement to include the Nautilus
  • Updated the "Two by Two" advancement to include the Nautilus
  • Updated the "Monster Hunter" advancement to include the Zombie Nautilus, the Zombie Horse, the Camel Husk and the Parched
  • Updated the "A Throwaway Joke", "Take Aim" and "It Spreads" advancements to include the Nautilus, the Zombie Nautilus, the Zombie Horse, the Camel Husk and the Parched
  • Updated the "Oh Shiny" advancement to include the Golden Spear and Golden Nautilus Armor

Texture Filtering

  • New option in Video Settings
  • Controls the method used to sample textures when they are viewed at an angle or from a distance
  • Available values are "None", "RGSS", and "Anisotropic"
  • The default depends on your graphics preset and hardware
  • "RGSS" (Rotated Grid Super Sampling) is a shader-based filtering method that improves texture clarity at a moderate performance cost
    • This is available on all hardware
  • "Anisotropic" is a hardware-based filtering method that provides the best texture clarity
    • The maximum anisotropy may be "2x", "4x", and "8x", controllable by a separate slider
    • If your hardware does not support it, Anisotropic Filtering will do nothing
    • This significantly impacts video memory usage (especially combined with a high mipmap count)

Changes

  • Zombies, Husks, Piglins and Zombified Piglins can now hold Spears
  • Piglins now consider Golden Spears as one of the items they like
  • Parrots can now mimic the sounds of Zombie Nautilus, Zombie Horse, Camel Husk and Parched
  • Items will no longer "bob" whenever their durability changes, such as when losing durability from an attack, or repaired by Mending
  • Some changes were made to debug renderers
  • Graphics modes "Fast", "Fancy", and "Fabulous!" have been replaced with graphics presets with the same names
  • Cloud movement is now the same for all players on a server
  • Netherite Armor points have been increased for the Body slot from 11 to 19
  • All blocks in the world now have mipmaps applied if enabled in video settings
    • Blocks that did not have mipmaps before, such as different vines, rails, folliage (apart from leaves) and more should look better from higher distances
  • Client FPS is expected to be higher for most players
  • Underwater biome fog color and fog distance is now blended based on the player's position between biomes, similarly to regular biome fog and sky colors
  • Environmental Fog in the Nether is no longer dependent on the render distance setting, and will consistently be applied from 10 to 96 blocks
  • Horses, Mules, Donkeys, and Camels no longer sink in water while ridden by a player
  • Chunks now fade in instead of appearing out of nowhere, with the fade-in time adjustable through Video Settings
  • Bats no longer spawn more frequently and in higher light levels between October 20 and November 3
  • The color of the sky during sunrises and sunsets is now affected by rain and thunder
  • Horses, Mules, Donkeys, Camels, Zombie Horses and Camel Husks will not panic if controlled by Mobs
  • Spawn Eggs have been reorganized into groups in the Creative Inventory
  • Mobs no longer spawn during chunk generation when the minecraft:spawn_mobs game rule is set to false
  • When the "See-Through Leaves" video setting is disabled, the gaps between leaves are now dark green instead of black
  • Turning the "See-Through Leaves" video setting off now gives a bigger performance boost than before
  • Added splash text "One does not simply walk to the Far Lands"

Developer’s Note: This statement was proven false on October 4, 2025.

  • Tamed horses no longer run into cacti or sweet berry bushes

Zombie Horse

A zombie holding a spear riding a zombie horse, with sunset in the background.

  • Zombie Horses now spawn naturally
  • Zombie Horses spawn in darkness, and burn in sunlight like other undead mobs
  • Zombie Horses count towards the hostile mob cap and spawn with other hostile mobs
  • Zombie Horses do not display any hostile behavior towards players. Their hostility resides solely in their Zombie rider
  • Zombie Horses can be leashed when its mob jockey is removed
  • Zombie Horses despawn like other hostile mobs
    • However, they become persistent when interacted with by a player
  • Zombie Horses can be tamed in the same fashion as regular Horses, and can then be mounted and controlled by a player
  • Zombie Horses can be healed and tempted using Red Mushrooms
  • Tamed Zombie Horses can be equipped with a Saddle and Horse Armor
  • Horse Armor protects Zombie Horses from sunlight damage
  • Zombie Horses have 25 health points (12.5 hearts) of health
  • Zombie Horses have variable movement speed and jump strength, determined when they spawn
  • Zombie Horses drops 2-3 Rotten Flesh when killed, with extra 0-1 for each level of Looting
  • Zombies riding Zombie Horses now have a chance of dropping a Red Mushroom on death

Mob Spawning

  • Zombie Horses now has a chance to spawn in plains and savanna biome types, with a zombie rider holding an iron spear

World Generation

  • Added various spears to various loot chests around the world
    • Iron Spears can be found in Buried Treasure chests
    • Copper and Iron Spears can be found in Weaponsmith chests in villages
    • Stone Spears can be found in Ocean Ruin chests
    • Diamond Spears can be found in Bastion Remnant and End City chests
  • Copper, Iron, Golden, and Diamond Nautilus Armor now have a chance to be found in the Chests for the following Structures:
    • Buried Treasure
    • Ocean Ruins
    • Shipwreck

Status Effects

  • Added Breath of the Nautilus effect
    • Effect that affects mounted players
    • Pauses player oxygen consumption (but does not replenish oxygen)

Minor Tweaks to Blocks, Items and Entities

Items

  • Spawn Eggs are now sorted thematically in the Creative Inventory, according to the following categories:
    • Overworld
      • Farm Animals
      • Mounts
      • Pets
      • Wild Animals
      • Aquatic
      • Miscellaneous
      • Golems
      • Villagers
      • Undead
      • Spiders
      • Monsters
      • Illagers
    • Nether
    • The End

Sounds

  • Anvil destroy, land, place and use sounds now play at a slightly lower volume

Accessibility

  • Keys used to access debug features can now be rebound
    • It is part of a new Debug category in the Key Binds screen
    • The F3 + Q keybind to display a debug help message in chat has been removed
  • The debug modifier key can be bound separately from the debug overlay key
  • The key to toggle GUI can now be rebound
  • The key to toggle spectator shader effects, such as when spectating an enderman, can now be rebound

Input

Several uses of the cmd key on Mac have been rebound to ctrl:

  • The input modfier to drop all items
  • The input modfier to include all the data when picking a block
  • The input modfier to change GUI scale in the Video Settings screen
  • Stopping the recipe book from cycling through variations of items

Performance Improvements

Debug Renderer Changes

  • Same as before, do not treat debug renderers as supported features, they are there only to aid with development
  • More debug renderers are now available through the Debug Settings screen
  • Some existing renderers were improved
  • The performance of debug renderers has been significantly improved

Graphics Presets

  • Settings on the Video Settings screen have been reordered and split into 3 sections: "Display", "Quality & Performance", and "Preferences"
  • The following settings that were duplicating accessibility settings have been removed from the Video Settings screen:
    • "View Bobbing"
    • "Glint Speed"
    • "Glint Strength"
    • "FOV Effects"
    • "Distortion Effects"
  • Tweaks that were previously hidden behind the "Graphics" setting have been split out to be configurable independently:
    • "See-Through Leaves"
    • "Show Vignette"
    • "Weather Effect Radius" configures the distance in blocks within which rain and snow are visible
    • "Improved Transparency" resolves some of the transparent geometry rendering issues at a significant GPU cost, previously was hidden behind "Fabulous!"
  • A new "Preset" slider was added to the top of the "Quality & Performance" section
    • Presets, as you would expect based on gaming industry standard, control most of the "Quality & Performance" settings at once, not only the ones that were previously hidden behind the "Graphics" setting
    • Available presets are "Fast", "Fancy", "Fabulous!" and "Custom"
    • The default preset is "Fancy" for new players
    • But for players who are upgrading to this version the preset will be set to "Custom" to preserve your current configuration

UI

  • Menu sliders will now "stick" to the closest available value when you release them after dragging with a mouse
  • When using keyboard to change slider values, arrow keys will now move the slider to the next available value, not by one pixel as before
  • The inF3 button in the Debug Option screen has been renamed to inOverlay
  • The Single Biome Customization screen now has a search box
  • The language selection screen now has a search box to filter languages
  • Renamed the "Show Music Toast" option to "Music Toast"
    • Added a third state to the "Music Toast" option, allowing it to only be shown in the pause menu

Technical Changes

  • The Data Pack version is now 94.1
  • The Resource Pack version is now 75.0
  • The Minecraft Server Management Protocol version is now 2.0.0
  • Added ClientFps JFR event
  • Experience packets that do not change the player's experience progress or level are no longer sent by the server
  • Added support for KQueue on OSX to improve network connection performance

Network Protocol

Minecraft Server Management Protocol Version 2.0.0

  • Added a new notification server/activity
    • Indicates that a network connection to the server has been initiated
    • Rate limited to 1 notification per 30 seconds
  • Enable authentication from web browsers
    • Authenticate by passing the token in Sec-WebSocket-Protocol header when opening the WebSocket connection
      • Example: Sec-WebSocket-Protocol: minecraft-v1, <token>
    • Requests authenticating this way are subject to Origin header checks. This requires configuration of allowed origins on the server side using management-server-allowed-origins. The default value is empty, meaning Sec-Websocket-Protocol authentication is effectively disabled
  • In the typed_game_rule and untyped_game_rule schemas, the type of the value field has been changed from string to take either a boolean or an integer
    • Also, it now uses the game rule resource location as the key

Data Pack Versions 89.0 through 94.1

  • Added stopwatch command for keeping track of real time
  • Certain visual and gameplay effects can now be controlled by Environment Attributes
  • World Border interpolation is now dependent on game ticks instead of real time
    • This means the World Border will no longer move when the game is paused
    • It will also respect any changes made by the /tick command
  • Changed loot function filtered to allow running modification when predicate fails
  • Added discard loot function
  • Added new Coral Zombie Nautilus mob variant
    • The Zombie Nautilus variants can be data-driven
  • Item textures were split out of the blocks atlas into a separate new items atlas
    • It means that the commands that were referencing the blocks atlas for item textures now need to reference the items atlas instead

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: normalwarm
    • asset_id - namespaced id for this variant asset, resolves to assets/<namespace>/textures/<path>.png
    • spawn_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

Commands

  • Resource suggestions now show results in any namespace instead of just within minecraft

Added stopwatch

  • New command that allows the creation of a Stopwatch that keeps track of real time
  • Stopwatches do not depend on game ticks
  • They only run when the server/world is running, even when paused

Syntax:

  • stopwatch create <id> - creates a Stopwatch with the given namespaced ID
  • stopwatch query <id> [<scale>] - shows the elapsed time of the given Stopwatch in seconds and returns it scaled by the given value and truncated.
    • Default scale: 1
  • stopwatch restart <id> - restarts the given Stopwatch
  • stopwatch remove <id> - removes the given Stopwatch

Developer's NoteThis command is added to replace the need of using world borders to keep track of real time. The intent is to change the world border to be dependent on game ticks in a future snapshot. If you've relied on this way of measuring the passage of real time before, please switch to using the new command and let us know if anything doesn't work as intended. Thank you!

Changes to execute

  • Added new syntax /execute if|unless stopwatch <id> <range>
  • Allows to compare the elapsed time of a given Stopwatch with a floating point value range
    • The Stopwatch value is measured in seconds and has an accuracy of at most a millisecond
    • Example: /execute if stopwatch foo:bar ..10 run say Stopwatch foo:bar has not reached 10 seconds yet

Changes to worldborder

  • The time arguments now specify ticks by default, but can also specify seconds or in-game days using an s or d suffix

Game Rules

Game rules have been moved into a registry. With that, all game rules have been renamed from their previous camel case names to resource locations in snake case.

Additionally, the following game rules have been further renamed:

  • announceAdvancements -> minecraft:show_advancement_messages
  • commandBlocksEnabled -> minecraft:command_blocks_work
  • command_modification_block_limit -> minecraft:max_block_modifications
  • disableElytraMovementCheck -> minecraft:elytra_movement_check
    • The value is inverted accordingly in places that use the resource location
  • disablePlayerMovementCheck -> minecraft:player_movement_check
    • The value is inverted accordingly in places that use the resource location
  • disableRaids -> minecraft:raids
    • The value is inverted accordingly in places that use the resource location
  • doDaylightCycle -> minecraft:advance_time
  • doEntityDrops -> minecraft:entity_drops
  • doImmediateRespawn -> minecraft:immediate_respawn
  • doInsomnia -> minecraft:spawn_phantoms
  • doLimitedCrafting -> minecraft:limited_crafting
  • doMobLoot -> minecraft:mob_drops
  • doMobSpawning -> minecraft:spawn_mobs
  • doPatrolSpawning -> minecraft:spawn_patrols
  • doTileDrops -> minecraft:block_drops
  • doTraderSpawning -> minecraft:spawn_wandering_traders
  • doVinesSpread -> minecraft:spread_vines
  • doWardenSpawning -> minecraft:spawn_wardens
  • doWeatherCycle -> minecraft:advance_weather
  • maxCommandChainLength -> minecraft:max_command_sequence_length
  • maxCommandForkCount -> minecraft:max_command_forks
  • naturalRegeneration -> minecraft:natural_health_regeneration
  • snowAccumulationHeight -> minecraft:max_snow_accumulation_height
  • spawnRadius -> minecraft:respawn_radius
  • spawnerBlocksEnabled -> minecraft:spawner_blocks_work

Limits

Some game rules that previously did not have a limited value range now do:

  • minecraft:max_block_modifications: Minimum 1
  • minecraft:max_command_forks: Minimum 1
  • minecraft:max_command_sequence_length: Minimum 0
  • minecraft:max_entity_cramming: Minimum 0
  • minecraft:max_snow_accumulation_height: Minimum 0, maximum: 8
  • minecraft:players_nether_portal_creative_delay: Minimum 0
  • minecraft:players_nether_portal_default_delay: Minimum 0
  • minecraft:players_sleeping_percentage: Minimum 0
  • minecraft:random_tick_speed: Minimum 0
  • minecraft:respawn_radius: Minimum 0

Added minecraft:fire_spread_radius_around_player

  • Controls the maximum distance in blocks that fire can spread around a player
    • This replaces the previous doFireTick and allowFireTicksAwayFromPlayer game rules, which have now been removed
    • Setting it to 0 will disable fire spreading
    • Setting it to -1 will allow fire spreading without players around
    • Limit: Minimum -1

Game Tests

In the game_rules test environment the keys bool_rule and int_rule have been replaced with a single key rules. It is a map from game rules resource locations to the game rules value. The value type is either integer or boolean depending on the game rule.

Attributes

Timelines

Timelines are a new 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 applying 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.

Environment Attributes

Environment Attributes provide a data-driven way to control a variety of visual and gameplay systems.

Each Environment Attribute controls a specific visual or gameplay effect: for example, minecraft:visual/sky_color controls the color of the sky, and minecraft:gameplay/water_evaporates controls whether water can be placed at a given location.

Developer’s Note: This system and many of the introduced attributes should be considered very experimental, and may still change significantly in coming snapshots and releases. In the meantime, we would as always love to hear any feedback or suggestions you may have!

Sources

Environment Attribute values can be provided by the following Environment Attribute sources (in order of low to high priority):

  • Dimensions
  • Biomes
  • Timelines
  • Weather (not data-driven)

While Biomes act as a source to modify an attribute by position, Timelines can modify an attribute based on time.

The "effective" value of the Environment Attribute (i.e. what will actually show up in game) will be some combination of the values provided by each source according to their priority.

For example, in the following scenario:

  • The overworld dimension provides sky_color = #00ff00 (green)
  • The plains biome provides sky_color = #ff0000 (red)

When the player is in the plains biome, they will see the red sky_color, while anywhere else in the overworld they will see green.

When an Environment Attribute source provides an Environment Attribute, it can:

  • Override the value, such as the plains biome overriding the overworld's sky_color in the above scenario
  • Apply a modifier to a previous value (see section on Modifiers below)

Pale garden biome that has blue fog, and bubble particles that has been modified with a data pack.

Modifiers

As described in the above example, an Environment Attribute source may simply override the value of a particular attribute. However, it is sometimes also desirable to rather apply a modifier to a value provided by a source with lower priority.

For example, in the following scenario:

  • The overworld dimension provides water_fog_end_distance = 96.0
  • The plains biome modifies water_fog_end_distance with a multiply modifier of 0.85

When in the plains biome, the water_fog_end_distance will be resolved to 96.0*0.85 = 81.6, while in any other Overworld biome, it will resolve to 96.0.

The kinds of modifiers available depends on the type of Environment Attribute. The most basic modifier, supported by every Environment Attribute, is the override modifier. This behaves purely as an override of the preceding value. If not specified by an Environment Attribute source, the modifier will always be assumed to be override.

Full descriptions of the available modifiers and their behaviors can be found in the Common Modifiers section below.

Interpolation

While modifiers describe how a value provided by one source is applied on the value from a preceding source, interpolation describes the combination of values within a source. Only some Environment Attributes support interpolation. This allows for the smooth transition between two or more values, such as when moving between two biomes.

Between multiple Biomes, interpolation is performed on values from a source after modifiers have been applied. Within a Timeline, interpolation is performed on the modifier arguments before they get applied.

Biomes

For example, in the following scenario:

  • The plains biome provides sky_color = #ff0000 (red)
  • The desert biome provides sky_color = #ffff00 (yellow)

sky_color is one such attribute that will transition smoothly based on position: for example, in the above scenario, as a player moves from a plains to a desert biome, the sky color will gradually shift from red to yellow. Other attributes, such as water_evaporates, represent discrete values and will not be smoothly transitioned - only the biome exactly at a subject position will be considered.

Smooth transitions between biomes are based on the biomes within an 8 block radius of the camera. Biomes that occupy a larger portion of that radius and are closer to the camera will have a stronger influence on the final interpolated value.

Timelines

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 provides sky_color = #ff0000 (red)
  • At time = 1000, the timeline provides sky_color = #ff0000 (red)
  • At time = 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.

Environment Attribute Map

Dimension Type and Biome definitions contain a new attributes field, enabling them to define Environment Attributes.

This map generally takes the form of an object mapping between Environment Attribute IDs and their corresponding values, for example:

"attributes": {
    "minecraft:visual/fog_color": "#ffaa00",
    "minecraft:gameplay/water_evaporates": true
}

Values defined as above will always be assumed to use the override modifier.

The value object can however be expanded in order to express different modifiers, in the format of an object with the following fields:

  • modifier: optional string modifier ID, dependent on the Attribute Type (see the Common Modifiers section below)
    • Default: override
  • argument: the modifier argument (format dependent on the chosen modifier)
    • How the argument is used also depends on the type of modifier

For example, the following definition describes multiplying water_fog_end_distance by 85%:

"attributes": {
    "minecraft:visual/water_fog_end_distance": {
        "modifier": "multiply",
        "argument": 0.85
    }
}

Attribute Track

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
  • keyframes - 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 active
    • value - the modifier argument (format dependent on the chosen modifier)
      • If no modifier is specified (or override is 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
    • 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

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 keyframe
  • linear
  • in_back
  • in_bounce
  • in_circ
  • in_cubic
  • in_elastic
  • in_expo
  • in_quad
  • in_quart
  • in_quint
  • in_sine
  • in_out_back
  • in_out_bounce
  • in_out_circ
  • in_out_cubic
  • in_out_elastic
  • in_out_expo
  • in_out_quad
  • in_out_quart
  • in_out_quint
  • in_out_sine
  • out_back
  • out_bounce
  • out_circ
  • out_cubic
  • out_elastic
  • out_expo
  • out_quad
  • out_quart
  • out_quint
  • out_sine

An 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 point
  • y1: float, y-coordinate of the first control point
  • x2: float between 0 and 1, x-coordinate of the second control point
  • y2: float, y-coordinate of the second control point

Developer's NoteTo play around with and visualize easings, easings.net and cubic-bezier.com are great references!

Common Data Types

The following data types are reused in various parts of the Environment Attributes system and will be referenced in sections below.

RGB Color

Format can be one of the following:

  • A hex color RGB string, in the form #rrggbb
  • A float array with 3 components, between 0 and 1, in the form [r, g, b]
  • An integer in packed RGB form

ARGB Color

Format can be one of the following:

  • A hex color ARGB string, in the form #aarrggbb
  • A float array with 4 components, between 0 and 1, in the form [a, r, g, b]
  • An integer in packed ARGB form

Particle Options

A full definition of a particle, including any type-specific properties (as in the /particle command).

For example:

{
  "type": "minecraft:block_crumble",
  "block_state": {
    "Name": "minecraft:dirt"
  }
}

Mob Activity

A string ID from the minecraft:activity built-in registry. One of:

  • minecraft:core
  • minecraft:idle
  • minecraft:work
  • minecraft:play
  • minecraft:rest
  • minecraft:meet
  • minecraft:panic
  • minecraft:raid
  • minecraft:pre_raid
  • minecraft:hide
  • minecraft:fight
  • minecraft:celebrate
  • minecraft:admire_item
  • minecraft:avoid
  • minecraft:ride
  • minecraft:play_dead
  • minecraft:long_jump
  • minecraft:ram
  • minecraft:tongue
  • minecraft:swim
  • minecraft:lay_spawn
  • minecraft:sniff
  • minecraft:investigate
  • minecraft:roar
  • minecraft:emerge
  • minecraft:dig

Common Modifiers

Every Environment Attribute has a specific value type, which describes how values must be defined as well as what modifiers are available and how they are interpolated. Some are very specific, while others are reused across many attributes.

Although this is not an exhaustive list, the following Attribute Types are used commonly across many Environment Attributes:

Modifiers on Boolean Values

Argument format: boolean

  • override
  • and
  • nand
  • or
  • nor
  • xor
  • xnor

Modifiers on Float Values

Argument format: float

  • override
  • add
  • subtract
  • multiply
  • minimum
  • maximum
  • alpha_blend
    • Modifies subject according to: result = lerp(alpha, subject, value)
    • Argument format: object with fields:
      • value: float to blend towards
      • alpha: float between 0 and 1

Modifiers on RGB Color Values

  • override
    • Argument format: RGB Color
  • add - component-wise additive color blending
    • Argument format: RGB Color
  • subtract - component-wise subtractive color blending
    • Argument format: RGB Color
  • multiply - component-wise multiplicative color blending
    • Argument format: RGB Color
    • If specified, the alpha component is multiplied independently just like the other color channels
  • alpha_blend - traditional alpha blending that might be seen in image editing software
    • Argument format: ARGB Color
    • When the argument alpha is 1, it will behave as an override with no blending
  • blend_to_gray - 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 between 0 and 1, a multiplier to apply to the grayscale value
      • factor: float between 0 and 1, the factor to mix with

Modifiers on ARGB Color Values

  • override
    • Argument format: ARGB Color
  • add - component-wise additive color blending
    • Argument format: RGB Color
  • subtract - component-wise subtractive color blending
    • Argument format: RGB Color
  • multiply - component-wise multiplicative color blending
    • Argument format: RGB or ARGB Color
    • If specified, the alpha component is multiplied independently just like the other color channels
  • alpha_blend - traditional alpha blending that might be seen in image editing software
    • Argument format: ARGB Color
    • When the argument alpha is 1, it will behave as an override with no blending
  • blend_to_gray - same as for RGB Color

New Environment Attributes

minecraft:visual/fog_color

The color of fog (when the camera is not submerged in another substance).

  • Value type: RGB color
  • Default value: #000000
  • Modifiers: RGB Color Modifiers
  • Interpolated: yes
  • Resolved at the camera's position
  • Replaces Biome effects.fog_color field

minecraft:visual/fog_start_distance

The distance in blocks from the camera at which fog starts to have an effect (when the camera is not submerged in another substance). If negative, the fog will start out with density as if it had started that many blocks behind the camera.

  • Value type: float
  • Default value: 0.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera's position

minecraft:visual/fog_end_distance

The distance in blocks from the camera at which fog reaches its maximum density (when the camera is not submerged in another substance).

  • Value type: non-negative float
  • Default value: 1024.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera's position

minecraft:visual/sky_fog_end_distance

The distance in blocks from the camera at which the fog that affects the sky reaches its maximum density (when the camera is not submerged in another substance). Only visible with the overworld skybox type.

Note: this value is restricted by the Render Distance option.

  • Value type: non-negative float
  • Default value: 512.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera's position

minecraft:visual/cloud_fog_end_distance

The distance in blocks from the camera at which the fog that affects clouds reaches its maximum density (when the camera is not submerged in another substance).

Note: this value is restricted by the Cloud Distance option.

  • Value type: non-negative float
  • Default value: 2048.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera's position

minecraft:visual/water_fog_color

The color of fog when submerged in water.

  • Value type: RGB color
  • Default value: #050533
  • Modifiers: RGB Color Modifiers
  • Interpolated: yes
  • Resolved at the camera's position
  • Replaces Biome effects.water_fog_color field

minecraft:visual/water_fog_start_distance

The distance in blocks from the camera at which underwater fog starts to have an effect. If negative, the fog will start out with density as if it had started that many blocks behind the camera.

  • Value type: float
  • Default value: -8.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera's position

minecraft:visual/water_fog_end_distance

The distance in blocks from the camera at which underwater fog reaches its maximum density.

Note: the final value is also modified by how long the player has been underwater.

  • Value type: non-negative float
  • Default value: 96.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera's position
  • Replaces #has_closer_water_fog Biome Tag

minecraft:visual/sky_color

The color of the sky. This color is only visible for the overworld sky. Only visible with the overworld skybox type.

  • Value type: RGB color
  • Default value: #000000
  • Modifiers: RGB Color Modifiers
  • Interpolated: yes
  • Resolved at the camera's position
  • Replaces Biome effects.sky_color field

minecraft:visual/cloud_color

The color of the clouds. If fully transparent, clouds are entirely disabled and Happy Ghasts will not regenerate health faster when at cloud height.

  • Value type: ARGB color
  • Default value: #00000000
  • Modifiers: ARGB Color Modifiers
  • Interpolated: yes
  • Resolved at the camera's position for rendering, or at the position of a Happy Ghast for regeneration

minecraft:visual/cloud_height

The height at which all clouds appear.

  • Value type: float
  • Default value: 192.33
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera's position for rendering, or at the position of a Happy Ghast for regeneration
  • Replaces Dimension Type cloud_height field

minecraft:visual/default_dripstone_particle

The default particle to be dripped from Dripstone blocks when no fluid is placed above.

  • Value type: Particle Options
  • Default value: {type:"minecraft:dripping_dripstone_water"}
  • Modifiers: override
  • Interpolated: no
  • Resolved at the position of the Dripstone block
  • Replaces Dimension Type ultrawarm field

minecraft:visual/ambient_particles

Controls ambient particles that randomly spawn around the camera.

  • Value type: list of objects with fields
    • particle: Particle Options to spawn
    • probability: float between 0 and 1, the probability to spawn the particle in an empty space when randomly ticked
  • Default value: []
  • Modifiers: override
  • Interpolated: no
  • Resolved at the camera's position
  • Replaces Biome effects.particle field

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_moon
    • waning_gibbous
    • third_quarter
    • waning_crescent
    • new_moon
    • waxing_crescent
    • first_quarter
    • waxing_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 0 and 1
  • 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/background_music

Controls how and which background music is played.

  • Value type: object with fields
    • default: optional object with fields:
      • sound: Sound Event to play
      • min_delay: int, minimum delay in ticks between tracks
      • max_delay: int, maximum delay in ticks between tracks
      • replace_current_music: optional boolean, whether this track can replace whatever is currently playing
        • Default: false
      • If not defined and not overridden, no music will start playing while this attribute is active
    • underwater: optional object with fields in the same format as default - if present and the player is underwater, will override default
    • creative: optional object with fields in the same format as default - if present and the player is in Creative Mode, will override default
  • Default value: {}
  • Modifiers: override
  • Interpolated: no
  • Resolved at the camera's position
  • Replaces Biome effects.music field

minecraft:audio/music_volume

The volume at which music should play. Any music playing will fade over time to this value.

  • Value type: float between 0 and 1
  • Default value: 1.0
  • Modifiers: Float Modifiers
  • Interpolated: no
  • Resolved at the camera's position
  • Replaces Biome effects.music_volume field

minecraft:audio/ambient_sounds

Controls which ambient sounds are played around the camera, and when.

  • Value type: object with fields
    • loop: optional Sound Event, sound to be continually looped
    • mood: object with fields, sounds that will be randomly played based on surrounding darkness
      • sound: Sound Event to play
      • tick_delay: int, the number of ticks between mood sounds, assuming a light level of 0
      • block_search_extent: int, the radius in which light levels are sampled
      • offset: double, an additional distance offset to apply to sounds produced
    • additions: list of objects with fields, sounds that will be randomly played
      • sound: Sound Event to play
      • tick_chance: float between 0 and 1, probability within a tick to play a given sound
  • Default value: {}
  • Modifiers: override
  • Interpolated: no
  • Resolved at the camera's position
  • Replaces Biome effects.ambient_soundeffects.mood_sound, and effects.additions_sound fields

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/can_start_raid

If false, a Raid cannot be started by a player with Raid Omen.

  • Value type: boolean
  • Default value: true
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position that the Raid would be started
  • Replaces Dimension Type has_raids field

minecraft:gameplay/water_evaporates

If true, Water cannot be placed with a Bucket, melting Ice will not produce water, Wet Sponge will dry out when placed, and Dripstone will not produce water from Mud blocks.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position of the interaction
  • Replaces Dimension Type ultrawarm field

minecraft:gameplay/bed_rule

Controls whether a Bed can be used to sleep, and whether it can be used to set a respawn point.

  • Value type: object with fields
    • can_sleep: one of:
      • always - the Bed can always be used to sleep (assuming the Bed is not obstructed and there are no monsters nearby)
      • when_dark - the Bed can only be used to be sleep when the global skylight level is less than or equal 11
      • never - the Bed can never be used to sleep
    • can_set_spawn - same as can_sleep
    • explodes - optional boolean, if true the Bed will explode when interacted with
      • Default: false
    • error_message: optional Text Component, the message to show if the player is unable to sleep or set their spawn
  • Default value: {can_sleep:"when_dark",can_set_spawn:"always",error_message:{translate:"block.minecraft.bed.no_sleep"}}
  • Modifiers: override
  • Interpolated: no
  • Resolved at the head position of the Bed block
  • Replaces Dimension Type bed_works field

minecraft:gameplay/respawn_anchor_works

Controls whether Respawn Anchors can be used to set spawn (or respawn). If false, the Respawn Anchor will explode once charged.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position of the Respawn Anchor block
  • Replaces Dimension Type respawn_anchor_works field

minecraft:gameplay/nether_portal_spawns_piglin

Controls whether Nether Portal blocks can spawn Piglins.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position of a random Nether Portal block
  • Replaces Dimension Type natural field

minecraft:gameplay/fast_lava

Controls whether Lava should spread faster and further, as well as have a stronger pushing force on entities when flowing.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved for a whole dimension (cannot be specified on a Biome)
  • Replaces Dimension Type ultrawarm field

minecraft:gameplay/increased_fire_burnout

Controls whether Fire blocks burn out more rapidly than normal.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position of the burning Fire block
  • Replaces #increased_fire_burnout Biome Tag

minecraft:gameplay/piglins_zombify

Controls whether Piglins and Hoglins should zombify.

  • Value type: boolean
  • Default value: true
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position of the zombifying entity
  • Replaces Dimension Type piglin_safe field

minecraft:gameplay/snow_golem_melts

Controls whether a Snow Golem should be damaged.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position of the Snow Golem
  • Replaces #snow_golem_melts Biome Tag

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:
    • true
    • false
    • "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 0 and 1
  • 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 0 and 1
  • 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_spawns biome 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:

  • 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_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:

  • 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

Data Components

  • New components:
    • zombie_nautilus/variant - namespaced id from zombie_nautilus_variant registry

Item Components

Added food properties to the following fish bucket items:

  • minecraft:cod_bucket
  • minecraft:salmon_bucket
  • minecraft:pufferfish_bucket
  • minecraft:tropical_fish_bucket

Added minecraft:use_effects

  • Controls how the player behaves when using an item (right mouse click)
  • Format: object with fields
    • can_sprint: boolean, whether the player can sprint while using this item
      • Default value: false
    • interact_vibrations: boolean, whether using this item emits minecraft:item_interact_start and minecraft:item_interact_finish game events
      • Default value: true
      • speed_multiplier: float (0 to 1), the speed multiplier applied to the player while using this item
        • Default value: 0.2
      • e.g. use_effects={can_sprint:true,speed_multiplier:1.0}

Added minecraft:minimum_attack_charge

  • Sets the minimum attack charge on the attack indicator required to attack with this item
  • Format: float (0.0 to 1.0)
    • 0.0: no charge required
    • 1.0: full charge required

Added minecraft:damage_type

  • Specifies the type of damage this item deals
  • Format: string, damage type identifier
    • e.g. damage_type='minecraft:spear'

Added minecraft:attack_range

  • Enables a custom attack range when using the item.
  • Overrides the normal entity interaction range for Player.
  • Regular melee attack range is computed for Mobs based on the distance of the target hitbox to their hitbox. This component modifies that distance check by adjusting minimum and maximum padding for the attack hitbox.
  • Mobs using minecraft:kinetic_weapon will have their attack range applied in the same way it applies to players
  • Format: object with fields
    • min_reach: float, the minimum distance in blocks from the attacker to the target to be considered valid
      • Default value: 0.0, valid from 0.0 to 64.0
    • max_reach: float, the maximum distance in blocks from the attacker to the target to be considered valid
      • Default value: 3.0, valid from 0.0 to 64.0
    • min_creative_reach: float, the minimum distance in blocks from the Creative Mode attacker to the target to be considered valid
      • Default value: 0.0, valid from 0.0 to 64.0
    • max_creative_reach: float, the maximum distance in blocks from the Creative Mode attacker to the target to be considered valid
      • Default value: 5.0, valid from 0.0 to 64.0
    • hitbox_margin: float, the margin applied to the target bounding box when checking for valid hitbox collision
      • Default value: 0.3, valid from 0.0 to 1.0
    • mob_factor: float, the multiplier applied to the min_range and max_range when checking for valid distance when item is used by a mob
      • Default value: 1.0, valid from 0.0 to 2.0

Added minecraft:kinetic_weapon

  • Enables a charge-type attack when using the item (primarily for Spears), where, while being used, the damage is dealt along a ray every time an entity comes in contact with it, with the damage based on the relative speed of the entities
  • Format: object with fields
    • contact_cooldown_ticks: integer, the cooldown in ticks after hitting, and loosing contact with an entity before being able to hit it again
      • Default value: 10
    • delay_ticks: integer, the time in ticks required before weapon is effective
      • Default value: 0
    • dismount_conditionsknockback_conditionsdamage_conditions: indicating the condition to apply dismount, knockback and damage effects respectively. Objects with fields:
      • max_duration_ticks: integer, the ticks after which the condition is no longer checked. This starts after delay has elapsed
      • min_speed: float, the minimum speed of the attacker, in blocks per second, along the direction that the attacker is looking
        • Optional, default value: 0.0
      • min_relative_speed: float, the minimum relative speed between the attacker and target, in blocks per second, along the direction that the attacker is looking
        • Optional, default value: 0.0
    • forward_movement: float, the distance the item moves out of hand during animation
      • Default value: 0.0
    • damage_multiplier: float, the multiplier for the final damage from the relative speed
      • Default value: 1.0
    • sound: Optional Sound Event to play when the weapon is engaged
    • hit_sound: Optional Sound Event to play when the weapon hits an entity
    • e.g. kinetic_weapon={forward_movement:1.0,delay:20,damage_conditions:{max_duration:60},knockback_conditions:{max_duration:40},dismount_conditions:{max_duration:20}}
  • The damage dealt is calculated as floor(relative_speed * velocity_multiplier) where relative_speed is the difference of speed vectors of the attacker and the target as projected onto the axis of the attacker's view vector
    • Any additional damage from enchantments or attribute modifiers is added after this calculation

Added minecraft:piercing_weapon

  • Enables a quick attack that damages multiple entities along a ray (primarily for Spears)
  • Format: object with fields
    • deals_knockback: boolean, whether the attack deals knockback
      • Default value: true
    • dismounts: boolean, whether the attack dismounts the target
      • Default value: false
    • sound: Optional Sound Event to play when a player attacks with the weapon
    • hit_sound: Optional Sound Event to play when the weapon hits an entity
    • e.g. piercing_weapon={dismounts:true}

Added minecraft:swing_animation

  • Specifies the swing animation to play when attacking or interacting using this item
  • Format: object with fields
    • type: string, the animation identifier (nonewhackstab)
      • Default value: whack
    • duration: integer, the duration in ticks
      • Default value: 6
    • e.g. swing_animation={type:'stab',duration:20}

Changed minecraft:consumable

  • The animation field has been updated:
    • Renamed spear to trident
    • Added new spear animation

Changed minecraft:intangible_projectile

  • Items with this component now show information about it in their tooltip

Entity Data

  • The AngryAt field has been renamed to angry_at
  • The AngerTime field has been removed
  • An anger_end_time (long) field has been added, containing the time anger ends in game ticks

Block Entity Data

Advancements

  • Added new spear_mobs trigger with fields:
    • player: optional entity predicate, the player using the kinetic weapon
    • count: optional integer, the number of mobs hit in a single use of the kinetic weapon

Damage Types

  • Added a new minecraft:spear damage type

Slot Sources

  • Added slot sources to allow the location of any inventory slot to be specified within datapacks
  • Format: object with fields
    • type: the slot source type
    • <type-specific>: additional fields depending on the type

minecraft:empty Type

  • Empty selection containing no slots

minecraft:group Type

  • Merges several slot sources into one, with the resulting selection containing all slots from each slot source provided
    • If a slot is included in more than one slot source, it will be repeated in the resulting slot source
    • e.g. [a, b] + [c, a] -> [a, b, c, a]
  • Format:
    • terms: list of slot sources to join
  • Can alternatively be written inline as a list of slot sources

minecraft:slot_range Type

  • Selects slots within a slot range from the inventory of an entity or block entity
  • Mirrors the behavior of the from argument of the /item command
  • Format:
    • source: an entity or block entity from which the slots will be sourced, from loot context
      • Can be block_entitythisattacking_entitylast_damage_playerdirect_attackertarget_entity, or interacting_entity
    • slots: a slot range in the format of <slot_type> or <slot_type>.<slot_number> (e.g. armor.chest or container.*)

minecraft:contents Type

  • Selects all non-empty slots from the inventory component of one or more items
    • If no item is stored inside that component, the resulting selection will be empty
  • The location of the item(s) whose inventory component to use is specified by another slot source
    • If the slot source includes more than one item with that component, the resulting selections will be merged identically as with the minecraft:group type
    • e.g. Bundle [a, b] + Shulker Box [c, d] -> [a, b, c, d]
  • Format:
    • component: the inventory component to target
      • Allowed values are minecraft:bundle_contentsminecraft:charged_projectiles, and minecraft:container
    • slot_source: a slot source containing slots with item(s) to target

minecraft:filtered Type

  • Applies a filter to the selected slots, excluding any non-matching slots from the resulting selection
  • Format:
    • item_filter: an item predicate to match against the items in each slot
    • slot_source: the slot source to filter

minecraft:limit_slots Type

  • Limits the number of slots provided, with the resulting selection containing at most that number of slots
    • Any slots bringing the number of slots above that limit will be excluded, in order of inclusion
    • e.g. [a, b, c, d] -> [a, b, c] if the limit is set to 3
  • Format:
    • limit: integer, the maximum number of slots to include in the resulting selection
    • slot_source: the slot source to limit

Example slot source selecting every slot with more than 16 items from the hotbar and armor slots of an entity:

{
    "type": "minecraft:filtered",
    "item_filter": {
        "count": {
            "min": 16
        }
    },
    "slot_source": [
        {
            "type": "minecraft:slot_range",
            "source": "this",
            "slots": "hotbar.*"
        },
        {
            "type": "minecraft:slot_range",
            "source": "this",
            "slots": "armor.*"
        }
    ]
}

Loot Tables

  • Added new minecraft:slots loot pool entry
    • Provides the items contained within the selected slots to the loot table
    • Format:
      • slot_source: a slot source describing where the items are located
    • Supports all standard loot pool entry fields

Loot Functions

minecraft:filtered

  • Field modifier has been replaced with two fields:
    • on_pass - function or a list of functions to run when item_filter predicate passes
    • on_fail - function or a list of functions to run when item_filter predicate fails

minecraft:discard

  • Replaces any item stack with empty one
  • No fields

Predicates

Component Predicates

  • Component predicates (predicates field in block, item and entity predicates) now include predicates for checking existence of every component type
  • Those predicates are written as {<component_type>: {}}
  • Such predicate check passes as long as component is present, no matter the actual value
  • Existing predicates for specific components remain unchanged
  • Example:
    • {predicates:{written_book_content:{author:"foo"}} - existing format for matching books
    • {predicates:{written_book_content:{}} - special case of above that accepted any value, as long as component existed
    • {predicates:{instrument:{}} - checks if component minecraft:instrument exists (was not allowed before)

Entity Predicates

The flags predicate now supports new values:

  • is_in_water: when an entity is touching water or a bubble column
  • is_fall_flying: when an entity is gliding with an elytra

Block Predicates

Item Predicates

  • Item predicate in command form (<item>[predicate~{...},component={...}]) has been extended to accept empty predicates for any component type
  • Similarily to component predicates in data, those empty entries only check for component existence
  • Existing shorter syntax for checking component existence remains unchanged
    • That means *[instrument] and *[instrument~{}] are equivalent

Recipes

Enchantments

Enchantment Effect Components

  • minecraft:post_piercing_attack: Effects applying after a piercing attack with an item

Enchantment Entity Effects

  • minecraft:apply_impulse: applies an impulse to the targeted entity
    • direction - The first step of determining the impules is applying this vector as local coordinates (the same used by tp @s ^ ^ ^) onto the entity look vector
    • coordinate_scale - The second step is scaling the resulting vector by this vector on each axis in world space, X, Y and Z
    • magnitude - The third step is scaling the resulting vector by this Level-Based Value
  • minecraft:apply_exhaustion: applies exhaustion to the targeted entity
    • amount - Level-Based Value indicating the amount of exhaustion to apply
    • effective only on players
  • minecraft:play_sound: can now support a list of sound event identifiers, one for each level of enchantment. If a level is higher than the number of sounds, the last sound in the list is used

Enchantment Level-Based Values

Added exponent

  • Raises the base to the specified power level.
    • base - Level-Based Value indicating the base of the exponent.
    • power - Level-Based Value indicating the power of the exponent.

World Generation

Dimension Types

  • Added new attributes field for dimensions to specify Environment Attributes
    • Refer to the Environment Attribute Map section for information about the format of this field
  • Added a new optional timelines field that specifies which Timelines are active in this dimension
    • Format: a Timeline ID, a list of Timeline IDs, or a Timeline Tag
  • Many fields have been migrated to Environment Attributes:
    • Note: the form of these attributes may not be identical to the original fields
    • ultrawarm -> minecraft:gameplay/water_evaporatesminecraft:gameplay/fast_lavavisual/default_dripstone_particle
    • bed_works -> minecraft:gameplay/bed_rule
    • respawn_anchor_works -> minecraft:gameplay/respawn_anchor_works
    • cloud_height -> minecraft:visual/cloud_height
    • piglin_safe -> minecraft:gameplay/piglins_zombify
    • has_raids -> minecraft:gameplay/can_start_raid
    • natural -> minecraft:gameplay/nether_portal_spawns_piglinminecraft:gameplay/eyeblossom_openminecraft:gameplay/creaking_active
  • The effects 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)
        • Following environment attribues are applied only when the skybox is overworld:
          • minecraft:visual/sky_colorminecraft:visual/sun_angle,minecraft:visual/sunrise_sunset_colorminecraft:visual/moon_phaseminecraft:visual/moon_angleminecraft:visual/star_angleminecraft:visual/star_brightness
      • end (was minecraft:end effect ID)
      • Default: overworld
    • cardinal_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)
      • Default: default
  • The fixed_time field has been replaced by a has_fixed_time boolean (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_time being present will now instead use the has_fixed_time boolean

Biomes

  • Added new attributes field for biomes to specify Environment Attributes
    • Refer to the Environment Attributes section for information about the format of this field
    • Note: certain attributes, such as gameplay/fast_lava are not evaluated positionally and thus cannot be set on a Biome
  • Many subfields under effects have been migrated to Environment Attributes:
    • Note: the form of these attributes may not be identical to the original fields
    • fog_color -> minecraft:visual/fog_color
    • water_fog_color -> minecraft:visual/water_fog_color
    • sky_color -> minecraft:visual/sky_color
    • particle -> minecraft:visual/ambient_particles
    • ambient_soundmood_soundadditions_sound -> minecraft:audio/ambient_sounds
    • music -> minecraft:audio/background_music
    • music_volume -> minecraft:audio/music_volume
  • The following color fields in the effects definition now support colors as a string in the form "#rrggbb", or a float array in the form [red, green, blue]
    • water_color
    • foliage_color
    • dry_foliage_color
    • grass_color
    • grass_color_modifier

Tags

Block Tags

  • Added #can_glide_through - climbable blocks that can be glided through without stopping

Item Tags

  • Added #nautilus_taming_items - items that can be used to tame a Nautilus and a Zombie Nautilus
  • Added #nautilus_bucket_food - bucketed fish items that can be used to feed a tamed Nautilus and Zombie Nautilus
  • Added #nautilus_food - all items that can be used to feed a tamed Nautilus and Zombie Nautilus
  • Added #camel_husk_food - all items that can be used to feed a Camel Husk
  • Added #spears - all Spear weapons
  • Added #enchantable/lunge - all items that can be enchanted with the lunge enchantment
  • Added #enchantable/melee_weapon - all primary melee weapons including Swords and Spears
  • Renamed #enchantable/sword to #enchantable/sweeping
  • Updated #piglin_loved to include the Golden Nautilus Armor and the Golden Spear
  • Updated #piglin_preferred_weapons to include Golden Spears

Biome Tags

  • Removed #snow_golem_melts and #increased_fire_burnout - replaced by gameplay/snow_golem_melts and gameplay/increased_fire_burnout Environment Attributes
  • Removed #plays_underwater_music - replaced by only_underwater field in the audio/background_music Environment Attribute
  • Removed #has_closer_water_fog - replaced by visual/water_fog_end_distance Environment Attribute
  • Added #spawns_coral_variant_zombie_nautilus - biomes where the Coral Variant of the Zombie Nautilus can spawn
  • Removed #without_patrol_spawns - replaced by gameplay/can_pillager_patrol_spawn Environment Attribute

Entity Tags

  • Added #can_wear_nautilus_armor - entities that can equip Nautilus Armor
  • Added #nautilus_hostiles - entities that the Nautilus will be hostile towards when untamed
  • Changed #not_scary_for_pufferfish to include Nautilus and Zombie Nautilus
  • Added #burn_in_daylight - entities that burn in daylight
  • Added #can_float_while_ridden - entities that can float on water while being ridden
  • Changed #skeletons to include Parched
  • Changed #zombies to include Zombie Nautilus, Zombie Horse and Camel Husk
  • Changed #can_equip_saddle to include Nautilus, Zombie Nautilus, Zombie Horse and Camel Husk

Structure Tags

Enchantment Tags

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

Particles

Resource Pack Versions 70.0 through 75.0

  • Unifont has been updated to 17.0.01
  • block.vsh/fsh copies terrain.vsh/fsh and handles ad-hoc blocks (e.g. held by entities)
  • Added ChunkSection uniform, used by terrain.vsh (which replaces DynamicTransforms)
  • New shaders have been introduced to perform GPU based sprite animations
  • Globals uniform now has camera coordinates
  • Item textures were split out of the blocks atlas into a separate new items atlas that does not have mipmaps
    • All textures used in an item model have to come from the same (items or blocks) atlas
    • All textures used in a block model have to come from the blocks atlas
    • Textures used for still water and lava are now hardcoded to minecraft:block/water_still and minecraft:block/lava_still
  • To prepare for future work, the game will now print a warning if any defined sprites in any atlases share a name
  • Block model and state format has been expanded to allow more rotations
  • Textures for the Leather Horse Armor item and equipment asset have been split into a tinted base layer and an overlay layer

Textures

  • texture section of *.mcmeta files has two new fields: mipmap_strategy and alpha_cutoff_bias
    • mipmap_strategy has the following supported values:
      • mean averages both color and alpha between groups of four pixels for the current mipmap level to generate the next mipmap level pixel. This was and stays the default strategy for most solid or translucent full block textures
      • dark_cutout is similar to mean, but blends colors in a way that makes the pixels bordering cutout pixels darker. This was and stays the strategy for leaves and Mangrove Roots. It simulates dark interior of the blocks
      • cutout is a new strategy that always generates a mipmap based on the original texture instead of the previous mipmap. Used for most cutout blocks that became mipmapped in this version.
      • strict_cutout is a modification of cutout that uses stricter alpha cutoff value leading to the textures using this value disappearing at higher mipmap levels. Is used for flowers and similar blocks to avoid artifacts.
      • auto is the default value and will make the game to pick mean for textures that do not contain fully transparent pixels and cutout for those that do
    • alpha_cutoff_bias is a float field for controling the alpha bias for cutout textures
      • Technically there is no limit for this value, it can be negative as well, but it does not make sense to set this higher than 1.0 or lower than -1.0 since the texture will become either fully opaque or fully transparent
      • Default value for this field is 0.0, and it can be increased for textures that can become too transparent/thin at distance, or decreased if it's too "opaque"
      • It's recommended to increment or decrease this value in fine granuality for finding the sweet spot. As an example, 0.1 is used for kelp textures in order to prevent them being fully trasparent at distance
      • Only used for lower mips of cutout textures, does not change the alpha of first mip level, and has no effect on other textures
  • Glass, Glass Pane and Redstone dust now support translucent textures
  • Added gui/container/nautilus used for the Nautilus inventory UI

Block Sprites

Item Sprites

  • Added new item sprites:
    • item/nautilus_spawn_egg
    • item/zombie_nautilus_spawn_egg
    • item/camel_husk_spawn_egg
    • item/parched_spawn_egg
    • item/copper_nautilus_armor
    • item/iron_nautilus_armor
    • item/golden_nautilus_armor
    • item/diamond_nautilus_armor
    • item/netherite_nautilus_armor
    • item/netherite_horse_armor
    • item/leather_horse_armor_overlay
  • Added the following item sprites for the Spear weapon:
    • When in inventory: item/wooden_spearitem/stone_spearitem/copper_spearitem/iron_spearitem/golden_spearitem/diamond_spearitem/netherite_spear
    • When in hand: item/wooden_spear_in_handitem/stone_spear_in_handitem/copper_spear_in_handitem/iron_spear_in_handitem/golden_spear_in_handitem/diamond_spear_in_handitem/netherite_spear_in_hand

Entity Sprites

UI Sprites

  • Added new UI sprite:
    • container/slot/nautilus_armor
    • container/slot/spear - Spear icon used in the Smithing Table screen
    • container/slot/nautilus_armor_inventory - Nautilus icon used in Nautilus inventory UI
  • Added new nine-sliced sprites:
    • container/inventory/effect_background
    • container/inventory/effect_background_ambient
  • Removed the following sprites:
    • container/inventory/effect_background_large
    • container/inventory/effect_background_small

Celestials Atlas

  • A new celestials atlas has been introduced, including sprites for objects rendered in the sky such as the Sun and Moon
  • Includes sprites from <namespace>:textures/environment/celestial/<path>.png
  • The following textures have been moved or split:
    • textures/environment/sun.png -> sun
    • textures/environment/end_flash.png -> end_flash
    • textures/environment/moon_phases -> moon/full_moonmoon/waning_gibbousmoon/third_quartermoon/waning_crescentmoon/new_moonmoon/waxing_crescentmoon/first_quartermoon/waxing_gibbous

Mob Effect Sprites

  • Added new mob effect sprite:
    • breath_of_the_nautilus

Entity Textures

  • Added new entity textures:
    • entity/nautilus/nautilus.png
    • entity/nautilus/nautilus_baby.png
    • entity/nautilus/zombie_nautilus.png
    • entity/equipment/zombie_nautilus_coral.png
    • entity/equipment/nautilus_body/copper.png
    • entity/equipment/nautilus_body/iron.png
    • entity/equipment/nautilus_body/gold.png
    • entity/equipment/nautilus_body/diamond.png
    • entity/equipment/nautilus_body/netherite.png
    • entity/equipment/nautilus_saddle/saddle.png
    • entity/equipment/horse_body/leather_overlay.png
    • entity/camel/camel_husk.png
    • entity/equipment/camel_husk_saddle/saddle.png
    • entity/equipment/horse_body/netherite.png
    • entity/skeleton/parched.png
    • entity/skeleton/parched_overlay.png

Sounds

  • Added new sounds for Spears:
    • item.spear.hit
    • item.spear.use
    • item.spear.attack
  • Added special sounds for the Wooden Spear:
    • item.spear_wood.hit
    • item.spear_wood.use
    • item.spear_wood.attack
  • Added new sound events for the Lunge Enchantment:
    • item.spear.lunge_1
    • item.spear.lunge_2
    • item.spear.lunge_3
  • Added new sound events for the Nautilus:
    • entity.baby_nautilus.ambient
    • entity.baby_nautilus.death
    • entity.baby_nautilus.eat
    • entity.baby_nautilus.hurt
    • entity.baby_nautilus.swim
    • entity.nautilus.ambient
    • entity.nautilus.death
    • entity.nautilus.dash
    • entity.nautilus.dash_ready
    • entity.nautilus.eat
    • entity.nautilus.hurt
    • entity.nautilus.swim
    • entity.zombie_nautilus.ambient
    • entity.zombie_nautilus.death
    • entity.zombie_nautilus.dash
    • entity.zombie_nautilus.dash_ready
    • entity.zombie_nautilus.eat
    • entity.zombie_nautilus.hurt
    • entity.zombie_nautilus.swim
    • item.nautilus_armor.equip
    • item.nautilus_armor.unequip
    • entity.nautilus.riding
    • item.nautilus_saddle_equip
    • item.nautilus_saddle_underwater_equip
    • entity.baby_nautilus.ambient_land
    • entity.baby_nautilus.death_land
    • entity.baby_nautilus.hurt_land
    • entity.nautilus.ambient_land
    • entity.nautilus.dash_land
    • entity.nautilus.dash_ready_land
    • entity.nautilus.death_land
    • entity.nautilus.hurt_land
    • entity.zombie_nautilus.ambient_land
    • entity.zombie_nautilus.dash_land
    • entity.zombie_nautilus.dash_ready_land
    • entity.zombie_nautilus.death_land
    • entity.zombie_nautilus.hurt_land
  • Added new sound event for the Zombie Horse:
    • entity.zombie_horse.angry
    • entity.zombie_horse.eat
  • Added new sound events for the Parched:
    • entity.parched.ambient
    • entity.parched.death
    • entity.parched.hurt
    • entity.parched.step
  • Added new sound events for the Camel Husk:
    • entity.camel_husk.ambient
    • entity.camel_husk.dash
    • entity.camel_husk.dash_ready
    • entity.camel_husk.death
    • entity.camel_husk.eat
    • entity.camel_husk.hurt
    • entity.camel_husk.saddle
    • entity.camel_husk.sit
    • entity.camel_husk.stand
    • entity.camel_husk.step
    • entity.camel_husk.step_sand
  • Added new sound events for the Parrot:
    • entity.parrot.imitate.camel_husk
    • entity.parrot.imitate.parched
    • entity.parrot.imitate.zombie_horse
    • entity.parrot.imitate.zombie_nautilus

Particles

Item Models

  • Added new option for all item models: swap_animation_scale
    • Defaults to 1.0
    • Indicates how fast the item moves up and down when swapping items in hotbar
    • Large speeds can allow items that take more of the screen space to fully duck before swapped into the next item

Added new item model:

  • spear_in_hand - model for the Spear when in hand.

Block Models

  • Block model elements can now be rotated around multiple axes
    • Model is first rotated around X, then Y, then Z
    • New fields:
      • x - rotation around axis X in degrees, float, defaults to 0.0
      • y - rotation around axis Y in degrees, float, defaults to 0.0
      • z - rotation around axis Z in degrees, float, defaults to 0.0
    • Existing fields axis and angle can still be used
      • If both field sets are present, older notation takes presence
  • Existing restriction for angle value limiting them to [-45, 45] has been removed
    • Note: Names of faces are not influenced by rotation. Features that depend on them, like culling, will always use original directions

Block State Model Dispatch

  • Variants in block state dispatch files (defined in assets/.../blockstates/ can now be also rotated around Z axis
    • New optional field z has the same format as existing x and y fields: an integer with allowed values of 0 (default), 90180 and 270
    • Rotation around Z axis is applied after X and Y

Shaders & Post-process Effects

  • Added animate_sprite* core shaders, which use a new SpriteAnimationInfo uniform

Sprite Animations

  • Sprites (textures as part of a larger atlas) are now animated on the GPU rather than per-tick on the CPU
  • For regular frame-based animations, animate_sprite.vsh and animate_sprite_blit.fsh are used to perform the draw
  • For interpolated animations, animate_sprite.vsh and animate_sprite_interpolate.fsh are used to perform the draw
  • The UBO SpriteAnimationInfo contains information on where the sprite should be drawn to, within the greater texture atlas

Fixed bugs in 1.21.11

  • MC-2791 The player model in the inventory screen renders in the wrong orientation when it's not standing up straight
  • MC-22882 Ctrl + Q doesn't work on Mac
  • MC-53491 The world border can change in size when the game is paused
  • MC-54988 World border "warning" effect is not shown when graphics setting is set to "Fast"
  • MC-54989 Sliders can be moved to positions between available values
  • MC-73186 Gaps between the faces of item models and complex block models
  • MC-80476 On macOS, the "drop item stack" shortcut conflicts with the "quit Minecraft" shortcut
  • MC-114265 Mipmaps are too dark around transparent edges in textures (e.g. side of grass)
  • MC-146862 Long effect names cause text to appear outside the effect box
  • MC-147718 F1, F3, F3+[char] combos cannot be rebound
  • MC-149630 Some particles have very thin, vertical lines that flash in and out around the particles
  • MC-154651 Boats and rafts can break off paintings and item frames
  • MC-159275 Map player markers on maps of the nether don't rotate when doDaylightCycle is disabled
  • MC-162573 A white outline is rendered on composters' edges when viewed from far away
  • MC-171688 Invisibility status of LivingEntity is not updated when ActiveEffects are modified directly
  • MC-179383 Leaves not culled with graphics set to Fast
  • MC-188602 In non-natural custom dimensions, if "bed_works" is set to true, beds cannot be used to skip the night or set the spawn point
  • MC-189837 Nether fog is dark after rejoining a world that is thunder storming in the Overworld
  • MC-195505 Short grass is unaffected by mipmap levels
  • MC-199467 Certain entity animations stop after they've existed in world for too long
  • MC-234358 Moiré patterns / aliasing on certain objects when viewed from a distance
  • MC-237158 Magma blocks can generate on the ceilings of caves below aquifers
  • MC-238715 The "minecraft:block.chest.locked" sound cannot be heard by other players when attempting to open locked blocks
  • MC-241321 Darkness vignette effect is not shown when graphics setting is set to "Fast"
  • MC-245854 Fast graphics description is slightly misleading
  • MC-245895 View Bobbing stops working after long elytra flight
  • MC-248499 Potion UIs displayed within the inventory don't have cyan outlines if the effects are granted by beacons or conduits
  • MC-259368 Z-fighting occurs on trimmed armor items
  • MC-263562 World types in Realms backup info screen are untranslatable
  • MC-264151 Glass blocks do not use mipmapping, but glass panes do
  • MC-266425 Recipes for new waxed copper blocks are not grouped
  • MC-267364 Teleporting in the air is considered flying by server
  • 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-271941 Music discs can sometimes spawn inside jukeboxes when ejected from them
  • MC-274828 Horse armor item and entity model tint affects the entirety of the textures
  • MC-276382 Leather horse armor leggings & helmet parts are untextured
  • MC-276445 Highlighted text within the anvil and creative inventory interfaces renders blue making it difficult to read
  • MC-277768 Mipmapping no longer affects items
  • MC-278742 Creakings cannot be ridden by any entities using commands
  • MC-279076 Certain mobs will always retarget the player upon reloading the chunks, regardless of distance or gamemode
  • MC-295949 Flying through vines with an elytra cancels the flight
  • MC-296952 F4 key to toggle shaders cannot be rebound
  • MC-297328 Unloading and reloading an area causes invisible entities to be visible until you get close enough.
  • MC-297367 Checkbox filled status isn't narrated
  • MC-298405 Text components in the "label" of input controls in dialogs don't support "hover_event"
  • MC-298767 Piercing arrows phase through mobs that are in the same block
  • MC-298915 Multishot crossbows loaded in survival or adventure mode show their secondary charged projectiles on a separate line in the tooltip
  • MC-298942 Character body moves instead of the head when riding a happy ghast
  • MC-299136 Hyper Potions (Ian Tsuchiura) is not mentioned in the credits and splash texts
  • MC-299196 Waypoints fade out when an advancement is granted
  • MC-299876 Labels for booleans within dialogs are rendered in a slightly different shade of white than normal
  • MC-300588 Waypoint modifications reset upon death
  • MC-300642 When texture atlases are large, gaps are rendered between blocks that have a low resolution
  • MC-300979 The movement and duration messages in the demo introduction screen now have a text shadow
  • MC-301127 Music stops and restarts when trying to connect to a server when the music frequency is set to constant
  • MC-301271 Object text components do not render in some places unless there are text glyphs on the same line
  • MC-301311 The “Transfer Now” button no longer renders highlighted when the java realms information box is selected
  • MC-301424 entity_data item component detection is broken in resource packs
  • MC-301516 The mouse cursor doesn’t change to the hand shape when hovering over tabs in the “Create New World” menu and similar screens
  • MC-301517 The mouse cursor doesn’t change to the hand shape when hovering over arrows in the singleplayer, multiplayer, resource packs, and data packs menus
  • MC-301518 The mouse cursor doesn’t change to the hand shape when hovering over checkboxes
  • MC-301520 The mouse cursor doesn’t change to the hand shape when hovering over the difficulty lock button
  • MC-301527 The mouse cursor doesn’t change to the resize shape when scrolling in the advancements menu
  • MC-301557 The shading direction of the bolts on single and large copper chests does not match
  • MC-301595 Music toasts briefly appear in the pause menu after a song has finished
  • MC-301632 Comparators measuring jukeboxes do not update when a music disc is taken out of a jukebox if the music disc has already finished its song
  • MC-301754 The hand animation plays when right-clicking shelves with nothing in your hand
  • MC-301756 The “This is a Snapshot Realm…” box outline is rendered above the delete realm interface
  • MC-301763 The outline of the “Invited” element within the realms “Players” tab renders above other tabs when selected and when a scroll bar is present
  • MC-301805 Selected item outline on statistics screen renders outside of scissor area
  • MC-301879 Double weathered and waxed weathered copper chests' bottom texture looks off compared to the other variants
  • MC-301988 Buttons in the telemetry screen are not aligned properly in some languages
  • MC-302030 Setting commandBlocksEnabled to false prevents command blocks from being edited
  • MC-302071 Single and double copper chests have inconsistent side textures
  • MC-302111 Elements within the resource pack and data pack menus are not selected in order when using the TAB key
  • MC-302184 Copper golems in cave/void air never turn into statues
  • MC-302209 Debug renderers stop working when changing dimensions
  • MC-302246 Sprite object component does not render in server list depending on component tree
  • MC-302254 Cursor changes do not work for command suggestions
  • MC-302288 All shelves have the oak tan map color
  • MC-302325 When the player toggles a debug renderer using its hotkey (F3+B, F3+G) while in the debug options screen, the corresponding entry is not updated
  • MC-302338 The narrator button in the Accessibility Settings menu doesn't update upon pressing Ctrl+B
  • MC-302362 Clicking on "Singleplayer" or "Multiplayer" in the main menu then immediately clicking on a world or server joins it even when not clicking the play button
  • MC-302409 Lightning that strikes waxed lightning rods do not deoxidize nearby unwaxed copper blocks
  • 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-302482 Resource and data pack names can overlap selection boxes when the scroll bar is present
  • MC-302493 The mouse cursor doesn't change to the hand shape when hovering over the close button in the "Add Realm" screen
  • MC-302516 Zombie villagers spawn as the variant matching the biome at 0, 0, 0
  • MC-302549 Server main thread deadlock during respawn position resolution when the entire world spawn radius is filled with fluids
  • MC-302601 A white outline is rendered on anvils' top texture when viewed from far away