Friday, June 2, 2023 at 8:36 AM

Minecraft: Java Edition 1.20

What, is there something special happening today? Hold on, let me grab my calendar book from my chiseled bookshelf.

Oh, it's time for Trails & Tales! How could I forget? Time to equip your new brush and ride your camel off to new adventures!

New Features

  • All features and changes from the "Update 1.20" experimental pack are now part of the game
  • Added Archaeology
  • Added Sniffer mob, Torchflowers and Pitcher Plants
  • Added Camel mob
  • Added Smithing Template items and redesigned the Smithing Table
    • Added a new armor trimming system to visually customize your armor
    • Changed how Netherite equipment is crafted
  • Added the Cherry Grove biome and Cherry Wood Set
  • Added the Bamboo Wood Set
  • Added the Chiseled Bookshelf block
  • Added Hanging Signs
  • Improved customization options for Signs
  • Added the Calibrated Sculk Sensor block
  • Vibration resonance functionality has been added to Blocks of Amethyst
  • Added playable mob sounds with Mob Heads on Note Blocks
  • Added Piglin Mob Head
  • New music tracks added to Cherry Groves, Desert, Jungle, Badlands, and Flower Forest biomes
  • New Trails & Tales Advancements
  • Added support for Windows Aarch64/ARM64

Archaeology

  • Added craftable Brush item
  • Added Suspicious Sand and Suspicious Gravel
    • Suspicious Sand can be found in Desert Temples, Desert Wells and Warm Ocean Ruins
    • Suspicious Gravel can be found in Cold Ocean Ruins and Trail Ruins
    • These fragile blocks are hard to spot and easy to destroy, so be careful!
    • Brushing Suspicious Sand or Suspicious Gravel with a Brush will extract objects that were buried long ago
  • Added the Trail Ruins, a buried structure from a lost culture
    • Four types of Armor Trim Templates can be found here
    • Trail Ruins can be found in Taigas, Snowy Taigas, all Old Growth forest biomes and Jungles
    • A new music disc can be found by brushing suspicious blocks in this structure
      • When put in a Jukebox, "Relic" by Aaron Cherof is played
  • Added Pottery Sherds
    • Pottery Sherds have pictures on them
    • A total of 20 sherd have been distributed between the 5 Archaeology sites: Desert Wells, Desert Temples, Cold Ocean Ruins, Warm Ocean Ruins, and Trail Ruins
    • They cannot be crafted, and are only found by brushing Suspicious Sand or Suspicious Gravel

Decorated Pots

  • Crafting four Pottery Sherds together will create a Decorated Pot with a picture on each side
  • Brick items can be used instead of Pottery Sherds in the Decorated Pot recipe
    • The sides that were made from Brick items will not have pictures
  • Smash a Decorated Pot with any block-breaking tool to break it apart and get the Pottery Sherds back
    • Hitting the pot with bare hands, silk touch tools, or any other item will drop an intact pot instead
  • Crafted Decorated Pots with at least one pattern have a hover tooltip displaying the Sherd & Brick ingredients

Sniffer

  • The Sniffer is the mob vote winner of Minecraft Live 2022
  • Sniffers are passive, friendly mobs
  • Sniffers sniff the air and occasionally dig for seeds, which produces a Torchflower Seed or a Pitcher Pod item
  • Sniffers can only dig grass and dirt-like blocks
  • Sniffers can be tempted by, and bred with Torchflowers Seeds

Sniffer Egg

  • Can be found by brushing the Suspicious Sand of Warm Ocean Ruins
  • When two Sniffers breed they do not immediately spawn a Snifflet; instead, a Sniffer Egg is dropped
  • When placed in the world, the Sniffer Egg will hatch after some time
    • When placed on Moss, the Egg will hatch in approximately 10 minutes
    • On all other blocks, it will hatch in approximately 20 minutes

Torchflowers

  • The Sniffer can occasionally sniff up a Torchflowers seed, and it can be used to breed two Sniffers
  • The Torchflower seed can be planted on Farmland and grows into a Torchflower
  • The full-grown flower can be harvested and replanted
  • The Torchflower can be crafted into Orange Dye

Pitcher Plant

  • The Sniffer can occasionally sniff up a Pitcher Pod item
  • The Pitcher Pod, when planted on Farmland, grows into a Pitcher Crop
  • The Pitcher Crop has five growth stages
  • Once fully grown, the Pitcher Crop can be harvested, yielding a two-block-tall Pitcher Plant
  • The Pitcher Plant can be crafted into Cyan Dye

Camel

  • Camels can be equipped with a Saddle and ridden by two players
  • Camels spawn naturally when Desert Villages generate
  • Camels can be tempted by holding Cactus
  • Feed Cactus to Camels to breed them
  • Camels are tall
    • Most hostile mobs will not be able to reach you when you are on a Camel
    • They can walk over Fences and Walls
  • Camels randomly sit down
    • While sitting, it is difficult to convince them to move
  • Camels can either walk slowly or sprint quickly
  • They can also dash forward but will lose stamina for a while when doing so

Smithing

  • Smithing Tables have been redesigned into a workstation for physical equipment upgrades and modifications
  • Alongside slots for combining a piece of equipment and materials, there is now a required slot for an item type called Smithing Template
  • Smithing Templates define what type of upgrade you will be making to a piece of equipment
    • It specifies both what type of items you can upgrade, and which ingredients are valid to customize the upgrade
    • There are currently two categories of Smithing Templates: Armor Trim and Netherite Upgrade
  • Smithing Templates are consumed when used to upgrade an item in the Smithing Table
  • You can craft a copy of a Smithing Template in the Crafting Table with 7 diamonds + 1 block of material that the template is made out of + 1 smithing template, which will output 2 of the same Smithing Template

Netherite Equipment

  • Netherite equipment crafting now also requires a Netherite Upgrade Smithing Template
  • Netherite Upgrade Smithing Templates can be found randomly in all Bastion Remnant chests
    • Every Treasure Room Bastion Remnant will contain 2 Smithing Templates
  • This change was made for a variety of reasons:
    • Increase the time players utilize Diamond equipment before Netherite
    • Make Netherite equipment more significant achievement in the game's progression
    • Adapt Netherite more naturally into the new Smithing Table crafting system

Armor Trims

  • You can now visually customize your armor with a variety of unique trims at the Smithing Table
  • Armor trims are purely visual with no gameplay benefits
  • Armor trims can be applied to Helmets, Chestplates, Leggings and Boots
    • All trim patterns are visually the same on an armor's item icon, but the color will still change based on the trim material
    • To check which trim pattern a piece of armor has, you can hover over it in the inventory
  • Armor Trim Smithing Templates can be found all throughout the world, and each of the following structures contain their own unique Smithing Templates:
    • Trail Ruins: Wayfinder, Raiser, Shaper, and Host Armor Trims
    • Pillager Outpost: Sentry Armor Trim
    • Desert Pyramid: Dune Armor Trim
    • Shipwreck: Coast Armor Trim
    • Jungle Temple: Wild Armor Trim
    • Ocean Monument: Tide Armor Trim
    • Ancient City: Ward and Silence Armor Trims
    • Woodland Mansion: Vex Armor Trim
    • Nether Fortress: Rib Armor Trim
    • Bastion Remnant: Snout Armor Trim
    • Stronghold: Eye Armor Trim
    • End City: Spire Armor Trim
  • Smithing Templates are found in chests in their respective structure
    • Trail Ruins have no chests, Smithing Templates are instead found by brushing Suspicious Gravel
    • The Ocean Monument has no chests, Elder Guardians sometimes instead drop a Smithing Template upon death
  • Some Armor Trim Smithing Templates are rarer than others, so be on the lookout for them to impress your friends!
  • An armor trim has two properties: a pattern and a material
    • The pattern is defined by the Smithing Template used to apply the trim, and represents the visual pattern of the trim
    • The material is defined by which ingredient you used to apply the trim, and controls the color of the trim
  • The viable ingredients you can use to define the color of your armor trim are the following:
    • Iron, Copper, Gold, Lapis, Emerald, Diamond, Netherite, Redstone, Amethyst, Quartz

Cherry Groves

  • Added a new Cherry Grove biome, with pretty cherry blossom trees
    • The biome can be found in the mountains, in similar places as Meadows
  • Added a new Cherry wood set, with all the corresponding wooden things you can craft from it
  • Pink particles fall from beneath Cherry Leaves
  • Added a new Pink Petals block with lots of pink flowers on the ground
    • Each Pink Petal block can contain up to 4 petals
    • Using Bone Meal on it increases the number of petals
    • Placing a Pink Petal into an already placed block increases the number of petals
    • Drops the number of petals in the block when mined

Bamboo Wood Set

  • Added a new Bamboo wood set, with all the corresponding wooden things you can craft from it
  • Block of Bamboo can be crafted from 9 Bamboo and can be stripped like other wood logs
  • Bamboo Planks crafted from Block of Bamboo yield only 2 planks compared to 4 for wood logs
  • Added a new "Mosaic" plank variant that is unique to Bamboo called the Bamboo Mosaic
    • It can be crafted with 1x2 Bamboo Slabs in a vertical strip
    • You can craft Stair and Slab variants of Bamboo Mosaic
    • Bamboo Mosaic blocks cannot be used as a crafting ingredient where other wooden blocks are used, but they can be used as fuel
  • Added a unique Bamboo Raft and Bamboo Chest Raft which can be crafted like normal boats, but with Bamboo Planks
    • They function the same as ordinary boats, but have a unique look to them

Chiseled Bookshelf

  • A new, chiseled variation of the Bookshelf
  • Crafted with 6 planks and 3 wooden slabs
  • Can store Books, Book and Quills, Written Books, Enchanted Books, and Knowledge Books
    • Holds up to 6 books
    • These can be added or removed from any slot by targeting the specific slot
  • The Comparator signal strength corresponds to the number of the last book that was inserted or removed
    • The numbering of book slots starts from 1 at the top-left, and increments from left-to-right
  • Works with Hoppers

Hanging Signs

  • Hanging Signs are a more expensive version of normal Signs
    • Crafted with 2 chains and 6 stripped logs of your preferred wood type
    • Crafting results in 6 Hanging Signs
  • Can be hung up in the following ways:
    • Underneath a block that can provide support in the center, like a full block or a fence
    • Attached to the solid side of a block
    • Attached to the side or underneath another Hanging Sign
  • Unlike normal Signs, they cannot be placed directly on the ground without support from the side or above
    • However, Hanging Signs that have a horizontal bar will not pop when the supporting block is removed

Signs

The following changes have been made for both Signs and Hanging Signs.

  • Sign text can now be edited after being placed in the world
    • This can be done by interacting with the Sign
    • Signs with non-text chat components can not be edited
  • Both sides of the Sign can now have separate text and colors, allowing for further customization options
    • By default, a Sign will prompt you to input the front side's text when placed
    • To apply text to the back-side, you must walk to the other side and interact with that face to edit it
  • Signs can now also be waxed with Honeycomb, preventing any further edits to its text
  • Opening the sign edit screen in singleplayer no longer pauses the game

Calibrated Sculk Sensors

  • A new variant of Sculk Sensors that allows you to filter vibrations based on their frequency level
  • They are not found naturally and can only be crafted with 1 Sculk Sensor and 3 Amethyst Shards in the Crafting Table
  • One side of the Calibrated Sculk Sensor can receive a redstone signal as input
    • The strength of that redstone signal is the only vibration frequency the Sculk Sensor will listen to
  • They have a combined active and cooldown phase that lasts 20 game ticks
    • They output their redstone signal for the first 10 game ticks
  • They can detect vibrations up to 16 blocks away

Vibration Resonance

  • Blocks of Amethyst have a new behavior when placed adjacent to Sculk Sensors
    • If that Sculk Sensor receives a vibration, the Block of Amethyst will re-emit its frequency as a separate vibration at its location
  • This behavior is called Vibration Resonance, and allows players to move vibration frequencies across long distances without having to recreate the vibration naturally

Playable Mob Sounds

  • When placing a Mob Head on a Note Block, that Note Block will now play one of the ambient sounds of that mob when played by a player or powered by Redstone
  • Mob Heads can be placed on top of Note Blocks without sneaking

Piglin Mob Head

  • Piglins will now drop their heads when killed by a charged Creeper
  • Placing the Piglin head on a Note Block will play one of the Piglin's ambient sounds
  • The Piglin head will flap its ears when powered by Redstone, or when worn by a player while walking

New Music

  • Added the following new music tracks by Aaron Cherof to Cherry Groves, Desert, Jungle, Badlands, and Flower Forest biomes:
    • A Familiar Room
    • Bromeliad
    • Crescent Dunes
    • Echo in the Wind
  • Added a new music disc with the track "Relic" by Aaron Cherof, found in Trail Ruins

Windows Aarch64/ARM64 support

  • Minecraft Java Edition is now fully supported on Windows devices using an Aarch64/ARM64 architecture, such as the Windows Surface Pro X

Advancements

New Husbandry Advancements

  • Smells Interesting : Obtain a Sniffer Egg
  • Little Sniffs : Feed a Snifflet (requires Smells interesting)
  • Planting the Past : Plant any Sniffer seed (requires Little sniffs)

New Adventure Advancements

  • Respecting the Remnants : Brush a Suspicious block to obtain a Pottery Sherd
  • Careful Restoration : Make a Decorated Pot out of 4 Pottery Sherds (requires Respecting the Remnants)
  • Crafting a New Look : Craft a trimmed armor at a Smithing Table
  • Smithing with Style : Apply these Trim Smithing Templates at least once: Spire, Snout, Rib, Ward, Silence, Vex, Tide, Wayfinder (requires Crafting a New Look)
  • The Power of Books : Read the power signal of a Chiseled Bookshelf using a Comparator

Changes

  • Changes to Sculk Sensor block behaviors
  • Vibration frequencies of many actions in the game have been tweaked
  • Colored Wool, Carpets and Beds can now be dyed to any other color
  • Replaceable blocks no longer block the connection between enchanting tables and bookshelves
  • Wither effect particle and Potion of Slow Falling color have been adjusted to make them more distinguishable
  • Updated step sounds
  • Updated Advancements
  • The main menu background is now a Trails & Tales panorama
  • Updated the Minecraft Java Edition logo
  • Updated the Minecraft Realms logo
  • The game's application icon has been updated
    • This will be a Grass Block in release versions, and a Dirt Block in snapshot versions
  • GUI can be scaled on the Video Settings screen by holding Ctrl and scrolling the mouse wheel
  • Updated the credits
    • Added the ability to scroll upwards by pressing the up arrow key
  • The game will now display a message box on startup if user enabled text-to-speech functionality, but it is not available
  • Removed Herobrine

Sculk Changes

  • If a vibration is scheduled to be received by a Sculk Sensor or Sculk Shrieker, they will stay queued until all adjacent chunks are loaded and ticking
    • Prevents vibration resonance setups from breaking when unloading their chunks from a distance
  • Waterlogging a Sculk Shrieker will now silence their shriek sounds
  • Sculk Sensors' default redstone output has been modified to be more reliable for distance calculations
  • Sculk Sensors and Calibrated Sculk Sensors now strongly power the block they are placed on
  • Both types of Sculk Sensors now stay in their Cooldown phase for 10 ticks, with other phase timings being adjusted to compensate

Sculk Sensor Phases

  • Sculk Sensors and Calibrated Sculk Sensors have three phases: Inactive, Active and Cooldown
  • The default phase is Inactive
    • This phase lasts indefinitely until the block receives a vibration
    • During this phase, the block is able to listen to nearby vibrations until one has been scheduled
  • When a scheduled vibration is received, the block switches to the Active phase
    • This phase lasts 30 game ticks for Sculk Sensors, and 10 game ticks for Calibrated Sculk Sensors
    • During this phase, the block stops listening to nearby vibrations, wiggles its tendrils and emits a redstone signal and light
  • After the Active phase has finished, the block switches to a Cooldown phase
    • This phase lasts for 10 game ticks
    • During this phase, the block keeps wiggling its tendrils, but no longer emits a redstone signal nor light
    • Finally, once this phase is finished, the block will switch back to the Inactive phase
  • Previously, some of these phases had different timing values:
    • Active: 40 game ticks for Sculk Sensors and 20 game ticks for Calibrated Sculk Sensors
    • Cooldown: 1 game tick for both types of Sculk Sensors
  • These phase timings were tweaked so that it is less common for activated contraptions to recursively activate the Sculk Sensor that powered them

Vibration Frequencies

In preparation for the Calibrated Sculk Sensor, vibration frequencies have been greatly simplified to prevent unwanted interference. The following are category descriptions for each frequency and the expected events that they correspond to:

  1. Movement in any medium (land, water and air)
  2. Landing on any surface (land or water)
  3. Item interactions
  4. Gliding with an elytra or unique mob actions (Ravager roar, Wolf shaking, etc)
  5. Dismounting a mob or equipping gear
  6. Mounting a mob or interacting with a mob
  7. Mobs and players getting damaged
  8. Consuming items (drinking and eating)
  9. Blocks 'deactivating' (door close, chest close, button unpress, etc)
  10. Blocks 'activating' (door open, chest open, button press, etc)
  11. Blocks changing (cauldron water level rising, adding food to campfire, etc.)
  12. Blocks being destroyed
  13. Blocks being placed
  14. Mobs and players teleporting or spawning
  15. Mobs and players dying or an explosion

Step Sounds

  • Walking on a block will now always play a step sound
    • It was previously not the case if you were walking along the edge of a block with air or fluid besides it
  • Walking on the ocean floor will produce a step sound for the block you are walking on at a lower volume and pitch
  • When walking on Carpets, Snow, Nether Sprouts, Warped Roots, and Crimson Roots, a combination of step sounds will be played
    • The top-most block you are walking on is played as normal
    • The block underneath is played at a lower volume and pitch

Advancements

  • Breeding Camels and Sniffers now count for "The Parrots and the Bats" and are now required for "Two by Two"
  • Hanging Signs now count for "Glow and Behold"
  • Visiting a Cherry Grove is now required for "Adventuring Time"

Technical Changes

  • Improved performance of the light engine
  • The data pack version is now 15, accounting for sign data format, item display orientation and advancement changes
  • Removed update_1_20 feature flag and built-in datapack - features are no longer experimental
  • Added a return command
  • Tweaked display entity interpolation
  • Added a capped rule structure processor that limits the number of replaced blocks for a structure piece to a configured maximum
  • Configuring block entity fields in a rule processor rule is now delegated to a referenced block_entity_modifier instead of the previously fixed output_nbt configuration
  • Random sequences for loot tables are now deterministic
  • Added a reference loot table function
  • Loot table condition/predicate changes:
    • Renamed alternative to any_of
    • Added all_of
  • Advancement trigger changes:
    • Added recipe_crafted
    • Changed format of placed_block, item_used_on_block and allay_drop_item_on_block triggers
  • Ingredients in array form are now also allowed in smithing_trim and smithing_transform recipes on fields template, base and addition
    • Those fields also allow empty arrays, which signalize that slot needs to be left empty
  • Added new damage types: outside_border and generic_kill
  • Game events have changed vibration frequency and some have been removed
  • The resource pack version is now 15, accounting for the font and credits update
    • Updated the sprite layout of minecraft.png
    • Removed the overriding minecraft.png from the Programmer Art resource pack
    • Updated the sprite layout of invite_icon.png
    • legacy_unicode glyph provider has been removed
    • Bitmaps used by uniform font have been removed
    • uniform font has been updated to use Unifont 15.0.06
      • That changes shape of multiple characters, while also adding support for new ones
      • Combining characters no longer include circle overlayed over them (so M◌̆ now renders as M ̆)
    • Added second level of organization of entries in credits.json on top of titles, called disciplines
  • Font textures are included in debug texture dump (F3 + S)
  • Added new font glyph providers: unihex and reference, removed legacy_unicode
  • Added support for Quick Play
  • Removed the server & port commandline arguments as their functionality has been replaced by Quick Play
  • Updates to telemetry
  • Changed encoding of server.properties to UTF-8
  • Added validation for symbolic links in world saves

Light Engine

The light engine is responsible for calculating the brightness of each block in the world. Light is calculated during world generation as well as updated when a block is changed in the world. Behavior of the light engine has not been changed.

  • The performance of calculating light has been improved
    • Reduces one source of lag spikes when crossing chunk borders
    • Improves FPS in situations when a lot of light updates occur
    • Improves how quickly chunks can be generated

Commands

return

The return command can be used to control execution flow inside functions and change their return value. Effects:

  • Remaining separate top-level commands in the currently executing function (if any) are skipped
  • The result value of the function command that triggered the function is changed from the number of commands executed to value
  • The result value of the return command is also value

Syntax:

return <value>

Parameters:

  • value: An integer return value

data

  • string data sources now accept negative boundaries, which are interpreted as index counted from the end of the string

Display Entity

Interpolation Changes

  • Previous values are always discarded if interpolation_duration is 0
  • Made sure that render properties are applied at the same time (so block_state is applied at the same time as transformation, i.e. at the next tick after receiving an update)
  • Display entities are not rendered until their initial data is received. That means display entities might not be shown on the first tick.
  • Note: due to how the game handles updates, changes to entities made after summoning might be delivered to clients within a later tick

Rendering Changes

  • item_display items have been rotated 180 degrees around the Y axis to better match the transformation that is applied when rendering items on an Armor Stand head and in Item Frames
    • For reference, the order of transformations applied to model (starting from innermost) is item_transform, rotate Y 180, transformation field, entity orientation (billboard option + Rotation field + Pos field)

Structure post-processors

Capped post-processor

  • A capped post-processor has been added which can limit how many blocks a delegated post-processor randomly transform in a structure
  • This can be used to configure a structure piece to have an exact amount of specific blocks, instead of using random distribution
  • The capped post-processor has following required parameters:
    • delegate A post-processor which performs the actual block transformation
    • limit Maximum amount of blocks that the delegated post-processor can transform
      • The blocks inside a structure are all randomly passed to the delegated post-processor until it has transformed the limited amount
      • Either constant or random number generator sampled during post-processing

Rule post-processor block entity configuration

  • Previously a rule could specify an optional fixed output_nbt which would be added to the processed output block entity
  • This field has now been changed to reference a block_entity_modifier
  • Existing block_entity_modifier's are:
    • passthrough Retains existing fields on the block entity
      • This is the default if no block_entity_modifier is specified
    • append_static Similar to previous output_nbt this provides fixed fields to add to the block entity
      • A minor change is that this modifier appends configured fields to the processed block instead of replacing existing fields
    • clear Removes any existing fields on the block entity
    • append_loot Appends a loot table and seed to the block entity through required parameter:
      • loot_table Referenced loot table to add to block entity as LootTable field
      • Field LootTableSeed is also added to the block entity using random seeded by block position

Loot Tables

Random Sequences

The game now uses named random sequences to deterministically produce loot for loot tables. Each random sequence produces a unique sequence based on the world seed and sequence ID, which means a loot table will produce the same results when ran with the same parameters in the same world.

The ID of the random sequence to use for a loot table is specified in a new optional field called random_sequence. If no sequence name is given, loot is drawn using a non-deterministic random source.

reference

New function reference allows functions to call sub-functions (similar to reference condition).

Fields:

  • name - location of function to call

any_of/all_of

  • Loot condition alternative has been renamed to any_of
  • Added new loot condition all_of that passes only when all sub-conditions pass
    • Has the same syntax as any_of

Advancements

New Triggers

recipe_crafted

  • Triggered when crafting a recipe
  • Conditions:
    • recipe_id - the resource location of the recipe crafted
    • ingredients - an array of predicates for the item stacks used in the recipe
      • A single item stack can only be used to fulfill one predicate
      • Each predicate needs to be fulfilled to trigger the advancement. This allows for separation between recipes that have same identifier but use different ingredients.
      • This field is optional. When not provided, or left empty, only the recipe_id will dictate the success of the trigger

Changed Triggers

  • All fields in placed_block, item_used_on_block and allay_drop_item_on_block have been collapsed into a single location field
  • The new location is similar to the player field - it is a list of loot conditions/predicates
  • All conditions in this list must match for a trigger to run
  • Conditions are evaluated in a new loot context called advancement_location. It has access to:
    • Player as this entity
    • Position of the placed block
    • Block state of the placed/interacted block
    • Held/used item as "tool"
  • Migration guide:
    • Contents of old location field should be migrated to location_check condition
    • Contents of item field should be migrated to match_tool condition
    • Contents of block + state fields should be migrated to block_state_property condition

Example (from make_a_sign_glow advancement):

Before:

{
    "conditions": {
        "item": {
            "items": [
                "minecraft:glow_ink_sac"
            ]
        },
        "location": {
            "block": {
                "tag": "minecraft:all_signs"
            }
        }
    },
    "trigger": "minecraft:item_used_on_block"
}

After:

{
    "conditions": {
        "location": [
            {
                "condition": "minecraft:match_tool",
                "predicate": {
                    "items": [
                        "minecraft:glow_ink_sac"
                    ]
                }
            },
            {
                "condition": "minecraft:location_check",
                "predicate": {
                    "block": {
                        "tag": "minecraft:all_signs"
                    }
                }
            }
        ]
    },
    "trigger": "minecraft:item_used_on_block"
}

Damage Types

  • Players outside the world border are now hurt by the damage type outside_border instead of in_wall
  • Forcibly removing an entity using the /kill command now uses damage type generic_kill instead of out_of_world

Tags

Block Tags

  • Removed replaceable_plants since it was only used as a subset of the blocks for the tag above, and not as universally
  • Added replaceable_by_trees to better express blocks that are replaced when the tree grows through them
  • Added replaceable with all the blocks that can be replaced
    • This tag only represents the internal state of the game, changing this tag does not make blocks replaceable
  • Added sword_efficient to represent blocks that are broken 50% faster by a sword than normal
  • Added maintains_farmland to represent which blocks will not cause farmland to be converted into dirt due to drying out when placed on top of it
  • Added combination_step_sound_blocks that controls which blocks produce a combination of step sounds
  • Added enchantment_power_provider to control which blocks increase the level of an Enchantment Table
  • Added enchantment_power_transmitter to control which blocks are allowed between an Enchantment Table and a Bookshelf (or other Power Transmitter)
  • Added vibration_resonators to control which blocks transmit vibration signals when placed next to Sculk Sensors
  • Added trail_ruins_replaceable for blocks that Trail Ruins can replace when generating
  • Added sniffer_diggable_block to control which blocks Sniffers can dig
  • Added sniffer_egg_hatch_boost to that control on which blocks Sniffer Eggs hatch twice as fast
  • Added ceiling_hanging_signs
  • Added wall_hanging_signs
  • Added all_hanging_signs
  • Added stone_buttons block tag
  • Added cherry_logs block tag
  • Added bamboo_blocks block tag

Item Tags

  • Added villager_plantable_seeds to represent which kind of seeds Villagers can farm
  • Added noteblock_top_instruments to control which blocks can be placed on top of Note Blocks without sneaking
  • Added breaks_decorated_pots to control which tools can break Decorated Pots
  • Added decorated_pot_ingredients
  • Added decorated_pot_sherds
  • Added sniffer_food
  • Added trimmable_armor
  • Added trim_materials
  • Added trim_templates
  • Added stone_buttons item tag
  • Added cherry_logs item tag
  • Added bamboo_blocks item tag

Biome Tags

  • Added has_structure/trail_ruins

Game Events

  • Removed piston_contract game event in favor of block_deactivate
  • Removed piston_extend and dispense_fail game events in favor of block_activate
  • Many game events have new vibration frequencies:
    • 1: step, swim, flap
    • 2: projectile_land, hit_ground, splash
    • 3: item_interact_finish, projectile_shoot, instrument_play
    • 4: entity_roar, entity_shake, elytra_glide
    • 5: entity_dismount, equip
    • 6: entity_mount, entity_interact, shear
    • 7: entity_damage
    • 8: drink, eat
    • 9: container_close, block_close, block_deactivate, block_detach
    • 10: container_open, block_open, block_activate, block_attach, prime_fuse, note_block_play
    • 11: block_change
    • 12: block_destroy, fluid_pickup
    • 13: block_place, fluid_place
    • 14: entity_place, lightning_strike, teleport
    • 15: entity_die, explode

Fonts

New unihex Glyph Provider

  • New glyph provider for reading Unifont HEX files
    • HEX format describes font glyphs using a bitmap
      • The height of every glyph is 16 pixels
      • The width of glyph can be 8, 16, 24 or 32 pixels
    • Every line is made of two hexadecimal numbers separated by :
    • The first value describes a codepoint - it must have 4, 5 or 6 hex digits
    • The second value describes the glyph as a stream of bits, line by line
  • When rendering, empty columns on left and right side of glyphs are removed
    • Custom glyph widths can be set with size_overrides
  • This provider requires two fields:
    • hex_file - path to ZIP archive containing one or more *.hex files (files in archive with different extensions are ignored)
    • size_overrides - list of codepoint ranges that should have width different from auto-detected (based on empty space in glyph). Fields:
      • from, to - start and end of codepoint range (inclusive)
      • left, right - integers describing the position of the left-most and right-most columns of the glyph in range
        • Any bits in columns outside of this range will be discarded

New reference Glyph Provider

  • New glyph provider that can be used to include providers from other fonts
    • Providers are guaranteed to be loaded only once, no matter how many times they are included
  • Provider has one field id, that describes another font to be included in the currently loaded one
    • Inclusion is performed after all fonts are loaded, so it will include all providers for a given font defined in all datapacks

Removed legacy_unicode Glyph Provider

  • The legacy_unicode glyph provider has been removed
  • This functionality has been replaced by the unihex provider

Quick Play

  • Added support for four new command line arguments that allow the game to be launched directly into a world
  • quickPlayPath takes a specified path for logging (relative to the run directory)
    • If a path is provided the following will be logged upon joining a world:
      • type: is either singleplayer, multiplayer, or realms
      • identifier: represents the world you want to join
        • For singleplayer, the folder name of the world
        • For multiplayer, the IP address of the server
        • For realms, the Realms ID
      • port: represents the server port and is only logged for multiplayer
      • name: The name of the world
      • gamemode: The gamemode of the world
      • lastPlayedTime: The time you joined the world
    • Example:
      • --quickPlayPath "quickPlay/log.json" will resolve into .minecraft/quickPlay/log.json
  • quickPlaySingleplayer, quickPlayMultiplayer and quickPlayRealms all take their respective identifier
    • If one of these arguments is provided, the game will try to launch directly into the given world
    • Examples:
      • --quickPlaySingleplayer "New World"
      • --quickPlayMultiplayer "localhost:25565"
      • --quickPlayRealms "1234"

Telemetry

All Events

  • Added new property: launcher_name
    • This is set based on the minecraft.launcher.brand system property
    • This will help us troubleshoot game launch related bugs more effectively, as we will be able to see whether the issue originated in the Minecraft launcher or a third-party program

Updated Required Events

  • world_loaded
    • Added new property: realms_map_content
      • When loading into a Realms Map Content world (Minigame), the world_loaded event will receive the name of that map
      • This is to help us understand how Java Realms players interact with Java Realms adventure or minimap content

New Optional Events

  • advancement_made
    • This event is triggered when a player completes an advancement, and allows us to see the advancement ID and the time when the advancement was completed
    • This helps us as a studio understand player progress and limits, which informs our game design
  • game_load_times
    • This event is triggered when the game client is loaded
    • Includes the time it took for the client to load
    • This is so that we can work on improving and reducing the time it takes to load the game client

server.properties

  • File is now read in UTF-8 initially, with previous encoding (ISO 8859-1/Latin 1) as a fallback
  • File is now written with UTF-8 encoding

To improve safety, the game will now detect symbolic links used inside world directory. For a detailed explanation, check our help article.

  • If the target of a symbolic link is not on the user-configured allow-list, the game will not proceed with loading the world
    • Note: the world directory itself can still be linked
  • The list of allowed symbolic link targets is stored in file allowed_symlinks.txt in the client or server top directory
  • The file consists of entries (one per line) with following formats allowed:
    • Lines starting with # are comments and are ignored
    • [type]pattern, where type can be glob, regex or prefix
      • prefix matches start of path with given pattern (so for /test paths /test, /test/ and /test/foo.txt would match)
      • regex matches regular expression against whole path
      • glob uses OS-specific path matching mechanism (for example *.txt would usually match files with txt extension)
      • Note: paths will use OS-specific separators
    • pattern, which uses default prefix type

Fixed bugs in 1.20

Around 250 bugs were fixed in this release. View the list on the issue tracker.