Java Edition 1.20.2

1.20.2 is a minor update to , released on September 21, 2023, which adds the Villager Trade Rebalance experimental toggle and the command, and fixes bugs. This version is not compatible with 1.20 to 1.20.1 servers.
== Additions ==
=== Command format ===
; 
* A new command for randomizing values and controlling random sequences.
** Syntaxes:
*** : draw a random value.
*** : control random sequences.
** Arguments:
*** range: A range of values to randomize between, inclusively. For instance, 1..6 is a regular D6 roll.
*** sequence: The name of a random sequence to sample or.
**** In , * refers to all random sequences.
*** seed: A seed to use for the random sequence after reset.
*** includeWorldSeed: A boolean specifying whether to include the world seed when seeding the sequence. Defaults to true.
**** When false, it means the sequence will evaluate to the same regardless of which world the command is run in.
*** includeSequenceId: A boolean specifying whether to include the sequence ID when seeding the sequence. Defaults to true.
**** When false, it means all sequences will evaluate to the same regardless of which name they have.
** notes:
*** When using roll rather than value, the resulting value is also shown in chat for all players.
*** When sequence not specified, this command can be executed by players without operator privileges.
** notes:
*** By default, all sequences are seeded as .
*** Using * instead of a sequence ID resets all sequences and sets the default parameters.
*** If no seed is specified, the sequence resets to the default parameters.
=== General ===
; Attributes
* Added the generic.max_absorption attribute.
** Acts similar to generic.max_health, but instead of being the upper bound for Health, it is the upper bound for AbsorptionAmount.
** The mob effect absorption increases generic.max_absorption as well as fills the AbsorptionAmount to the max when applied.
; Experiments
* Added the "Villager Trade Rebalance" experimental toggle (trade_rebalance data pack).
; Game rule
* Added enderPearlsVanishOnDeath, controlling whether thrown ender pearls vanish when the player that threw them dies, defaults to true.
; Loot table
* Added sequence loot function.
** Contains 1 field:
*** functions: an array of sub-functions to run in sequence.
** Can also be declared as an inline array without a type.
*** This matches the existing behavior where loot function JSON files can be declared as an array of composite functions.
* all_of predicates in loot tables can now be declared implicitly as an inline array without a type.
** This similarly matches the existing behavior where loot predicate JSON files can be declared as an array of sub-predicates.
; Options
* Added "Narrator Hotkey" option to accessibility settings, opened by default.
** Pressing will not open narrator if it is turned off.
; options.txt
* Added narratorHotkey, defaults to true.
; Social interactions
* Player skins and names can now be reported in the social interactions screen.
** Like chat reports, player skin and name reports are handled by a human.
** If a skin or name is reported, and found to be violating the Community Standards, following actions can be take by Minecraft moderators:
*** Ban the skin from being used by any player.
*** Ban the name from being used by any player.
*** Suspend the player from online play in the case of repeated offences.
** When a skin is banned, players with that skin:
*** Will have their skin removed.
*** Will be notified when they launch the game.
*** Will be automatically assigned one of the default skins.
*** Can still play multiplayer and singleplayer.
*** Can select a new custom skin at any time.
** When a player's name is banned, that player:
*** Will need to choose a new name.
*** Will be notified when they launch the game.
*** Will not be able to play online until they change their name.
*** Can still play singleplayer.
** A skin or name that has been banned cannot be used by any player in the future.
* Added following report category:
** I want to report them
*** I'm annoyed with them / they have done something I do not like.
; Tags
* Added the following block tags:
** : contains .
** : contains all types of concrete powders.
* Added the following damage type tags:
** : contains .
*** Damage types included in this tag should always fully kill an armor stand.
** : contains .
*** Causes knockback to not be caused by the damage itself. Used in Vanilla for damage that is caused by events, such as explosions, which apply knockback separately.
* Added the following entity tag:
** : contains .
*** Represents entities that don't override their vehicles movement control.
== Changes ==
=== Blocks ===
; Barrier
* No longer produces fall particles when entities fall on them.
* No longer creates particles when a player brushes them.
* Can now be waterlogged by players in Creative mode.
** Water cannot be placed in them or taken out by non-direct interactions such as dispensers.
; Chorus Flower
* No longer provides support for hanging or standing blocks.
; Decorated Pots
* Now have Creative inventory tooltips.
; Enchanting Table
* Reverted the texture of lapis slot to the texture before 1.18-pre5, to make it consistent with the smithing table.
; Jukebox and Tripwire Hook
* Now uses plank sounds instead of stone.
; Lever, Redstone Comparator and Redstone Repeater
* Now uses stone sounds instead of plank.
; Pink Petals
* The size of the hitbox now increases with the number of petals.
; Sculk Sensor and Calibrated Sculk Sensor
* Vibrations no longer risk being lost on simulation distance limit.
* Can now detect the following events:
** block_change, with frequency 11:
*** Carrots being eaten by rabbits.
*** Chiseled bookshelves receiving books from hoppers.
*** Sweet berries being eaten by foxes.
*** Turtle eggs cracking.
** block_destroy, with frequency 12:
*** Fire being doused by water potion.
*** Turtle eggs hatching.
** entity_action (new), with frequency 4:
*** Camels dashing.
*** Camels standing up.
*** Camels sitting down.
*** Turtles clearing away sand.
*** Witches drinking a potion.
** entity_damage, with frequency 7:
*** Totems of undying activating.
** entity_place, with frequency 14:
*** Evokers evoking vexes or fangs.
** item_interact_finish, with frequency 3:
*** Using bone meal.
** unequip (new), with frequency 4:
*** Unequipping items.
* Camels eating cactus now emits an eat vibration with frequency 8, instead of entity_interact vibration with frequency 6.
; Smithing Table
* Now in the custom recipes, the upgrade material can be sent to the GUI instantly with the + left click shortcut.
; Sponge and Wet Sponge
* They now have custom sounds.
=== Items ===
; Chorus Fruit
* Now resets fall distance when eating it.
; Explorer Map
* Updated structure icons on explorer maps sold by cartographers.
; Music Discs
* The Pigstep music disc is now the last one of the music discs in the Creative inventory.
=== Mobs ===
; Bee
* Can now collect pollen from chorus flower or spore blossom.
; Camels, Frogs, Goats and Sniffers
* Now panic when damaged while attached to leads.
; Villagers
* The discount for curing a villager is no longer multiplied if the villager is reinfected and cured again.
* Now attempt to spawn an iron golem every 30 seconds instead of 35.
; General
* Changed mob attack reach calculation.
** In horizontal directions, mobs' attack reach are now their bounding box extended in horizontal directions, instead of using horizontal width to determine.
*** For example, a ravager won't be able to attack through a few block thick walls.
** In vertical directions, mobs' attack reach are now the exact vertical range of their bounding box. When there's no overlap between their bounding box and their target's bounding box in vertical direction, they can not attack, in specific:
*** Riding a medium-sized mob (e.g. horse) can get rid of attacks from short mobs (e.g. baby zombie).
*** Riding a tall mob (e.g. camel) can get rid of attacks from standard size mobs (e.g. zombie).
*** Some mob's reaching height now extended (e.g. enderman, safety height changed from 1.5 to 3).
=== Non-mob entities ===
; Display entities
* Display entities now start updating their client-side position and rotation on the first tick after an update.
** In previous versions, updates were applied in the same tick, causing uneven motion.
** New behavior is now similar to armor stands, mobs and players.
* On the server, position and rotation are still updated immediately.
* Duration of this interpolation is controlled by the field teleport_duration.
** 0 means that updates are applied immediately.
** 1 means that the display entity will move from current position to the updated one over one tick.
** Higher values spread the movement over multiple ticks.
** Please note that this value is clamped to avoid glitches due to periodic position updates.
** The new value will apply only to position and rotation changes made after it changed.
*** That means any current movement will continue unchanged.
* Note: behavior while riding remains unchanged from previous versions.
=== World generation ===
; Ore distribution
* Diamond ore is now generated more frequently in the deepslate layers of the Overworld.
** Added a new ore blob placement: Uniformly distributed, from height -64 to -4, with blob size 8, generation frequency 2, and a 50% chance of discarding when exposed to air.
** Other existing diamond ore placements remain untouched.
=== Command format ===
; Functions
* A single backslash \ as the last non-whitespace character of a line now allows a command to be continued on the next line.
** Leading and trailing whitespace of the following line are stripped before appending.
* Functions can now contain macro lines, making them Function Macros.
** Any line beginning with $ (as the first non-space character) marks a macro line.
** A macro line also contains one or more substitutions in the form of $(variable).
*** Commands with variable subsitutions will be re-evaluated after substitution.
**** Running commands with this type have extra cost compared to pre-parsed functions.
**** Game will attempt to cache the result of certain parameter set being used in a call, to reduce costs when repeatedly calling.
** When calling a function macro a compound with data for all argument variables must be provided.
* Numbers used as macro arguments are now always inserted without suffixes, regardless of numeric type.
; 
* Extended command usage, now support parameters for function macro's variable substitution.
** New syntax: 
** New arguments:
*** arguments: A data compound, enclosed in {}.
*** Data source: A data source specification, like what could already be used for .
*** path: An NBT path specification.
** The data source and path must specify a compound data entry.
** The compound must contain one entry for each variable used in the macro.
** More data may be present in the compound and if so is ignored.
** Calling a non-macro function with a data compound is silently ignored.
** When a macro is called, the values provided are substituted in place of the variable specifications and the resulting commands are executed.
*** In order to improve performance when repeatedly calling with the same parameter, values in the provided compound which are referenced in macro as parameters will be cached.
** Any syntax errors in the lines resulting from variable substitution result in the entire function call being skipped.
; 
* Can now replace items in jukeboxes.
* Can now remove items in chiseled bookshelves.
; General
* History of used commands is now saved and accessible across worlds.
** The last 50 commands that are sent in chat will be remembered across game sessions.
** The command and chat history can be accessed by pressing or in the chat.
** Regular chat is only persisted within the same game session (leaving a server or world clears them).
** Recent commands are stored in command_history.txt in the game folder.
=== Gameplay ===
; Advancements
* The "Smithing with Style" advancement now grants 150 experience upon completion.
; Recipe books
* Bamboo fence and bamboo fence gate are now grouped with the other ones.
; Trading
* When villagers unlock new trades, the order of those trades in the UI is now always random instead of sometimes being deterministic.
=== General ===
; Chat
* Clients will no longer disconnect themselves when receiving an invalid chat message.
** A placeholder message will instead be shown in chat.
; Chunk format
* Game no longer uses numeric values when storing mob effects to world.
** For example, 4 becomes minecraft:mining_fatigue.
** Changed following fields in mob effect instances:
*** Id (integer) -> id (string, resource location)
*** Ambient -> ambient
*** Amplifier -> amplifier
*** Duration -> duration
*** ShowParticles -> show_particles
*** ShowIcon -> show_icon
*** HiddenEffect -> hidden_effect
**** This field is a mob effect instance, so changes to the parent also applied here, recursively.
*** FactorCalculationData -> factor_calculation_data
* In NBT format for block entity type beacon:
** Primary (integer) -> primary_effect (string, resource location)
** Secondary (integer) -> secondary_effect (string, resource location)
; Chunk tick
* randomTickSpeed game rule now affects the rate of accumulation of snow and ice the same way it affects crops and other blocks.
; Data pack
* The version is now 18.
* Added decal field to armor trim patterns (default: false).
** If true, the pattern texture will be masked based on the underlying armor.
; Debug screen
* Values in the SH row will now show up as question marks when playing on a server, instead of wrong values.
* When hitboxes are displayed through , entities that have a passenger will display the passenger's attachment point.
* Renamed "Debug" row to "Debug charts", and changed its style.
** "Pie" chart now called "Profiler" chart.
* The charts on the debug screen can now be toggled with the key combinations (profiler chart) and (FPS and TPS) instead of and .
* Press key combination will now show charts for ping and received network traffic.
* Debug screen no longer be closed while switching charts.
* Multiple charts now can appears at the same time, unless it's conflict with each other.
* Current chart layout will be kept when debug screen re-enabled.
; Entity format
* In NBT format for entity type mooshroom:
** Removed .
** Added stew_effects, with the same format as effects field in suspicious_stew item format.
* In NBT format for entity type area_effect_cloud:
** Renamed Effects to effects.
* In NBT format for entity type arrow:
** Renamed CustomPotionEffects to custom_potion_effects.
* In NBT format for living entities (players, armor stands, and all mobs):
** Renamed ActiveEffects to active_effects.
; Game Events
* Added entity_action game event, to replace .
* Added unequip game event.
; Multiplayer and World Selection screens
* Renamed "Cancel" button to "Back".
; Pack Metadata
* New features have been added to datapacks and resource packs to allow creation of packs that are compatible with multiple versions of the game.
** Pack metadata now includes an optional field supported_formats which describes a range for pack formats that this pack supports.
*** Examples: 16, [16,17], {"min_inclusive": 16, "max_inclusive": 17}
** pack_format field is still required and its format remains unchanged, to allow older game versions to read pack data.
*** If supported_formats is present, it must contain the value declared in pack_format.
*** Since this new information is ignored by older versions of the game, they will always see a "normal", single-version pack, without any extended compatibility.
* Packs can now contain overlay directories ("overlays").
** Overlays are sub-packs applied over the "normal" contents of a pack.
*** These directories have the same layout as the top-level pack, including the assets and data directories.
*** Overlays can be applied if they support the client's pack format.
*** Overlays can add and replace files, but not remove them.
**** For example, if the overlay foo is applied, the file foo/assets/minecraft/textures/bar.png will replace contents of assets/minecraft/textures/bar.png.
*** pack.mcmeta and pack.png are ignored in overlay directories.
** New section called overlays have been added to pack metadata.
*** It contains an entries field, containing a list of overlays.
*** Every overlay entry has two fields:
**** formats - range of supported formats
**** directory - overlay directory (allowed characters: )
** Order of application: overlays are stacked from the bottom to top of the list.
*** For example, if a pack has two overlays: "entries": [{"directory":"A", ...}, {"directory":"B", ...}], the game will first look in B, then A and then in the top pack directory.
; player.dat format
* In NBT format for item type :
** Renamed CustomPotionEffects to custom_potion_effects.
* In NBT format for item type suspicious_stew:
** Renamed Effects to effects, also changed following fields in this field:
*** EffectId (integer) -> id (string, resource location)
*** EffectDuration -> duration
; Protocol
* Optimized the way chunks are sent to clients to allow players with low-bandwidth internet connections to play on multiplayer servers.
** Chunks are no longer sent over the network to the client in one big continuous batch.
** They are instead sent in smaller batches depending on the available bandwidth. This means that:
*** Clients with extremely low-bandwidth connections will not time out while loading the world.
*** Clients with low-bandwidth connections can interact with the world while some chunks are still loading.
** Only chunks within the client's render distance are now sent.
** Gameplay packets are now packed into bigger TCP-packets to reduce overhead from TCP-headers, significantly reducing network usage.
* Changed network protocol to allow for more data-driven content in the future.
** Configuration phase automatically starts after login phase (i.e. after client account has been verified) and lasts until the player joins the world (play phase).
** Clients can stay in configuration phase indefinitely - it's up to server to release it to the world.
** Servers can also request clients to re-enter the configuration phase after it has entered the play phase.
*** Other players will see such clients as disconnected.
** Users in configuration phase will not be visible on the player list.
** Actions allowed in configuration phase (moved from play phase).
*** Configuration of data-driven registries.
*** Configuration of enabled features.
** Actions shared between configuration and play phases:
*** Application of server resource packs.
*** Update of tags.
*** Exchange of custom packets.
*** Ping and keep-alive packets.
** The server will now negotiate resource pack in the configuration phase.
*** This means that the player will no longer be in world when answering prompts and reloading resources.
* Client options are now sent during the configuration network phase when joining a server.
; Resource pack
* The version is now 18.
** The process of upgrading a pack can be assisted by using an automated Slicer tool.https://github.com/Mojang/slicer/releases/tag/v1.1
** All textures containing multiple sprites in a sheet for GUI have been split into individual sprites under textures/gui/sprites (automated by Slicer tool).
** All textures in the realms namespace have been moved into the minecraft namespace (automated by Slicer tool).
** villager2.png has been renamed to villager.png (automated by Slicer tool).
** icon/trial_available and realm_status/expires_soon GUI sprites are animated with .mcmeta declarations instead of individual sprites (automated by Slicer tool).
** The bundle tooltip background is now drawn as a nine-sliced sprite.
** The icons for the Accessibility, Language, Realms News buttons have been split from their underlying button texture.
** The Realms Invite button is now drawn as an overlay on the normal button texture.
*** The highlighted texture state for this button has been removed.
** The highlighted states for Realms invitation number icons have been removed.
** The exclamation marks on the notification\more.png have been removed.
** The text field background is now a nine-sliced sprite at .
** The scroll bar in lists and text fields is now a nine-sliced sprite at widget/scroller.
; Scoreboard
* The belowName display slot selector is now below_name.
; server.properties
* Added new log-ips option (defaults to true).
** When set to false, will prevent player IPs from being included in the log when players join the game.
; Social interactions
* Changed following reporting categories:
** Defamation, impersonation, or false information
*** Someone is damaging your or someone else's reputation, pretending to be someone they're not, or for example sharing false information with the aim to exploit or mislead others.
** Imminent harm - Self-harm or suicide
*** Someone is threatening to harm themselves in real life or talking about harming themselves in real life.
** Imminent harm - Threat to of harm to others
*** Someone is threatening to harm you or someone else in real life.
; Tags
* Moved all types of concrete powders to newly added block tag from block tag, then added to .
* Removed from game event tags, then added to them.
* Added to block and item tags.
; Telemetry
* Added a button to the Telemetry Data Collection Screen that links to the Microsoft Privacy Statement.
; General
* The LWJGL library has been upgraded to version 3.3.2.
* The default Java version shipped with the game has been upgraded to Microsoft OpenJDK 17.0.8.
* Added validation for symbolic links in datapacks and resource packs, to improve safety.
** This feature expands on symbolic link validation in worlds added in the previous release.
** The game will now warn users if a pack added via drag and drop contains disallowed symbolic links.
** Packs containing disallowed symbolic links will not be visible in UI and commands.
** Additionally, directories and files that are not recognized as packs will no longer be copied via drag and drop.
== Experimental additions ==
These additions are accessible by enabling the "Villager Trade Rebalance" experimental toggle.
=== General ===
; Tags
* Added the following structure tags:
** : contains .
** : contains .
** : contains .
** : contains .
** : contains .
** : contains .
** : contains .
== Experimental changes ==
These changes are accessible by enabling the "Villager Trade Rebalance" experimental toggle.
=== World generation ===
; Ancient City
* Increases the chance of generating enchanted books with Mending.
; Desert Temple
* Increases the chance of generating enchanted books with Unbreaking (level I to III).
; Jungle Temple
* Increases the chance of generating enchanted books with Unbreaking (level I to III).
; Mineshaft
* Increases the chance of generating enchanted books with Efficiency (level I to V).
; Pillager Outpost
* Increases the chance of generating enchanted books with Quick Charge (level I to III).
=== Gameplay ===
; Trading
* Changed the trading mechanism of librarians selling enchanted books.
** Instead of offering every possible enchanted book, librarians will now be offering specific enchanted books depending on which biome they come from.
*** Jungle and swamp villages do not generate naturally. Thus, players must breed villagers or cure zombie villagers in these biomes to access their trades.
** All tradable enchanted books now split to special books and normal books.
*** Special books have a specific enchantment with a fixed level, and are only available from master librarians with full XP.
*** Normal books have a specific enchantment without a fixed level, just like before.
** All enchantments used for crossbow, fishing rod, and trident are removed from trading.
:: 
 Available tradable enchantments
Category	Desert 	Plains 	Savanna 	Snow 	Taiga 	Jungle 	Swamp
Special 	Efficiency III 	Protection III 	Sharpness III 	Silk Touch 	Fortune II 	Unbreaking II 	Mending
Normal 	Fire ProtectionThornsInfinity	PunchSmiteBane of Arthropods	KnockbackCurse of BindingSweeping Edge	Aqua AffinityLootingFrost Walker	Blast ProtectionFire AspectFlame	Feather FallingProjectile ProtectionPower	Depth StriderRespirationCurse of Vanishing
* Added seven new maps which cartographers can sell, depending on the biome they come from.
** Jungle and swamp villages do not generate naturally. Thus, players must breed villagers or cure zombie villagers in these biomes to access their trades.
** Village maps points to a village in a specific biome. Jungle explorer map points to a jungle pyramid. Swamp explorer map points to a swamp hut.
:: 
 Available new tradable maps
 	Desert 	Jungle 	Plains 	Savanna 	Snow 	Swamp 	Taiga
Group 1	Savanna Village Map	Savanna Village Map	Savanna Village Map	Desert Village Map 	Plains Village Map	Snowy Village Map 	Plains Village Map
Group 2	Plains Village Map 	Desert Village Map 	Taiga Village Map 	Plains Village Map 	Taiga Village Map 	Taiga Village Map 	Snowy Village Map
Group 3	Jungle Explorer Map	Swamp Explorer Map 	– 	Jungle Explorer Map	Swamp Explorer Map	Jungle Explorer Map	Swamp Explorer Map
:: 
 Current version of trades for cartographer
Level 	Item wanted	Default quantity	Price multiplier	Item given 	Quantity	Trades until disabled	XP to villager
Novice 	 	24 	0.05 	 	1 	16 	2
Novice 	 	7 	0.05 	 	1 	12 	1
Apprentice	 	11 	0.05 	 	1 	16 	10
Apprentice	 	81 	0.2 	Forementioned mapsDivided into 3 groups, pulled independently. 	1 	12 	5
Journeyman	 	1 	0.05 	 	1 	12 	10
Journeyman	 	131 	0.2 	 	1 	12 	10
Expert 	 	7 	0.05 	 	1 	12 	15
Expert 	 	3 	0.05 	Any color blank BannerThe list of possible offers contains individual offers for each color, so multiple colors may be offered by the same villager as separate trades.	1 	12 	15
Master 	 	8 	0.05 	 	1 	12 	30
Master 	 	141 	0.2 	 	1 	1 	30
* Changed trades of armorers:
** Buying diamond armor now also requires a small amount of diamonds.
** Most master-level armorers buy iron blocks and pay 4 emeralds for them.
** Chainmail armor is exclusively sold by jungle and swamp armorers.
** The savanna armorer sells cursed diamond armor at reduced prices.
** The taiga armorer can swap one piece of diamond armor for another.
:: 
 Current version of trades for desert armorers
Level 	Item wanted	Default quantity	Price multiplier	Item given	Quantity	Trades until disabled	XP to villager
Novice 	 	15 	0.05 	 	1 	12 	2
Novice 	 	5 	0.05 	 	1 	12 	2
Apprentice	 	4 	0.05 	 	1 	12 	5
Apprentice	 	5 	0.05 	 	1 	12 	5
Apprentice	 	7 	0.05 	 	1 	12 	5
Apprentice	 	9 	0.05 	 	1 	12 	5
Journeyman	 	1 	0.05 	 	1 	12 	20
Journeyman	 	5 	0.05 	 	1 	12 	10
Journeyman	 	36 	0.2 	 	1 	12 	10
Expert 	 	8 	0.05 	(Thorns I)	1 	3 	15
Expert 	 	9 	0.05 	(Thorns I)	1 	3 	15
Expert 	 	11 	0.05 	(Thorns I)	1 	3 	15
Expert 	 	13 	0.05 	(Thorns I)	1 	3 	15
Master 	 	164 	0.05 	(Thorns I)	1 	3 	30
Master 	 	163 	0.05 	(Thorns I)	1 	3 	30
Master 	 	1 	0.05 	 	4 	12 	30
:: 
 Current version of trades for jungle armorers
Level 	Item wanted	Default quantity	Price multiplier	Item given 	Quantity	Trades until disabled	XP to villager
Novice 	 	15 	0.05 	 	1 	12 	2
Novice 	 	5 	0.05 	 	1 	12 	2
Apprentice	 	4 	0.05 	 	1 	12 	5
Apprentice	 	5 	0.05 	 	1 	12 	5
Apprentice	 	7 	0.05 	 	1 	12 	5
Apprentice	 	9 	0.05 	 	1 	12 	5
Journeyman	 	1 	0.05 	 	1 	12 	20
Journeyman	 	5 	0.05 	 	1 	12 	10
Journeyman	 	36 	0.2 	 	1 	12 	10
Expert 	 	8 	0.05 	(Unbreaking I) 	1 	3 	15
Expert 	 	9 	0.05 	(Unbreaking I) 	1 	3 	15
Expert 	 	11 	0.05 	(Unbreaking I) 	1 	3 	15
Expert 	 	13 	0.05 	(Unbreaking I) 	1 	3 	15
Master 	 	9 	0.05 	(Projectile Protection I)	1 	3 	30
Master 	 	8 	0.05 	(Feather Falling I) 	1 	3 	30
Master 	 	1 	0.05 	 	4 	12 	30
:: 
 Current version of trades for plains armorers
Level 	Item wanted	Default quantity	Price multiplier	Item given 	Quantity	Trades until disabled	XP to villager
Novice 	 	15 	0.05 	 	1 	12 	2
Novice 	 	5 	0.05 	 	1 	12 	2
Apprentice	 	4 	0.05 	 	1 	12 	5
Apprentice	 	5 	0.05 	 	1 	12 	5
Apprentice	 	7 	0.05 	 	1 	12 	5
Apprentice	 	9 	0.05 	 	1 	12 	5
Journeyman	 	1 	0.05 	 	1 	12 	20
Journeyman	 	5 	0.05 	 	1 	12 	10
Journeyman	 	36 	0.2 	 	1 	12 	10
Expert 	 	8 	0.05 	(Protection I)	1 	3 	15
Expert 	 	9 	0.05 	(Protection I)	1 	3 	15
Expert 	 	11 	0.05 	(Protection I)	1 	3 	15
Expert 	 	13 	0.05 	(Protection I)	1 	3 	15
Master 	 	163 	0.05 	(Protection I)	1 	3 	30
Master 	 	162 	0.05 	(Protection I)	1 	3 	30
Master 	 	1 	0.05 	 	4 	12 	30
:: 
 Current version of trades for savanna armorers
Level 	Item wanted	Default quantity	Price multiplier	Item given 	Quantity	Trades until disabled	XP to villager
Novice 	 	15 	0.05 	 	1 	12 	2
Novice 	 	5 	0.05 	 	1 	12 	2
Apprentice	 	4 	0.05 	 	1 	12 	5
Apprentice	 	5 	0.05 	 	1 	12 	5
Apprentice	 	7 	0.05 	 	1 	12 	5
Apprentice	 	9 	0.05 	 	1 	12 	5
Journeyman	 	1 	0.05 	 	1 	12 	20
Journeyman	 	5 	0.05 	 	1 	12 	10
Journeyman	 	36 	0.2 	 	1 	12 	10
Expert 	 	2 	0.05 	(Curse of Binding)	1 	3 	15
Expert 	 	3 	0.05 	(Curse of Binding)	1 	3 	15
Expert 	 	5 	0.05 	(Curse of Binding)	1 	3 	15
Expert 	 	7 	0.05 	(Curse of Binding)	1 	3 	15
Master 	 	62 	0.05 	(Curse of Binding)	1 	3 	30
Master 	 	83 	0.05 	(Curse of Binding)	1 	3 	30
Master 	 	1 	0.05 	 	4 	12 	30
:: 
 Current version of trades for snow armorers
Level 	Item wanted	Default quantity	Price multiplier	Item given 	Quantity	Trades until disabled	XP to villager
Novice 	 	15 	0.05 	 	1 	12 	2
Novice 	 	5 	0.05 	 	1 	12 	2
Apprentice	 	4 	0.05 	 	1 	12 	5
Apprentice	 	5 	0.05 	 	1 	12 	5
Apprentice	 	7 	0.05 	 	1 	12 	5
Apprentice	 	9 	0.05 	 	1 	12 	5
Journeyman	 	1 	0.05 	 	1 	12 	20
Journeyman	 	5 	0.05 	 	1 	12 	10
Journeyman	 	36 	0.2 	 	1 	12 	10
Expert 	 	8 	0.05 	(Frost Walker I)	1 	3 	15
Expert 	 	9 	0.05 	(Aqua Affinity) 	1 	3 	15
Master 	 	122 	0.05 	(Frost Walker I)	1 	3 	30
Master 	 	123 	0.05 	(Aqua Affinity) 	1 	3 	30
Master 	 	1 	0.05 	 	4 	12 	30
:: 
 Current version of trades for swamp armorers
Level 	Item wanted	Default quantity	Price multiplier	Item given 	Quantity	Trades until disabled	XP to villager
Novice 	 	15 	0.05 	 	1 	12 	2
Novice 	 	5 	0.05 	 	1 	12 	2
Apprentice	 	4 	0.05 	 	1 	12 	5
Apprentice	 	5 	0.05 	 	1 	12 	5
Apprentice	 	7 	0.05 	 	1 	12 	5
Apprentice	 	9 	0.05 	 	1 	12 	5
Journeyman	 	1 	0.05 	 	1 	12 	20
Journeyman	 	5 	0.05 	 	1 	12 	10
Journeyman	 	36 	0.2 	 	1 	12 	10
Expert 	 	8 	0.05 	(Mending) 	1 	3 	15
Expert 	 	9 	0.05 	(Mending) 	1 	3 	15
Expert 	 	11 	0.05 	(Mending) 	1 	3 	15
Expert 	 	13 	0.05 	(Mending) 	1 	3 	15
Master 	 	9 	0.05 	(Respiration I) 	1 	3 	30
Master 	 	8 	0.05 	(Depth Strider I)	1 	3 	30
Master 	 	1 	0.05 	 	4 	12 	30
:: 
 Current version of trades for taiga armorers
Level 	Item wanted	Default quantity	Price multiplier	Item given 	Quantity	Trades until disabled	XP to villager
Novice 	 	15 	0.05 	 	1 	12 	2
Novice 	 	5 	0.05 	 	1 	12 	2
Apprentice	 	4 	0.05 	 	1 	12 	5
Apprentice	 	5 	0.05 	 	1 	12 	5
Apprentice	 	7 	0.05 	 	1 	12 	5
Apprentice	 	9 	0.05 	 	1 	12 	5
Journeyman	 	1 	0.05 	 	1 	12 	20
Journeyman	 	5 	0.05 	 	1 	12 	10
Journeyman	 	36 	0.2 	 	1 	12 	10
Expert 	 	41 	0.05 	 	1 	3 	15
Expert 	 	41 	0.05 	 	1 	3 	15
Expert 	 	41 	0.05 	 	1 	3 	15
Expert 	 	21 	0.05 	 	1 	3 	15
Master 	 	184 	0.05 	(Blast Protection I)	1 	3 	30
Master 	 	183 	0.05 	(Blast Protection I)	1 	3 	30
Master 	 	1 	0.05 	 	42 	12 	30
* Changed the wandering trader trades.
** Trade list now made up by following trades, in order:
*** Buying Trade (new) × 2
*** Special Selling Trade × 2
*** Ordinary Selling Trade × 5
** Added new buying trades, some selling trades, and changed some existing selling trades:
:: 
 New trades of wandering traders
Category 	Item wanted	Quantity	Item given 	Quantity	Trades until disabled
Buying 	 	4 	 	1 	1
Buying 	 	1 	 	3 	1
Buying 	 	1 	 	1 	1
Buying 	 	1 	 	2 	1
Buying 	 	1 	 	1 	1
Buying 	 	1 	 	2 	1
Special Selling	 	1 	 	8 	4
Special Selling	 	1 	 	8 	4
Special Selling	 	1 	 	8 	4
Special Selling	 	1 	 	8 	4
Special Selling	 	6-20 	(Enchanted)	1 	1
Special Selling	 	1 	 	8 	4
Special Selling	 	1 	 	8 	4
Special Selling	 	5 	(Long) 	1 	1
Special Selling	 	1 	 	8 	4
:: 
 Changed trades of wandering traders
Category 	Item wanted	Quantity	Item given	Quantity	Trades until disabled
Ordinary Selling 	 	1 	 	1 → 3 	12 → 4
Special Selling → Ordinary Selling	 	5 → 3 	 	1 	4
Special Selling → Ordinary Selling	 	5 → 3 	 	1 	4
Ordinary Selling 	 	1 	 	1 → 4 	8 → 2
Ordinary Selling 	 	1 	 	2 → 5 	5 → 2
Ordinary Selling 	 	3 → 1 	 	1 	6
Ordinary Selling 	 	1 	 	1 → 3 	12 → 4
Ordinary Selling 	 	1 	 	1 → 3 	12 → 4
== Fixes ==
</onlyinclude>
== Video ==
Videos made by slicedlime:
== Notes ==
== References ==
de:1.20.2
es:Java Edition 1.20.2
ja:Java Edition 1.20.2
pt:Edição Java 1.20.2
tr:Java Sürümü 1.20.2
ru:1.20.2 (Java Edition)
uk:1.20.2 (Java Edition)
zh:Java版1.20.2