View changelog
Minecraft 1.21.2 Release
Bundles of Bravery Out Now for JavaWe're now releasing the Bundles of Bravery game drop for Java Edition, featuring space-saving Bundles and the addition of Hardcore Mode to Realms!
This game drop is all about embarking on a new adventure, collecting everything you can along the way, and definitely not dying. Together with these additions, we've also added baby variants of Dolphins and Squids, given Redstone Torches an updated look, optimized the game, and fixed over 300 bugs! To top it off, there's also a heap of technical changes, bringing even more control to creators.
Goodness, that was a lot, wasn't it? Perhaps we should've stuffed it all into a Bundle?
New Features
- Added Bundles
Bundles
- A Bundle is an item that can pack different items together into the same stack
- A Bundle only fits one stack (usually 64 items) but it can be a mixture of many different item types
- You can insert items into a Bundle directly in the inventory
- Bundles have a tooltip that shows the items inside
- If a Bundle has less than 12 item types inside, the tooltip will show all of them
- Otherwise, the tooltip will show the top three rows of items (at least 8 item types) and the others will be hidden below
- You can select any of the visible items to pull out of the Bundle
- Right-click to take the first item
- Use the scroll wheel to select a different item, then right-click to take it
- When selecting an item to remove, the Bundle icon shows that item poking out of the Bundle
- When holding a Bundle in hand, you can empty items onto the ground by right-clicking or holding right-click
- The Bundle is crafted with one String above one Leather
- The controls have changed from the original prototype:
- Use left-click to put an item into a Bundle
- Use right-click to remove the top item type from a Bundle
- When the Bundle tooltip is visible, use the mouse wheel to select a different item type, then use right-click to remove it
Changes
- Enabled hardcore mode for Realms
- Updated the world creation screen for Realms
- Trial Chambers have been updated with new variations
- Added baby versions of Dolphins, Squids, and Glow Squids
- Added Salmon variants
- Sneaking while bouncing on a Slime Block will no longer cause fall damage
- Tweaks to existing Blocks, Items and Entities
- Thrown Ender Pearls now load and tick chunks
- Banner Pattern items have new names and icons
- Redstone Torches have been given a new look to give them a unique and distinctive identity
- Added two new Banner Patterns: Field Masoned, and Bordure Indented
- The distance that Bees fly as well as the cooldowns between Bee behaviors have been tweaked
- Raider spawn logic has been updated
- Smithing Template items are now named after their template type instead of the generic "Smithing Template" name
- They instead specify that they are a Smithing Template through a subtitle in the hover text
- Equipping a Carved Pumpkin on your head now removes the player marker from other players' maps
- Various items and blocks have had their assigned rarities changed
- Introduced new accessibility features
- The game will now limit the maximum frame rate when it is minimized or when the player is AFK
- A new video setting is introduced to configure this behavior
- Improvements to the game's performance
- Added language support for Tzotzil, Belarusian (Latin), and High Norwegian
- Throwing items out of your inventory very quickly in creative mode is now throttled
Realms
- Now uses the normal, fully-featured world creation screen
- Enables game rule customization
- Enables data pack customization
- The game mode for the last active world on a Realm will now be visible on the main Realms screen if applicable
Hardcore Mode
- Hardcore mode is now available in Realms
- It is accessible when creating a new world or recreating an existing one
Tweaks to Blocks, Items and Entities
- Wolves can now also be fed Cod, Cooked Cod, Salmon, Cooked Salmon, Tropical Fish, Pufferfish and Rabbit Stew
- Bats can now spawn at any height, not just below sea level, as long as it is dark enough and there is a solid block to spawn on
- Breeze no longer have a minimum distance required to attack a target
- The portal cooldowns of vehicles and projectiles have been tweaked
- After using a Nether Portal, Minecarts and Boats now only need to leave the portal for 0.5 seconds to use a portal again (down from previous 15 seconds)
- After using a Nether Portal, projectiles such as Ender Pearls and Arrows now only need to leave the portal for 2 ticks to use a portal again (down from previous 15 seconds)
- Projectiles such as Arrows, Tridents and Fishing Bobbers now bounce off the world border if hit
- Being killed by a Mace smash attack now shows a new death message
- Added unique block sounds to the Monster Spawner block
- Enchanted Shields now have the same reduced glint as enchanted armor
- Items that convert to another item after consumption will no longer do so in creative mode
- For example, a Honey Bottle will no longer add a Glass Bottle to your inventory when consumed in creative mode
- Suspicious Stew recipes are now shown in the Recipe Book
- Shulker Box coloring recipes are now shown in the Recipe Book
- Shulker Box and Bundle coloring recipes no longer work when trying to apply a Dye to an item of the same color
Trial Chambers
- Added new variations to the hallways, including "Encounters": Short challenges leading to a larger chamber
- Beds in intersections now have their colors randomized
- Replaced the empty Chests at the entrance of chamber with a Hopper and Barrel
New Mob Variation
- Added baby versions of Dolphins, Squids, and Glow Squids
- Squid Spawn Eggs will only spawn adult Squids
- There is a 5% chance of Squids spawned in groups in the wild to be a baby
- Salmon may now spawn as Small, Medium (current size), or Large
Ender Pearl Chunk Loading
- Ender Pearls now ensure that the chunk they are in or travel into is always loaded and ticking
- They also load chunks when crossing to a new dimension
- This ensures that Ender Pearls can always land, and makes cross-dimensional Ender Pearl travelling more predictable
- Ender Pearls now unload when a player logs out, and reappear whenever that player logs back in, similar to how ridden entities currently behave
Banner Patterns
- Each Banner Pattern item now includes their pattern type in their name instead of as a subtitle
- Unique item textures have been added to better distinguish each pattern type
- The following Banner Patterns have been added:
- Field Masoned
- Crafted with Paper and Bricks
- Bordure Indented
- Crafted with Paper and Vines
- Field Masoned
- The Bricks and Curved Border patterns in the Loom can no longer be accessed without the above Banner Patterns
Bee Behavior
- Bees now wander around randomly for less time after exiting a nest/hive
- A Bee with a known nest or hive will now stay closer to it, reducing the distance it travels and reducing the risk of getting lost
- Significantly increased the amount of time a Bee can take to return to a known nest/hive before it gives up trying to return home
- Bees are now a lot less likely to get stuck when on corners or when close to a nest/hive they are trying to return to
- Bees are also now a lot less likely to try and pathfind to a flower that it cannot reach
Raider Spawning
- A triggered raid will no longer start if the Raiders cannot find a place to spawn within a reasonable distance of the village they are trying to raid
- In order for a Raid to start, Raiders must now find a place to spawn no more than 96 blocks vertically above or below the Village center
- It is now much less likely for Raiders to not find a valid place to spawn when raiding
User Interface
- The Recipe Book now repeats the last selected recipe when a "selected" key is pressed (space or either enter key)
- Updated slot highlight in the UI so that the item texture has better visibility
- The previous textures have been added to Programmer Art resource pack
- Tweaked air bubbles UI
- Added an empty state for air bubbles along with a wobble when the player is drowning
- Added a popping sound when the bubbles pop in the UI
Rarity
- Rarity is a set of categories which determine the color used to display the name of an item or block
- It has no gameplay impact, but is used to signal how difficult something is to obtain
- By default, unless specified otherwise, all items and blocks have a rarity of Common which displays their name in the color white
- We have re-evaluated the rarity of all items and blocks in the game to more accurately reflect the current challenge of obtaining them, given the following guidelines:
- Items and blocks become more rare depending on the following factors:
- The chance of finding it in a loot table, including mob drops
- The amount of travelling required to obtain it
- The difficulty of any obstacle which must be overcome to obtain it
- The possible amount of that item or block which exists in the world
- Any item or block which can be crafted must inherit the highest rarity of its crafting ingredients
- For example, a Mace has an Epic rarity because one of its ingredients (the Heavy Core) has an Epic rarity
- Likewise, any crafted item which has only Common crafting ingredients must also be Common
- Items and blocks become more rare depending on the following factors:
- The lists below detail the items and blocks which have changed to that rarity category
Common
- End Crystal
- Golden Apple
Uncommon
- Sniffer Egg
- Chainmail Helmet
- Chainmail Chestplate
- Chainmail Leggings
- Chainmail Boots
- Recovery Compass
- Disc Fragment 5
- Nautilus Shell
- Echo Shard
- Goat Horns
- Pottery Sherds
- Ominous Bottles
- Ominous Banner
- Netherite Upgrade
- Sentry Armor Trim
- Dune Armor Trim
- Coast Armor Trim
- Wild Armor Trim
- Tide Armor Trim
- Snout Armor Trim
- Rib Armor Trim
- Wayfinder Armor Trim
- Shaper Armor Trim
- Raiser Armor Trim
- Host Armor Trim
- Flow Armor Trim
- Bolt Armor Trim
- The following Music Discs:
- 13
- Cat
- Blocks
- Chirp
- Creator (Music Box)
- Far
- Mall
- Mellohi
- Stal
- Strad
- Ward
- 11
- Wait
- Relic
- 5
- Precipice
Rare
- Enchanted Golden Apple
- Enchanted Golden Apples have become more common in recent years due to being accessible in both Ancient Cities and Trial Chambers, warranting a demotion to Rare instead of Epic
- Trident
- We recently increased Trident's rarity up to Epic from Common, but after re-evaluating felt that it was easier to obtain than other items in the Epic category such as Heavy Cores or Elytras
- Nether Star
- Ward Armor Trim
- Eye Armor Trim
- Vex Armor Trim
- Spire Armor Trim
- Wither Skeleton Skull
- Skull Charge Banner Pattern
- Now that Wither Skeleton Skulls are Rare, these banner patterns should be Rare as well
- Thing Banner Pattern
- Now that Enchanted Golden Apples are Rare, these banner patterns should be Rare as well
- The following Music Discs:
- Pigstep
- otherside
- Creator
Epic
- Elytra
- Dragon Head
- Silence Armor Trim
Accessibility
- Added an accessibility option to make targeted block's outlines more visible
High Contrast Resource Pack
Added the following high contrast textures:
- Frame and background textures for tooltips
- Slot background and highlight textures for the Bundle tooltip
Inactivity FPS Limit
- The game will now limit the maximum frame rate in certain situations
- These situations are controlled by a new Video Setting:
Reduce FPS when
- Possible options are:
Mimimized
- Limits frame rate to 10 FPS only when the game window is minimized
AFK
- Limits frame rate to 30 FPS when the game is not getting any player input for more than a minute
- Further limits to 10 FPS after 9 more minutes of no input
- Also limits to 10 FPS when the game window is minimized
- The default is
AFK
Performance
- Frame rate has been improved when using higher render distances
- Significantly reduced the performance impact when turning the camera
- The performance of the server (tick rate) has been improved when using higher render distances
- Furthermore, the impact of loading and generating chunks on tick rate has been reduced
Player Safety
Skin Reporting
- Added reporting reason "Sexually inappropriate"
- This is intended for skins that are graphic in nature relating to sexual acts, sexual organs, and sexual violence
- Removed reason "Defamation" for skins due to lack of relevance
- Removed reason "Threat of harm to others" due to already being covered by "Harassment or bullying" reporting reason
Name Reporting
- Added a text label above the description box to clarify that only the name of the player is subject to the report
Technical Changes
- The Data Pack version is now 57
- Resource Pack version is now 42
- Updates to available
server.properties
options - Added some information about data pack structure (for example, data-driven registries) to generated reports
- Removed the
bundle
feature flag and built-in data pack
server.properties
- New option:
pause-when-empty-seconds
(default:60
)- When set to a positive value, causes the server to pause when no player has been online for that many seconds
- Removed options:
spawn-animals
andspawn-npcs
- Extended the
text-filtering-config
option inserver.properties
in order to support an internal migration for Realms Profanity Filtering- Servers currently utilizing the
text-filtering-config
will be able to continue to do so without any changes
- Servers currently utilizing the
Network Protocol
- Added
minecraft:client_tick_end
serverbound packet during play phase, sent when the client finishes processing its current tick - Added ability for custom servers to override the order that players appear in the "tab list"
- This is controlled by a non-negative ordering index that is sorted highest to lowest
- The client now shares the state of the "Particles" limiter option to be used by custom servers
- The server will now only send known recipes to the client
- Temporary option for ignoring connection errors on client side (
strictErrorHandling
) has been removed
Data Pack Versions 49 through 57
- Added new Tags
- Changes to Commands
- Added new
disablePlayerMovementCheck
Game Rule - Changes to Item Components
- New data-driven registries for Goat Horn instruments and Trial Spawner configurations
- Added new fields to painting variant definitions
- Added new functionality to Enchantment Effects
- The
crafting_special_suspiciousstew
recipe type has been removed - Recipe ingredient format has been simplified
- Added new Loot Tables
- Added new Advancement Predicates
- Changes to Advancement Triggers
- Expanded the functionality of the
Lock
property on Containers - Added optional field
explosion_power
totnt
andtnt_minecart
entity types- Defaults to
4
- For TNT Minecarts, the value is added to speed-based explosion power
- Defaults to
boat
andchest_boat
entity types have been split into separate types- Changes to Attributes
- Entities' rotation on the x-axis is now clamped between -90 and 90
- Added new Particles and updated some Particle formats
Tags
Block Tags
bats_spawnable_on
: Blocks that Bats can spawn on
Item Tags
furnace_minecart_fuel
: Items that can be used to refuel a Furnace Minecartvillager_picks_up
: Items that a Villager will try to pick up from the ground- Added new tags to control which items can be used to craft and repair various tool sets:
wooden_tool_materials
iron_tool_materials
gold_tool_materials
diamond_tool_materials
netherite_tool_materials
- Added new tags to control which items can be used to repair various armor sets:
repairs_leather_armor
repairs_iron_armor
repairs_chain_armor
repairs_gold_armor
repairs_diamond_armor
repairs_netherite_armor
repairs_turtle_helmet
repairs_wolf_armor
piglin_safe_armor
: Items that, when worn by a player, will cause Piglins to not get angryduplicates_allays
: Items that can be used to duplicate Allays when dancingbundles
: All Bundle Itemspanda_eats_from_ground
: Items that a Panda will pick up from the ground and eatbrewing_fuel
: Items that can be used as fuel in a Brewing Standmap_invisibility_equipment
: Items that can be equipped to hide the player marker on other players mapsgaze_disguise_equipment
: Items that can be equipped to disguise the player looking for other mobs
Commands
- Invalid
selector
patterns in Chat Components will now cause commands to fail to parse, instead of resolving to an empty string - The
loot
command will now return an error when trying to drop from a block without a loot table (such asair
) - You can no longer ride Leash Knots, Lighting Bolts and Fishing Bobbers with the
ride
command - Added the
rotate
command
rotate
Command
New command to rotate an entity.
Syntax:
rotate <target> <rotation>
rotate <target> facing <facingLocation>
rotate <target> facing entity <facingTarget> [<facingAnchor>]
Parameters:
target
: The entity to rotaterotation
: Two rotation values in degrees denoting horizontal and vertial rotation- May use relative (
~
) coordinate notation to specify rotation relative to current context rotation
- May use relative (
facingLocation
: The coordinates of a location in the world for the rotated entity to facefacingTarget
: An entity for the rotated entity to facefacingAnchor
: Specifies the anchor of thefacingTarget
entity to rotate towards -feet
oreyes
(by defaultfeet
)
Note: parameters have the same meaning as in the teleport
command.
Game Rules
disablePlayerMovementCheck
- When true, disables player movement speed restriction
- Default value:
false
- This behaves the same as the
disableElytraMovementCheck
rule, but applies irrespective of flying with Elytra
- Default value:
Changed Item Components
minecraft:food
- The food component has been changed to become a data container which only holds the food stats applied when the item is consumed
- This component no longer gives the item the ability to be consumed, and must be done instead with the new
consumable
component
- This component no longer gives the item the ability to be consumed, and must be done instead with the new
- Format: object with fields
nutrition
: Non-negative integer, the amount of nutrition applied when consumedsaturation
: Float, the amount of saturation applied when consumedcan_always_eat
: Boolean, whether it can be consumed even when the user is not hungry- Default value:
false
- Default value:
minecraft:fire_resistant
-> minecraft:damage_resistant
- Has a new field:
types
, hash-prefixed damage type tag- Items with this component, when in entity form, will be resistant to the damage types included in the tag
- This component also affects whether the equipped item will be damaged when the wearer is hurt by a given damage type
minecraft:item_name
- This component is now always present on every item
- Name provided by this component always has the lowest priority
- That means it will be overriden by components such as
minecraft:potion_contents
orminecraft:written_book_content
- That means it will be overriden by components such as
minecraft:potion_contents
- Added an optional string field:
custom_name
- When present, it will be used to generate containing stack name
- For example, if the value is
foo
and the item isminecraft:lingering_potion
, the name of item will be translation ofitem.minecraft.lingering_potion.effect.foo
New Item Components
minecraft:consumable
- If present, this item can be consumed on use
- If
food
,potion_contents
,ominous_bottle_amplifier
orsuspicious_stew_contents
are also present on this item, consuming this will apply the stats and effects of those components
- If
- Format: object with fields
consume_seconds
: Non-negative float, the amount of seconds it takes for a player to consume the item- Default value:
1.6
- Default value:
animation
: The animation used during consumption of the item- Default value:
eat
- Accepted values:
none
eat
drink
block
bow
spear
crossbow
spyglass
toot_horn
brush
- Default value:
sound
: Sound event, the sound used during and on completion of the item's consumption- Default value:
entity.generic.eat
- Default value:
has_consume_particles
: Boolean, whether consumption particles are emitted while consuming this item- Default value:
true
- Default value:
on_consume_effects
: An optional list of side effects which take place as a result of consuming this item- There are currently 5 valid consume effects, identified by a
type
field minecraft:apply_effects
effects
: A list of status effect instances applied once consumedprobability
: Float, the probability the above effects will be applied once consumed- Default value:
1.0
- Default value:
minecraft:remove_effects
effects
: A set of status effects removed once consumed, as either a Status Effect ID, hash-prefixed tag, or list of IDs
minecraft:clear_all_effects
- Clears all status effects of the consumer
minecraft:teleport_randomly
diameter
: Positive float, the diameter that the consumer will be teleported within- Default value:
16.0
- Default value:
minecraft:play_sound
sound
: Sound event, played once consumed
- There are currently 5 valid consume effects, identified by a
- e.g.
consumable={consume_seconds:3.0, animation:'eat', sound:'entity.generic.eat', has_consume_particles:true, on_consume_effects:[{type:'minecraft:clear_all_effects'}]}
minecraft:use_remainder
- If present, will replace the item with a remainder if its stack count has decreased after use
- If the item has a stack count higher than 0 after use, the remainder item will be added to the inventory
- If the inventory is full when trying to add a remainder item to it, it will be dropped on the ground
- Format: single value as an item stack
- e.g.
use_remainder={id:'minecraft:stick',count:1}
- e.g.
minecraft:use_cooldown
- If present, this item will apply a cooldown to all items of the same type or "cooldown group" once used
- Format: object with fields
seconds
: Positive float, the amount of seconds the cooldown will take place forcooldown_group
: Optional namespaced id representing the cooldown group- Items with the same cooldown group will share any cooldown applied to another item within that group
- If not specified, the cooldown group defaults to the base item type's ID
- e.g.
use_cooldown={seconds:1.5,cooldown_group:"minecraft:custom_weapon"}
minecraft:item_model
- Controls item model
- Present on every item
- Format: namespaced ID
namespace:id
will reference model/assets/<namespace>/models/item/<id>
minecraft:equippable
- If present, this item can be equipped by players in the selected slot
- Format: object with fields
slot
: one ofhead
,chest
,legs
,feet
,body
,mainhand
, oroffhand
equip_sound
(optional): Sound event to play when the item is equipped- If not specified, the default armor equip sound will be played
model
(optional): namespaced ID of the equipment model to use when equipped- These model definitions are loaded from Resource Packs
- If not specified, will fall back to rendering as the item itself when in the head slot (or no rendering if not applicable)
camera_overlay
(optional): namespaced ID of the overlay texture to use when equipped- If not specified, no overlay is used
- The ID will address a texture under the
textures/
folder and automatically assumed to be.png
- For instance,
misc/pumpkinblur
addressestextures/misc/pumpkinblur.png
- For instance,
allowed_entities
(optional): Entity ID, Entity Tag, or list of Entity IDs to limit which entities can equip this item- If not specified, any entity (that can wear this kind of equipment) is allowed to equip this item
dispensable
: boolean (default:true
), whether the item can be equipped by using a Dispenser- If the item type has special dispenser behavior, this will have no effect
swappable
: boolean (default:true
), whether the item can be equipped into the relevant slot by right-clickingdamage_on_hurt
: boolean (default:true
), whether this item will be damaged when the wearing entity is damaged- e.g.
equippable={slot:'chest',equip_sound:'item.armor.equip_chain'}
minecraft:glider
- If present, this item will allow players to glide (as with Elytra) when equipped
- Format: empty object
- e.g.
glider={}
- e.g.
minecraft:tooltip_style
- If present, this item can use custom sprites for its tooltip background and frame
- Format: namespaced ID for a tooltip style
- A tooltip style of
namespace:path
will use sprites with IDs:<namespace>:tooltip/<path>_background
and<namespace>:tooltip/<path>_frame
- e.g.
tooltip_style='minecraft:special_sword'
- A tooltip style of
minecraft:death_protection
- If present, this item will protect the holder from dying by restoring a single health point
- Format: object with fields
death_effects
: An optional list of effects that are applied when the item protects the holder- These effects are the same as those specified by the
on_consume_effects
field in theconsumable
component
- These effects are the same as those specified by the
minecraft:repairable
- If present, and this item is damageable, this item can be repaired in an Anvil using the specified ingredient
- Format: object with fields
items
: Item, list of Items, or hash-prefixed Item Tag matching what can be used to repair this item- e.g.
repairable={items:'stick'}
minecraft:enchantable
- If present (and any enchantments are applicable), this item can be enchanted in an Enchanting Table
- Format: object with fields
value
: Positive integer, a higher value allows enchantments with a higher cost to be picked- e.g.
enchantable={value:15}
Instruments
Goat Horn instruments are now defined in a data pack registry folder called instrument
. Like other registries, changing this content in data packs is considered experimental and requires a full world re-load to take effect.
Fields:
sound_event
: The sound event the instrument playsrange
: The maximum range (in blocks) at which the sound can be hearduse_duration
: The amount of time (in seconds) the instrument is considered in use after triggering, which also serves as its cooldowndescription
: A Text Component used as the descrpition of the instrument in item tooltips
Trial Spawner Configurations
Trial Spawner configurations are now defined in a data pack registry folder called trial_spawner
. Like other registries, changing this content in data packs is considered experimental and requires a full world re-load to take effect.
- Has the same format as the
normal_config
andominous_config
fields in Trial Spawner blocks - Inline configurations inside Trial Spawner blocks are supported in the same format as before
- These fields may however now instead be replaced with a namespaced ID reference to a Trial Spawner configuration
Painting Variant
- Added new optional fields
author
andtitle
, holding Text Components to be displayed in the creative menu tooltip - This replaces previous mechanism where those values were derived from variant name
- Author tooltip has been removed for
earth
,wind
,fire
,water
andwither
variants
Enchantment Effects
- Added support for the Enchantment trigger
projectile_spawned
in the following items:- Snowballs
- Tridents
- Small Fireballs
- Thrown Potions
- Ender Pearls
- Fishing Rod
- Firework Rocket
- Wind Charge
- Eggs
- Renamed effect type
damage_item
tochange_item_damage
, now also supports negative amounts
Recipes
The format used for recipe ingredients has been simplified and aligned with other fields that accept item lists (like item predicates):
- For items:
{ "item": "<item id>" }
now becomes"<item id>"
- For tags:
{ "tag": "<tag id>" }
now becomes"#<tag id>"
- Lists of items are still allowed, but tags can no longer appear in such list
- Remaining restrictions:
minecraft:air
can't appear anywhere in an ingredient- Ingredients must have at least one tag or item
- The fields
template
,base
andaddition
insmithing_transform
andsmithing_trim
recipes are now optional instead of accepting empty list
crafting_transmute
Recipe Type
- New crafting recipe type has been introduced:
crafting_transmute
- When matched, the output will copy the input item stack, changing the item type but preserving all stack components
- This completely replaces
crafting_special_shulkerboxcoloring
- Fields:
category
- crafting book category, one ofbuilding
,redstone
,equipment
,misc
group
- optional stringinput
- ingredient for item to copymaterial
- additional ingredient to useresult
- item type to use for output
Loot Tables
- The special loot table
empty
has been removed and is no longer defined in the Vanilla data pack - Snow Golem shearing is now controlled by a loot table found at
shearing/snow_golem
- Tool value (used for functions like
match_tool
) is now available for some additional loot table typesarchaeology
- used brushvault
- inserted key (not available when displaying items)shearing
- shears
- Chickens laying eggs is now controlled by a loot table found at
gameplay/chicken_lay
- Armadillos randomly dropping scutes is now controlled by a loot table found at
gameplay/armadillo_shed
Sheep Loot Tables
- Sheep now always uses a single loot table
entities/sheep
- Wool drops are still defined in sub-tables in
entities/sheep/<color>
, but are just dispatched from the main table- Note: Mutton drop is now controlled by the main table, while sub-tables are responsible only for the wool drop
- Sheep shearing is now controlled by loot table found as
shearing/sheep
- This loot table also has dispatches to sub-tables for specific wool colors, which are found as
shearing/sheep/<color>
- This loot table also has dispatches to sub-tables for specific wool colors, which are found as
Mooshroom shearing Loot Table
- Mooshroom shearing is now controlled by loot table found as
shearing/mooshroom
- Sub-tables for specific variants are found as
shearing/mooshroom/<variant>
Hero of the Village Gift Loot Tables
- The loot given by Villagers is now controlled by two additional loot tables:
gameplay/hero_of_the_village/unemployed_gift
- used if the Villager is unemployedgameplay/hero_of_the_village/baby_gift
- used if the Villager is a baby
Predicates
minecraft:boat
entity sub-predicate has been removed, since Boats no longer have variants
sheep
Entity Sub-predicate
- Added
minecraft:sheep
entity sub-predicate - Fields:
sheared
- optional booleancolor
- optional wool dye color
salmon
Entity Sub-predicate
- Added
minecraft:salmon
entity sub-predicate - Fields:
variant
: one ofsmall
,medium
,large
player
Entity Sub-predicate
- Added a new field in the
minecraft:player
entity sub-predicate,input
- Can be used to detect which movement keys the player is pressing
- If specified, the predicate matches the corresponding keybinds that the player is pressing
- The following fields may be specified to match player inputs:
forward
: boolean (optional)backward
: boolean (optional)left
: boolean (optional)right
: boolean (optional)jump
: boolean (optional)sneak
: boolean (optional)sprint
: boolean (optional)
Advancements
Triggers
minecraft:killed_by_crossbow
-> minecraft:killed_by_arrow
- Will now trigger whenever an Arrow kills an entity, not just when fired from a Crossbow
- Has a new optional Item Predicate field,
fired_from_weapon
- Can be used to match the item used to shoot the Arrow
Container Locks
- The
Lock
field of containers has been renamed tolock
and is now an item predicate- Any items which match the predicate can open the container
- The
lock
data component is now also an item predicate
Boat Split
- Variants of Boats and Chest Boats now have separate entity types instead of a
Type
field - Removed entites:
minecraft:boat
minecraft:chest_boat
- New entities:
- Boat without chest:
Type=oak
->minecraft:oak_boat
Type=spruce
->minecraft:spruce_boat
Type=birch
->minecraft:birch_boat
Type=jungle
->minecraft:jungle_boat
Type=acacia
->minecraft:acacia_boat
Type=cherry
->minecraft:cherry_boat
Type=dark_oak
->minecraft:dark_oak_boat
Type=mangrove
->minecraft:mangrove_boat
Type=bamboo
->minecraft:bamboo_raft
- Boat with chest:
Type=oak
->minecraft:oak_chest_boat
Type=spruce
->minecraft:spruce_chest_boat
Type=birch
->minecraft:birch_chest_boat
Type=jungle
->minecraft:jungle_chest_boat
Type=acacia
->minecraft:acacia_chest_boat
Type=cherry
->minecraft:cherry_chest_boat
Type=dark_oak
->minecraft:dark_oak_chest_boat
Type=mangrove
->minecraft:mangrove_chest_boat
Type=bamboo
->minecraft:bamboo_chest_raft
- Boat without chest:
Attributes
- Attribute IDs no longer have
generic.
,player.
andzombie.
prefixes - Added
tempt_range
attribute that controls the range, in blocks, at which temptable mobs can be tempted
Particles
- Added
block_crumble
particle with the following fields:block_state
- the block state of the block to crumble
- Added
trail
particle with the following fields:color
- the color of the trailtarget
- the target position that the particle should move towards
- The format of color fields in particle options is now more standardized:
- RGB fields can always be encoded either as a vector of floats (order:
[R,G,B]
) or as a single packed integer (order:RGB
) - ARGB fields can always be encoded either as a vector of floats (order:
[R,G,B,A]
or as a single packed integer (order:ARGB
) - Affected fields:
minecraft:trail.color
minecraft:dust.color
(previously accepted only vector of floats)minecraft:dust_color_transition.from_color
(previously accepted only vector of floats)minecraft:dust_color_transition.to_color
(previously accepted only vector of floats)
- RGB fields can always be encoded either as a vector of floats (order:
Resource Pack Versions 35 through 42
- Added new GUI sprites
- Added new sounds
- Added support for emissive layers for block models
- Added new
broken
item model property - Added support for custom equipment texture layers
- Textures for entity equipment have been moved and renamed
- Updated the format of post-processing effect definitions
- The texture map for the Arrow and Bee Stinger models have been updated
- The model and UV mapping of the Dragon Egg have been updated
- Updated textures and models for the Bundle item
- Bundle icon has new models and textures
- Bundle models and textures have 16 colored variants
- The models and UV mapping related to the Torch and blocks containing Redstone Torch have been updated
- Removals and renames of some translations is now automatically applied at startup
GUI Sprites
- The
nine_slice
GUI sprite scaling mode has a new optional boolean property:stretch_inner
- If
true
, the inner parts of the texture (i.e. not the corners) will be stretched instead of tiled - If not specified, defaults to
false
as before
- If
- The tooltip background and frame may now be customized by replacing sprites:
tooltip/background
: The background of the tooltiptooltip/frame
: The frame appearing around the tooltip- Items with a custom
tooltip_style
component will use sprites with IDs:<namespace>:tooltip/<path>_background
and<namespace>:tooltip/<path>_frame
- The appearance of a highlighted slot may now be customized by replacing sprites:
container/slot_highlight_front
: The sprite to render in front of highlighted slotscontainer/slot_highlight_back
: The sprite to render behind highlighted slots
- Likewise, the appearance of a highlighted item within the Bundle can be customized with the following sprites:
container/bundle/slot_highlight_front
container/bundle/slot_highlight_back
- Removed
container/bundle/background
,container/bundle/slot
, andcontainer/bundle/blocked_slot
sprites - Added
container/bundle/slot_background
sprite for bundle slot background - Added
container/bundle/bundle_progressbar_fill
,container/bundle/bundle_progressbar_border
, andcontainer/bundle/bundle_progressbar_full
sprites - Added
hud/air_empty
sprite for consumed bubble slots
Sounds
- Added break, fall, hit, place, and step sounds for the Spawner block
- Added sound
ui.hud.bubble_pop
for when an air bubble in the UI pops - Added sound
item.bundle.insert_fail
for when failing to add an item to a Bundle
Emissive Layers for Block Models
- Added an optional
light_emission
field to block model elements - Integer value between 0 and 15, with 0 being the default value (no light emission)
- If specified and non-zero, this will behave as the minimum light level that the element can receive
Item Models
- All item models can now use the
broken
property in model overrides that was previously limited to just Elytra- This will have a value of 1 if the item has 1 durability left, or 0 otherwise
Custom Equipment Layers
The appearance of equipment when equipped by players or certain mobs can now be customized by defining 'equipment models' in the Resource Pack.
- Equipment model definitions are loaded from
assets/<namespace>/models/equipment/<path>.json
- These can then be referenced by the
equippable
component with a model id ofnamespace:path
- These can then be referenced by the
- The model definition is an object with fields:
wolf_body
,horse_body
,llama_body
,humanoid
,humanoid_leggings
,wings
- All fields are optional, and can be used to specify a list of layers for the given model layer type
- Each field contains list of layer objects:
texture
: namespaced texture location for this layernamespace:path
will resolve toassets/<namespace>/textures/entity/equipment/<layer_type>/<path>.png
dyeable
: object with fields (optional), specifying how this layer behaves when dyed (in thedyeable
item tag, and hasdyed_color
component)color_when_undyed
: rgb color int (optional)- If specified, this layer will be tinted by the color contained in the
dyed_color
component- If the item is not dyeable or not dyed, it will be tinted based on the color specified by
color_when_undyed
- If
color_when_undyed
is not specified and the item is not dyed, the layer will be hidden
- If the item is not dyeable or not dyed, it will be tinted based on the color specified by
use_player_texture
: boolean (default:false
), true if this layer texture should be overridden by a texture given by the player- Only used for
wings
layers, which will override with the player's custom Elytra texture
- Only used for
A model definition specifying both player and horse armor layers might look like:
{
"layers": {
"horse_body": [
{ "texture": "minecraft:iron" }
],
"humanoid": [
{ "texture": "minecraft:iron" }
],
"humanoid_leggings": [
{ "texture": "minecraft:iron" }
]
}
}
Trims
- All equippable items with an equipment model defined support rendering trims, based on the
trim
component - Trim textures will be loaded from the appropriate folder in the
textures/trims/entity
directory- For example, armor with
wolf_body
layers will fetch trims fromtextures/trims/entity/wolf_body
- For example, armor with
Moved Textures
- All equipment-related textures have been moved to subfolders of the
textures/entity/equipment
directory- Player armor textures have been moved to
textures/entity/equipment/humanoid
andtextures/entity/equipment/humanoid_leggings
<material>_layer_1
textures have been renamed to<material>
, and moved into thehumanoid
subdirectory<material>_layer_2
textures have been renamed to<material>
, and moved into thehumanoid_leggings
subdirectoryleather_layer_1_overlay
andleather_layer_2_overlay
textures have been renamed toleather_overlay
in their respective subdirectories
wolf_armor
andwolf_armor_overlay
textures have moved totextures/entity/equipment/wolf_body/
and have been renamed toarmadillo_scute
andarmadillo_scute_overlay
respectivelyturtle_layer_1
has been renamed toturtle_scute
- Llama decor textures have been moved to
textures/entity/equipment/llama_body
- Horse armor textures have been moved to
textures/entity/equipment/horse_body
- The Elytra texture has been moved to
textures/entity/equipment/wings/elytra
- Player armor textures have been moved to
- Armor trim textures have also been moved to match the folder structure of the regular
equipment
textures- Textures in
textures/trims/models/armor
have been divided betweentextures/trims/entity/humanoid
andtextures/trims/entity/humanoid_leggings
- For leggings textures, the
_leggings
suffix is dropped
- Textures in
Shaders & Post-process Effects
Developer's Note: Although it is possible in Resource Packs, overriding Core Shaders is considered as unsupported and not an intended Resource Pack feature. These shaders exist as part of the internal implementation of the game, and as such, may change at any time as the game's internals evolve. We understand that overriding Core Shaders is used for very cool Resource Pack features, many of which lack supported alternatives. We would like to provide better, supported alternatives in the future.
- Shader program configurations can now specify preprocessor define directives to apply to their linked shaders
- Many shader implementations have been merged by making use of this
- The format of core shader and post-processing shader configurations have been consolidated
- The format of post-processing effect configurations have been updated
- The
ChunkOffset
uniform in terrain shaders has been renamed toModelOffset
- The
rendertype_entity_glint_direct
shader has been removed (replaced byrendertype_entity_glint
) - The
rendertype_entity_translucent_cull
shader has been removed (replaced byrendertype_item_entity_translucent_cull
)
Shader Program Definitions
- Program definitions for post-processing effects (
assets/<namespace>/shaders/program/<name>.json
) have been made consistent with core shader definitions (assets/<namespace>/shaders/core/<name>.json
)- The
blend
field has been removed, as it had no use - The
attributes
field has been removed, instead thePosition
attribute will always be bound - The provided uniforms have been consolidated with those provided to core shaders
Time
has been renamed toGameTime
- The
- The
vertex
andfragment
shader references in program definitions (including post-processing effects) are now namespaced shader ids- A vertex shader
<namespace>:<path>
will resolve toassets/<namespace>/shaders/<path>.vsh
- A fragment shader
<namespace>:<path>
will resolve toassets/<namespace>/shaders/<path>.fsh
- A vertex shader
- Shader source files are no longer required to be in the
shaders/core
subdirectory, this only exists for organization - Added
defines
field to program definitions (object with fields)- Allows GLSL define directives to be injected into the shader source, which can be referenced in the shader
values
(map of string to string)- Will be injected as
#define <key> <value>
at the top of the file
- Will be injected as
flags
(list of strings)- Will be injected as
#define <key>
at the top of the file
- Will be injected as
Shader Imports
- The
#moj_import
directive now supports namespaced includes with absolute paths- For example,
#moj_import <minecraft:fog.glsl>
will importassets/minecraft/shaders/include/fog.glsl
- For example,
- Relative imports are not namespaced and behave as before
Post-process Effect Definitions
- Post-processing effect configuration has been moved out of the
assets/<namespace>/shaders/post
directory to justassets/<namespace>/post_effect
- Vertex and fragment shaders used by these effects have been moved from
assets/<namespace>/shaders/program
toassets/<namespace>/shaders/post
name
has been renamed toprogram
, and is now a namespaced id of a shader program configuration<namespace>:<path>
will resolve toassets/<namespace>/shaders/<path>.json
intarget
andauxtargets
have been merged into a singleinputs
list, as specified by the input format belowouttarget
has been renamed tooutput
with the same formattargets
is now a map between target name and target definition, as opposed to a list- Inline target names are replaced with an empty object
- For example,
["swap"]
becomes{"swap": {}}
- For example,
- Target definitions with a specific size remain the same, with the
name
field moved into the map key- For example,
[{"name": "potato", "width": 16, "height": 16}]
becomes{"potato": {"width": 16, "height": 16}}
- For example,
- Inline target names are replaced with an empty object
Input Format
For both render target and texture inputs, the following fields may be specified:
sampler_name
: string - prefix to set up both_Sampler
and_Size
uniforms- For example,
"sampler_name": "Diffuse"
will link to theDiffuseSampler
andDiffuseSize
uniforms - This was previously always
DiffuseSampler
andInSize
forintarget
- For
auxtargets
, thename
defined the sampler uniform, and the size was given asAuxSize<index>
- For example,
bilinear
: boolean (default:false
) - if true, the input will be sampled with a bilinear filter- This formerly only existed on texture inputs, however now functions for render targets
- For render targets, replaces the now removed
use_linear_filter
field on the pass definition
For inputs from a render target, the following fields may be specified:
target
: namespaced id - the render target id- Either a custom target id defined in the same file, or
minecraft:main
to reference the main screen target - This replaces the former
id
field, which was a free-form string
- Either a custom target id defined in the same file, or
use_depth_buffer
: boolean (default:false
) - true to sample from the depth texture, false to sample from the color texture- This replaces the former
:depth
suffix applied to the target id
- This replaces the former
For inputs from a static texture, the following fields may be specified:
location
: namespaced string - the location to a static texture file that can be sampled by the effect- As the
id
field did before, this resolves to a texture atassets/<namespace>/textures/effect/<path>.png
- As the
width
: positive integer - width in pixels of the textureheight
: positive integer - height in pixels of the texture
External Targets
- The 'Fabulous' graphics transparency post-processing config no longer specifies the sorted framebuffers as custom targets
- These are instead imported in the same way as the
minecraft:main
target translucent
,itemEntity
,particles
,weather
,clouds
are nowminecraft:translucent
,minecraft:item_entity
,minecraft:particles
,minecraft:weather
, andminecraft:clouds
respectively
- These are instead imported in the same way as the
- The entity outline processing shader similarly imports the
minecraft:entity_outline
target
Translation Removals and Renames
- During load some deprecated translation strings will now be removed and/or renamed
- Packs that use these translations will need to re-add them manually
- The full list is available in the
/assets/minecraft/lang/deprecated.json
file inside the game's JAR file
Experimental Features
The following changes only apply when their respective Experiment is turned on, either by activating the corresponding experimental data pack or by turning it on in the Experiments screen while creating the world.
These experiments have no effect unless enabled. You can find more information about Feature Toggles here.
Winter Drop
- Added Pale Garden Biome, Pale Oak tree, Pale Moss block, Pale Moss carpet, Pale Hanging Moss and Pale Oak woodset
- Added Creaking mob, Creaking Spawn Egg and Creaking Heart block
Pale Garden
Pale Garden is a biome variation of Dark Forest. Unique features:
- Pale Oaks generate here
- Pale Moss blocks/carpet generate on the ground here
- Hanging Pale Moss generate hanging from the foliage of Pale Oaks
- Animal mobs do not spawn naturally in Pale Gardens
- New biome specific ambient sounds
- Creaking Heart block can generate in Pale Oaks
Pale Oak Tree
- Pale Oak Leaves drop Pale Oak Saplings that can be planted in a 2x2 configuration to grow Pale Oak trees
- Pale Oak Logs can be crafted into the Pale Oak woodset:
- Door
- Fence
- Fence Gate
- Plank
- Sign
- Hanging Sign
- Slab
- Stairs
- Trapdoor
- Wood
- Stripped Log
- Stripped Wood
- Button
- Pressure Plate
- Boat
- Boat with Chest
Pale Moss Block
Pale Moss block generates naturally in the Pale Garden biome
Pale Moss Carpet
Pale Moss block generates naturally in the Pale Garden biome. Unique features:
- When placed, Pale Moss Carpet grows up to two blocks on the solid faces of any block that borders it
- Pale Moss Carpet can be bone mealed to grow to full on all solid faces of any block that borders it
Pale Hanging Moss
Pale Hanging Moss generates naturally in the Pale Garden biome under the foliage of Pale Oaks
- Pale Hanging Moss does not grow randomly, but can be bone mealed to grow down
Creaking mob
The Creaking mob spawns at night in the Pale Garden biome if there is a Creaking Heart block that has been generated in a Pale Oak tree. Gameplay features:
- Creaking will activate if a surivival or adventure mode player is within 12 blocks of it and looks at it
- Creaking stays active while there is a survival or adventure mode player within 32 blocks of it
- An activated Creaking will not move if a survival or adventure player is looking at it
- Creaking is invulnerable to damage
- Creaking has fire resistance
- When hit by players, a particle trail is shown between the Creaking and the Creaking Heart block it is connected to
- When the Creaking Heart block that the Creaking is connected to is destroyed, the Creaking is removed
- Is not affected by light levels but spawns and despawns based on the day/night cycle
- Creaking cannot enter Boats
- Creaking spawned from a Creaking Heart can not go through portals
- The Creaking Spawn Egg will spawn a Creaking mob that is not connected to a Creaking Heart. This form of Creaking:
- May also be spawned through commands
- Will persist through day and night, and loads and saves
- Is fire-resistant
- Takes damage from attacks and other damage sources
- Has one point of health (half a heart)
- A Creaking summoned from the Creaking Heart cannot be spawned with a spawn egg, nor can it be named with a Name Tag or summoned with commands
- It can only exist as a part of the Creaking Heart block
- Players wearing a Carved Pumpkin on their head can look at Creaking without it freezing in place
Creaking Heart
A Creaking Heart is a “living” block generating in Pale Oak trees, covered on all sides by Pale Oak wood logs. It can spawn a Creaking mob when it is nighttime, and it is placed between two correctly aligned Pale Oak Logs.
- Is active during the night and dormant during the day
- Sends a trail of particles towards the connected Creaking when the Creaking gets hit by the player
- When Creaking Heart block is destroyed, the connected Creaking is removed
- Comparators attached to the Creaking Heart block will output a signal strength dependent on the distance to the connected Creaking
New system for Pale Garden ambient sounds
Ambient sounds in the Pale Garden biome do not come from the biome settings, but are generated by blocks found in the biome.
- Pale Hanging Moss emits subtle atmospheric sounds when it is attached to Pale Oak Logs and Pale Oak Leaves
- Creaking Heart block emits a set of eerie sounds when it is active during the night and surrounded by Logs on all sides
Redstone Experiments
Added a new Experiment containing various Redstone-related changes. This can be enabled by selecting "Redstone Experiments" in the Experiments menu when creating a world.
Please note that the experimental features behind this toggle are not aimed at any future release at this time.
Instead, this is a place for us to try out changes and gather feedback.
We are excited to hear what you think about these changes: please share your feedback on the feedpack page.
Redstone Wire
- The performance impact of Redstone wire (connected blocks of Redstone Dust) has been improved
- Redstone wire now only triggers block updates on blocks that may receive power from the wire
- Before a line of wire causes block updates, the new signal strength of all connected wires is set
- The update order around Redstone wire has been changed
- The aim is to make wire work the same, independent of position and global orientation
- When possible the order is deterministic based on the context the updates are caused in
- When there is not enough context to fully determine the order, the rest is picked at random
Developer's note: We know that randomness in Redstone is usually unwanted.
We've used it here because we've made things deterministic whenever it makes sense, and sometimes it just doesn't make sense - and we don't want some hidden state (like location-based hashes!) determining the order and making machines work differently at different coordinates or in different orientations.
Order in Which a Line of Wire Changes
- When a line of wire turns on, the wires closer to the power source will cause block updates first
- When a line of wire turns off, the wires closer to where the power source was, will cause block updates first
- When two wires have the same distance to the power source, the one to the left in the direction of travel updates first
- If there is not enough context to know the direction of travel (when the wire was powered from above or below), the side to update first is picked at random
Block Updates Around a Wire
- The order in which blocks around the wire update is based on the direction the wire received an update from
- The order of the updates is: back, front, left, right, down, up
- When the updates are further distributed through solid blocks, the same order is applied there
Known Issues
As this experiment only changes Redstone wire, interactions with other components may not always act as expected, especially when it comes to update orders.
The removal of excessive neighbor updates around wire affects behavior of Quasi-Connectivity based contraptions. We plan to address these issues at a later point.
Minecart Improvements
Added a new Experiment containing various movement changes to Minecarts. This can be enabled by selecting "Minecart Improvements" in the Experiments menu when creating a world.
Our long term goal is to make vehicle travel, like Minecarts, a viable option for players compared to other late-game options which currently dominate most playstyles. To achieve this, we aim to make riding Minecarts a smooth experience, with consistent and predictable motion and rotation. With this feature toggle we are laying a foundation to build upon in the future. We are aware of that these changes will break some existing contraptions, which is why we want to collaborate with the community to shape the upgrade and future experience of riding Minecarts.
Please note that the experimental features behind this toggle are not aimed at any future release at this time. Instead, this is a place for us to try out changes and gather feedback.
We are excited to hear what you think about these changes: please share your feedback on this feedback page.
Movement Changes
- Minecarts will articulate their movement better when going fast, riding on the rail all the time
- Minecarts will now smoothly turn along with the track and are less likely to halt or derail
- Minecarts can now jump better
- They keep their vertical momentum when the track ends with a slope
- Minecarts will tilt to visually articulate while in the air
- No rail grinding sound is played when Minecarts are flying through the air
- Added a new accessibility setting that makes players follow the rotation of Minecarts they ride
- Defaults to off
- Only has effect when within a world with the experiment enabled
- Added new gamerule
minecartMaxSpeed
that changes the maximum speed of Minecarts- Defaults to 8 and goes up to 1000 blocks per second.
- Setting it to a specific value does not guarantee that a minecart will reach that particular max speed - there are built in air resistances and similar effects that the speed added through slopes or powered rails need to overcome
- This gamerule only exists in worlds with the experiment enabled
Minecart Changes
- Minecarts can no longer be placed within another Minecart by the player
- Dispensers can still "stack" Minecarts by placing them on the Rail, even if there is another Minecart already there
- Minecarts can now consistently be placed next to each other along a track
- Minecarts now pick up mobs more consistently when moving along a track
- Minecarts will no longer phase through blocks on slopes
Known Impact
- We are aware that these changes will affect certain contraptions such as 'piston bolts', which may now not work at all, or have their behavior changed
- Very delicate rail networks will have their timings changed due to slight changes in speeds, movement distance, friction etc.
- Contraptions that rely on Minecarts snapping to rails will no longer work, or have their behavior changed