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
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)
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
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
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
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 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
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 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
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
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