View changelog
Minecraft Snapshot 24w18a
A Minecraft Java SnapshotBecause it's the month of May, may we tempt you with the first Snapshot for Java Edition 1.21? This one looks as excellent as it sounds, thanks to the 20 new paintings and 3 new music discs it adds to the game. And we're not stopping there, data-driven enchantments are also being thrown into the fray with this Snapshot (hence the 900+ line changelog). We also included a batch of new bug fixes for good measure.
Happy mining!
New Features
- All Features from the experimental 1.21 pack have been moved to vanilla
- Added 5 new paintings by artist Sarah Boeving
- Added 15 new paintings by artist Kristoffer Zetterstrand
- Added 9 new music tracks
- Added 3 new music discs
Music
- Added 9 new background music tracks which will all play in the main menu
- Some of these new songs play in specific biomes in-game:
featherfall
- Plays in Badlands, Cherry Grove, Flower Forest, and Lush Caves
deeper
- Plays in Deep Dark and Dripstone Caves
eld_unknown
- Plays in Dripstone Caves, Grove, Jagged Peaks, and Stony Peaks
endless
- Plays in Dripstone Caves, Grove, Jagged Peaks, and Stony Peaks
pokopoko
- Plays in Dripstone Caves, Grove, Jagged Peaks, and Snow Slopes
- The following have been added to the pool of songs which play in Overworld biomes that do not have biome-specific music:
featherfall
komorebi
puzzlebox
watcher
yakusoku
Music Discs
- Added 3 new music discs
- Aaron Cherof - Precipice can be found rarely in standard Vaults
- Has a comparator output of 13 when played in a Jukebox
- Lena Raine - Creator can be found rarely in Ominous Vaults
- Has a comparator output of 12 when played in a Jukebox
- Lena Raine - Creator (Music Box) can be found rarely in Decorated Pots broken in Trial Chambers
- 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
Changes
- Rotten flesh has been removed as a possible item for Trial Spawners to eject
- Mace enchantments are slightly more common in Ominous Vaults
- 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
- Updated the confirmation-screens in Realms to show as popups
Trial Chambers
- Spider spawners have been moved to the "melee" category
- Slime spawners have been moved to the "small melee" category
- Made various layout changes in intersections and corridors
- Added new trap dispenser style to chambers
- Fixed various broken jigsaw connections in the corridors
- Made seams match in corridors
- Added new entrance variations
- Fixed various broken or incorrect jigsaw data
- Added empty Chests to chamber entrances
Ominous Trial Spawner
- Ominous Trial Spawners with mobs that are unable to wear equipment now spawn double the total mob count over the course of the challenge
- These spawners will also have an additional mob out at once during its challenge
- Bottle o' Enchanting is no longer a possible projectile for Ominous Trial Spawners
Copper Doors and Trapdoors
- Copper Doors and Trapdoors are now crafted from Copper Ingots instead of Copper Blocks
- Oxidized variants of Copper Doors and Copper Trapdoors can no longer be crafted
- Waxed variants can still be crafted with Honeycomb
Technical Changes
- Resource Pack version is now 33
- Data Pack version is now 42
- Removed the
update_1_21
feature flag and built-in datapack
Data Pack Version 42
- Added new Music Disc items and loot table entries for the Music Discs
- Painting variants are now data-driven
- 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.
- 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
- Changes to predicates and loot table functions
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
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 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 - 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
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
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:
name
: The name of the Attribute Modifier to addattribute
: 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 amountuuid
: A string containing a UUID for the Attribute Modifier to use- Must be unique to avoid different Enchantments (or other systems) interfering with each others
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.
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
replace_disc
An Entity Effect that replaces blocks in a disc / 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
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.
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
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 selectiont 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.
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
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 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- Condition Context: Item Parameters - Tool is the Crossbow
- Effect: Value Effect on the charge time of the Crossbow in seconds
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: Entity 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: Entity 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- Condition Context: Entity Parameters -
this
is the Player holding the Trident - Effect: Value Effect on the attack strength
- Any resulting value greater than 0 converts the Trident to be a spin attack weapon instead of a thrown attack
- Condition Context: Entity Parameters -
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 applied as a buff on the Crossbow of Pillagers spawning as waves 4 and 5raid/pillager_post_wave_5
: Enchantment provider applied as a buff on the Crossbow of Pillagers spawning as waves above 5raid/vindicator
: Enchantment provider applied as a buff on the Axe of a Vindicator spawning as wave 1-5raid/vindicator_post_wave_5
: Enchantment provider applied as a buff on the Axe of a Vindicator spawning as waves above 5
Enderman Loot Enchantment Provider
enderman_loot_drop
: An Enchantment provided 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
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 hives 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 on loot in loot chests found in the world
Enchantment Exclusivitity 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-exitriptide
: 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
burn_from_stepping
: Damage types that represent burning damage from stepping on something - in particular, damage types counterd by thefrost_walker
Enchantment
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
: this is now a Level-Based Valuesenchantment
: 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
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
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 fields:
can_see_sky
: Optional boolean - if provided, matches exactly when the location has the maximum possible level of sky lightweather
: Optional enumerated value, matching the weather in the location's dimension. One of:clear
raining
thunder
Movement Predicate
New sub-predicate available as movement
in Entity Predicates. 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
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 transfered 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 following fields have been removed:
ShotFromCrossbow
Resource Pack Version 33
- Added new textures and music assets for Music Discs
- Renamed sound events for Ominous Trial Spawner becoming active and ambient sound
Fixed bugs in Snapshot 24w18a
- MC-44280 Entities don't receive knockback from projectiles fired from dispensers
- MC-59626 Arrows lose their Punch enchantment property when unloaded
- MC-76104 Guardians are unaffected by Thorns enchantment
- MC-93669 The sweeping attack doesn't ignite other mobs when using the fire aspect enchantment
- MC-99411 Frost Walker ice only semi-affected by randomTickSpeed gamerule
- MC-116643 Silk Touch cannot be combined with Looting or Luck of the Sea
- MC-117361 Mob type specific damage enchantment (Smite, Bane of Arthropods) affects all nearby entities when hitting affected mob with Sweeping Edge
- MC-131637 The slowness effect is applied to entities when the bane of arthropods enchantment is held in the off hand
- MC-158245 Fire Aspect enchantment from mobs can set you on fire even when blocking with a shield
- MC-177965 Putting on/taking off soul speed boots while standing on soul sand/soil does not properly give speed
- MC-182606 When sneak-walking with Soul Speed on a Soul Sand or Soul Soil block (most noticeably) adjacent to lava, too many soul particles spawn
- MC-188693 FOV doesn't change back when riding a mob after staying on Soul Sand with Soul Speed
- MC-189365 Player can retain Soul Speed effect by bridging
- MC-200899 Players don't receive thorns damage when attacking entities wearing thorns armor with indirect sweeping attacks
- MC-200991 Soul Speed in minecart uses durability
- MC-213349 Certain mobs that can melee can't use the Fire Aspect enchantment
- MC-215144 A re-created "Default" world has world type of "Custom"
- MC-223301 Goats not taking damage when attacking with Thorns armor equipped
- MC-224743 Jumping on soul sand uses durability of Soul Speed boots
- MC-225312 Evokers using evoker fangs are not affected by the Thorns enchantment
- MC-232770 Entities receive knockback from incorrect directions when being damaged by firework explosions
- MC-234880 Llama's unaffected by Thorns
- MC-237057 The "minecraft:particle.soul_escape" sound is very rarely heard by other players when using boots enchanted with soul speed
- MC-237063 Particles produced from using boots enchanted with soul speed are inconsistently displayed for other players
- MC-248272 Enchantment::doPostHurt and Enchantment::doPostAttack are called twice for players
- MC-253457 Cats and Ocelots are immune to Thorns damage
- MC-258497 Parity issue: Fire Aspect enchant does not set fire to candles
- MC-258967 Entities receive knockback from splash potions based on the direction that the said entity was facing when throwing the potion
- MC-261701 Lag spike when opening creative inventory for first time in world
- MC-266556 Trial spawner cannot be activated in peaceful difficulty
- MC-267154 Using an Eye of Ender plays the minecraft:entity.ender_eye.launch sound event twice
- MC-267441 When a player's generic.step_height attribute is set to more than two, attempting to step atop of more than two blocks may fail if there are blocks higher up
- MC-268347 Setting gravity higher than 0.84 allows you to jump up a block
- MC-268367 Arrows repeatedly bouncing off a breeze spam sound
- MC-268551 When a wind charge is fired from a dispenser, it makes a "dispensed item" sound instead of a "Wind Charge flies" sound
- MC-268564 Entities receive knockback from incorrect directions when being hit by projectiles deflected by breezes
- MC-269881 Flow and Bolt Armor Trims don't grant "Crafting a New Look" advancement
- MC-269958 New effects are not required for the "How Did We Get Here?" advancement
- MC-269966 "A Furious Cocktail" Advancement does not require the new potion effects
- MC-269969 Using a normal trial key on the ominous vault grants Under Lock and Key advancement
- MC-270021 Drinking a single ominous bottle in survival doesn't grant bad omen with the correct amplifier
- MC-270031 Arrows spawned from ominous trial spawner can be picked up
- MC-270047 Axe Prioritizes Scraping Copper over Shield
- MC-270216 Mace smash attack particles cannot be reduced with the Particles setting
- MC-270278 "Who needs rockets?" is granted at heights lower than 8 blocks when using slow falling
- MC-270379 Buttons and Levers don't make sounds when toggled by Wind Charges
- MC-270499 Riptide trident in off-hand applies mace effects in main hand
- MC-270588 Hitting Wind Charges and Fireballs makes no sound
- MC-270682 modify_contents item modifier can create overstacked items
- MC-270791 Mace smash attack can knockback tamed mobs
- MC-270849 Breeze can extinguish lit candles when mobGriefing is false
- MC-270934 Missing trial chamber structure minecraft:trial_chambers/chamber/addon/c6
- MC-270974 Breeze wind charges can change activation blockstates of redstone components when mobGriefing is disabled
- MC-270977 Breezes don't make deflection sounds
- MC-271039 Upgrading to 1.20.5 leads to the removal of all enchantments if item had the "sweeping" enchantment without namespace
- MC-271157 "Telemetry is disabled" tooltip does not get updated when the client locale changes