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)
- 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)
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 Note: To 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
- 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_sound, effects.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
- 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:
- 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:
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:
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
- 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
- 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
- delay_ticks: integer, the time in ticks required before weapon is effective
- dismount_conditions, knockback_conditions, damage_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
- damage_multiplier: float, the multiplier for the final damage from the relative speed
- 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
- dismounts: boolean, whether the attack dismounts the target
- 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 (none, whack, stab)
- duration: integer, the duration in ticks
- 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_entity, this, attacking_entity, last_damage_player, direct_attacker, target_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_contents, minecraft: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_evaporates, minecraft:gameplay/fast_lava, visual/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_piglin, minecraft:gameplay/eyeblossom_open, minecraft: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_color, minecraft:visual/sun_angle,minecraft:visual/sunrise_sunset_color, minecraft:visual/moon_phase, minecraft:visual/moon_angle, minecraft:visual/star_angle, minecraft:visual/star_brightness
- 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_sound, mood_sound, additions_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_spear, item/stone_spear, item/copper_spear, item/iron_spear, item/golden_spear, item/diamond_spear, item/netherite_spear
- When in hand: item/wooden_spear_in_hand, item/stone_spear_in_hand, item/copper_spear_in_hand, item/iron_spear_in_hand, item/golden_spear_in_hand, item/diamond_spear_in_hand, item/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_moon, moon/waning_gibbous, moon/third_quarter, moon/waning_crescent, moon/new_moon, moon/waxing_crescent, moon/first_quarter, moon/waxing_gibbous
Mob Effect Sprites
- Added new mob effect sprite:
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), 90, 180 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
Get the Release
To install the Release, open up the Minecraft Launcher and click play! Make sure your Launcher is set to the "Latest Release” option.
Cross-platform server jar:
As we are preparing to remove obfuscation from Java Edition, you can also get a non-obfuscated experimental version of this snapshot using the Minecraft Launcher:
- Download this zip file
- Unpack the folder into your "versions" folder of your local Minecraft application data folder
- Start (or restart) the Launcher
- Create a new launch installation and select the "unobfuscated 1.21.11_unobfuscated" version
- Start the game and the remaining files will be downloaded
An unobfuscated server jar can be found here:
Report bugs here:
Want to give feedback?
Bu hikayeyi paylaş