Thursday, June 13, 2024 at 2:58 PM

Minecraft: Java Edition 1.21

Table of Contents

It's a fantastic day today, because it's release day Thursday! And not just any old release day. This one is extra special because today we're shipping Minecraft: Java Edition 1.21, also known as the Tricky Trials Update!

Venture into the hazardous Trial Chambers alone or with friends, face off against the new Breeze mob and craft a smashingly powerful new weapon, the Mace! Take your ingenious Redstone designs to new heights with the Crafter, play around with the Wind Charge, discover new decorative blocks made of Copper and Tuff, enjoy new Paintings, Music Discs, and more!

And that's not all! On the technical side, Tricky Trials is heralding a new age for data packs with Enchantments, Paintings and Jukebox Music Discs now being data-driven. With this release, we're also going live with performance improvements to chunk loading that were introduced in 24w19a, which reduces memory and CPU overhead compared to the old system.

Embark on your very first adventure in Tricky Trials by delving into the full changelog below, it's a long one!

Happy mining!

New Features

  • Added a new underground structure called the Trial Chambers
  • Added 2 new mobs
    • Breeze
    • Bogged
  • Added a new weapon, the Mace
  • Added 3 new enchantments exclusive to the Mace
    • Density
    • Breach
    • Wind Burst
  • Added the following blocks:
    • Crafter
    • Trial Spawner
    • Ominous Trial Spawner
    • Vault
    • Ominous Vault
    • New variants in the Copper Family
    • New variants in the Tuff Family
    • Heavy Core
  • Added the following items:
    • Trial Explorer Map
    • Ominous Bottle
    • Wind Charge
    • Trial Key
    • Ominous Trial Key
    • Breeze Rod
    • 3 new Pottery Sherds
    • 2 new Banner Patterns
    • 2 new Armor Trims
    • 4 new Potions
      • Potion of Infestation
      • Potion of Oozing
      • Potion of Weaving
      • Potion of Wind Charging
    • 4 new Tipped Arrows
      • Arrow of Infestation
      • Arrow of Oozing
      • Arrow of Weaving
      • Arrow of Wind Charging
  • Added 3 new Music Discs by Aaron Cherof and Lena Raine
  • Added 20 new Paintings
    • 5 by artist Sarah Boeving
    • 15 by artist Kristoffer Zetterstrand
  • Redesigned Bad Omen to give access to Ominous Events
  • Added 6 new Status Effects
    • Infested
    • Oozing
    • Weaving
    • Wind Charged
    • Raid Omen
    • Trial Omen
  • Added 9 new music tracks by Aaron Cherof, Kumi Tanioka, and Lena Raine
  • Added 8 new Advancements
  • Added 4 new cave ambient sounds
  • Boats are now leashable

Sunny and Makena are posing in a Trial Chamber, showcasing the new Flow and Bolt Armor Trims.

Structures

Trial Chambers

  • Trial Chambers are a new structure in the Overworld where players can explore and take on combat challenges
    • Made out of a variety of Copper and Tuff blocks, and can be found in different sizes
    • A relatively common find throughout the Deepslate layer of the underground
    • Natural mob spawning does not occur inside, similar to Ancient Cities
    • Never starts inside a Deep Dark biome, but can sometimes overlap it
  • The layout of each Trial Chamber is procedurally generated, and can include traps, rewards and a variety of combat areas
    • Decorated Pots line the corridors and hold hidden treasures
    • Supply Barrels can be found between different rooms, and give you blocks and items which help you navigate your trials
    • Vaults are guarded by challenges in each room, and can be a source of many high level Enchanted Books and equipment including a very rare chance to receive a Trident
    • Ominous Vaults can be found in harder to reach places and give even better loot than standard Vaults, including some items which are exclusive to Ominous Vaults
  • Each Trial Chamber will include Trial Spawners with a melee, small melee, or ranged category:
    • Melee
      • Zombie
      • Husk
      • Spider
    • Small Melee
      • Slime
      • Cave Spider
      • Baby Zombie
      • Silverfish
    • Ranged
      • Skeleton
      • Stray
      • Bogged
  • Each Trial Spawner category will only use one mob for the entire structure when generated, and these mobs are randomized for each Trial Chamber
    • For example, one Trial Chamber might only spawn Zombies, Cave Spiders and Strays, while another might only spawn Spiders, Silverfish and Skeletons
    • The exceptions to this are some Trial Spawners in unique rooms which always spawn Breezes

Mobs

Breeze

  • A cunning hostile mob spawned by some Trial Spawners in Trial Chamber rooms
    • Drops 1-2 Breeze Rods when killed by a player
    • The number of Breeze Rods dropped is affected by looting enchantments
  • Moves primarily by leaping around its target
  • Deflects almost all projectiles, making it immune to ranged combat
    • With one notable exception: it cannot deflect Wind Charges
  • An aggressive adversary, it shoots volatile wind energy in the form of Wind Charge projectiles at its target
    • After colliding with an entity or a block, Wind Charge projectiles produce a Wind Burst, which knocks back entities in the area
    • Wind Charges deal a small amount of damage when colliding directly with an entity
    • Wind Charges break decorated pots and chorus flower blocks upon collision
  • Wind Bursts have the effect of 'activating' certain blocks:
    • Non-Iron Doors and Trapdoors are flipped
    • Fence Gates are flipped
    • Buttons are pressed
    • Levers are flipped
    • Bells are rung and swung
    • Lit Candles are extinguished
  • Wind Bursts do not have any effect on Iron Doors, Iron Trapdoors, or any block being held in its position by a Redstone signal
  • Will not retaliate against attacks from the following mobs: Skeletons, Strays, Bogged, Zombies, Husks, Spiders, Cave Spiders and Slimes
    • The same mobs will not retaliate against a Breeze when hurt by its Wind Charge projectile

Bogged

  • A new variant of Skeletons that shoots poisonous arrows
    • They're easier to take down with 16 health instead of 20 health
    • They attack at a slower interval of 3.5 seconds instead of 2 seconds
  • Has a chance to drop Arrows of Poison when killed by players
  • These mossy and mushroom covered Skeletons spawn naturally in Swamps and Mangrove Swamps
    • Can also be found spawning from Trial Spawners in some Trial Chambers
  • Drops 2 mushrooms when sheared (either both red, both brown, or one of each)

A Bogged is aiming its Bow at something at night in a Swamp. It is a Skeleton variation with moss on its bones and Mushrooms growing on its head. The Moon is rising between Mangrove trees in the background.

Weapons

Mace

  • A new heavy weapon to smash your enemies!
    • Has a base damage of 5
    • Can be crafted with a Breeze Rod and a Heavy Core
    • Using it will decrease its durability like any other weapon; can be repaired with Breeze Rods at an Anvil
  • Has a unique attack called the smash attack. When the player falls more than 1.5 blocks before hitting, a smash attack is triggered which has multiple effects:
    • Safe Fall: Resets all vertical momentum and negates any fall damage accumulated from the fall
    • Extra Damage: Does more damage the further the player fell before hitting the target with it:
      • For the first 3 blocks fallen: Add 4 damage per block
      • For the next 5 blocks fallen: Add 2 damage per block
      • For any blocks fallen after: Add 1 damage per block
    • Great Knockback: Other entities near the struck enemy will be knocked back by the immense force of the Mace
  • Can be used in combination with Wind Charges to launch up and deliver devastating smash attacks to enemies
  • These existing enchantments can be applied to the Mace:
    • Mending
    • Unbreaking
    • Smite
    • Bane of Arthropods
    • Fire Aspect
    • Curse of Vanishing
  • The Mace also has 3 exclusive enchantments: Density, Breach and Wind Burst

Noor is using a Mace with a Wind Burst enchantment to fight a group of Pillagers next to a Pillager Outpost. One of the Pillagers is dramatically thrown towards the viewer by the Wind Burst explosion, while the others are aiming their Crossbows at Noor.

Enchantments

Three new enchantments have been added which are exclusive to the Mace

  • Density
    • Common Enchantment, accessible in the Enchanting Table and on Enchanted Books in random loot chests
    • Has 5 levels
    • Maces enchanted with Density do more damage per fallen block per Density level
      • Damage dealt per fallen block is increased by 0.5 per level of Density
    • Mutually exclusive with Breach, Smite, and Bane of Arthropods
  • Breach
    • Rare Enchantment, accessible in the Enchanting Table and on Enchanted Books in random loot chests
    • Has 4 levels
    • Maces enchanted with Breach reduce the effectiveness of armor on the target
      • The effectiveness of the armor is reduced by 15% per Breach level
    • Mutually exclusive with Density, Smite, and Bane of Arthropods
  • Wind Burst
    • Unique enchantment which can only be found in Ominous Vaults
      • Only Wind Burst I can be found, higher levels must be obtained by combining them in an Anvil
    • Has 3 levels
    • Maces enchanted with Wind Burst will emit a Wind Burst upon hitting an enemy, launching the attacker upward and enabling the linking of smash attacks one after the other
    • Successfully landing a Wind Burst attack causes the player to lose the fall damage protection they would otherwise have from landing a successful smash attack
    • Each level will bounce the attacker an additional 7 blocks into the air

Blocks

Crafter

  • A new block that enables the crafting of items and blocks via Redstone
    • Can be crafted with 5 Iron Ingots, 2 Redstone Dust, 1 Crafting Table and 1 Dropper
  • Will eject one crafting result at a time when powered by a Redstone pulse
    • Its current powered state is indicated by Redstone crystals on its back face, which will light up
    • The crafting grid on its top face will light up red when it successfully crafts a recipe
  • Upon receiving a signal, it will eject the recipe result from the front face
    • If the recipe output has any remainder items (such as a Bucket), the result and remainder items will be ejected together
  • When placed, the front face of the Crafter will face towards the player

An automated rail Crafter is producing rails. Makena is collecting the rails and Noor is building a railway.

Crafter User Interface
  • Has a 3x3 interactable crafting grid
  • The crafting grid slots are toggleable, meaning that the player can change the behavior of a slot by interacting with it while not holding an item
  • A slot that is ‘toggled’ cannot hold any items
    • Other blocks such as Hoppers and Droppers also cannot place items into them
  • Unlike the Crafting Table, the Crafter displays a preview of the crafted item which will be crafted and ejected on the next Redstone pulse, but cannot be manually taken out by the player
    • The arrow pointing out from the recipe grid will light up red when the Crafter is currently powered
  • The Crafter User Interface is shared between all players interacting with it, meaning that multiple players can interact with the Crafter at the same time, similar to Chests and Hoppers
Crafter Interaction with Other Blocks
  • The signal strength of a Comparator reading a Crafter is 0-9, where each non-empty or toggled slot adds 1 strength
  • Hoppers and Minecarts with Hoppers can be used to both insert and extract items from the Crafter
  • Droppers can be used to insert items into the Crafter
  • Items inserted from another block (ex: Hopper, Dropper) will fill the Crafter's slots based on these rules:
    • Prioritize the first empty slot (from left-to-right, top-to-bottom)
    • If there are no empty slots then prioritize the smallest stack of the same item (pick the first if there are multiple)
    • If there is a toggled slot it will be skipped. The item will then be moved into the container
    • If the item cannot be moved, it will be ejected into the world
  • Items are removed from Crafters by Hoppers and Minecarts with Hoppers in the same order as from other containers like Chests

Trial Spawner

  • A new variant of Monster Spawners that ejects rewards upon defeat
    • Cannot be crafted nor obtained by players in Survival - instead, they can be found naturally throughout Trial Chambers
    • Very slow to mine and resistant to explosions, and will not drop even with Silk Touch
    • Cannot be moved by Pistons
  • The challenge level will increase for each new player a Trial Spawner notices nearby
    • The challenge level will not decrease until it is reset during a Trial Spawner's cooldown
    • Trial Spawners can only notice players which are in line of sight, and will ignore Creative and Spectator players
  • Unlike normal Spawners, a Trial Spawner will spawn a limited number of mobs proportional to its current challenge level
    • It can only spawn a mob at positions that are within line of sight
    • It can spawn a mob regardless of any light level requirement the mob has
    • Spawned mobs are persistent
  • Once all mobs are defeated, the Trial Spawner will eject a number of rewards which is proportional to the current challenge level
    • After the rewards have been ejected, the Trial Spawner goes into cooldown for 30 minutes, during which it will no longer spawn mobs
  • When placed in Creative, Trial Spawners have no mob type set by default
    • The mob type can be set by interacting with it while holding a Spawn Egg
  • Has an Ominous Trial Spawner variant, accessible through an Ominous Trial

Vault

  • A block that holds locked treasure and loot - players must find the right key to eject its rewards
    • Can be found throughout Trial Chambers, containing the structures' most valuable loot
    • Vaults in Trial Chambers require a Trial Key to be unlocked
    • Cannot be crafted nor obtained in Survival, and does not drop anything when mined
    • Explosion resistant and cannot be moved by Pistons
  • Can be unlocked by an unlimited number of players
    • After a player has unlocked a Vault, they cannot personally unlock that Vault again
    • If a player has not unlocked a particular Vault before, this can be seen by an orange stream of particles that flow from the player to that Vault when nearby
  • Has a keyhole that will be open or closed depending on the players nearby
    • If any nearby player has not unlocked that Vault, the keyhole will be open
    • If all nearby players have unlocked that Vault, the keyhole will be closed
  • Within its cage, it will cycle through and display items which are possible to eject from its loot table
    • Players cannot time their unlocks to eject the item that is currently displayed in the cage
  • The loot it ejects is randomized each time it is unlocked
  • Has an Ominous Vault variant, unlockable through an Ominous Trial

Copper Family

  • The Copper family of blocks has been expanded to add:
    • Chiseled Copper
    • Copper Grate
    • Copper Bulb
    • Copper Door
    • Copper Trapdoor
    • Oxidized and waxed variants of all of the above
Chiseled Copper
  • Crafted with 2 Cut Copper Slabs of a shared oxidation level
  • Can be crafted in the Stonecutter
Copper Grate
  • A new type of decorative block unique to the Copper family
  • Crafted with 4 Copper Blocks of a shared oxidation level
    • Stonecutting a Copper Block into Copper Grates outputs 4 Copper Grates
  • Properties:
    • Transparent and allows light to pass through
    • Mobs cannot suffocate inside them
    • Cannot conduct Redstone
    • Hostile mobs cannot naturally spawn on them
    • Can hold water
Copper Bulb
  • A light-emitting block that can toggle its light emission through Redstone pulses
  • Oxidizes like other Copper blocks, and emits light based on oxidation level
    • Copper Bulb: Light level 15
    • Exposed Copper Bulb: Light level 12
    • Weathered Copper Bulb: Light level 8
    • Oxidized Copper Bulb: Light level 4
  • When placed, its light is off by default
    • While it is unpowered, it will toggle its light on or off when it receives a Redstone pulse
    • Its light will stay on even when the Redstone source is removed, and will only toggle off when it receives another Redstone pulse
  • A Redstone crystal can be seen in its center while it is powered by a Redstone signal
  • Similar to Glass Blocks, it does not conduct Redstone power
  • Comparators reading a Copper Bulb will output a signal strength of 15 if the Copper Bulb's light is on
  • The crafting recipe for 4 Copper Bulbs is:
    • 3 Copper Blocks of a shared oxidation level
    • 1 Blaze Rod
    • 1 Redstone Dust
Copper Doors and Trapdoors
  • Copper variants of Doors and Trapdoors that can oxidize over time and be waxed
  • Behaves like wooden doors, meaning they can be opened and closed with interaction as well as Redstone
    • Can be opened by mobs that have the ability to open doors
  • Crafted with Copper Ingots

Tuff Family

  • Tuff has been expanded to have its own family of blocks:
    • Stair, Slab, Wall and Chiseled variants
    • Tuff Bricks with Stair, Slab, Wall and Chiseled variants
    • Polished Tuff with Stair, Slab and Wall variants
  • All Tuff variants can be crafted in the Stonecutter

Heavy Core

  • A mysterious, dense block which can be combined with a Breeze Rod to craft the Mace
  • Can only be obtained from Ominous Vaults

A house built out of Tuff Bricks, Chiseled Tuff and new Copper-based blocks. Decorative Pots with new Guster and Flow patterns are also visible.

Items

Trial Explorer Map

  • Used to locate a nearby Trial Chamber
  • Level up a Cartographer Villager to Journeyman for the opportunity to trade for this map

Ominous Bottle

  • An item which can be consumed by players to receive the Bad Omen effect for 1 hour and 40 minutes
    • Comes in 5 variations, one for each Bad Omen level
    • The bottle breaks when consumed
    • Can be stacked to 64
  • Ominous Bottles can be found uncommonly in any Vaults, and are dropped by Raid Captains which are defeated outside a Raid

Wind Charge

  • Become the Breeze! Using this item will fire off a Wind Charge projectile similar to the Breeze's
    • Can be used to launch entities away from the impact of the Wind Burst
    • Grants 10% more knockback than a Breeze's, but has a much smaller area of impact
    • Deals damage if it hits an entity directly
    • Has a half-second cooldown after each use
    • Can be fired from a dispenser
  • Players can use Wind Charges to propel themselves high into the air
    • Players that launch themselves with a Wind Charge only accumulate fall damage below the height of where they collided with the Wind Burst
    • As an example, if a player uses a Wind Charge to launch themselves 9 blocks into the air, and they do not land lower than where they initially launched, they will take 0 damage

Sunny is using Wind Charges to jump across rocky formations in Badlands. The Wind Charge particles are visible where they jumped up from.

Trial Key

  • An item that can only be obtained from Trial Spawners
  • Can be used to unlock Vaults

Breeze Rod

  • An item dropped by a Breeze that can be crafted into 4 Wind Charges, or used with the Heavy Core to craft a Mace

Pottery Sherds

  • Added Flow, Guster, and Scrape Pottery Sherds
  • These can be obtained by breaking Decorated Pots that display them in Trial Chambers
  • Added Flow Banner Pattern, found in Vaults
  • Added Guster Banner Pattern, found in Ominous Vaults

Armor Trims

  • Added Bolt Armor Trim and Smithing Template, found in Vaults
    • Can be duplicated using a Copper Block or Waxed Copper
  • Added Flow Armor Trim and Smithing Template, found in Ominous Vaults
    • Can be duplicated using a Breeze Rod

Music Discs

Added 3 new music discs:

  • "Precipice" by Aaron Cherof. Can be found rarely in standard Vaults, and has a comparator output of 13 when played in a Jukebox
  • "Creator" by Lena Raine. Can be found rarely in Ominous Vaults, and has a comparator output of 12 when played in a Jukebox
  • "Creator (Music Box)" by Lena Raine. Can be found rarely in Decorated Pots broken in Trial Chambers, and has a comparator output of 11 when played in a Jukebox

Paintings

Added five new paintings by artist Sarah Boeving:

  • Baroque
  • Humble
  • Meditative
  • Prairie Ride
  • Unpacked

Added fifteen new paintings by artist Kristoffer Zetterstrand:

  • Backyard
  • Bouquet
  • Cavebird
  • Changing
  • Cotan
  • Fern
  • Endboss
  • Finding
  • Lowmist
  • Orb
  • Owlemons
  • Passage
  • Pond
  • Sunflowers
  • Tides

Noor is looking at the new paintings in a gallery. &#34Unpacked&#34 by Sarah Boeving is in the forefront. Around Noor, six items are displayed on Chiseled Tuff Brick stands: 3 new Music Discs, an enchanted Mace, an enchanted Golden Sword, and an enchanted Copper Door.

Ominous Events

  • Bad Omen has been expanded to give access to an optional experience in Trial Chambers
  • These optional experiences can be accessed through Bad Omen, and are now known as Ominous Events
    • They are more challenging than usual, and are designed to shake up the experience in unique ways
    • Raids are an example of an existing Ominous Event
  • As a result, Bad Omen has a new, shadowy icon and a sound for being applied to the player
    • It is no longer given to players that defeat a Raid Captain outside a Raid
    • Instead, players can gain access to Bad Omen by consuming the new Ominous Bottle item

Raids

  • Bad Omen no longer triggers a Raid directly when entering a Village
    • Instead, it will transform into a Raid Omen variant with a duration of 30 seconds
    • Once the Raid Omen expires, a Raid will start at the location the player gained the Raid Omen
    • Like any other effect, players can drink a Bucket of Milk to clear the Raid Omen, preventing the Raid from starting

Ominous Trials

  • A new Ominous Event that can be accessed by exploring a Trial Chamber while Bad Omen is active
  • This event will have players facing more powerful Ominous Trial Spawners, if they dare
Trial Omen
  • A variant that Bad Omen can transform into
    • This occurs when the player is within detection range of a Trial Spawner that is not Ominous
    • The Trial Omen will have a duration of 15 minutes multiplied by the transformed Bad Omen's level
  • Players that have Trial Omen are surrounded by ominous particles
Ominous Trial Spawner
  • A more powerful active phase of the Trial Spawner with unique challenges and rewards
    • Provides a more challenging experience that combat-loving players can opt into for better rewards
  • If a Trial Spawner detects a player that has the Trial Omen effect, the spawner will become Ominous if:
    • It is not in cooldown
    • Or, it is in cooldown but was not Ominous during its last activation
      • Making it Ominous this way will bypass the cooldown
  • While active, it will:
    • Glow blue instead of orange
    • Emit soul flames instead of normal flames
    • Periodically spawn potions and projectiles on top of unsuspecting players and mobs
      • Based on their location, spawners in an area will select a random set of projectiles to spawn
      • These projectiles will always include a single type of Lingering Potion from a set of possible effects
  • The mobs it spawns are more powerful than usual:
    • Mobs that can wear equipment will often spawn with enchanted weapons and armor
      • The armor these mobs wear have Armor Trims applied from the Trial Chambers
      • All 3 of the following armor enchantments are applied to each piece:
        • Protection IV
        • Projectile Protection IV
        • Fire Protection IV
      • Sword enchantments can be either of the two:
        • Sharpness I
        • Knockback I
      • Bow enchantments can be either of the two:
        • Power I
        • Punch I
    • Mobs that cannot wear equipment will instead be spawned at double the total mob count over the course of the challenge
      • The spawners for these mobs will also have an additional mob out at once during its challenge
  • Becoming Ominous will despawn any existing mobs it spawned and reset its challenge
    • If those mobs picked up or equipped any items on the floor, those items will be dropped when they despawn
    • It will stay Ominous until it has been defeated and its cooldown has finished
  • When defeated, it will eject a different set of loot to normal Trial Spawners
Ominous Vault
  • A variant of Vaults that have a more menacing looking and emit soul flames instead of normal flames
  • These hold a more valuable set of rewards than the standard Vaults that are unlocked by Trial Keys
  • Can be found throughout Trial Chambers in harder to reach places, and require an Ominous Trial Key to unlock
Ominous Trial Key
  • A variant of the Trial Key which has a 30% chance to eject when defeating an Ominous Trial Spawner
  • Can be used to unlock Ominous Vaults

Status Effects

  • The following status effects have been added:
    • Wind Charged
      • Affected entities will emit a wind burst upon death
      • Can be brewed as a Potion with an Awkward Potion and a Breeze Rod
    • Weaving
      • Affected entities will spread Cobweb blocks upon death
      • Affected entities can move through Cobweb with 50% of their normal speed instead of 25%
      • Can be brewed as a Potion with an Awkward Potion and a Cobweb block
    • Oozing
      • Affected entities will spawn two Slimes upon death
      • Can be brewed as a Potion with an Awkward Potion and a Slime Block
    • Infested
      • Affected entities have a 10% chance to spawn 1-2 Silverfish when hurt
      • Can be brewed as a Potion with an Awkward Potion and a Stone block
    • Splash Potions, Lingering Potions and Tipped Arrows can be made with these effects
  • These effects can be encountered while taking on an Ominous Trial Spawner
  • Some mobs are immune to these effects
    • Slimes are immune to Oozing
    • Silverfish are immune to Infested
  • Whenever a mob with Oozing dies, it will check within a 5x5x5 area how many Slimes there are
    • If the amount exceeds the max entity cramming cap (24 by default), it will not spawn any Slimes
    • If it does not exceed it, it will attempt to spawn 2 Slimes up until the max entity cramming cap

Music

Added 9 new background music tracks which will all play in the main menu:

  • "Featherfall" by Aaron Cherof
    • Plays in Badlands, Cherry Grove, Flower Forest, and Lush Caves Biomes
  • "Deeper" by Lena Raine
    • Plays in Deep Dark and Dripstone Caves Biomes
  • "Eld Unknown" by Lena Raine
    • Plays in Dripstone Caves, Grove, Jagged Peaks, and Stony Peaks Biomes
  • "Endless" by Lena Raine
    • Plays in Dripstone Caves, Grove, Jagged Peaks, and Stony Peaks Biomes
  • "pokopoko" by Kumi Tanioka
    • Plays in Dripstone Caves, Grove, Jagged Peaks, and Snow Slopes Biomes

The following have been added to the pool of songs which play in Overworld Biomes that do not have biome-specific music:

  • "Featherfall" by Aaron Cherof
  • "komorebi" by Kumi Tanioka
  • "Puzzlebox" by Aaron Cherof
  • "Watcher" by Aaron Cherof
  • "yakusoku" by Kumi Tanioka

Advancements

  • Added 8 new advancements
    • "Minecraft: Trial(s) Edition" - Step foot in a Trial Chamber
    • "Under Lock & Key" - Unlock a Vault using a Trial Key
    • "Revaulting" - Unlock an Ominous Vault with an Ominous Trial Key
    • "Blowback" - Kill a Breeze with a deflected Wind Charge
      • Challenge Advancement - rewards 40 experience
    • "Who Needs Rockets?" - Use a Wind Charge to launch yourself upward at least 8 blocks
    • "Crafters Crafting Crafters" - Be near a Crafter when it crafts a Crafter
    • "Lighten Up" - Scrape a Copper Bulb with an Axe to make it brighter
    • "Over-Overkill" - Deal 50 hearts of damage in a single hit using the Mace
      • Challenge Advancement - rewards 50 experience

Boats are leashed to a Fence on the dock in a Desert Village. Steve is sitting in a boat together with a Villager.

Changes

  • Improved chunk loading performance
  • Doors of different materials can now form a double door
  • Witches now always drop 4-8 redstone dust on death
    • This is to improve the viability of farms that utilize Witch Huts to obtain Redstone Dust
  • Piston sound volume and attenuation have been lowered
    • This was done to address the long-received feedback on the old sounds being too harsh and loud, creating very noisy redstone builds
  • The panic behaviour of animals now lasts for 2 seconds after the damage is dealt, down from 5
  • Ender Pearls that are thrown through portals can now teleport players to a different dimension than the one they are currently in
  • It is now possible to ride entities such as Horses or Minecarts through portals
    • When riding entities through portals, the delay before teleporting is not applied
  • Projectile knockback is no longer dependent on the shooters position
    • Projectiles such as Arrows and Fireballs knock back in the direction they travel
    • Projectiles such as Splash Potions and Fireworks knock back away from themselves
    • Projectiles shot by a Dispenser will also knock back
  • Improved player attribute and effect handling
    • Custom set base attributes are now kept when respawning
    • Active effects and modifiers are kept when changing dimension or winning the game
  • Blocks frozen by Frost Walker now emit "Block Placed" vibrations (frequency 13)
  • End Crystals are now immune to fire damage
  • The Trident is now considered of Epic rarity, giving its hover text a purple color
  • Added an attestation checkbox when submitting a player report
  • The "Burning Time" reduction effect of Fire Protection and "Knockback Resistance" effect of Blast Protection now stack from wearing several pieces
  • Realms improvements
  • The Pause Menu can now include a list of links provided by server
  • Improvements to the disconnection screen
  • Updated credits
  • Removed Herobrine

Sunny and Noor are next to a fully rebuilt Ruined Portal. The brave Sunny throws an Ender Pearl towards the lit Nether Portal. Noor is to the side holding a Leash tied to a Boat with a Sheep in it.

Chunk Loading Improvements

  • When reading an already generated chunk from disk, surrounding chunks are no longer unnecessarily loaded
    • This is also visible on the singleplayer world loading screen
  • The new system has less memory and CPU overhead

Realms Improvements

  • Any member of a Realm can now upgrade a world
  • In the Realms main screen, all online players of a Realm are displayed
    • When hovered, a tooltip is shown with each player's head and name
  • Updated the confirmation screens in Realms to show as popups
  • Servers can now provide a list of links to clients
  • If client has received any links, a new button called "Server Links..." will show up in the Pause Menu
    • To make space for that button, the "Report Bugs" and "Give Feedback" buttons are moved into a sub-screen

Disconnection Screen Improvements

  • In some cases client will now store detailed information about disconnection (similar to crash reports)
    • When that happens, an "Open Disconnection Report Directory" button will be added to the disconnection screen
    • If a server provides a link for bug reporting, it will be also be added as a button to the disconnection screen

Sunny is riding a Minecart that leads into a Nether Portal.

Technical Changes

  • Data Pack version is now 48
  • Resource Pack version is now 34
  • Removed the update_1_21 feature flag and built-in datapack
  • Server can now provide list of links to client
  • Servers can add custom details to crash and disconnection reports
  • Report data generator now includes information about network packets
  • The game will now store reports from failed chunk loads and saves in the debug directory

A swarm of Bees are leashed to a Dragon Egg Block Display Entity, flying above a Savannah. This gives the impression that the Bees have plotted to steal the Dragon Egg.

  • New clientbound packet server_links is available in configuration and game protocols
  • On receival, the links are made available in the Pause Menu
  • Link labels can be built-in or custom (i.e. any text)
  • Some built-ins also have special functionality:
    • report_bug:
      • link will be displayed on disconnection screen, if disconnection was caused by packet handling error
      • link will be included as a comment in disconnection report
  • Additionally, there are some generic-use link names, like "Support" or "Website", without any special functionality
  • Added bug-report-link to server.properties to allow vanilla server to configure report_bug links
    • If this field is non-empty, server will send that link to clients
    • This field should contain well-formed URL

Custom Server Crash Report Details

  • New clientbound packet custom_report_details is available in the configuration and game protocols
  • This packet contains a list of key-value text entries
  • If received, contents of this packet will be added in a separate section to any crash or disconnection report generated during connection to this server

Data Pack Versions 42 Through 48

  • Added new Music Disc items and loot table entries for the Music Discs
  • Painting variants are now data-driven
  • Jukebox songs are now data-driven
  • Enchantments are now data-driven
  • Enchantments that show up in the game are now controlled by Enchantment Providers
  • Enchantment exclusivity is now controlled through tags
  • Added new command syntax
  • Changes to predicates and loot table functions
  • Registry decorated_pot_patterns has been renamed to decorated_pot_pattern
  • Updated legacy element and tag directory names in datapacks
  • Added new configurable fields to jigsaw structures and single_pool_element types
  • Added new placement modifier type fixed_placement to place features in a set of fixed positions
  • Added new feature type end_platform for the obsidian platform in the end

Painting Variants

  • Painting variants registry are now loaded from packs
  • Path to painting definition is data/<namespace>/painting_variant/<id>.json
  • Fields in definition:
    • width - width of painting in blocks, between 1 and 16
    • height - height of painting in blocks, between 1 and 16
    • asset_id - id of sprite in paintings atlas

Jukebox Songs

  • Added a jukebox song registry which is loaded from data packs
  • Path to jukebox song definition is data/<namespace>/jukebox_song/<id>.json
  • Fields in definition:
    • sound_event - sound event that is streamed when played by a Jukebox
    • description - the name of the song that will be displayed in the hover tooltip represented as a Text Component
    • length_in_seconds - length of the song in seconds as a positive float
    • comparator_output - the redstone signal output by a comparator when played in a Jukebox, between 0 and 15
  • Added minecraft:jukebox_playable item stack component

jukebox_playable Item Component

  • If set, the item can be inserted into Jukeboxes to play a song
  • Format: object with fields
    • song: Jukebox song id
      • The song that will be played by the Jukebox when this item stack is inserted
    • show_in_tooltip: boolean (default: true)
      • If false, the name of the song will not be shown in the tooltip
      • This was formerly controlled by the hide_additional_tooltip component on Music Discs
    • e.g. jukebox_playable={song:'minecraft:precipice'}, jukebox_playable={song:'minecraft:precipice', show_in_tooltip:false}

Steve is playing around with a Jukebox in the center of a Village. A Nether Star can be seen on top of the Jukebox, suggesting that Steve has used custom data to vibe out to songs that he likes.

Attributes

  • Attribute Modifiers no longer have a UUID and name combination
  • Instead, Attribute Modifiers are now uniquely identified by a namespaced ID, similar to other resources
  • The ID of a modifier uniquely identifies it in the set of modifiers for a single attribute
    • Using the same ID for different modifiers is allowed as long as the modifiers are for different attributes
  • Existing built-in modifiers will be upgraded to new IDs
  • Existing custom modifiers will be upgraded to the UUID as an ID in the minecraft namespace

attribute Command

  • The uuid and name arguments have been replaced with a singular id argument

Item Stack Attribute Modifiers

  • The uuid and name fields have been removed
  • Attribute Modifiers now have an id (namespaced ID) field
    • This is a unique identifier per attribute for the modifier

Entity Attributes

  • Attributes are now stored as attributes
  • Attribute format:
    • id, renamed from Name
    • base, renamed from Base
    • modifiers, renamed from Modifiers
      • Now stores modifiers in the same format as modifiers in attribute_modifiers item stack components:
        • id, replaces UUID and Name
        • amount, renamed from Amount
        • operation, renamed from Operation, now a named constant instead of an int:
          • add_value - previously 0
          • add_multiplied_base - previously 1
          • add_multiplied_total - previously 2

Enchantments

Efe, wearing Diamond Boots with a custom enchantment that spawns sparkling particles, tempts a Cat with Salmon in a snowy Village under moonlight.

Enchantments are now set through data. An Enchantment is a set of core properties like level ranges and cost together with some effects. Most effect types also support a set of conditions, making it possible to apply them only when certain criteria are met.

Enchantments can be added in the registry enchantment. All Vanilla Enchantments can be found in the vanilla datapack in the client and server jar files.

Fields:

  • description: The name of the Enchantment when displayed in text represented as a Text Component
  • exclusive_set: The Enchantment(s) this Enchantment is mutually exclusive with
    • Two Enchantments can never co-exist on an item if either is in the other's exclusive set
    • Specified as an Enchantment ID, a list of Enchantment IDs or an Enchantment Tag prefixed with #
    • Optional - if omitted, the exclusive set is empty
  • supported_items: The item types that can have this Enchantment
    • Item ID, list of item IDs or tag prefixed with #
  • primary_items: The item types for which this Enchantment shows up in Enchanting Tables and on traded equipment
    • Item ID, list of item IDs or tag prefixed with #
    • Must be a subset of supported_items
  • weight: How commonly the Enchantment appears, compared to the total combined weight of all available Enchantments
    • Positive integer, at most 1024 - higher values mean more common
  • max_level: The maximum level of the Enchantment
    • All Enchantments range from level 1 to their maximum level
    • Positive integer, at most 255
  • min_cost, max_cost: describe the range of costs for this Enchantment in the Enchanting Table (and how much it returns when disenchanted)
    • Both min and max cost are described using a linear formula:
    • base: Base cost at level 1
    • per_level_above_first: Added for each level over 1
  • anvil_cost: The fee taken for the Enchantment in the anvil
    • Non-negative integer
    • This value is halved when an Enchantment is added to a Book
    • The effective fee is multiplied by the level of the Enchantment
  • slots: A list of slot groups this Enchantment works in
    • Each entry is one of any, hand, mainhand, offhand, armor, feet, legs, chest, head and body
  • effects: A map of effect components, as described below in the Effect Components section

Level-Based Values

Many effects of Enchantments depend on the level of the Enchantment. For these fields, a type called Level-Based Values is used. In their most basic form, Level-Based Values can be written as floating-point constants, which is interpreted as a value that isn't in fact level-based, the constant is used as-is for all levels.

If a Level-Based value is not a floating-point constant, it is an object with a type field, specifying one of the following types.

linear

The most common type of Level-Based Value is a linear value. A linear Level-Based Value has two fields:

  • base: The base value added to all levels
  • per_level_above_first: Amount added for each level above the first one

In effect, a linear Level-Based Value results in base + per_level_above_first * (level - 1).

clamped

A Level-Based Value type that clamps a value between a min and max. Fields:

  • value: A Level-Based Value used as the input
  • min: A floating point value specifying the minimum value of the output
  • max: A floating point value specifying the maximum value of the output

fraction

A Level-Based Value type that represents the fraction between two values. Fields:

  • numerator: A Level-Based Value used as the numerator
  • denominator: A Level-Based Value used as the denominator

levels_squared

A Level-Based Value type that evaluates to the square of the levels, plus an addition. Fields:

  • added: A floating-point value added to the result of the squared levels

In effect, a levels_squared Level-Based Value results in level ^ 2 + added

lookup

A Level-Based Value type that maps a list of values to specific levels, and applies a fallback if the level is greater than the number of values supplied. Fields:

  • values - A list of values indexed by level - 1 to apply, if present
  • fallback - A fallback Level-Based Value to apply if the level is greater than the size of values

Value Effect Types

Value Effects are effects used to manipulate the amount of something in the game.

add

A Value Effect that adds a value to the processed results.

Fields:

  • value: A Level-Based Value determining how much to add
    • Negative values are supported

all_of

A Value Effect that runs a number of other Value Effects, in order. This can be useful when the same set of conditions apply to a number of Value Effects.

Fields:

  • effects: A list of the Value Effects to run

multiply

A Value Effect that multiplies the processed value by a given factor.

Fields:

  • factor: A Level-Based Value determining the factor to multiply in

remove_binomial

A Value Effect that runs a Binomial series of checks, reducing the input value by 1 for every successful check.

Fields:

  • chance: A Level-Based Value representing the chance that an input value is dropped.
    • The span is 0 to 1, with 0 being no chance to drop an input value and 1 dropping all input values

set

A Value Effect that overwrites the input value with a given Level-Based Value.

Fields:

  • value: The Level-Based Value to use as the result

Attribute Effects

Attribute effects use the Attribute system to apply an Attribute Modifier whenever the Enchanted Item is correctly equipped. Attribute effects do not have a dynamic type - they are all the same type.

Fields:

  • id: The namespaced ID of the Attribute Modifier to add
    • This will be postfixed with the slot name when the enchanted item is equipped in a slot
    • Must be unique to avoid different Enchantments (or other systems) interfering with each others
  • attribute: The ID of the attribute to modify
  • operation: The operation of the Attribute Modifier
    • One of add_value, add_multiplied_base and add_multiplied_total
  • amount: A Level-Based Value describing the amount

Entity Effect Types

Entity Effects are Enchantment effects that generally do something to an Entity involved in an event. Which entity is affected depends on the specific component being configured.

all_of

An Entity Effect that runs a list of other Entity Effects. This can be useful when a set of conditions should apply to more than one Entity Effect.

Fields:

  • effects: List of Entity Effects to run

apply_mob_effect

An Entity Effect that applies a random Mob Effect to the affected entity, chosen from a set of options. The duration and amplifier are randomized within a given span. The effect of specifying larger maximum values than the minimum value is undefined.

Fields:

  • to_apply: Options for the Effect to apply
    • One of an Effect ID, a list of Effect IDs or an Effect Tag prefixed by #
  • min_duration, max_duration: Level-Based Values representing the minimum and maximum duration of the effect in seconds
  • min_amplifier, max_amplifier: Level-Based Values representing the minimum and maximum amplifier

damage_entity

An Entity Effect that applies damage to the affected entity. The amount of damage is randomized within a given span. The effect of specifying a larger maximum value than the minimum value is undefined.

Fields:

  • damage_type: The ID of the Damage Type to use
  • min_damage, max_damage: Level-Based Values representing the minimum and maximum amount of damage

damage_item

An Entity Effect that applies damage to the Enchanted Item. The damage is not applied to items held by players in creative mode.

Fields:

  • amount: A Level-Based Value determining the amount of damage to apply

explode

An Entity Effect that causes an explosion.

Fields:

  • attribute_to_user: A boolean deciding whether the explosion should be attributed to the user of the enchanted tool
  • damage_type: Optional damage type of the explosion - if omitted, no damage is dealt by the explosion
  • immune_blocks: Optional Block, list of Blocks or hash-prefixed Block Tag specifying which blocks fully block the explosion
  • knockback_multiplier: A Level-Based Value deciding the knockback multiplier caused by the explosion - if omitted, the default explosion knockback is applied
  • offset: A position offset for where the explosion is spawned
    • Format: list of 3 integers representing X, Y and Z offset
    • Optional, if omitted [0, 0, 0] is used
  • radius: A Level-Based Value representing the radius of the explosion
  • create_fire: A boolean for whether the explosion causes fire to be placed or not
  • block_interaction: How the explosion interacts with blocks. One of:
    • none: No effect
    • block: Act as if a block caused the explosion - the blockExplosionDropDecay game rule applies to drops
    • mob: Act as if a mob caused the explosion - the mobExplosionDropDecay game rule applies to drops
    • tnt: Act as if TNT caused the explosion - the tntExplosionDropDecay game rule applies to drops
    • trigger: Trigger redstone-activated blocks
  • small_particle: The small particle emitted by the explosion
  • large_particle: The large particle emitted by the explosion
  • sound: The sound event caused by the explosion

ignite

An Entity Effect that ignites the affected entity for a given number of seconds.

Fields:

  • duration: A Level-Based Value specifying the number of seconds the fire should last

play_sound

An Entity Effect that plays a sound.

Fields:

  • sound: A Sound Event ID for the sound to play
  • volume: A Float Provider between 0.00001 and 10.0 specifying the volume of the sound
  • pitch: A Float Provider between 0.00001 and 2.0 specifying the pitch of the sound

replace_block

An Entity Effect that replaces a block in the world.

Fields:

  • block_state: A block state provider giving the block state to set
  • offset: A positional offset from the position of the event to where to place the block
    • Format: list of 3 integers representing X, Y and Z offset
    • Optional, if omitted [0, 0, 0] is used
  • predicate: A World-generation style Block Predicate to used to determine if the block should be replaced
    • Optional, if omitted all block types are replaced
  • trigger_game_event: Optional Game Event ID for a game event to trigger when a block has been replaced

replace_disk

An Entity Effect that replaces blocks in a disk / cylinder in the world.

Fields:

  • block_state: A block state provider giving the block state to set
  • radius: A Level-Based Value describing the radius of the cylinder
  • height: A Level-Based Value describing the height of the cylinder
  • offset: A positional offset from the position of the event to the center of the cylinder
    • Format: list of 3 integers representing X, Y and Z offset
    • Optional, if omitted [0, 0, 0] is used
  • predicate: A World-generation style Block Predicate to used to determine if the block should be replaced
    • Optional, if omitted all block types are replaced
  • trigger_game_event: Optional Game Event ID for a game event to trigger when a block has been replaced

run_function

An Entity Effect that runs a Command Function. The execution entity the effect is executing for is represented as @s and ~ ~ ~ is the position of the event, rotated in the direction of the affected entity.

Fields:

  • function: Namespaced ID of the Command Function to run

set_block_properties

An Entity Effect that sets properties on a block

Fields:

  • properties: map of property key to property value (same format as a minecraft:block_state item component)
  • offset: A positional offset from the position of the event to the center of the cylinder
    • Format: list of 3 integers representing X, Y and Z offset
    • Optional, if omitted [0, 0, 0] is used
  • trigger_game_event: Optional Game Event ID for a game event to trigger when a block has been changed

spawn_particles

An Entity Effect that spawns particles around the affected entity.

Fields:

  • particle: A particle type definition
  • horizontal_position, vertical_position: Decides where the particle spawns horizontally and vertically. Objects with fields:
    • type: Specifies the position selection type. One of:
      • "entity_position": Spawn particles based on the entity position
      • "in_bounding_box": Spawn particles based on randomized positions inside the bounding box of the entity
    • offset: A floating point value specifying an offset to the position source
      • Optional, interpreted as 0 if omitted
    • scale: A floating point value specifying a scaling factor
      • Only available if type is "in_bounding_box"
      • Optional, interpreted as 1 if omitted
  • horizontal_velocity, vertical_velocity: Decides the initial velocity of the spawned particle. Object with fields:
    • base: A Float Provider giving the base speed along the given axis
      • Optional, interpreted as 0 if omitted
    • movement_scale: A floating point scale factor applied to the entity speed along the given axis
      • Optional, interpreted as 0 if omitted
      • Example: a movement_scale of 1 adds the velocity of the entity to the spawned particles

summon_entity

An Entity Effect that summons a new entity, randomly chosen from a set of Entity Types, at the site of the event.

Fields:

  • entity: The options for the Entity Type to summon
    • Either an Entity Type ID, a list of Entity Type IDs or an Entity Type Tag prefixed with #
  • join_team: Boolean that specifies whether the summoned entity should join the team of the owner of the Enchanted Item

Location-Based Effect Types

Location-Based Effects are special effects that activate and deactivate depending on where the owner of the Enchanted Item moves. Location-Based Effect only trigger when such items are initially equipped and subsequently when the owning entity moves to a new space in the Block grid - i.e. when their coordinates change to a new integer value.

All Entity Effect types can also be used as Location-Based Effects, and in addition attribute can be used to specify an Attribute Effect as a location-based effect.

Effect Conditions

Most Enchantment effects are filtered using Conditions (same types as in loot tables). This enables effects to be specific for different situations. Each Effect Component defines which parameters are available for the condition to evaluate - some parameters are available for all of these parameter sets, while some are specific to a certain set.

Unlike with loot tables, all effect conditions need to be inline objects and cannot be references.

Each effect component specifies which parameters are available in the Effect Components list below.

Damage Parameters
  • Entities: this, attacker, direct_attacker
  • Enchantment Level
  • Origin
  • Damage Source
Item Parameters
  • Tool
  • Enchantment Level
Location Parameters
  • Entities: this
  • Enchantment Level
  • Origin
  • Enchantment Active status
Entity Parameters
  • Entities: this
  • Enchantment Level
  • Origin
Hit Block Parameters
  • Entities: this
  • Enchantment Level
  • Origin
  • Block State

Effect Components

The effects field in an Enchantment is a map of Effect Component type the Effect List data. Most Effect Components are lists, so any number of Effects can be added of any Component Type. The data for each effect generally involves having a specified condition context and Effect Type, but some Effects also deviate from this format.

In cases where the documentation specifies a Condition Context and Effect, the Component is a list. Each entry in the list has a field named effect with the effect of the type used by the list. Entries can also optionally include a field named requirements specifying the condition parameters, which are then evaluated with the documented context.

  • minecraft:armor_effectiveness: Effects for changing the armor effectiveness of the target of an attack
    • Condition Context: Damage Parameters
    • Effect: Value Effect on the armor effectiveness: 0 for completely ineffective, 1 for fully effective
  • minecraft:attributes: Unfiltered list of Attribute Effects
  • minecraft:ammo_use: Effects for ammunition being used when drawing a projectile weapon (firing a Bow or loading a Crossbow)
    • Condition Context: Item Parameters - Tool is the ammunition item
    • Effect: Value Effect on the amount of ammunition being used up
  • minecraft:block_experience: Effects for the amount of experience that drops when mining a block with the Enchanted Item
    • Condition Context: Item Parameters - Tool is the mining tool used
    • Effect: Value Effect on the amount of experience awarded
  • minecraft:crossbow_charge_sounds: Effect for changing the charging sounds of a Crossbow
    • Note: Only one of these effects can ever be active - the highest level is picked
    • Format: A list of Crossbow sound banks:
      • start: Optional sound event id for the start of charging
      • mid: Optional sound event id for the middle of charging
      • end: Optional sound event id for the end of charging
    • Each entry in the list represents the sounds at one level of the Enchantment, so the first entry represents the sounds used by a level 1 Enchantment
  • minecraft:crossbow_charge_time: Effects for the charging time of a Crossbow
    • Format: A single Value Effect on the charge time of the Crossbow in seconds - unconditional
  • minecraft:damage: Effects for the amount of damage caused by an attack
    • Condition Context: Damage Parameters
    • Effect: Value Effect on the amount of damage
  • minecraft:damage_immunity: Effects for complete damage immunity
    • Condition Context: Damage Parameters
    • Effect: Not specified - any matching entry causes damage immunity
  • minecraft:damage_protection: Effects for damage protection
    • Condition Context: Damage Parameters
    • Effect: Value Effect on the amount of damage protection
    • Note that this adds damage protection ("magical armor") rather than processing the damage itself
  • minecraft:equipment_drops: Effects for the chance of equipment dropping when a target is killed by the owner of the Enchanted Item
    • Condition Context: Damage Parameters
    • Effect: Value Effect on the chance between 0 and 1 of an equipped piece dropping
    • Also has one other field:
      • enchanted: A specifier for who needs to be enchanted for the effect to apply
      • Possible values are attacker and victim
  • minecraft:fishing_luck_bonus: Effects for the amount of luck given to a player fishing
    • Condition Context: Entity Parameters - this is the player fishing
    • Effect: Value Effect on the amount of luck
    • Note: The total amount of luck (in integer form) is applied as a luck effect to the fishing loot table
  • minecraft:fishing_time_reduction: Effects for reducing the time until a fish bites when fishing
    • Condition Context: Entity Parameters - this is the player fishing
    • Effect: Value Effect on the amount of time saved in seconds
    • Note: Higher values here mean less time until a fish bites
  • minecraft:hit_block: Effects applying after a weapon or tool hits a Block
    • Condition Context: Hit Block Parameters - this is the entity hitting the Block
    • Effect: Entity Effect on the entity hitting the Block
    • Note: In the case of a projectile attack, this is the projectile
  • minecraft:knockback: Effects for the amount of knockback caused by an attack
    • Condition Context: Damage Parameters
    • Effect: Value Effect on the amount of knockback caused by the attack
  • minecraft:item_damage: Effects for the amount of durability lost when an item is damaged
    • Condition Context: Item Parameters - Tool is the damaged item
    • Effect: Value Effect on the amount of damage to the item
  • minecraft:location_changed: Effects that take effect when an entity crosses into a new block position
    • Condition Context: Location Parameters
    • Effect: Location Based Effect
  • minecraft:mob_experience: Effects for the amount of experience that drops when killing a mob with the Enchanted Item
    • Condition Context: Entity Parameters - this is the killed Mob
    • Effect: Value Effect on the amount of experience awarded
  • minecraft:post_attack: Effects applying after an attack damages a target
    • Condition Context: Damage Parameters
    • Effect: Entity Effect
    • Also has two other fields:
      • enchanted: A specifier for who needs to be enchanted for the effect to apply
      • affected: A specifier for whom the effect is applied to
    • Possible values for both fields are attacker, damaging_entity and victim
    • Example, a Fire Aspect Enchant would specify that when the attacker is enchanted, the ignite effect is applied, and the affected party is the victim
    • Another example: Thorns would specify that when the victim is enchanted, the damage_entity effect is applied, and the affected party is the attacker
  • minecraft:prevent_armor_change: Effect for preventing the enchanted item from being unequipped from an armor slot
    • Format: Empty object
  • minecraft:prevent_equipment_drop: Effect for preventing the enchanted item from being dropped on owner death
    • Format: Empty object
  • minecraft:projectile_count: Effects for the amount of projectiles drawn when using a projectile weapon
    • Condition Context: Entity Parameters - this is the entity drawing the weapon
    • Effect: Value Effect on the number of projectiles drawn
  • minecraft:projectile_piercing: Effects for the piercing count of projectiles fired from a projectile weapon, i.e. the number of targets it can hit
    • Condition Context: Item Parameters - Tool is the ammunition item
    • Effect: Value Effect on the pierce count of the fired projectile
  • minecraft:projectile_spread: Effects for the spread of arrows from a projectile weapon firing multiple projectiles
    • Condition Context: Entity Parameters - this is the entity using the Weapon
    • Effect: Value effect on the maximum spread of projectiles measured in degrees from the aim line
  • minecraft:projectile_spawned: Effects applying after a projectile entity has been spawned when firing a projectile weapon
    • Condition Context: Entity Parameters - this is the projectile entity
    • Effect: Entity Effect on the projectile entity
  • minecraft:repair_with_xp: Effect for repairing the item with xp when picked up by the player - any effect present triggers the function
    • Condition Context: Item Parameters - tool is the item being repaired
    • Effect: Value Effect converting the amount of XP to the amount of durability to repair
  • minecraft:smash_damage_per_block_fallen: Effects for the amount of damage caused by a Mace's smash attack
    • Condition Context: Damage Parameters
    • Effect: Value Effect on the amount of damage
  • minecraft:tick: Effects that apply every tick for correctly equipped Enchanted Items
    • Condition Context: Entity Parameters - this is the owner of the Enchanted Item
    • Effect: Entity Effect on the owner of the Enchanted Item
  • minecraft:trident_return_acceleration: Effects for the special acceleration value of a Trident that returns it to its owner
    • Condition Context: Entity Parameters - this the Trident Entity
    • Effect: Value Effect on the acceleration value
  • minecraft:trident_spin_attack_strength: Effects for the strength of a Trident used as a spin attack
    • Format: A single Value Effect on the strength - unconditional
    • Any resulting value greater than 0 converts the Trident to be a spin attack weapon instead of a thrown attack
  • minecraft:trident_sound: Effect for changing the charging sounds of a Trident attack
    • Note: Only one of these effects can ever be active - the highest level is picked
    • Format: A list of sound events
    • Each entry in the list represents the sound at one level of the Enchantment, so the first entry represents the sound used by a level 1 Enchantment

Noor, basking in the sunset, fires a Crossbow with a custom enchantment that allows for multiple Firework Rockets to be fired simultaneously.

Enchantment Providers

Enchantment Providers are new ways for the game to source Enchantments to use in various situations where Enchantments show up.

Spawn Equipment Enchantment Providers

  • mob_spawn_equipment: Enchantment Provider for mobs that spawn with randomly Enchanted equipment
  • pillager_spawn_crossbow: Enchantment Provider for Pillagers that spawn with Enchanted Crossbows
  • raid/pillager_post_wave_3: Enchantment Provider that is applied as a buff on the Crossbow of Pillagers spawning as waves 4 and 5
  • raid/pillager_post_wave_5: Enchantment Provider that is applied as a buff on the Crossbow of Pillagers spawning as waves above 5
  • raid/vindicator: Enchantment Provider that is applied as a buff on the Axe of a Vindicator spawning as wave 1-5
  • raid/vindicator_post_wave_5: Enchantment Provider that is applied as a buff on the Axe of a Vindicator spawning as waves above 5

Enderman Loot Enchantment Provider

  • enderman_loot_drop: Enchantment Provider that is used for the "fake tool" applied to the carried block of a killed Enderman

Villager Trade Rebalance Enchantment Providers

All Equipment-specific Enchantments in Villager trades in the Villager Trade Rebalance experiment are now sourced from Enchantment Providers.

These Enchantment Providers are only used when the Villager Trade Rebalance experiment is enabled and all have the following pattern:

trades/<biome>_<profession>_<equipment>_<level>

For example: trades/desert_armorer_helmet_4 and trades/taiga_armorer_chestplate_5.

Enchantment Provider Types

single_enchantment

An Enchantment Provider which always provides the same Enchantment. The level of the Enchantment can be either constant or randomized.

Fields:

  • enchantment: Namespaced ID of the Enchantment
  • level: Int provider representing the level of the Enchantment

enchantments_by_cost

An Enchantment Provider which gives one or more Enchantments from a set of options according to a given cost (similar to the cost value in the Enchantment Table).

Fields:

  • enchantments: The set of Enchantments as either a single Enchantment, a list of Enchantments or hash-prefixed Enchantment Tag
  • cost: Int provider representing the cost to use for the Enchanting process

enchantments_by_cost_with_difficulty

An Enchantment Provider which works like enchantments_by_cost, but where the cost is calculated partially based on the local difficulty of the area where the event happens causing the Enchantments to be added.

The used cost is a minimum cost plus a uniformly randomized factor up to a base cost span multiplied with the special factor, which starts at 0 for local difficulty up to 2, increases linearly up to 1 for local difficulty 4 and stays at a constant value of 1 for any difficulty above that.

Fields:

  • enchantments: The set of Enchantments as either a single Enchantment, a list of Enchantments or hash-prefixed Enchantment Tag
  • min_cost: Positive integer representing the minimum possible cost
  • max_cost_span: Non-negative integer representing the span of the cost randomization when the special factor is at its maximum

Damage Types

  • New damage type: campfire, split from in_fire

Tags

Directory renames

  • Some registry types that used legacy datapack directory names (based on plural name of element) have been renamed to match registry name
  • Affected directories:
    • structures -> structure
    • advancements -> advancement
    • recipes -> recipe
    • loot_tables -> loot_table
    • predicates -> predicate
    • item_modifiers -> item_modifier
    • functions -> function
    • tags/functions -> tags/function
    • tags/items -> tags/item
    • tags/blocks -> tags/block
    • tags/entity_types -> tags/entity_type
    • tags/fluids -> tags/fluid
    • tags/game_events -> tags/game_event

Item Tags

  • Removed music_discs item tag

Block Tags

  • air: All blocks that resemble air

Enchantment Tags

Enchantment Functionality Tags
  • curse: Enchantments that get listed in red in tooltips and cannot be removed by disenchanting
  • prevents_bee_spawns_when_mining: Enchantments that allow a tool to mine Bee Nests and Beehives with the Bees still inside
  • prevents_decorated_pot_shattering: Enchantments that make a tool not shatter Decorated Pots
  • prevents_ice_melting: Enchantments that cause a tool to not break Ice into Water
  • prevents_infested_spawns: Enchantments that allow a tool to break Infested blocks without causing the mob inside to spawn
  • smelts_loot: Enchantments that cause loot drops to be smelted
Enchantment Availability Tags
  • tradeable: Enchantments that show up on Books in Villager trades
  • on_traded_equipment: Enchantments that show up on enchanted equipment in Villager trades
  • double_trade_price: Enchantments that double the Emerald cost when traded
  • in_enchanting_table: Enchantments that can show up in the Enchanting Table
  • on_mob_spawn_equipment: Enchantments that can show up on equipment worn by randomly spawned mobs
  • on_random_loot: Enchantments that can show up in Chests found in the world
Enchantment Exclusivity Tags

New tags used by the Vanilla Enchantments to control which ones are mutually exclusive, all of which are found under the exclusive_set/ path.

  • armor: Enchantments that cannot co-exist on Armor pieces
  • boots: Enchantments that cannot co-exist on Boots
  • bow: Enchantments that cannot co-exist on Bows
  • crossbow: Enchantments that cannot co-exist on Crossbows
  • damage: Damage-increasing Enchantments that cannot co-exist
  • mining: Mining-related Enchantments that cannot co-exist
  • riptide: Enchantments that cannot co-exist with Riptide
Trade Rebalance Enchantment Tags

In the experimental trade_rebalance pack, each biome type has two tags:

  • trades/<biome>_common: Contains Enchantments traded on the lower profession levels
  • trades/<biome>_special: Contains Enchantments traded on the highest profession level

Damage Type Tags

  • Removed breeze_immune_to Damage type tag
  • Added burn_from_stepping: Damage types that represent burning damage from stepping on something - in particular, damage types countered by the frost_walker Enchantment
  • Added panic_environmental_causes: Damage types that cause panic in aggressive animals that can panic, i.e. mobs that retaliate when attacked
  • Added panic_causes: Damage types that cause panic in passive animals, i.e. mobs that run away when attacked

Loot Tables

Conditions

Targets

Some target entity names have been renamed to fit in a more generic context:

  • killer is now called attacker
  • direct_killer is now called direct_attacker
  • killer_player is now called attacking_player

enchantment_active_check

New condition, requires the "Enchantment Active" parameter to exist in the context, which currently means it only works in Enchantment conditions.

Fields:

  • active: boolean determining whether the check should match for an active (true) or inactive (false)

random_chance

  • The chance field is now a Number Provider

random_chance_with_enchanted_bonus

Renamed from random_chance_with_looting. Field changes:

  • looting_multiplier: field has been removed
  • chance: field has been removed
  • unenchanted_chance: new field for the chance for an unenchanted item
  • enchanted_chance: new field for the chance for an enchanted item - a Level-Based Value
  • enchantment: new field containing the namespaced ID of the Enchantment which grants the bonus chance

Functions

enchanted_count_increase

Renamed from looting_enchant. Now has a new field:

  • enchantment: Namespaced ID of the Enchantment that increases yields

enchant_randomly

  • Changed format - the enchantments field is now called options
  • options is now specified as one of an Enchantment, a list of Enchantments or an Enchantment Tag (prefixed with #)
  • only_compatible: New optional boolean field - if true, only allows Enchantments that are compatible with the item
    • If omitted, defaults to true
    • Note: Books are considered compatible with all Enchantments

enchant_with_levels

  • The treasure field has been removed
  • Changed format - options is now specified as one of an Enchantment, a list of Enchantments or an Enchantment Tag (prefixed with #)

copy_name

  • Some of the possible values for the source field have changed:
    • killer renamed to attacking_entity
    • killer_player renamed to last_damage_player

Number Providers

enchantment_level

A new number provider that sources values from the Enchantment Level parameter.

Fields:

  • amount: A Level-Based Value giving a value based on the level of the Enchantment

Predicates

Damage Type Predicate

  • New option: is_direct - optional boolean
    • When present, requires the damage to be direct (true) or indirect (false)
    • Damage is direct when its direct and source entities are the same

Enchantment Predicate

  • The enchantment field has been removed
  • Added an enchantments field, one of an Enchantment, a list of Enchantments or an Enchantment Tag (prefixed with #)
    • If multiple Enchantments are specified through a list or a tag, the Predicate matches if any Enchantment matches
  • If no enchantments field is specified, any enchantment matching levels will succeed the test
    • If neither the levels nor enchantments fields are defined, the predicate will match an item that has any enchantment

Jukebox Playable Predicate

New item sub-predicate available as jukebox_playable.

  • Matcher for jukebox_playable component (like Music Discs)
  • Fields:
    • song - optional id, list of ids or tag for jukebox song to be matched

Entity Predicate

  • New sub-predicate type Movement Predicate available as movement
  • New sub-predicate type Periodic Ticks Predicate available as periodic_tick
  • New option: movement_affected_by - optional Location Predicate
    • When present, adds requirements on a block at most 0.5 blocks below the entity which can affect its movement

Player Predicate

  • The gamemode field has been changed to accept a list of game modes

Entity Flags Predicate

New possible fields:

  • is_on_ground: Optional boolean - if provided, matches the "on ground" state of the entity
  • is_flying: Optional boolean - if provided, matches whether the entity is flying, including:
    • Gliding with Elytra
    • Flying in Creative Mode

Location Predicate

New possible field:

  • can_see_sky: Optional boolean - if provided, matches exactly when the location has the maximum possible level of sky light

Movement Predicate

New predicate type. Possible fields:

  • x, y, z: min/max limits for movement speed along a certain axis in blocks / second
  • speed: min/max limits for overall movement speed in blocks / second
  • horizontal_speed: min/max limits for the horizontal speed component of the entity's movement in blocks / second
  • vertical_speed: min/max limits for the vertical speed component of the entity's movement in blocks / second
  • fall_distance: min/max limits for the fall distance of the entity in blocks

Periodic Ticks Predicate

New Entity sub-predicate available as periodic_tick in Entity Predicates. Format: a positive integer.

This sub-predicate is true every n ticks of an entity's lifetime.

Attributes

generic.attack_knockback

Now also works on Players.

generic.burning_time

A factor to how long an entity remains on fire after being ignited. A factor of 0 removes the entire burn time, a factor of 1 lets the entity burn the default fire time - larger values increase the amount of time the entity remains on fire.

  • Default: 1
  • Minimum: 0
  • Maximum: 1024

generic.explosion_knockback_resistance

A factor to how much knockback an entity takes from an Explosion. A factor of 1 removes the entire knockback, a factor of 0 means no knockback reduction.

  • Default: 0
  • Minimum: 0
  • Maximum: 1

player.mining_efficiency

Mining speed factor added to the speed of mining when using a tool that efficiently mines a block.

  • Default: 0
  • Minimum: 0
  • Maximum: 1024

generic.movement_efficiency

How efficiently the entity can move through impeding terrain that slows down movement. A factor of 1 removes all movement penalty, a factor of 0 applies full movement penalty.

  • Default: 0
  • Minimum: 0
  • Maximum: 1

generic.oxygen_bonus

Factor to the chance an Entity has to not use up air when underwater. 0 has no effect, values over 0 are used in the following formula to determine the chance of using up air:

1 / (oxygen_bonus + 1)

  • Default: 0
  • Minimum: 0
  • Maximum: 1024

player.sneaking_speed

The movement speed factor when sneaking. A factor of 1 means sneaking is as fast as walking, a factor of 0 means unable to move while sneaking.

  • Default: 0.3
  • Minimum: 0
  • Maximum: 1

player.submerged_mining_speed

The mining speed factor when submerged. A factor of 1 means mining as fast submerged as on land, a factor of 0 means unable to mine while submerged. Note that this represents only the submersion factor itself, and other factors (such as not touching the ground) also apply.

  • Default: 0.2
  • Minimum: 0
  • Maximum: 20

player.sweeping_damage_ratio

How much of the base attack damage that gets transferred transfer to secondary targets in a sweep attack. This is additive to the base attack of the sweep damage itself of 1. A value of 0 means none of the base attack damage is transferred (sweep damage is 1). A value of 1 means all of the base attack damage is transferred (sweep damage is attack_damage + 1)

  • Default: 0
  • Minimum: 0
  • Maximum: 1

generic.water_movement_efficiency

The movement speed factor when submerged. The higher, the more of the underwater movement penalty is mitigated. Note that this represents only the submersion factor itself, and other factors (such as not touching the ground) also apply.

  • Default: 0
  • Minimum: 0
  • Maximum: 1

Block Predicates (World Generation Style)

unobstructed

New block predicate type that passes if the selected block is unobstructed (no entities are in the space of the block).

Fields:

  • offset: List of 3 int offset coordinates, specifying the offset from the origin position to test
    • Optional, defaults to [0, 0, 0] if unspecified

Entity Data

Projectiles

  • Arrow-like projectile data now contains a weapon field containing an Item Stack representing the weapon the projectile was fired from
  • The ShotFromCrossbow field has been removed
  • Removed power NBT tag and replaced it with acceleration_power tag with a number value that control the projectiles acceleration (and maximum speed)
    • This change affects the following projectiles; dragon_fireball, large_fireball, small_fireball, fireball, breeze_wind_charge, wind_charge, wither_skull

Item Components

  • The custom_data component can now be specified as an SNBT string to preserve type information in JSON
    • This is the same as is used in the set_custom_data loot function and custom_data predicate
  • The food item component has a new field:
    • using_converts_to: item with components (optional)
      • Once consumed, the food item will be replaced with the specified item
      • e.g. food={nutrition:1,saturation:0,using_converts_to:{id:"poisonous_potato",components:{"minecraft:custom_name":'"Wait what?"'}}}

Structures

  • Added dimension_padding field to structures of type minecraft:jigsaw, which ensures that a structure is not generating through the edges of a dimension by adding vertical padding to its bounding box
    • Can be written as an object with two fields:
      • bottom the vertical padding at the bottom of the dimension, non-negative integer
      • top the vertical padding at the top of the dimension, non-negative integer
      • e.g. dimension_padding: { bottom: 10, top: 5 }
    • Can be written as a single non-negative integer instead to be applied to both top and bottom fields
      • e.g. dimension_padding: 10
  • Added liquid_settings field to structures of type minecraft:jigsaw. Possible values:
    • apply_waterlogging: If any waterloggable block overlaps with existing water, it will become waterlogged
    • ignore_waterlogging: If any waterloggable block overlaps with existing water, it will not become waterlogged
    • Default value is apply_waterlogging
  • Added optional field override_liquid_settings to single_pool_element element type
    • Has the same possible values as the liquid_settings in jigsaw structures
    • If provided, it overrides the inherited liquid settings from the parent jigsaw structure while generating this pool element

Commands

  • The item argument in the /give, /item, and /loot commands now supports removal of default components with ! prefix
    • e.g. /give @s diamond_pickaxe[!tool] will give a Diamond Pickaxe without the tool component
  • Added @n entity selector, selecting the nearest entity
    • This functions as @e[sort=nearest,limit=1]
    • Additional requirements may still be provided; for example: @n[type=pig] will select the closest Pig

Resource Pack Versions 33 Through 34

  • Added new textures and music assets for Music Discs
  • Renamed sound events for Ominous Trial Spawner becoming active and ambient sound
  • Added the block.vault.reject_rewarded_player sound event
  • Changes to Shaders

Shaders

  • The blend block in core shader definitions has been removed, as it was not used
  • The position_color_tex shader has been removed, replaced with the pre-existing position_tex_color
  • The glint_direct shader has been removed, replaced with the pre-existing glint shader
  • The armor_glint shader has been removed, as it was unused

Fixed bugs in 1.21

Around 220 bugs were fixed in this release. View the list on the issue tracker.