09-23-2023, 08:33 AM
News - JAVA Edition: 1.20.2 Is Here!
<div style="margin: 5px 5% 10px 5%;"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2023/09/java-edition-1-20-2-is-here.png" width="798" height="226" title="" alt="" /></div><div><h2>New Features</h2>
<h3>Player Skin & Name Reporting</h3>
<p>We are making some important updates to our Player Reporting Tool to better protect the online safety of our players.</p>
<p>Playing Minecraft should be an inclusive and safe experience for everyone, which is why alongside in-game chat messages, you will now be able to report player skins and usernames that violate our Community Standards in Java Edition.</p>
<p>Just like with chat reports, nothing is automated. Any reported skin or username will be reviewed manually by a team of trained Minecraft moderators, who will use the submitted evidence to decide whether the skin and/or username is in breach of our Community Standards. Skins that violate these standards will be removed from Minecraft and will no longer be accessible for use by any player. Usernames that violate these standards will need to be changed before that player can play online via a shared server or Realm; though single-player mode will still be accessible. To find out more about this and other safety policies, including more detail on the suspension procedure, appeals process, and how we handle malicious or repeat reporting, please visit our dedicated <a href="https://help.minecraft.net/hc/en-us/articles/7317376541197">FAQ page</a>.</p>
<ul>
<li>Player Skins and Names can now be reported in the Social Interactions Screen</li>
<li>If a skin or name is reported and found to be violating the <a href="https://www.minecraft.net/community-standards">Community Standards</a>, our team of human moderators can take action in a few ways:
<ul>
<li>Ban the skin from being used by any player</li>
<li>Ban the name from being used by any player</li>
<li>Suspend the player from online play in the case of repeated offenses</li>
</ul>
</li>
<li>When a skin is banned, players with that skin:
<ul>
<li>Will have their skin removed</li>
<li>Will be notified when they launch the game</li>
<li>Will be automatically assigned one of the default skins</li>
<li>Can still play multiplayer and singleplayer</li>
<li>Can select a new custom skin at any time</li>
</ul>
</li>
<li>When a player’s name is banned, that player:
<ul>
<li>Will need to choose a new name</li>
<li>Will be notified when they launch the game</li>
<li>Will not be able to play online until they change their name</li>
<li>Can still play singleplayer</li>
</ul>
</li>
<li>A skin or name that has been banned cannot be used by any player in the future</li>
</ul>
<h2>Changes</h2>
<ul>
<li>The calculations to determine whether a mob can attack a player or other mobs have been changed</li>
<li>Diamond Ore is now generated more frequently in the Deepslate layers of the Overworld</li>
<li>Optimizations to networked play</li>
<li>Curing a Zombie Villager now only gives a big discount the first time
<ul>
<li>There is no longer a bonus discount for reinfecting and curing the same Villager multiple times</li>
</ul>
</li>
<li>Sponges and Wet Sponges now have their own custom sounds</li>
<li>Barrier blocks can now be waterlogged by players in Creative mode
<ul>
<li>Water cannot be placed in them or taken out by non-direct interactions such as Dispensers</li>
</ul>
</li>
<li>The positions that all entities ride on other entities have been adjusted to make more sense</li>
<li>Added the “Narrator Hotkey” accessibility option (default on)
<ul>
<li>The narrator can be toggled on and off with <span class="bedrock-server">Ctrl+B</span> when this is on</li>
</ul>
</li>
<li>Added “I want to report them” Player Reporting category</li>
<li>Removed Herobrine</li>
</ul>
<h3>Mob Attack Reach Changes</h3>
<p>The calculations to determine whether a mob can attack a player or other mobs have been changed. Previously a mob’s horizontal width was used to determine their attack reach and their height had no effect. The area where a mob can attack is now their bounding box extended in horizontal directions.</p>
<p>Here are some situations where the new rules will affect the reach of mobs:</p>
<ul>
<li>If a mob is entirely below you, or entirely above you, it will not be able to reach you</li>
<li>While riding on a medium-sized mob, like a Horse, you will be protected from small mobs, like Baby Zombies</li>
<li>While riding on a tall mob, like a Camel, you will be protected from standard-size mobs, like Zombies</li>
<li>Also, Ravagers won’t be able to attack you through a few block-thick walls anymore</li>
<li>However, to escape from an Enderman, you need to be at least 3 blocks above the ground, not 1.5 as before</li>
<li>Mobs will be able to attack you with the bottom of their hitbox, assuming your head is in range</li>
<li>Builds that trap hostile mobs might need to be adjusted to be safe</li>
</ul>
<p>This change does not affect the reach of players, and mobs still need to see their target to attack it.</p>
<h3>Networked Play</h3>
<p>The Multiplayer mode of the game has been optimized to enable more fluid online play. If you have previously experienced disconnections or slow loading into online servers, this version may significantly improve that experience.</p>
<ul>
<li>The game world will now show earlier instead of the loading screen while loading into a world on a server</li>
<li>Clients with extremely low-bandwidth connections will not time out while loading the world</li>
<li>Clients with low-bandwidth connections can interact with the world while some chunks are still loading</li>
</ul>
<h3>Vibrations</h3>
<ul>
<li>Vibrations no longer risk being lost on simulation distance limit</li>
<li>Using Bone Meal emits an <span class="bedrock-server">item_interact_finish</span> vibration of frequency 3</li>
<li>Unequipping items emit a new <span class="bedrock-server">unequip</span> vibration of frequency 4</li>
<li>Camels eating Cactus emit an <span class="bedrock-server">eat</span> vibration of frequency 8</li>
<li>Carrots being eaten by Rabbits emit a <span class="bedrock-server">block_change</span> vibration of frequency 11</li>
<li>Sweet Berries being eaten by Foxes emit a <span class="bedrock-server">block_change</span> vibration of frequency 11</li>
<li>Chiseled Bookshelves emit a <span class="bedrock-server">block_change</span> vibration of frequency 11 when receiving books from Hoppers</li>
<li>Turtle Eggs cracking emit a <span class="bedrock-server">block_change</span> vibration of frequency 11</li>
<li>Turtle Eggs hatching emit a <span class="bedrock-server">block_destroy</span> vibration of frequency 12</li>
<li>Fire being doused by Water Potion emits a <span class="bedrock-server">block_destroy</span> vibration of frequency 12</li>
<li>Evokers evoking Vexes or Fangs emit an <span class="bedrock-server">entity_place</span> vibration of frequency 14</li>
</ul>
<h3>Miscellaneous Minor Tweaks</h3>
<ul>
<li>Chorus Flower no longer provides support for hanging or standing blocks</li>
<li>Updated structure icons on Explorer Maps sold by Cartographers</li>
<li>When Villagers unlock new trades, the order of those trades in the UI is now always random instead of sometimes being deterministic</li>
<li>The sizes of text fields in the user interface are now consistent with the size of buttons</li>
<li>You now need a taller pillar to escape taller mobs.</li>
<li>Rabbits eating Carrots now trigger Sculk Sensors</li>
</ul>
<p><img decoding="async" fetchpriority="high" src="https://www.sickgaming.net/blog/wp-content/uploads/2023/09/java-edition-1-20-2-is-here.png" alt width="798" height="226"></p>
<h2>Technical Changes</h2>
<ul>
<li>The resource pack version is now 18</li>
<li>The data pack version is now 18</li>
<li>History of used commands is now saved and accessible across worlds</li>
<li>Optimized networking to improve the experience on low bandwidth connections</li>
<li>Added support for multi-version packs</li>
<li>Changed network protocol to allow for more data-driven content in the future</li>
<li>Added new <span class="bedrock-server">log-ips</span> option to <span class="bedrock-server">server.properties</span></li>
<li>Added validation for symbolic links in datapacks and resource packs</li>
<li>When hitboxes are displayed through F3+B, entities that have a passenger will display the passenger’s attachment point</li>
<li>The charts on the debug screen can now be toggled with F3+1 (pie chart) and F3+2 (FPS and TPS) instead of holding Shift or Alt while opening the screen</li>
<li>Pressing F3+3 will now show charts for ping and received network traffic on the debug screen</li>
<li>The <span class="bedrock-server">LWJGL</span> library has been upgraded to version 3.3.2</li>
<li>The default Java version shipped with the game has been upgraded to Microsoft OpenJDK 17.0.8</li>
</ul>
<h3>Command History</h3>
<ul>
<li>The last 50 commands that you sent in chat will be remembered across game sessions</li>
<li>You can access the command and chat history by pressing the up or down arrows in the chat</li>
<li>Regular chat is only persisted within the same game session (leaving a server or world clears them)</li>
<li>Recent commands are stored in <span class="bedrock-server">command_history.txt</span> in the game folder</li>
</ul>
<h3>Network Optimizations</h3>
<ul>
<li>Gameplay packets are now packed into bigger TCP packets to reduce overhead from TCP headers, significantly reducing network usage</li>
<li>Chunks are not sent over the network to the client in one big continuous batch anymore</li>
<li>Chunks are instead sent in smaller batches depending on the available bandwidth, meaning that:
<ul>
<li>Clients with extremely low-bandwidth connections will not time out while loading the world</li>
<li>Clients with low-bandwidth connections can interact with the world while some chunks are still loading</li>
</ul>
</li>
<li>Only chunks within the client’s render distance are now sent</li>
</ul>
<h3>Multi-Version Packs</h3>
<p>New features have been added to datapacks and resource packs to allow the creation of packs that are compatible with multiple versions of the game.</p>
<h4>Pack Metadata</h4>
<ul>
<li>Pack metadata now includes an optional field <span class="bedrock-server">supported_formats</span> which describes a range for pack formats that this pack supports
<ul>
<li>Examples: <span class="bedrock-server">16</span>, <span class="bedrock-server">[16,17]</span>, <span class="bedrock-server">{“min_inclusive”: 16, “max_inclusive”: 17}</span></li>
</ul>
</li>
<li><span class="bedrock-server">pack_format</span> field is still required and its format remains unchanged, to allow older game versions to read pack data
<ul>
<li>If <span class="bedrock-server">supported_formats</span> is present, it must contain the value declared in <span class="bedrock-server">pack_format</span></li>
<li>Note: 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</li>
</ul>
</li>
</ul>
<h4>Overlays</h4>
<ul>
<li>Packs can now contain overlay directories (“overlays”)</li>
<li>Overlays are sub-packs applied over the “normal” contents of a pack
<ul>
<li>These directories have the same layout as the top-level pack, including the <span class="bedrock-server">assets</span> and <span class="bedrock-server">data</span> directories</li>
<li>Overlays can be applied if they support the client’s pack format</li>
<li>Overlays can add and replace files, but not remove them
<ul>
<li>For example, if the overlay <span class="bedrock-server">foo</span> is applied, the file <span class="bedrock-server">foo/assets/minecraft/textures/bar.png</span> will replace the contents of <span class="bedrock-server">assets/minecraft/textures/bar.png</span></li>
</ul>
</li>
<li><span class="bedrock-server">pack.mcmeta</span> and <span class="bedrock-server">pack.png</span> are ignored in overlay directories</li>
</ul>
</li>
<li>New section called <span class="bedrock-server">overlays</span> has been added to pack metadata
<ul>
<li>It contains an <span class="bedrock-server">entries</span> field, containing a list of overlays</li>
<li>Every overlay entry has two fields:
<ul>
<li><span class="bedrock-server">formats</span> – range of supported formats</li>
<li><span class="bedrock-server">directory</span> – overlay directory (allowed characters: <span class="bedrock-server">a-z</span>, <span class="bedrock-server">0-9</span>, <span class="bedrock-server">_</span> and <span class="bedrock-server">–</span>)</li>
</ul>
</li>
</ul>
</li>
<li>Order of application: overlays are stacked from the bottom to top of the list
<ul>
<li>For example, if a pack has two overlays: <span class="bedrock-server">“entries”: [{“directory”:”A”, …}, {“directory”:”B”, …}]</span>, the game will first look in <span class="bedrock-server">B</span>, then <span class="bedrock-server">A</span> and then in the top pack directory</li>
</ul>
</li>
</ul>
<h3>Symbolic Link Validation</h3>
<p>To improve safety, the game will now also detect symbolic links used inside data- and resource packs.</p>
<ul>
<li>This feature expands on symbolic link validation in worlds added in the previous release</li>
<li>The game will now warn users if a pack added via drag and drop contains disallowed symbolic links</li>
<li>Packs containing disallowed symbolic links will not be visible in UI and commands</li>
<li>Additionally, directories and files that are not recognized as packs will no longer be copied via drag-and-drop</li>
<li>For a detailed explanation, see this <a href="https://aka.ms/MinecraftSymLinks">help article</a></li>
</ul>
<h3>Network Protocol</h3>
<p>As part of ongoing work towards more data-driven features, the network protocol has been changed to include a new configuration phase.</p>
<ul>
<li>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)</li>
<li>Clients can stay in configuration phase indefinitely – it’s up to the server to release it to the world</li>
<li>Servers can also request clients to re-enter the configuration phase after it has entered the play phase
<ul>
<li>Other players will see such clients as disconnected</li>
</ul>
</li>
<li>Users in configuration phase will not be visible on the player list</li>
<li>Actions allowed in configuration phase (moved from play phase):
<ul>
<li>Configuration of data-driven registries</li>
<li>Configuration of enabled features</li>
</ul>
</li>
<li>Actions shared between configuration and play phases:
<ul>
<li>Application of server resource packs</li>
<li>Update of tags</li>
<li>Exchange of custom packets</li>
<li>Ping and keep-alive packets</li>
<li>Sending of client options</li>
</ul>
</li>
<li>The server will now negotiate resource packs in the configuration phase
<ul>
<li>This means that the player will no longer be in the world when answering prompts and reloading resources</li>
</ul>
</li>
</ul>
<h4>Secure Chat</h4>
<ul>
<li>Clients will no longer disconnect themselves when receiving an invalid chat message
<ul>
<li>A placeholder message will instead be shown in chat</li>
</ul>
</li>
</ul>
<h3><span class="bedrock-server">server.properties</span></h3>
<ul>
<li>New option: <span class="bedrock-server">log-ips</span> (default <span class="bedrock-server">true</span>)
<ul>
<li>When set to <span class="bedrock-server">false</span>, will prevent player IPs from being included in the log when players join the game</li>
</ul>
</li>
</ul>
<h3>Telemetry</h3>
<ul>
<li>Added a button to the Telemetry Data Collection Screen that links to the Microsoft Privacy Statement</li>
</ul>
<h2>Resource Pack Version 16</h2>
<ul>
<li>The process of upgrading your pack can be assisted by using this automated <a href="https://github.com/Mojang/slicer/releases/tag/v1.1.2">Slicer</a> tool</li>
<li>All textures containing multiple sprites in a sheet for GUI have been split into individual sprites under <span class="bedrock-server">textures/gui/sprites</span> (automated by the Slicer tool)</li>
<li>All textures in the <span class="bedrock-server">realms</span> namespace have been moved into the <span class="bedrock-server">Minecraft</span> namespace (automated by the Slicer tool)</li>
<li><span class="bedrock-server">villager2.png</span> has been renamed to <span class="bedrock-server">villager.png</span> (automated by the Slicer tool)</li>
<li><span class="bedrock-server">icon/trial_available</span> and <span class="bedrock-server">realm_status/expires_soon</span> GUI sprites are animated with <span class="bedrock-server">.mcmeta</span> declarations instead of individual sprites (automated by the Slicer tool)</li>
<li>The Bundle tooltip background is now drawn as a nine-sliced sprite</li>
<li>The icons for the Accessibility, Language, and Realms News buttons have been split from their underlying button texture</li>
<li>The Realms Invite button is now drawn as an overlay on the normal button texture
<ul>
<li>The highlighted texture state for this button has been removed</li>
</ul>
</li>
<li>The highlighted states for Realms invitation number icons have been removed</li>
<li>The exclamation marks on the <span class="bedrock-server">notification\more.png</span> have been removed</li>
</ul>
<h3>GUI Sprite Sheet</h3>
<ul>
<li>Sprites used in GUI drawing have been split into individual sprite files instead of larger sprite sheets
<ul>
<li>For example, <span class="bedrock-server">widgets/button.png</span> and <span class="bedrock-server">widgets/button_highlighted.png</span> have been split from <span class="bedrock-server">widgets.png</span></li>
</ul>
</li>
<li>Each sprite can now be individually overridden by a resource pack instead of replacing the entire sheet</li>
<li>Sprites are loaded into the <span class="bedrock-server">GUI</span> atlas from the <span class="bedrock-server">textures/gui/sprites</span> directory</li>
</ul>
<h4>GUI Sprite .mcmeta</h4>
<ul>
<li>Any sprite used in the GUI can now be animated using <span class="bedrock-server">.mcmeta</span> files, similar to other atlases
<ul>
<li><span class="bedrock-server">icon/trial_available</span> and <span class="bedrock-server">realm_status/expires_soon</span> are now animated this way</li>
</ul>
</li>
<li>Sprites in the <span class="bedrock-server">GUI</span> atlas can now configure scaling behavior through a new <span class="bedrock-server">GUI</span> section in <span class="bedrock-server">.mcmeta</span> files
<ul>
<li>For example, button textures must be scaled based on how big the button should be</li>
<li>The <span class="bedrock-server">GUI</span> section in <span class="bedrock-server">.mcmeta</span> contains one <span class="bedrock-server">scaling</span> field:
<ul>
<li><span class="bedrock-server">type</span>: one of: <span class="bedrock-server">stretch</span> (default), <span class="bedrock-server">tile</span>, or <span class="bedrock-server">nine_slice</span></li>
<li>When <span class="bedrock-server">stretched</span>, the sprite will be stretched across the desired space
<ul>
<li>No additional fields need to be defined</li>
</ul>
</li>
<li>When <span class="bedrock-server">tile</span>, the sprite will be repeated across the desired space, starting from the top-left
<ul>
<li><span class="bedrock-server">width</span>: number of pixels for this sprite to cover on-screen across its width</li>
<li><span class="bedrock-server">height</span>: number of pixels for this sprite to cover on-screen across its height</li>
</ul>
</li>
<li>When <span class="bedrock-server">nine_slice</span>, the sprite will be sliced into 4 corners, 4 edges, and 1 center slice, which will be tiled across the desired space
<ul>
<li><span class="bedrock-server">width</span>: number of pixels for this sprite to cover on-screen across its width</li>
<li><span class="bedrock-server">height</span>: number of pixels for this sprite to cover on-screen across its height</li>
<li><span class="bedrock-server">border</span>: the size in pixels that the border slices should cover on-screen, one of:
<ul>
<li>Constant integer for uniform border size on all sides</li>
<li>Object containing <span class="bedrock-server">left</span>, <span class="bedrock-server">top</span>, <span class="bedrock-server">right</span>, and <span class="bedrock-server">bottom</span></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>Resource Pack Version 17</h2>
<ul>
<li>The text field background is now a nine-sliced sprite at <span class="bedrock-server">widget/text_field</span> and <span class="bedrock-server">widget/text_field_highlighted</span></li>
<li>The scroll bar in lists and text fields is now a nine-sliced sprite at <span class="bedrock-server">widget/scroller</span></li>
</ul>
<h2>Resource Pack Version 18</h2>
<ul>
<li>The <span class="bedrock-server">map_icons.png</span> texture now contains new icons</li>
</ul>
<h2>DATA Pack Version 16</h2>
<ul>
<li>Gamerule <span class="bedrock-server">randomTickSpeed</span> now affects the rate of accumulation of Snow and Ice the same way it affects crops and other blocks affected by random ticking</li>
<li>Added a <span class="bedrock-server">random</span> command</li>
<li>Added support for function macros</li>
<li>Changed Display entities’ post-teleport interpolation</li>
<li>Added new attribute <span class="bedrock-server">generic.max_absorption</span></li>
<li>Renamed <span class="bedrock-server">belowName</span> value in display slot argument in <span class="bedrock-server">scoreboard</span> command to <span class="bedrock-server">below_name</span></li>
<li>Game event changes</li>
<li>New tags</li>
</ul>
<h3>Commands</h3>
<h4><span class="bedrock-server">Random</span></h4>
<p>A new command for randomizing values and controlling random sequences. The <span class="bedrock-server">value</span> and <span class="bedrock-server">roll</span> forms can be used to draw a random value. In the case of <span class="bedrock-server">roll</span>, the resulting value is also shown in chat for all players.</p>
<p><strong>Syntax:</strong></p>
<pre><code></code></pre>
<pre><code></code></pre>
<pre><code>random value|roll <range> [<sequenceId>]</code></pre>
<pre><code>random reset *|<sequenceId> [<seed>] [<includeWorldSeed>] [<includeSequenceId>]<br></code></pre>
<p><strong>Parameters:</strong></p>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">range</span>: A range of values to randomize between, inclusively
<ul>
<li>For instance, 1..6 is a regular D6 roll</li>
</ul>
</li>
<li><span class="bedrock-server">sequenceId</span>: The name of a random sequence to sample or reset</li>
<li><span class="bedrock-server">seed</span>: A seed to use for the random sequence after reset</li>
<li><span class="bedrock-server">includeWorldSeed</span>: A boolean [default: <span class="bedrock-server">true</span>] specifying whether to include the world seed when seeding the sequence
<ul>
<li><span class="bedrock-server">false</span> means the sequence will evaluate to the same regardless of which world the command is run in</li>
</ul>
</li>
<li><span class="bedrock-server">includeSequenceId</span>: A boolean [default: <span class="bedrock-server">true</span>] specifying whether to include the sequence ID when seeding the sequence
<ul>
<li><span class="bedrock-server">false</span> means all sequences will evaluate to the same regardless of which name they have</li>
</ul>
</li>
</ul>
<pre><code></code></pre>
<p>By default, all sequences are seeded as <span class="bedrock-server">0</span>, <span class="bedrock-server">true</span>, <span class="bedrock-server">true</span>. Using <span class="bedrock-server">*</span> instead of a sequence ID resets all sequences and sets the default parameters.</p>
<pre><code></code></pre>
<p>If no seed is specified, the sequence resets to the default parameters.</p>
<pre><code></code></pre>
<p>Note that <span class="bedrock-server">random value|roll <range></span> used without a sequence ID is available to non-operator players.</p>
<pre><code></code></pre>
<h3>Functions</h3>
<pre><code></code></pre>
<ul>
<li>A single backslash <span class="bedrock-server">\ </span>as the last non-whitespace character of a line now allows a command to be continued on the next line
<ul>
<li>Leading and trailing whitespace of the following line are stripped before appending</li>
</ul>
</li>
</ul>
<pre><code></code></pre>
<h4>Macros</h4>
<pre><code></code></pre>
<p>Functions can now contain macro lines, making them Function Macros.</p>
<pre><code></code></pre>
<ul>
<li>Any line beginning with <span class="bedrock-server">$</span> (as the first non-space character) marks a macro line</li>
<li>A macro line also contains one or more substitutions in the form of <span class="bedrock-server">$(variable)</span></li>
<li>When calling a function macro a compound with data for all argument variables must be provided</li>
</ul>
<pre><code></code></pre>
<h5>Calling Function Macros</h5>
<pre><code></code></pre>
<p>The <span class="bedrock-server">function</span> command has new forms:</p>
<pre><code></code></pre>
<p><span class="bedrock-server">function <id> <compound>function <id> with <data source> [<path>]</span></p>
<pre><code></code></pre>
<p><strong>New Arguments:</strong></p>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">compound</span>: A data compound, enclosed in <span class="bedrock-server">{}</span></li>
<li><span class="bedrock-server">data source</span>: A data source specification, like what could already be used for <span class="bedrock-server">data get</span></li>
<li><span class="bedrock-server">path</span>: An NBT path specification</li>
</ul>
<pre><code></code></pre>
<p><strong>Notes:</strong></p>
<pre><code></code></pre>
<ul>
<li>The data source and path must specify a compound data entry</li>
<li>The compound must contain one entry for each variable used in the macro</li>
<li>More data may be present in the compound and if so is ignored</li>
<li>Calling a non-macro function with a data compound is silently ignored</li>
<li>When a macro is called, the values provided are substituted in place of the variable specifications, and the resulting commands are executed</li>
<li>Any syntax errors in the lines resulting from variable substitution result in the entire function call being skipped</li>
</ul>
<pre><code></code></pre>
<h5>Performance Considerations</h5>
<pre><code></code></pre>
<p>Using a macro means commands must be re-evaluated after variable substitution. This has an extra cost compared to running pre-parsed functions.</p>
<pre><code></code></pre>
<p>Regular commands (non-macro lines) are still pre-parsed. Only commands with variable substitutions in them are parsed when a macro is called and the game will attempt to cache the result of a certain parameter set being used in a call.</p>
<pre><code></code></pre>
<p>This makes repeated calls with the same parameter set cheaper than new calls with different parameters, but an overhead still remains compared to regular functions. Note that only the values referenced by macro as parameters are included in this cache, so any extra data in the provided compound is ignored.</p>
<pre><code></code></pre>
<h3>Display Entity Interpolation</h3>
<pre><code></code></pre>
<ul>
<li>Display entities now start updating their client-side position and rotation on the first tick after an update
<ul>
<li>In previous versions, updates were applied in the same tick, causing uneven motion</li>
<li>The new behavior is similar to Armor Stands, mobs, and players</li>
</ul>
</li>
<li>On the server, position and rotation are still updated immediately</li>
<li>The duration of this interpolation is controlled by the field <span class="bedrock-server">teleport_duration</span>
<ul>
<li><span class="bedrock-server">0</span> means that updates are applied immediately</li>
<li><span class="bedrock-server">1</span> means that the Display Entity will move from the current position to the updated one-over-one tick</li>
<li>Higher values spread the movement over multiple ticks</li>
<li>Please note that this value is clamped to avoid glitches due to periodic position updates</li>
<li>The new value will apply only to position and rotation changes made after it changed
<ul>
<li>That means any current movement will continue unchanged</li>
</ul>
</li>
</ul>
</li>
<li>Note: behavior while riding remains unchanged from previous versions</li>
</ul>
<pre><code></code></pre>
<h3>Attributes</h3>
<pre><code></code></pre>
<ul>
<li>Added new attribute <span class="bedrock-server">generic.max_absorption</span>
<ul>
<li><span class="bedrock-server">generic.max_absorption</span> acts similarly to <span class="bedrock-server">generic.max_health</span>, but instead of being the upper bound for <span class="bedrock-server">Health</span>, it is the upper bound for <span class="bedrock-server">AbsorptionAmount</span></li>
<li>The mob effect <span class="bedrock-server">absorption</span> increases <span class="bedrock-server">generic.max_absorption</span> as well as fills the <span class="bedrock-server">AbsorptionAmount</span> to the max when applied</li>
</ul>
</li>
</ul>
<pre><code></code></pre>
<h3>Game Events</h3>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">entity_roar</span> and <span class="bedrock-server">entity_shake</span> game events have been removed and replaced with <span class="bedrock-server">entity_action</span> game event</li>
</ul>
<pre><code></code></pre>
<h3>Tags</h3>
<pre><code></code></pre>
<ul>
<li>Added <span class="bedrock-server">no_knockback</span> damage type tag which causes knockback to not be caused by the damage itself
<ul>
<li>Used in Vanilla for damage that is caused by events, such as explosions, which apply knockback separately</li>
</ul>
</li>
<li>Added <span class="bedrock-server">non_controlling_rider</span> to represent entities that don’t override their vehicle’s movement control</li>
<li>Added <span class="bedrock-server">concrete_powder</span> block tag for Concrete Powder blocks</li>
<li>Added <span class="bedrock-server">camel_sand_step_sound_blocks</span> block tag for blocks that produce <span class="bedrock-server">entity.camel.step_sand</span> sound</li>
</ul>
<pre><code></code></pre>
<h2>DATA Pack Version 17</h2>
<pre><code></code></pre>
<ul>
<li>Changed mob effect storage on items, entities, and block entities</li>
<li>Added <span class="bedrock-server">decal</span> field to armor trim patterns (default: <span class="bedrock-server">false</span>)
<ul>
<li>If <span class="bedrock-server">true</span>, the pattern texture will be masked based on the underlying armor</li>
</ul>
</li>
</ul>
<pre><code></code></pre>
<h3>Mob Effect Storage Changes</h3>
<pre><code></code></pre>
<ul>
<li>The game no longer uses numeric values when storing mob effects to a world (so, for example, <span class="bedrock-server">4</span> becomes <span class="bedrock-server">minecraft:mining_fatigue</span>)</li>
<li>Various mob effect fields have been renamed for consistency with new structures</li>
</ul>
<pre><code></code></pre>
<h4>Mob Effect Instance</h4>
<pre><code></code></pre>
<p>This structure is used in many places, so its changes are described separately.</p>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">Id</span> -> <span class="bedrock-server">id</span>, also changed from number to string id</li>
<li><span class="bedrock-server">Ambient</span> -> <span class="bedrock-server">ambient</span></li>
<li><span class="bedrock-server">Amplifier</span> -> <span class="bedrock-server">amplifier</span></li>
<li><span class="bedrock-server">Duration</span> -> <span class="bedrock-server">duration</span></li>
<li><span class="bedrock-server">ShowParticles</span> -> <span class="bedrock-server">show_particles</span></li>
<li><span class="bedrock-server">ShowIcon</span> -> <span class="bedrock-server">show_icon</span></li>
<li><span class="bedrock-server">HiddenEffect</span> -> <span class="bedrock-server">hidden_effect</span>, also since it’s mob effect instance, changes apply recursively</li>
<li><span class="bedrock-server">FactorCalculationData</span> -> <span class="bedrock-server">factor_calculation_data</span></li>
</ul>
<pre><code></code></pre>
<h4>Items</h4>
<pre><code></code></pre>
<h5><span class="bedrock-server">potion</span>, <span class="bedrock-server">lingering_potion</span>, <span class="bedrock-server">splash_potion</span>, <span class="bedrock-server">tipped_arrow</span></h5>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">CustomPotionEffects</span> -> <span class="bedrock-server">custom_potion_effects</span>, contents transformed as a list of mob effect instances</li>
</ul>
<pre><code></code></pre>
<h5><span class="bedrock-server">suspicous_stew</span></h5>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">Effects</span> -> <span class="bedrock-server">effects</span>, for each entry:
<ul>
<li><span class="bedrock-server">EffectId</span> -> <span class="bedrock-server">id</span>, also changed from number to string id</li>
<li><span class="bedrock-server">EffectDuration</span> -> <span class="bedrock-server">duration</span></li>
</ul>
</li>
</ul>
<pre><code></code></pre>
<h4>Entities</h4>
<pre><code></code></pre>
<h5><span class="bedrock-server">mooshroom</span></h5>
<pre><code></code></pre>
<ul>
<li>Removed <span class="bedrock-server">EffectId</span> and <span class="bedrock-server">EffectDuration</span></li>
<li>Added <span class="bedrock-server">stew_effects</span> with the same format as <span class="bedrock-server">suspicious_stew.effects</span> tag (i.e. list of effect id and duration)</li>
</ul>
<pre><code></code></pre>
<h5><span class="bedrock-server">area_effect_cloud</span></h5>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">Effects</span> -> <span class="bedrock-server">effects</span>, contents transformed as a list of mob effect instances</li>
</ul>
<pre><code></code></pre>
<h5><span class="bedrock-server">arrow</span></h5>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">CustomPotionEffects</span> -> <span class="bedrock-server">custom_potion_effects</span>, contents transformed as a list of mob effect instances</li>
</ul>
<pre><code></code></pre>
<h5>Players, Armor Stands, and mobs</h5>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">ActiveEffects</span> -> <span class="bedrock-server">active_effects</span>, contents transformed as a list of mob effect instances</li>
</ul>
<pre><code></code></pre>
<h4>Block Entities</h4>
<pre><code></code></pre>
<p><span class="bedrock-server">beacon</span></p>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">Primary</span> -> <span class="bedrock-server">primary_effect</span>, also changed from number to string id</li>
<li><span class="bedrock-server">Secondary</span> -> <span class="bedrock-server">secondary_effect</span>, also changed from number to string id</li>
</ul>
<pre><code></code></pre>
<h3>Loot Tables</h3>
<pre><code></code></pre>
<ul>
<li>Added <span class="bedrock-server">sequence</span> loot function
<ul>
<li>Contains 1 field:
<ul>
<li><span class="bedrock-server">functions</span>: an array of sub-functions to run in sequence</li>
</ul>
</li>
<li>Can also be declared as an inline array without a type
<ul>
<li>This matches the existing behavior where loot function JSON files can be declared as an array of composite functions</li>
</ul>
</li>
</ul>
</li>
<li><span class="bedrock-server">all_of</span> predicates in loot tables can now be declared implicitly as an inline array without a type
<ul>
<li>This similarly matches the existing behavior where loot predicate JSON files can be declared as an array of sub-predicates</li>
</ul>
</li>
<li>Block or fluid state property matches in loot conditions no longer accept non-string values
<ul>
<li>Any number or boolean value in a property matcher must be quoted</li>
</ul>
</li>
</ul>
<pre><code></code></pre>
<h2>DATA Pack Version 18</h2>
<pre><code></code></pre>
<p>This data pack version removes the <span class="bedrock-server">execute if function</span> and <span class="bedrock-server">return run</span> functionality that existed for a time during the development of this version. Flaws with those commands (see bugs <a href="https://bugs.mojang.com/browse/MC-264595">MC-264595</a>, <a href="https://bugs.mojang.com/browse/MC-264699">MC-264699</a>, and <a href="https://bugs.mojang.com/browse/MC-264710">MC-264710</a>) require some substantial changes to fix, which we do not want to make close to a release.</p>
<pre><code></code></pre>
<p>These commands will instead be reintroduced early in the next snapshot series when we can take the time to iterate on and test them together with pack makers.</p>
<pre><code></code></pre>
<ul>
<li>Removed <span class="bedrock-server">execute if|unless function</span> command form</li>
<li>Removed <span class="bedrock-server">return run</span> command form</li>
<li>Numbers used as macro arguments are now always inserted without suffixes, regardless of numeric type</li>
<li>Added game rule <span class="bedrock-server">enderPearlsVanishOnDeath</span>, controlling whether thrown Ender Pearls vanish when the player that threw them dies (default <span class="bedrock-server">true</span>, which matches the existing behavior in previous versions)</li>
<li>Added damage type tag <span class="bedrock-server">always_kills_armor_stands</span> for damage types that should always fully kill an Armor Stand<code></code></li>
</ul>
<h2>Experimental Features</h2>
<pre><code></code></pre>
<h3>Villager Trade Rebalance</h3>
<pre><code></code></pre>
<p>The Experiments screen when creating a world now has an option to enable the Villager Trade Rebalance. When this option is selected, some Villager trades will change.</p>
<pre><code></code></pre>
<p>This experiment does not affect normal worlds. You can find more information about Feature Toggles <a href="https://www.minecraft.net/article/testing-new-minecraft-features/feature-toggles-java-edition">here</a>.</p>
<pre><code></code></pre>
<h4>Librarian Changes</h4>
<pre><code></code></pre>
<ul>
<li>Librarians from different biomes now sell different Enchanted Books</li>
<li>Each village biome has one special enchantment that is only available from Master Librarians with full XP</li>
<li>This means that players must visit all seven village biomes to get the full set of villager enchantments</li>
<li>There are two secret village biomes where villages do not generate
<ul>
<li>A player must build these villages to access their trades!</li>
</ul>
</li>
<li>Some enchantments have been removed from village trading and must be found in other ways</li>
</ul>
<pre><code></code></pre>
<h4>Cartographer Changes</h4>
<pre><code></code></pre>
<ul>
<li>Cartographers can now sell seven new Explorer Maps
<ul>
<li>Five new maps show the way to five different types of village</li>
<li>The other two new maps show the way to a Swamp Hut and a Jungle Temple</li>
</ul>
</li>
<li>Cartographers from different biomes now sell a different range of maps</li>
</ul>
<pre><code></code></pre>
<h4>Wandering Trader Changes</h4>
<pre><code></code></pre>
<ul>
<li>Wandering Traders now have lower prices and have a higher amount of each item in stock</li>
<li>Wandering Traders now sell Logs</li>
<li>Wandering Traders can now buy many items, instead of only selling</li>
</ul>
<pre><code></code></pre>
<h4>Armorer Changes</h4>
<pre><code></code></pre>
<ul>
<li>Armorer from different biomes now sell different Armor with different enchantments</li>
<li>Buying Diamond Armor now requires a small amount of Diamonds as well as Emeralds</li>
<li>Many other Armorer trades have been updated</li>
</ul>
<pre><code></code></pre>
<h4>Structure Loot</h4>
<pre><code></code></pre>
<p>Certain Enchanted Books now have a high chance of generating in some structures:</p>
<pre><code></code></pre>
<ul>
<li>Ancient Cities: Mending</li>
<li>Mineshafts: Efficiency (I to V)</li>
<li>Pillager Outposts: Quick Charge (I to III)</li>
<li>Desert Temples: Unbreaking (I to III)</li>
<li>Jungle Temples: Unbreaking (I to III)</li>
</ul>
<pre><code></code></pre>
<h2>Fixed Bugs In 1.20.2</h2>
<pre><code></code></pre>
<p>Around 200 bugs were fixed in this release. View the <a href="https://bugs.mojang.com/issues/?filter=27828">list on the issue tracker</a>.</p>
<pre><code></code><code></code></pre>
</div>
https://www.sickgaming.net/blog/2023/09/...2-is-here/
<div style="margin: 5px 5% 10px 5%;"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2023/09/java-edition-1-20-2-is-here.png" width="798" height="226" title="" alt="" /></div><div><h2>New Features</h2>
<h3>Player Skin & Name Reporting</h3>
<p>We are making some important updates to our Player Reporting Tool to better protect the online safety of our players.</p>
<p>Playing Minecraft should be an inclusive and safe experience for everyone, which is why alongside in-game chat messages, you will now be able to report player skins and usernames that violate our Community Standards in Java Edition.</p>
<p>Just like with chat reports, nothing is automated. Any reported skin or username will be reviewed manually by a team of trained Minecraft moderators, who will use the submitted evidence to decide whether the skin and/or username is in breach of our Community Standards. Skins that violate these standards will be removed from Minecraft and will no longer be accessible for use by any player. Usernames that violate these standards will need to be changed before that player can play online via a shared server or Realm; though single-player mode will still be accessible. To find out more about this and other safety policies, including more detail on the suspension procedure, appeals process, and how we handle malicious or repeat reporting, please visit our dedicated <a href="https://help.minecraft.net/hc/en-us/articles/7317376541197">FAQ page</a>.</p>
<ul>
<li>Player Skins and Names can now be reported in the Social Interactions Screen</li>
<li>If a skin or name is reported and found to be violating the <a href="https://www.minecraft.net/community-standards">Community Standards</a>, our team of human moderators can take action in a few ways:
<ul>
<li>Ban the skin from being used by any player</li>
<li>Ban the name from being used by any player</li>
<li>Suspend the player from online play in the case of repeated offenses</li>
</ul>
</li>
<li>When a skin is banned, players with that skin:
<ul>
<li>Will have their skin removed</li>
<li>Will be notified when they launch the game</li>
<li>Will be automatically assigned one of the default skins</li>
<li>Can still play multiplayer and singleplayer</li>
<li>Can select a new custom skin at any time</li>
</ul>
</li>
<li>When a player’s name is banned, that player:
<ul>
<li>Will need to choose a new name</li>
<li>Will be notified when they launch the game</li>
<li>Will not be able to play online until they change their name</li>
<li>Can still play singleplayer</li>
</ul>
</li>
<li>A skin or name that has been banned cannot be used by any player in the future</li>
</ul>
<h2>Changes</h2>
<ul>
<li>The calculations to determine whether a mob can attack a player or other mobs have been changed</li>
<li>Diamond Ore is now generated more frequently in the Deepslate layers of the Overworld</li>
<li>Optimizations to networked play</li>
<li>Curing a Zombie Villager now only gives a big discount the first time
<ul>
<li>There is no longer a bonus discount for reinfecting and curing the same Villager multiple times</li>
</ul>
</li>
<li>Sponges and Wet Sponges now have their own custom sounds</li>
<li>Barrier blocks can now be waterlogged by players in Creative mode
<ul>
<li>Water cannot be placed in them or taken out by non-direct interactions such as Dispensers</li>
</ul>
</li>
<li>The positions that all entities ride on other entities have been adjusted to make more sense</li>
<li>Added the “Narrator Hotkey” accessibility option (default on)
<ul>
<li>The narrator can be toggled on and off with <span class="bedrock-server">Ctrl+B</span> when this is on</li>
</ul>
</li>
<li>Added “I want to report them” Player Reporting category</li>
<li>Removed Herobrine</li>
</ul>
<h3>Mob Attack Reach Changes</h3>
<p>The calculations to determine whether a mob can attack a player or other mobs have been changed. Previously a mob’s horizontal width was used to determine their attack reach and their height had no effect. The area where a mob can attack is now their bounding box extended in horizontal directions.</p>
<p>Here are some situations where the new rules will affect the reach of mobs:</p>
<ul>
<li>If a mob is entirely below you, or entirely above you, it will not be able to reach you</li>
<li>While riding on a medium-sized mob, like a Horse, you will be protected from small mobs, like Baby Zombies</li>
<li>While riding on a tall mob, like a Camel, you will be protected from standard-size mobs, like Zombies</li>
<li>Also, Ravagers won’t be able to attack you through a few block-thick walls anymore</li>
<li>However, to escape from an Enderman, you need to be at least 3 blocks above the ground, not 1.5 as before</li>
<li>Mobs will be able to attack you with the bottom of their hitbox, assuming your head is in range</li>
<li>Builds that trap hostile mobs might need to be adjusted to be safe</li>
</ul>
<p>This change does not affect the reach of players, and mobs still need to see their target to attack it.</p>
<h3>Networked Play</h3>
<p>The Multiplayer mode of the game has been optimized to enable more fluid online play. If you have previously experienced disconnections or slow loading into online servers, this version may significantly improve that experience.</p>
<ul>
<li>The game world will now show earlier instead of the loading screen while loading into a world on a server</li>
<li>Clients with extremely low-bandwidth connections will not time out while loading the world</li>
<li>Clients with low-bandwidth connections can interact with the world while some chunks are still loading</li>
</ul>
<h3>Vibrations</h3>
<ul>
<li>Vibrations no longer risk being lost on simulation distance limit</li>
<li>Using Bone Meal emits an <span class="bedrock-server">item_interact_finish</span> vibration of frequency 3</li>
<li>Unequipping items emit a new <span class="bedrock-server">unequip</span> vibration of frequency 4</li>
<li>Camels eating Cactus emit an <span class="bedrock-server">eat</span> vibration of frequency 8</li>
<li>Carrots being eaten by Rabbits emit a <span class="bedrock-server">block_change</span> vibration of frequency 11</li>
<li>Sweet Berries being eaten by Foxes emit a <span class="bedrock-server">block_change</span> vibration of frequency 11</li>
<li>Chiseled Bookshelves emit a <span class="bedrock-server">block_change</span> vibration of frequency 11 when receiving books from Hoppers</li>
<li>Turtle Eggs cracking emit a <span class="bedrock-server">block_change</span> vibration of frequency 11</li>
<li>Turtle Eggs hatching emit a <span class="bedrock-server">block_destroy</span> vibration of frequency 12</li>
<li>Fire being doused by Water Potion emits a <span class="bedrock-server">block_destroy</span> vibration of frequency 12</li>
<li>Evokers evoking Vexes or Fangs emit an <span class="bedrock-server">entity_place</span> vibration of frequency 14</li>
</ul>
<h3>Miscellaneous Minor Tweaks</h3>
<ul>
<li>Chorus Flower no longer provides support for hanging or standing blocks</li>
<li>Updated structure icons on Explorer Maps sold by Cartographers</li>
<li>When Villagers unlock new trades, the order of those trades in the UI is now always random instead of sometimes being deterministic</li>
<li>The sizes of text fields in the user interface are now consistent with the size of buttons</li>
<li>You now need a taller pillar to escape taller mobs.</li>
<li>Rabbits eating Carrots now trigger Sculk Sensors</li>
</ul>
<p><img decoding="async" fetchpriority="high" src="https://www.sickgaming.net/blog/wp-content/uploads/2023/09/java-edition-1-20-2-is-here.png" alt width="798" height="226"></p>
<h2>Technical Changes</h2>
<ul>
<li>The resource pack version is now 18</li>
<li>The data pack version is now 18</li>
<li>History of used commands is now saved and accessible across worlds</li>
<li>Optimized networking to improve the experience on low bandwidth connections</li>
<li>Added support for multi-version packs</li>
<li>Changed network protocol to allow for more data-driven content in the future</li>
<li>Added new <span class="bedrock-server">log-ips</span> option to <span class="bedrock-server">server.properties</span></li>
<li>Added validation for symbolic links in datapacks and resource packs</li>
<li>When hitboxes are displayed through F3+B, entities that have a passenger will display the passenger’s attachment point</li>
<li>The charts on the debug screen can now be toggled with F3+1 (pie chart) and F3+2 (FPS and TPS) instead of holding Shift or Alt while opening the screen</li>
<li>Pressing F3+3 will now show charts for ping and received network traffic on the debug screen</li>
<li>The <span class="bedrock-server">LWJGL</span> library has been upgraded to version 3.3.2</li>
<li>The default Java version shipped with the game has been upgraded to Microsoft OpenJDK 17.0.8</li>
</ul>
<h3>Command History</h3>
<ul>
<li>The last 50 commands that you sent in chat will be remembered across game sessions</li>
<li>You can access the command and chat history by pressing the up or down arrows in the chat</li>
<li>Regular chat is only persisted within the same game session (leaving a server or world clears them)</li>
<li>Recent commands are stored in <span class="bedrock-server">command_history.txt</span> in the game folder</li>
</ul>
<h3>Network Optimizations</h3>
<ul>
<li>Gameplay packets are now packed into bigger TCP packets to reduce overhead from TCP headers, significantly reducing network usage</li>
<li>Chunks are not sent over the network to the client in one big continuous batch anymore</li>
<li>Chunks are instead sent in smaller batches depending on the available bandwidth, meaning that:
<ul>
<li>Clients with extremely low-bandwidth connections will not time out while loading the world</li>
<li>Clients with low-bandwidth connections can interact with the world while some chunks are still loading</li>
</ul>
</li>
<li>Only chunks within the client’s render distance are now sent</li>
</ul>
<h3>Multi-Version Packs</h3>
<p>New features have been added to datapacks and resource packs to allow the creation of packs that are compatible with multiple versions of the game.</p>
<h4>Pack Metadata</h4>
<ul>
<li>Pack metadata now includes an optional field <span class="bedrock-server">supported_formats</span> which describes a range for pack formats that this pack supports
<ul>
<li>Examples: <span class="bedrock-server">16</span>, <span class="bedrock-server">[16,17]</span>, <span class="bedrock-server">{“min_inclusive”: 16, “max_inclusive”: 17}</span></li>
</ul>
</li>
<li><span class="bedrock-server">pack_format</span> field is still required and its format remains unchanged, to allow older game versions to read pack data
<ul>
<li>If <span class="bedrock-server">supported_formats</span> is present, it must contain the value declared in <span class="bedrock-server">pack_format</span></li>
<li>Note: 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</li>
</ul>
</li>
</ul>
<h4>Overlays</h4>
<ul>
<li>Packs can now contain overlay directories (“overlays”)</li>
<li>Overlays are sub-packs applied over the “normal” contents of a pack
<ul>
<li>These directories have the same layout as the top-level pack, including the <span class="bedrock-server">assets</span> and <span class="bedrock-server">data</span> directories</li>
<li>Overlays can be applied if they support the client’s pack format</li>
<li>Overlays can add and replace files, but not remove them
<ul>
<li>For example, if the overlay <span class="bedrock-server">foo</span> is applied, the file <span class="bedrock-server">foo/assets/minecraft/textures/bar.png</span> will replace the contents of <span class="bedrock-server">assets/minecraft/textures/bar.png</span></li>
</ul>
</li>
<li><span class="bedrock-server">pack.mcmeta</span> and <span class="bedrock-server">pack.png</span> are ignored in overlay directories</li>
</ul>
</li>
<li>New section called <span class="bedrock-server">overlays</span> has been added to pack metadata
<ul>
<li>It contains an <span class="bedrock-server">entries</span> field, containing a list of overlays</li>
<li>Every overlay entry has two fields:
<ul>
<li><span class="bedrock-server">formats</span> – range of supported formats</li>
<li><span class="bedrock-server">directory</span> – overlay directory (allowed characters: <span class="bedrock-server">a-z</span>, <span class="bedrock-server">0-9</span>, <span class="bedrock-server">_</span> and <span class="bedrock-server">–</span>)</li>
</ul>
</li>
</ul>
</li>
<li>Order of application: overlays are stacked from the bottom to top of the list
<ul>
<li>For example, if a pack has two overlays: <span class="bedrock-server">“entries”: [{“directory”:”A”, …}, {“directory”:”B”, …}]</span>, the game will first look in <span class="bedrock-server">B</span>, then <span class="bedrock-server">A</span> and then in the top pack directory</li>
</ul>
</li>
</ul>
<h3>Symbolic Link Validation</h3>
<p>To improve safety, the game will now also detect symbolic links used inside data- and resource packs.</p>
<ul>
<li>This feature expands on symbolic link validation in worlds added in the previous release</li>
<li>The game will now warn users if a pack added via drag and drop contains disallowed symbolic links</li>
<li>Packs containing disallowed symbolic links will not be visible in UI and commands</li>
<li>Additionally, directories and files that are not recognized as packs will no longer be copied via drag-and-drop</li>
<li>For a detailed explanation, see this <a href="https://aka.ms/MinecraftSymLinks">help article</a></li>
</ul>
<h3>Network Protocol</h3>
<p>As part of ongoing work towards more data-driven features, the network protocol has been changed to include a new configuration phase.</p>
<ul>
<li>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)</li>
<li>Clients can stay in configuration phase indefinitely – it’s up to the server to release it to the world</li>
<li>Servers can also request clients to re-enter the configuration phase after it has entered the play phase
<ul>
<li>Other players will see such clients as disconnected</li>
</ul>
</li>
<li>Users in configuration phase will not be visible on the player list</li>
<li>Actions allowed in configuration phase (moved from play phase):
<ul>
<li>Configuration of data-driven registries</li>
<li>Configuration of enabled features</li>
</ul>
</li>
<li>Actions shared between configuration and play phases:
<ul>
<li>Application of server resource packs</li>
<li>Update of tags</li>
<li>Exchange of custom packets</li>
<li>Ping and keep-alive packets</li>
<li>Sending of client options</li>
</ul>
</li>
<li>The server will now negotiate resource packs in the configuration phase
<ul>
<li>This means that the player will no longer be in the world when answering prompts and reloading resources</li>
</ul>
</li>
</ul>
<h4>Secure Chat</h4>
<ul>
<li>Clients will no longer disconnect themselves when receiving an invalid chat message
<ul>
<li>A placeholder message will instead be shown in chat</li>
</ul>
</li>
</ul>
<h3><span class="bedrock-server">server.properties</span></h3>
<ul>
<li>New option: <span class="bedrock-server">log-ips</span> (default <span class="bedrock-server">true</span>)
<ul>
<li>When set to <span class="bedrock-server">false</span>, will prevent player IPs from being included in the log when players join the game</li>
</ul>
</li>
</ul>
<h3>Telemetry</h3>
<ul>
<li>Added a button to the Telemetry Data Collection Screen that links to the Microsoft Privacy Statement</li>
</ul>
<h2>Resource Pack Version 16</h2>
<ul>
<li>The process of upgrading your pack can be assisted by using this automated <a href="https://github.com/Mojang/slicer/releases/tag/v1.1.2">Slicer</a> tool</li>
<li>All textures containing multiple sprites in a sheet for GUI have been split into individual sprites under <span class="bedrock-server">textures/gui/sprites</span> (automated by the Slicer tool)</li>
<li>All textures in the <span class="bedrock-server">realms</span> namespace have been moved into the <span class="bedrock-server">Minecraft</span> namespace (automated by the Slicer tool)</li>
<li><span class="bedrock-server">villager2.png</span> has been renamed to <span class="bedrock-server">villager.png</span> (automated by the Slicer tool)</li>
<li><span class="bedrock-server">icon/trial_available</span> and <span class="bedrock-server">realm_status/expires_soon</span> GUI sprites are animated with <span class="bedrock-server">.mcmeta</span> declarations instead of individual sprites (automated by the Slicer tool)</li>
<li>The Bundle tooltip background is now drawn as a nine-sliced sprite</li>
<li>The icons for the Accessibility, Language, and Realms News buttons have been split from their underlying button texture</li>
<li>The Realms Invite button is now drawn as an overlay on the normal button texture
<ul>
<li>The highlighted texture state for this button has been removed</li>
</ul>
</li>
<li>The highlighted states for Realms invitation number icons have been removed</li>
<li>The exclamation marks on the <span class="bedrock-server">notification\more.png</span> have been removed</li>
</ul>
<h3>GUI Sprite Sheet</h3>
<ul>
<li>Sprites used in GUI drawing have been split into individual sprite files instead of larger sprite sheets
<ul>
<li>For example, <span class="bedrock-server">widgets/button.png</span> and <span class="bedrock-server">widgets/button_highlighted.png</span> have been split from <span class="bedrock-server">widgets.png</span></li>
</ul>
</li>
<li>Each sprite can now be individually overridden by a resource pack instead of replacing the entire sheet</li>
<li>Sprites are loaded into the <span class="bedrock-server">GUI</span> atlas from the <span class="bedrock-server">textures/gui/sprites</span> directory</li>
</ul>
<h4>GUI Sprite .mcmeta</h4>
<ul>
<li>Any sprite used in the GUI can now be animated using <span class="bedrock-server">.mcmeta</span> files, similar to other atlases
<ul>
<li><span class="bedrock-server">icon/trial_available</span> and <span class="bedrock-server">realm_status/expires_soon</span> are now animated this way</li>
</ul>
</li>
<li>Sprites in the <span class="bedrock-server">GUI</span> atlas can now configure scaling behavior through a new <span class="bedrock-server">GUI</span> section in <span class="bedrock-server">.mcmeta</span> files
<ul>
<li>For example, button textures must be scaled based on how big the button should be</li>
<li>The <span class="bedrock-server">GUI</span> section in <span class="bedrock-server">.mcmeta</span> contains one <span class="bedrock-server">scaling</span> field:
<ul>
<li><span class="bedrock-server">type</span>: one of: <span class="bedrock-server">stretch</span> (default), <span class="bedrock-server">tile</span>, or <span class="bedrock-server">nine_slice</span></li>
<li>When <span class="bedrock-server">stretched</span>, the sprite will be stretched across the desired space
<ul>
<li>No additional fields need to be defined</li>
</ul>
</li>
<li>When <span class="bedrock-server">tile</span>, the sprite will be repeated across the desired space, starting from the top-left
<ul>
<li><span class="bedrock-server">width</span>: number of pixels for this sprite to cover on-screen across its width</li>
<li><span class="bedrock-server">height</span>: number of pixels for this sprite to cover on-screen across its height</li>
</ul>
</li>
<li>When <span class="bedrock-server">nine_slice</span>, the sprite will be sliced into 4 corners, 4 edges, and 1 center slice, which will be tiled across the desired space
<ul>
<li><span class="bedrock-server">width</span>: number of pixels for this sprite to cover on-screen across its width</li>
<li><span class="bedrock-server">height</span>: number of pixels for this sprite to cover on-screen across its height</li>
<li><span class="bedrock-server">border</span>: the size in pixels that the border slices should cover on-screen, one of:
<ul>
<li>Constant integer for uniform border size on all sides</li>
<li>Object containing <span class="bedrock-server">left</span>, <span class="bedrock-server">top</span>, <span class="bedrock-server">right</span>, and <span class="bedrock-server">bottom</span></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>Resource Pack Version 17</h2>
<ul>
<li>The text field background is now a nine-sliced sprite at <span class="bedrock-server">widget/text_field</span> and <span class="bedrock-server">widget/text_field_highlighted</span></li>
<li>The scroll bar in lists and text fields is now a nine-sliced sprite at <span class="bedrock-server">widget/scroller</span></li>
</ul>
<h2>Resource Pack Version 18</h2>
<ul>
<li>The <span class="bedrock-server">map_icons.png</span> texture now contains new icons</li>
</ul>
<h2>DATA Pack Version 16</h2>
<ul>
<li>Gamerule <span class="bedrock-server">randomTickSpeed</span> now affects the rate of accumulation of Snow and Ice the same way it affects crops and other blocks affected by random ticking</li>
<li>Added a <span class="bedrock-server">random</span> command</li>
<li>Added support for function macros</li>
<li>Changed Display entities’ post-teleport interpolation</li>
<li>Added new attribute <span class="bedrock-server">generic.max_absorption</span></li>
<li>Renamed <span class="bedrock-server">belowName</span> value in display slot argument in <span class="bedrock-server">scoreboard</span> command to <span class="bedrock-server">below_name</span></li>
<li>Game event changes</li>
<li>New tags</li>
</ul>
<h3>Commands</h3>
<h4><span class="bedrock-server">Random</span></h4>
<p>A new command for randomizing values and controlling random sequences. The <span class="bedrock-server">value</span> and <span class="bedrock-server">roll</span> forms can be used to draw a random value. In the case of <span class="bedrock-server">roll</span>, the resulting value is also shown in chat for all players.</p>
<p><strong>Syntax:</strong></p>
<pre><code></code></pre>
<pre><code></code></pre>
<pre><code>random value|roll <range> [<sequenceId>]</code></pre>
<pre><code>random reset *|<sequenceId> [<seed>] [<includeWorldSeed>] [<includeSequenceId>]<br></code></pre>
<p><strong>Parameters:</strong></p>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">range</span>: A range of values to randomize between, inclusively
<ul>
<li>For instance, 1..6 is a regular D6 roll</li>
</ul>
</li>
<li><span class="bedrock-server">sequenceId</span>: The name of a random sequence to sample or reset</li>
<li><span class="bedrock-server">seed</span>: A seed to use for the random sequence after reset</li>
<li><span class="bedrock-server">includeWorldSeed</span>: A boolean [default: <span class="bedrock-server">true</span>] specifying whether to include the world seed when seeding the sequence
<ul>
<li><span class="bedrock-server">false</span> means the sequence will evaluate to the same regardless of which world the command is run in</li>
</ul>
</li>
<li><span class="bedrock-server">includeSequenceId</span>: A boolean [default: <span class="bedrock-server">true</span>] specifying whether to include the sequence ID when seeding the sequence
<ul>
<li><span class="bedrock-server">false</span> means all sequences will evaluate to the same regardless of which name they have</li>
</ul>
</li>
</ul>
<pre><code></code></pre>
<p>By default, all sequences are seeded as <span class="bedrock-server">0</span>, <span class="bedrock-server">true</span>, <span class="bedrock-server">true</span>. Using <span class="bedrock-server">*</span> instead of a sequence ID resets all sequences and sets the default parameters.</p>
<pre><code></code></pre>
<p>If no seed is specified, the sequence resets to the default parameters.</p>
<pre><code></code></pre>
<p>Note that <span class="bedrock-server">random value|roll <range></span> used without a sequence ID is available to non-operator players.</p>
<pre><code></code></pre>
<h3>Functions</h3>
<pre><code></code></pre>
<ul>
<li>A single backslash <span class="bedrock-server">\ </span>as the last non-whitespace character of a line now allows a command to be continued on the next line
<ul>
<li>Leading and trailing whitespace of the following line are stripped before appending</li>
</ul>
</li>
</ul>
<pre><code></code></pre>
<h4>Macros</h4>
<pre><code></code></pre>
<p>Functions can now contain macro lines, making them Function Macros.</p>
<pre><code></code></pre>
<ul>
<li>Any line beginning with <span class="bedrock-server">$</span> (as the first non-space character) marks a macro line</li>
<li>A macro line also contains one or more substitutions in the form of <span class="bedrock-server">$(variable)</span></li>
<li>When calling a function macro a compound with data for all argument variables must be provided</li>
</ul>
<pre><code></code></pre>
<h5>Calling Function Macros</h5>
<pre><code></code></pre>
<p>The <span class="bedrock-server">function</span> command has new forms:</p>
<pre><code></code></pre>
<p><span class="bedrock-server">function <id> <compound>function <id> with <data source> [<path>]</span></p>
<pre><code></code></pre>
<p><strong>New Arguments:</strong></p>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">compound</span>: A data compound, enclosed in <span class="bedrock-server">{}</span></li>
<li><span class="bedrock-server">data source</span>: A data source specification, like what could already be used for <span class="bedrock-server">data get</span></li>
<li><span class="bedrock-server">path</span>: An NBT path specification</li>
</ul>
<pre><code></code></pre>
<p><strong>Notes:</strong></p>
<pre><code></code></pre>
<ul>
<li>The data source and path must specify a compound data entry</li>
<li>The compound must contain one entry for each variable used in the macro</li>
<li>More data may be present in the compound and if so is ignored</li>
<li>Calling a non-macro function with a data compound is silently ignored</li>
<li>When a macro is called, the values provided are substituted in place of the variable specifications, and the resulting commands are executed</li>
<li>Any syntax errors in the lines resulting from variable substitution result in the entire function call being skipped</li>
</ul>
<pre><code></code></pre>
<h5>Performance Considerations</h5>
<pre><code></code></pre>
<p>Using a macro means commands must be re-evaluated after variable substitution. This has an extra cost compared to running pre-parsed functions.</p>
<pre><code></code></pre>
<p>Regular commands (non-macro lines) are still pre-parsed. Only commands with variable substitutions in them are parsed when a macro is called and the game will attempt to cache the result of a certain parameter set being used in a call.</p>
<pre><code></code></pre>
<p>This makes repeated calls with the same parameter set cheaper than new calls with different parameters, but an overhead still remains compared to regular functions. Note that only the values referenced by macro as parameters are included in this cache, so any extra data in the provided compound is ignored.</p>
<pre><code></code></pre>
<h3>Display Entity Interpolation</h3>
<pre><code></code></pre>
<ul>
<li>Display entities now start updating their client-side position and rotation on the first tick after an update
<ul>
<li>In previous versions, updates were applied in the same tick, causing uneven motion</li>
<li>The new behavior is similar to Armor Stands, mobs, and players</li>
</ul>
</li>
<li>On the server, position and rotation are still updated immediately</li>
<li>The duration of this interpolation is controlled by the field <span class="bedrock-server">teleport_duration</span>
<ul>
<li><span class="bedrock-server">0</span> means that updates are applied immediately</li>
<li><span class="bedrock-server">1</span> means that the Display Entity will move from the current position to the updated one-over-one tick</li>
<li>Higher values spread the movement over multiple ticks</li>
<li>Please note that this value is clamped to avoid glitches due to periodic position updates</li>
<li>The new value will apply only to position and rotation changes made after it changed
<ul>
<li>That means any current movement will continue unchanged</li>
</ul>
</li>
</ul>
</li>
<li>Note: behavior while riding remains unchanged from previous versions</li>
</ul>
<pre><code></code></pre>
<h3>Attributes</h3>
<pre><code></code></pre>
<ul>
<li>Added new attribute <span class="bedrock-server">generic.max_absorption</span>
<ul>
<li><span class="bedrock-server">generic.max_absorption</span> acts similarly to <span class="bedrock-server">generic.max_health</span>, but instead of being the upper bound for <span class="bedrock-server">Health</span>, it is the upper bound for <span class="bedrock-server">AbsorptionAmount</span></li>
<li>The mob effect <span class="bedrock-server">absorption</span> increases <span class="bedrock-server">generic.max_absorption</span> as well as fills the <span class="bedrock-server">AbsorptionAmount</span> to the max when applied</li>
</ul>
</li>
</ul>
<pre><code></code></pre>
<h3>Game Events</h3>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">entity_roar</span> and <span class="bedrock-server">entity_shake</span> game events have been removed and replaced with <span class="bedrock-server">entity_action</span> game event</li>
</ul>
<pre><code></code></pre>
<h3>Tags</h3>
<pre><code></code></pre>
<ul>
<li>Added <span class="bedrock-server">no_knockback</span> damage type tag which causes knockback to not be caused by the damage itself
<ul>
<li>Used in Vanilla for damage that is caused by events, such as explosions, which apply knockback separately</li>
</ul>
</li>
<li>Added <span class="bedrock-server">non_controlling_rider</span> to represent entities that don’t override their vehicle’s movement control</li>
<li>Added <span class="bedrock-server">concrete_powder</span> block tag for Concrete Powder blocks</li>
<li>Added <span class="bedrock-server">camel_sand_step_sound_blocks</span> block tag for blocks that produce <span class="bedrock-server">entity.camel.step_sand</span> sound</li>
</ul>
<pre><code></code></pre>
<h2>DATA Pack Version 17</h2>
<pre><code></code></pre>
<ul>
<li>Changed mob effect storage on items, entities, and block entities</li>
<li>Added <span class="bedrock-server">decal</span> field to armor trim patterns (default: <span class="bedrock-server">false</span>)
<ul>
<li>If <span class="bedrock-server">true</span>, the pattern texture will be masked based on the underlying armor</li>
</ul>
</li>
</ul>
<pre><code></code></pre>
<h3>Mob Effect Storage Changes</h3>
<pre><code></code></pre>
<ul>
<li>The game no longer uses numeric values when storing mob effects to a world (so, for example, <span class="bedrock-server">4</span> becomes <span class="bedrock-server">minecraft:mining_fatigue</span>)</li>
<li>Various mob effect fields have been renamed for consistency with new structures</li>
</ul>
<pre><code></code></pre>
<h4>Mob Effect Instance</h4>
<pre><code></code></pre>
<p>This structure is used in many places, so its changes are described separately.</p>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">Id</span> -> <span class="bedrock-server">id</span>, also changed from number to string id</li>
<li><span class="bedrock-server">Ambient</span> -> <span class="bedrock-server">ambient</span></li>
<li><span class="bedrock-server">Amplifier</span> -> <span class="bedrock-server">amplifier</span></li>
<li><span class="bedrock-server">Duration</span> -> <span class="bedrock-server">duration</span></li>
<li><span class="bedrock-server">ShowParticles</span> -> <span class="bedrock-server">show_particles</span></li>
<li><span class="bedrock-server">ShowIcon</span> -> <span class="bedrock-server">show_icon</span></li>
<li><span class="bedrock-server">HiddenEffect</span> -> <span class="bedrock-server">hidden_effect</span>, also since it’s mob effect instance, changes apply recursively</li>
<li><span class="bedrock-server">FactorCalculationData</span> -> <span class="bedrock-server">factor_calculation_data</span></li>
</ul>
<pre><code></code></pre>
<h4>Items</h4>
<pre><code></code></pre>
<h5><span class="bedrock-server">potion</span>, <span class="bedrock-server">lingering_potion</span>, <span class="bedrock-server">splash_potion</span>, <span class="bedrock-server">tipped_arrow</span></h5>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">CustomPotionEffects</span> -> <span class="bedrock-server">custom_potion_effects</span>, contents transformed as a list of mob effect instances</li>
</ul>
<pre><code></code></pre>
<h5><span class="bedrock-server">suspicous_stew</span></h5>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">Effects</span> -> <span class="bedrock-server">effects</span>, for each entry:
<ul>
<li><span class="bedrock-server">EffectId</span> -> <span class="bedrock-server">id</span>, also changed from number to string id</li>
<li><span class="bedrock-server">EffectDuration</span> -> <span class="bedrock-server">duration</span></li>
</ul>
</li>
</ul>
<pre><code></code></pre>
<h4>Entities</h4>
<pre><code></code></pre>
<h5><span class="bedrock-server">mooshroom</span></h5>
<pre><code></code></pre>
<ul>
<li>Removed <span class="bedrock-server">EffectId</span> and <span class="bedrock-server">EffectDuration</span></li>
<li>Added <span class="bedrock-server">stew_effects</span> with the same format as <span class="bedrock-server">suspicious_stew.effects</span> tag (i.e. list of effect id and duration)</li>
</ul>
<pre><code></code></pre>
<h5><span class="bedrock-server">area_effect_cloud</span></h5>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">Effects</span> -> <span class="bedrock-server">effects</span>, contents transformed as a list of mob effect instances</li>
</ul>
<pre><code></code></pre>
<h5><span class="bedrock-server">arrow</span></h5>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">CustomPotionEffects</span> -> <span class="bedrock-server">custom_potion_effects</span>, contents transformed as a list of mob effect instances</li>
</ul>
<pre><code></code></pre>
<h5>Players, Armor Stands, and mobs</h5>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">ActiveEffects</span> -> <span class="bedrock-server">active_effects</span>, contents transformed as a list of mob effect instances</li>
</ul>
<pre><code></code></pre>
<h4>Block Entities</h4>
<pre><code></code></pre>
<p><span class="bedrock-server">beacon</span></p>
<pre><code></code></pre>
<ul>
<li><span class="bedrock-server">Primary</span> -> <span class="bedrock-server">primary_effect</span>, also changed from number to string id</li>
<li><span class="bedrock-server">Secondary</span> -> <span class="bedrock-server">secondary_effect</span>, also changed from number to string id</li>
</ul>
<pre><code></code></pre>
<h3>Loot Tables</h3>
<pre><code></code></pre>
<ul>
<li>Added <span class="bedrock-server">sequence</span> loot function
<ul>
<li>Contains 1 field:
<ul>
<li><span class="bedrock-server">functions</span>: an array of sub-functions to run in sequence</li>
</ul>
</li>
<li>Can also be declared as an inline array without a type
<ul>
<li>This matches the existing behavior where loot function JSON files can be declared as an array of composite functions</li>
</ul>
</li>
</ul>
</li>
<li><span class="bedrock-server">all_of</span> predicates in loot tables can now be declared implicitly as an inline array without a type
<ul>
<li>This similarly matches the existing behavior where loot predicate JSON files can be declared as an array of sub-predicates</li>
</ul>
</li>
<li>Block or fluid state property matches in loot conditions no longer accept non-string values
<ul>
<li>Any number or boolean value in a property matcher must be quoted</li>
</ul>
</li>
</ul>
<pre><code></code></pre>
<h2>DATA Pack Version 18</h2>
<pre><code></code></pre>
<p>This data pack version removes the <span class="bedrock-server">execute if function</span> and <span class="bedrock-server">return run</span> functionality that existed for a time during the development of this version. Flaws with those commands (see bugs <a href="https://bugs.mojang.com/browse/MC-264595">MC-264595</a>, <a href="https://bugs.mojang.com/browse/MC-264699">MC-264699</a>, and <a href="https://bugs.mojang.com/browse/MC-264710">MC-264710</a>) require some substantial changes to fix, which we do not want to make close to a release.</p>
<pre><code></code></pre>
<p>These commands will instead be reintroduced early in the next snapshot series when we can take the time to iterate on and test them together with pack makers.</p>
<pre><code></code></pre>
<ul>
<li>Removed <span class="bedrock-server">execute if|unless function</span> command form</li>
<li>Removed <span class="bedrock-server">return run</span> command form</li>
<li>Numbers used as macro arguments are now always inserted without suffixes, regardless of numeric type</li>
<li>Added game rule <span class="bedrock-server">enderPearlsVanishOnDeath</span>, controlling whether thrown Ender Pearls vanish when the player that threw them dies (default <span class="bedrock-server">true</span>, which matches the existing behavior in previous versions)</li>
<li>Added damage type tag <span class="bedrock-server">always_kills_armor_stands</span> for damage types that should always fully kill an Armor Stand<code></code></li>
</ul>
<h2>Experimental Features</h2>
<pre><code></code></pre>
<h3>Villager Trade Rebalance</h3>
<pre><code></code></pre>
<p>The Experiments screen when creating a world now has an option to enable the Villager Trade Rebalance. When this option is selected, some Villager trades will change.</p>
<pre><code></code></pre>
<p>This experiment does not affect normal worlds. You can find more information about Feature Toggles <a href="https://www.minecraft.net/article/testing-new-minecraft-features/feature-toggles-java-edition">here</a>.</p>
<pre><code></code></pre>
<h4>Librarian Changes</h4>
<pre><code></code></pre>
<ul>
<li>Librarians from different biomes now sell different Enchanted Books</li>
<li>Each village biome has one special enchantment that is only available from Master Librarians with full XP</li>
<li>This means that players must visit all seven village biomes to get the full set of villager enchantments</li>
<li>There are two secret village biomes where villages do not generate
<ul>
<li>A player must build these villages to access their trades!</li>
</ul>
</li>
<li>Some enchantments have been removed from village trading and must be found in other ways</li>
</ul>
<pre><code></code></pre>
<h4>Cartographer Changes</h4>
<pre><code></code></pre>
<ul>
<li>Cartographers can now sell seven new Explorer Maps
<ul>
<li>Five new maps show the way to five different types of village</li>
<li>The other two new maps show the way to a Swamp Hut and a Jungle Temple</li>
</ul>
</li>
<li>Cartographers from different biomes now sell a different range of maps</li>
</ul>
<pre><code></code></pre>
<h4>Wandering Trader Changes</h4>
<pre><code></code></pre>
<ul>
<li>Wandering Traders now have lower prices and have a higher amount of each item in stock</li>
<li>Wandering Traders now sell Logs</li>
<li>Wandering Traders can now buy many items, instead of only selling</li>
</ul>
<pre><code></code></pre>
<h4>Armorer Changes</h4>
<pre><code></code></pre>
<ul>
<li>Armorer from different biomes now sell different Armor with different enchantments</li>
<li>Buying Diamond Armor now requires a small amount of Diamonds as well as Emeralds</li>
<li>Many other Armorer trades have been updated</li>
</ul>
<pre><code></code></pre>
<h4>Structure Loot</h4>
<pre><code></code></pre>
<p>Certain Enchanted Books now have a high chance of generating in some structures:</p>
<pre><code></code></pre>
<ul>
<li>Ancient Cities: Mending</li>
<li>Mineshafts: Efficiency (I to V)</li>
<li>Pillager Outposts: Quick Charge (I to III)</li>
<li>Desert Temples: Unbreaking (I to III)</li>
<li>Jungle Temples: Unbreaking (I to III)</li>
</ul>
<pre><code></code></pre>
<h2>Fixed Bugs In 1.20.2</h2>
<pre><code></code></pre>
<p>Around 200 bugs were fixed in this release. View the <a href="https://bugs.mojang.com/issues/?filter=27828">list on the issue tracker</a>.</p>
<pre><code></code><code></code></pre>
</div>
https://www.sickgaming.net/blog/2023/09/...2-is-here/