View changelog
Minecraft 1.21 Release
Tricky Trials Now Out for JavaIt'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
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
- Melee
- 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)
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
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
- Unique enchantment which can only be found in Ominous Vaults
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
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
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
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
Banner Patterns
- 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
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
- Mobs that can wear equipment will often spawn with enchanted weapons and armor
- 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
- Wind Charged
- 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
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
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
Server Links
- 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
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
Server Links
- New clientbound packet
server_links
is available inconfiguration
andgame
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
toserver.properties
to allow vanilla server to configurereport_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 theconfiguration
andgame
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 todecorated_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 16height
- height of painting in blocks, between 1 and 16asset_id
- id of sprite inpaintings
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 Jukeboxdescription
- the name of the song that will be displayed in the hover tooltip represented as a Text Componentlength_in_seconds
- length of the song in seconds as a positive floatcomparator_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}
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
andname
arguments have been replaced with a singularid
argument
Item Stack Attribute Modifiers
- The
uuid
andname
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 fromName
base
, renamed fromBase
modifiers
, renamed fromModifiers
- Now stores modifiers in the same format as modifiers in
attribute_modifiers
item stack components:id
, replacesUUID
andName
amount
, renamed fromAmount
operation
, renamed fromOperation
, now a named constant instead of an int:add_value
- previously0
add_multiplied_base
- previously1
add_multiplied_total
- previously2
- Now stores modifiers in the same format as modifiers in
Enchantments
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 Componentexclusive_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
#
- 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
- Item ID, list of item IDs or tag prefixed with
weight
: How commonly the Enchantment appears, compared to the total combinedweight
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 1per_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
andbody
- Each entry is one of
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 levelsper_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 inputmin
: A floating point value specifying the minimum value of the outputmax
: 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 numeratordenominator
: 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 bylevel - 1
to apply, if presentfallback
- A fallback Level-Based Value to apply if the level is greater than the size ofvalues
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 modifyoperation
: The operation of the Attribute Modifier- One of
add_value
,add_multiplied_base
andadd_multiplied_total
- One of
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
#
- 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 secondsmin_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 usemin_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 tooldamage_type
: Optional damage type of the explosion - if omitted, no damage is dealt by the explosionimmune_blocks
: Optional Block, list of Blocks or hash-prefixed Block Tag specifying which blocks fully block the explosionknockback_multiplier
: A Level-Based Value deciding the knockback multiplier caused by the explosion - if omitted, the default explosion knockback is appliedoffset
: 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 explosioncreate_fire
: A boolean for whether the explosion causes fire to be placed or notblock_interaction
: How the explosion interacts with blocks. One of:none
: No effectblock
: Act as if a block caused the explosion - theblockExplosionDropDecay
game rule applies to dropsmob
: Act as if a mob caused the explosion - themobExplosionDropDecay
game rule applies to dropstnt
: Act as if TNT caused the explosion - thetntExplosionDropDecay
game rule applies to dropstrigger
: Trigger redstone-activated blocks
small_particle
: The small particle emitted by the explosionlarge_particle
: The large particle emitted by the explosionsound
: 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 playvolume
: A Float Provider between0.00001
and10.0
specifying the volume of the soundpitch
: A Float Provider between0.00001
and2.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 setoffset
: 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 setradius
: A Level-Based Value describing the radius of the cylinderheight
: A Level-Based Value describing the height of the cylinderoffset
: 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 aminecraft: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 definitionhorizontal_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
- Optional, interpreted as
scale
: A floating point value specifying a scaling factor- Only available if type is
"in_bounding_box"
- Optional, interpreted as
1
if omitted
- Only available if type is
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
- Optional, interpreted as
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
of1
adds the velocity of the entity to the spawned particles
- Optional, interpreted as
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
#
- 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 Effectsminecraft: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 chargingmid
: Optional sound event id for the middle of chargingend
: 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
and1
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
andvictim
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
- Condition Context: Entity Parameters -
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
- Condition Context: Entity Parameters -
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
- Condition Context: Hit Block Parameters -
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
- Condition Context: Entity Parameters -
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 applyaffected
: A specifier for whom the effect is applied to
- Possible values for both fields are
attacker
,damaging_entity
andvictim
- Example, a Fire Aspect Enchant would specify that when the
attacker
isenchanted
, theignite
effect is applied, and theaffected
party is thevictim
- Another example: Thorns would specify that when the
victim
isenchanted
, thedamage_entity
effect is applied, and theaffected
party is theattacker
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
- Condition Context: Entity Parameters -
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
- Condition Context: Entity Parameters -
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
- Condition Context: Entity Parameters -
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
- Condition Context: Item Parameters -
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
- Condition Context: Entity Parameters -
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
- Condition Context: Entity Parameters -
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
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 equipmentpillager_spawn_crossbow
: Enchantment Provider for Pillagers that spawn with Enchanted Crossbowsraid/pillager_post_wave_3
: Enchantment Provider that is applied as a buff on the Crossbow of Pillagers spawning as waves 4 and 5raid/pillager_post_wave_5
: Enchantment Provider that is applied as a buff on the Crossbow of Pillagers spawning as waves above 5raid/vindicator
: Enchantment Provider that is applied as a buff on the Axe of a Vindicator spawning as wave 1-5raid/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 Enchantmentlevel
: 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 Tagcost
: 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 Tagmin_cost
: Positive integer representing the minimum possible costmax_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 fromin_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 disenchantingprevents_bee_spawns_when_mining
: Enchantments that allow a tool to mine Bee Nests and Beehives with the Bees still insideprevents_decorated_pot_shattering
: Enchantments that make a tool not shatter Decorated Potsprevents_ice_melting
: Enchantments that cause a tool to not break Ice into Waterprevents_infested_spawns
: Enchantments that allow a tool to break Infested blocks without causing the mob inside to spawnsmelts_loot
: Enchantments that cause loot drops to be smelted
Enchantment Availability Tags
tradeable
: Enchantments that show up on Books in Villager tradeson_traded_equipment
: Enchantments that show up on enchanted equipment in Villager tradesdouble_trade_price
: Enchantments that double the Emerald cost when tradedin_enchanting_table
: Enchantments that can show up in the Enchanting Tableon_mob_spawn_equipment
: Enchantments that can show up on equipment worn by randomly spawned mobson_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 piecesboots
: Enchantments that cannot co-exist on Bootsbow
: Enchantments that cannot co-exist on Bowscrossbow
: Enchantments that cannot co-exist on Crossbowsdamage
: Damage-increasing Enchantments that cannot co-existmining
: Mining-related Enchantments that cannot co-existriptide
: 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 levelstrades/<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 thefrost_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 calledattacker
direct_killer
is now calleddirect_attacker
killer_player
is now calledattacking_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 removedchance
: field has been removedunenchanted_chance
: new field for the chance for an unenchanted itemenchanted_chance
: new field for the chance for an enchanted item - a Level-Based Valueenchantment
: 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 calledoptions
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 - iftrue
, only allows Enchantments that are compatible with the item- If omitted, defaults to
true
- Note: Books are considered compatible with all Enchantments
- If omitted, defaults to
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 toattacking_entity
killer_player
renamed tolast_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
- When present, requires the damage to be direct (
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 matchinglevels
will succeed the test- If neither the
levels
norenchantments
fields are defined, the predicate will match an item that has any enchantment
- If neither the
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_ticks
- 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 entityis_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 / secondspeed
:min
/max
limits for overall movement speed in blocks / secondhorizontal_speed
:min
/max
limits for the horizontal speed component of the entity's movement in blocks / secondvertical_speed
:min
/max
limits for the vertical speed component of the entity's movement in blocks / secondfall_distance
:min
/max
limits for the fall distance of the entity in blocks
Periodic Ticks Predicate
New Entity sub-predicate available as periodic_ticks
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
- Optional, defaults to
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 withacceleration_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
- This change affects the following projectiles;
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 andcustom_data
predicate
- This is the same as is used in the
- 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 typeminecraft: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 integertop
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
- e.g.
- Can be written as an object with two fields:
- Added
liquid_settings
field to structures of typeminecraft:jigsaw
. Possible values:apply_waterlogging
: If any waterloggable block overlaps with existing water, it will become waterloggedignore_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
tosingle_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
- Has the same possible values as the
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 thetool
component
- e.g.
- 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
- This functions as
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-existingposition_tex_color
- The
glint_direct
shader has been removed, replaced with the pre-existingglint
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.