Minecraft’s highly anticipated 1.20 update is finally here, bringing tons of new content and features for players to enjoy. Here’s everything added in the game’s major Trails & Tales patch.
Since its announcement during Minecraft Live 2022, players have been constantly teased with new features from highly anticipated mobs to potentially game-changing implementations like archeology.
Now, as of June 7, 2023, the Trails & Tales Minecraft update is finally upon us, allowing all players to step out of the snapshot and into the game fully. So, here’s everything added to the Trails & Tales Minecraft update detailed by its patch notes.
Minecraft Trails & Tales update patch notes
New Features
Archaeology
- Added a 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 sherds 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
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
- Updated the seed picker with a Cherry Grove biome option
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 1×2 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
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
Sign Improvements
- 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
- It is no longer possible to use Ink Sac, Glow Ink Sac, or Dyes if the Sign text is empty (MCPE-133778)
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 Torchflower 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
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
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
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
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
Chiseled Bookshelf
- A new, chiseled variation of the Bookshelf
- Crafted with 6 Planks and 3 Wooden Slabs
- Can store Books, Book and Quills, and Enchanted Books
- Holds up to 6 Books
- Keeps the stories and lore of your world safe
- Books can be removed and added to specific slots on the Chiseled Bookshelf
- Comparators can detect the last book placed/removed
- Perfect for hiding secrets in your spooky library
- Works with Hoppers
Shield Customization
- A top Vanilla Parity feature request! A Shield can now be combined with a Banner to apply its pattern on it
- The banner is consumed on use
- A Shield can be combined with a Banner only if no pattern was previously applied
New Music
- Added the following new music tracks by Aaron Cherof to Cherry Groves, Desert, Jungle, Mesa, and Flower Forest biomes:
- A Familiar Room
- Bromeliad
- Crescent Dunes
- Echo in the Wind
- Added a new music disc which can be acquired by brushing suspicious blocks in Trail Ruins. When put in a Jukebox, Relic by Aaron Cherof is played
Calibrated Sculk Sensors
- A new variant of Sculk Sensors which 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
Sculk Sensor Phases
- Sculk Sensors and Calibrated Sculk Sensors now 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, these phases had different timings:
- The Active phase lasted 40 game ticks for Sculk Sensors and 20 game ticks for Calibrated Sculk Sensors
- There was no Cooldown phase
- These phase timings were tweaked so that it is less common for activated contraptions to recursively activate the Sculk Sensor that powered them
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 behaviour is called Vibration Resonance, and allows players to move vibration frequencies across long distances without having to recreate the vibration naturally
Vibration Frequencies
- With the addition of Calibrated Sculk Sensors, 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:
- Movement in any medium (land, liquid or air)
- Landing on any surface (land or liquid)
- Item interactions
- Gliding with an Elytra or unique mob actions (Ravager roaring, Wolf shaking, etc.)
- Equipping gear
- Interacting with a mob
- Mobs and players getting damaged
- Consuming items (drinking and eating)
- Blocks ‘deactivating’ (Door closing, Chest closing, Button unpressing, etc.)
- Blocks ‘activating’ (Door opening, Chest opening, Button being pressed, etc.)
- Blocks changing (Cauldron water level rising, adding food to a Campfire, etc.)
- Blocks being destroyed
- Blocks being placed
- Mobs and players spawning
- Mobs and players dying or an explosion
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
Subscribe to our newsletter for the latest updates on Esports, Gaming and more.
- 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 Achievements
- Smithing with Style – Apply these smithing templates at least once: Spire, Snout, Rib, Ward, Silence, Vex, Tide, Wayfinder
- Planting the Past – Plant any Sniffer seed
- Careful Restoration – Make a Decorated Pot out of 4 Pottery Sherds
Known Issues
- Boats that have been placed before today’s update may not function correctly until they have been broken and placed again, and any mobs inside boats may be ejected when loading your world for the first time. We hope to have this issue resolved soon, but you may wish to keep a backup copy of your world just in case – thanks for your patience!
Fixes and Changes
General
- Splitscreen players are no longer disconnected when one leaves (MCPE-168695)
- iOS now requests Local Network access in order to find games on the local network
- Added a progress handler when loading into a world that will wait up to a total of 15 seconds for the primary player’s appearance to load
- Improved the time it takes to start up and load into the start screen
- Fixed an issue where a locally hosted dedicated server was not found by clients on the same machine
Gameplay
- Flying is no longer disabled when flying under Stairs (MCPE-168999)
- Fixed fall damage accumulating when the player jumped on a roofed Soul Sand Bubble Column
- Players no longer take fall damage when falling through water at high speeds (MCPE-152485)
- After choosing the Main Menu option on the death screen, the player hitbox is now the correct size when returning to that world (MCPE-167045)
- Distinct green particles are now emitted by the player under effect of Hero of the Village status effect
Mobs
- Ghasts now shoot fireballs out of their mouth instead of at eye level (MCPE-35202)
- Boots and Leggings no longer cause z-fighting when worn by humanoid mobs and Armor Stands
- Mobs are now correctly positioned above the surface of Bamboo Rafts when riding them
- Bees no longer make the player eating sound when eating (MCPE-169567)
Sculk Blocks
- Sculk Sensors now power the block below them when active
- Waterlogging a Sculk Shrieker will now silence its shriek sounds (MCPE-169563)
- The sounds emitted by players and mobs stepping, falling, jumping, or landing on top of Sculk Sensors are now affected by the “Players” sound slider
- Any item use, like using a Brush or Spyglass or eating an Apple now send item interact events that cause vibrations picked up by Sculk Sensors and Wardens
Blocks
- Wooden Logs generated in Woodland Mansions now have the correct facing (MCPE-168387)
- Removed redundant ‘lava_cauldron’ block that could be placed using commands (MCPE-39974)
- Sugar Cane and Bamboo can now be placed on Moss Block
- Conduit block now respects the lighting conditions when held in-hand or dropped
- Top and bottom Door textures now rotate correctly when opened and closed for worlds versioned from 1.20 onward (MCPE-152926)
- Sugar Cane no longer generates an air pocket when generated underwater (MCPE-161096)
- Fixed an issue where a Piston could become invisible in rare cases
- Woodland Mansion’s entrance now uses Cobblestone Slabs (MCPE-169038)
- Iron Bars and Glass Panes now can connect to Pistons (MCPE-64745)
- Dead Bushes can now be placed on Grass Blocks and Moss Blocks (MCPE-125931)
- The map color for Black Terracotta now matches Java Edition (MCPE-166791)
- Players no longer fall through Farmland Blocks after jumping on them
- Players no longer fall through Mud Blocks or Farmland Blocks if they are standing on the block as it becomes a complete block (MCPE-164677)
- Fixed an issue where placing blocks while sneaking on an interactable block was not working as intended with client authoritative movement (MCPE-168280)
- Fixed an issue where an Armor Stand’s pose would not change when right-clicked while the player had sneak held and flying (MCPE-168548)
- Weighted Pressure Plates now update their signal strength immediately when multiple items are placed on top (MCPE-156773)
Items
- Fixed a bug where item in Item Frames could be too small in some world templates (MCPE-163399)
- Broken and unbroken Elytra now render in-hand, in the world, and in Item Frames with the correct icon (MCPE-19700)
Realms
- Changed the text font of the placeholder text in the New Post menu
- Changed the text from “A 10 Player Realm” to “10 Players” in the card for 10 Player Realm in the Settings -> Subscription Tab
- Realms now appear immediately on the list in the Friends tab after entering an invite code
- Fixes an issue that prevented a Realm from being reset
- Changed the Realms purple gradient background to be darker
- Fixed an issue where a Realm would generate structures that local worlds would not
- Added a focus indicator to FAQ sections when using keyboard and mouse
- Hid the ‘Download World’ button when there is no backup available
- Fixed a bug where the Manage Subscriptions list would not populate when navigated to from a Realm’s ‘Manage Realm’ page
Accessibility
- Added new “Chat Message Duration” accessibility setting to change how long chat messages remain on screen (3 seconds by default)
- Renamed “Notification Duration” to “Toast Notification Duration” and fixed an issue were the setting had no affect on how long toasts remained on display
- The four Creative Inventory tabs now have their names read out by text-to-speech
- Screen reader now describes function of “Delete World” button in the Storage menu
- Tweaked the contrast of the text inside of header for list of worlds in the Storage Settings menu
- Potions, Tipped Arrows, and mob effects have had their colors adjusted to make them more distinguishable from each other (MCPE-168357)
User Interface
- Added new Trails & Tales splash screen text and loading screen tips
- Added new Trails & Tales main menu background
- View now rotates clockwise and is tilted down unless a global resource pack replaces the cubemap background
- Loading animation for adding friends is now the correct size (MCPE-159261)
- The block type icon now appears in the Command Block UI screen (MCPE-159970)
- The game no longer shows a retry cloud sync prompt when encountering an out of space error (MCPE-162455)
- Screen UI now always has a focus in control when using a controller
- Doubled the resolution of world thumbnail images
- Changed the world tag to no longer display “-experimental” on worlds that only use the Holiday Creator Features experiment
- Button sounds will no longer sometimes occur when clicking a disabled button (MCPE-141124)
- Added exclamation marks to certain splash texts that were missing to match Java Edition (MCPE-165962)
- Fixed capitalization in title of Behavior Pack message modal (MCPE-156331)
- Fixed a bug where respawning in VR sometimes softlocked players on the death screen
- Text shadowboxes now have the correct opacity on interactable block screens
- Marketplace and Dressing Room cycle buttons now show navigation chevron when using a controller and controller hints are disabled (MCPE-147711)
- Fixed that the multiplayer toggle in the Create New World screen sometimes wasn’t greyed out even though the setting would have no effect
- Fixed a graphical issue where a gamepad icon would display over another screen
Touch Controls
- Fixed issues with keyboard navigation on some menu screens on iOS and Android
Graphical
- Fixed a crash when enabling ray tracing in ray tracing compatible content that was loaded into with ray tracing turned off
- Fixed an issue in RTX where underwater light shafts from the moon would originate from the opposite angle of the moon sprite (MCPE-118898)
Technical Updates
Updated Add-On Template Packs
- Updated Add-On templates for 1.20 with new resources, behaviors, and documentation are available to download at aka.ms/MCAddonPacks
General
- Fixed “get_equipped_item_name” Molang query not being able to return the old name of some flattened items, eg. red_wool, to wool
- Introduced new entity filters “all_slots_empty” and “any_slot_empty” to allow searching for empty item slots in a designated equipment location (MCPE-153909)
- The minecraft:friction component is no longer ignored when calculating ground friction
- Added spawn_item_event event to minecraft:spawn_entity component. This event is called when an item is spawned
- Attribute “speed_multiplier” in the “minecraft:boostable” component is now being parsed correctly from json file. Old behavior is maintained for “format_version” lower than 1.20 with 1.35 value rather than what the json file specifies (MCPE-164424)
- Fixed incorrect content warnings for recipes that used the same blocks but with different data (MCPE-168717)
- Fixed custom textures that override vanilla blocks with aux metadata as a list of textures
Dedicated Server
- Note for Linux users: Ubuntu 18.04 LTS (Bionic Beaver) will reach End of Standard Support in 2023. Accordingly, the Linux Minecraft Dedicated Server will also raise its minimum target Ubuntu version to 20.04 LTS (Focal Fossa) in a later R20 update (exact release to be determined). Minecraft server operators using Ubuntu are encouraged to prepare for this transition by updating their deployments to 20.04 LTS as soon as possible.
- Content logs now show in dedicated server console window with a configurable log level using these new server properties:
- content-log-level – Sets the minimum level for content logs to output. Allowed values: “verbose”, “info”, “warning”, “error”. Default: info
- Note: This log level also affects content logs written to disk when using content-log-file-enabled=true
- content-log-console-output-enabled – Enables or disables content log output to the console window. Default: info
- content-log-level – Sets the minimum level for content logs to output. Allowed values: “verbose”, “info”, “warning”, “error”. Default: info
Commands
- Has item command selector now correctly detects whether or not an actor has a filled Map or Firework Star in their inventory
- The “inputpermission” command now has a description displayed in the command dialogue preview
- When typing a slash command, auto-complete no longer suggests block-states that are already part of the typed command (MCPE-168055)
- Improved performance when preparing commands, most noticeable when opening the command window for the first time in a world, but also when loading Command Blocks for old command versions
- “carpet” block is now flattened into unique variants of 16 colors, namely “white_carpet”, “orange_carpet”, “magenta_carpet”, “light_blue_carpet”, “yellow_carpet”, “lime_carpet”, “pink_carpet”, “gray_carpet”, “light_gray_carpet”, “cyan_carpet”, “purple_carpet”, “blue_carpet”, “brown_carpet”, “green_carpet”, “red_carpet”, “black_carpet”
- Commands will still work with “carpet”, but only new carpet name will be suggested in the command prompt
- “coral” was split into unique instances, namely “tube_coral”, “brain_coral”, “bubble_coral”, “fire_coral”, “horn_coral”, “dead_tube_coral”, “dead_brain_coral”, “dead_bubble_coral”, “dead_fire_coral” and “dead_horn_coral”
- Commands will still work with “coral”, but “coral” won’t be suggested in the command prompt, rather the new names will
- Experience Orbs now merge when spawned with the summon command (MCPE-167247)
Entities
- Custom entities with internal-only components or AI goals will fail to load in game
- Custom entities are restricted to overriding Vanilla entities released before 1.20. Invalid entities used in the “identifier” or “runtime_identifier” field will result in content errors
Items
- Custom items using JSON formats 1.16.100 and formats past 1.17.0 can be loaded without the Holiday Creator Feature toggle if there are no Holiday components used
- Custom items with ‘minecraft:record’ now show the correct sound description in hover text and on playing in a Jukebox
- Custom items with ‘minecraft:durability’ and ‘minecraft:repairable’ can be combined to repair them without requiring a custom item entry
- Items with the Entity Placer item component will now successfully create the actor on air blocks if the “dispense_on” field is empty
- Items with the Entity Placer item component can now be used on a Mob Spawner to change the Spawner’s actor spawn type. The item must have a format version of at least 1.19.80
- Removed the non-functional ‘on_repaired’ parameter from the ‘minecraft:repairable’ item component
- Released the “minecraft:display_name” item component out of experimental in json formats 1.20.0 and higher
- Released the “minecraft:durability” item component out of experimental in json formats 1.20.0 and higher
- Released the “minecraft:fuel” item component out of experimental in json formats 1.20.0 and higher
- Released the “minecraft:entity_placer” item component out of experimental in json formats 1.20.0 and higher
- Released the “minecraft:icon” item component out of experimental in json formats 1.20.0 and higher
Add-Ons
- Fixed an issue that prevented custom entity spawn eggs from being supported in trade tables (MCPE-170184)
Molang
- Fixed a crash affecting some Marketplace packs preventing them from loading
- There is now a limit on the amount of nested sub-expressions each Molang expression can have
Experimental Technical Features
Camera Command
- Added /camera command as part of the experimental Cameras toggle
- This command can switch to custom camera perspectives or fade the screen
- Use /help camera to get a full list of options
- Added a new experimental Cameras toggle to allow for custom camera perspectives
Items
- Items with the ‘minecraft:throwable’ component now trigger the ‘throw’ sound effect when used
Add-Ons
- Added PlacementDirection and PlacementPosisition BlockTraits
- The PlacementDirection trait can enable the “minecraft:cardinal_direction” and/or “minecraft:facing_direction” states on a block.
- “minecraft:cardinal_direction” is a four value string state [“north”, “south”, “east”, “west”] that describes what cardinal direction the player was facing when they placed the block.
- “minecraft:facing_direction” is a six value string state [“down”, “up”, “north”, “south”, “east”, “west”] that describes what direction the player was facing when they placed the block.
- Values for these states are set when the block is placed.
- The PlacementPosition trait can enable the “minecraft:block_face” and/or “minecraft:vertical_half” states on a block.
- “minecraft:block_face” is a six value string state [“down”, “up”, “north”, “south”, “east”, “west”] that describes what face the block was placed on.
- “minecraft:vertical_half” is a two value string state [“bottom”, “top”] that describes whether the block was placed in the upper or lower half of a block position.
- Values for these states are set when the block is placed.
- Can access all states associated with BlockTraits through the “block_property” Molang queries and “set_block_property” event responses.
- Note: Use of BlockTraits in JSON is currently behind the “Upcoming Creator Features” toggle
- The PlacementDirection trait can enable the “minecraft:cardinal_direction” and/or “minecraft:facing_direction” states on a block.
- Removed “knockback_resistance” item component
- Pumpkin blocks use the string type state “minecraft:cardinal_direction” instead of the int type “direction” state
- Removed “dye_powder” item component
- Items using the minimum duration for the “minecraft:fuel” component now work in the Blast Furnace and Smoker
Scripting
- System Events
- Further separation of events into distinct before* and after* handling, with some restrictions on the execution of state updates in a before event:
- All before events moved from world.events into world.beforeEvents property. The “before” prefix has been removed. Functions that alter world state are prohibited in before event callbacks. Read-only methods and properties are allowed. Set methods are limited to the event object itself. Any use of restricted methods and properties will throw an exception.
- For example, system.events.beforeWatchdogTerminate is now considered a “before” event. Functions that alter world state are prohibited in before event callbacks. Read-only methods and properties are allowed. Set methods are limited to the event object itself. Any use of restricted methods and properties will throw an exception
- For example, system.events.scriptEventReceived is now considered an “after” event. After event callbacks are executed in a deferred manner. Using /scriptEvent something will queue script to execute at a later point
- Renamed Scripting Events
- Before Events renamed to *BeforeEvent and event signals renamed to *BeforeEventSignal
- Example: BeforeItemUseEvent renamed to ItemUseBeforeEvent and BeforeItemUseEventSignal renamed to ItemUseBeforeEventSignal
- Other events renamed to *AfterEvent and event signals renamed to *AfterEventSignal
- Example: WeatherChangedEvent renamed to WeatherChangedAfterEvent and WeatherChangedEventSignal renamed to WeatherChangedAfterEventSignal
- chat event renamed to chatSend
- world.events.beforeChat renamed to world.events.beforeChatSend
- world.events.chat renamed to world.events.chatSend
- BeforeChatEvent renamed to ChatSendBeforeEvent
- BeforeChatEventSignal renamed to ChatSendBeforeEventSignal
- ChatEvent renamed to ChatSendAfterEvent
- ChatEventSignal renamed to ChatSendAfterEventSignal
- Before Events renamed to *BeforeEvent and event signals renamed to *BeforeEventSignal
- Fixed a bug where BlockPermutation.resolve() would fail to resolve custom block properties
- Renamed Entity.scoreboard to Entity.scoreboardIdentity
- Item Events
- The ItemStartUseOnEvent now only fires for the first block that is interacted with when performing a build action
- The ItemUseOnEvent now only fires if the item is successfully used on a block
- ItemUseOnEvent property blockLocation: Vec3 has been changed to block: Block
- ItemStartUseOnEvent property blockLocation: Vec3 has been changed to block: Block
- ItemStopUseOnEvent property blockLocation: Vec3 has been changed to block: Block
- ProjectileHitEvent property faceLocation: Vec2 has been changed to faceLocation: Vec3 – This position is relative to the bottom north-west corner of the block
- ItemUseOnEvent property faceLocation: Vec2 has been changed to faceLocation: Vec3 – This position is relative to the bottom north-west corner of the block
- Entity
- Added interface teleportOptions {dimension?: Dimension, rotation?: Vector2, keepVelocity?: boolean, facingLocation?: Vector3, checkForBlocks?: boolean}
- Added interface Vector2 {x: number, y: number}
- Added function tryTeleport(location: Vector3, teleportOptions?: teleportOptions) : boolean – Attempts to teleport the entity and returns false if the entity is unable to teleport safely (blocks surrounding teleport location or unloaded chunk)
- Changed function teleport to teleport(location: Vector3, teleportOptions?: teleportOptions) : void – Teleports an entity
- Changed function setRotation to setRotation(rotation: Vector2) : void – Sets the entity’s rotation
- Changed function getRotation to getRotation() : Vector2 – Gets the entity’s rotation
- Updated function addTag(tag: string): boolean – The tag must be less than 256 characters
- Updated method kill to return boolean instead of void. If return value is true, entity can be killed, otherwise false
- Added interface EntityApplyDamageOptions. Additional options about the source of damage to use as input in Entity.applyDamage
- Added interface EntityApplyDamageByProjectileOptions. Additional options about the source of damage to use as input in Entity.applyDamage in case of projectile damage
- Updated method applyDamage. Renamed parameter source to options. Parameter type also changed from EntityDamageSource to EntityApplyDamageOptions | EntityApplyDamageByProjectileOptions
- SimulatedPlayer
- Changed function getHeadRotation to getHeadRotation() : Vector2 – Gets the simulated players head rotation
- TitleDisplayOptions will now accept floating point values
- Added new WorldSoundOptions and PlayerSoundOptions interface types for use with the world.playSound and player.playSound respectively
- World.playSound now requires a location argument
- When calling playMusic and queueMusic, an error will now be thrown if musicOptions.volume is less than 0.0
- When calling playMusic and queueMusic, an error will now be thrown if musicOptions.fade is less than 0.0
- When calling playSound, an error will now be thrown if soundOptions.pitch is less than 0.01
- When calling playSound, an error will now be thrown if soundOptions.volume is less than 0.0
- Entity objects now persist across dimension changes and chunk reloading. This means that if you have a reference to an invalid Entity, it will become usable once the Entity has been transferred or reloaded. You can check whether an Entity is loaded or unloaded by reading its lifetimeState property
- Added read-only property lifetimeState – Returns the lifetime state of the Entity. Valid values include “loaded” and unloaded”
- ItemDefinitionTriggeredEvent
- Renamed property item to itemStack
- ItemStartUseOnEvent
- Renamed property item to itemStack
- Replaced function getBlockLocation with read-only property blockLocation: Vector3
- Removed function getBuildBlockLocation
- ItemStopUseOnEvent
- Renamed property item to itemStack
- Replaced function getBlockLocation with read-only property blockLocation: Vector3
- ItemUseEvent
- Renamed property item to itemStack
- ItemUseOnEvent
- Renamed property item to itemStack
- Replaced function getBlockLocation with read-only property blockLocation: Vector3
- Replaced properties faceLocationX and faceLocation with read-only property faceLocation: Vector2
- BlockHitInformation
- Replaced properties faceLocationX and faceLocation with read-only property faceLocation: Vector2
- After Events
- All non-before events have been moved from world.events to world.afterEvents
- events has been removed from the world object
- After events do not execute immediately, instead they are deferred until a later point in the tick when they are flushed. It is guaranteed that all events fired in a tick are flushed within a tick
- Fixed a bug where modified equipment and container slots were not being synced to clients
- @minecraft/server
- Renamed BlockProperties to BlockStates
- Renamed BlockPermutation.getAllProperties to BlockPermutation.getAllStates
- Renamed BlockPermutation.getProperty to BlockPermutation.getState
- Added class EffectTypes
- Added function get(identifier: string): EffectType – Returns the effect type if it exists
- Added function getAll(): EffectType[] – Returns all of the effects
- Updated class Effect
- Updated duration property. Is the duration of the effect in ticks
- Added property typeId. Returns the effect’s type id
- Added interface EntityEffectOptions { amplifier?: number, showParticles?: boolean }
- Added function Entity.removeEffect(effectType: EffectType | string): boolean – Removes an effect from an Entity. Returns false if the effect is not found or does not exist
- Updated function Entity.getEffect(effectType: EffectType | string): Effect | undefined – Gets the effect if it exists on the entity. Otherwise returns undefined
- Updated function Entity.addEffect(effectType: EffectType | string, duration: number, options?: EntityEffectOptions): boolean – Adds an effect to the Entity. Returns false if the effect cannot be added (If the effect does not exist, the duration is negative)
- New APIs moved from beta to stable @minecraft/server 1.2.0:
- Moving applyDamage(amount: number, options?: EntityApplyDamageByProjectileOptions | EntityApplyDamageOptions): boolean to 1.2.0
- Moving kill(): boolean to 1.2.0
- Moving EntityApplyDamageOptions to 1.2.0
- Moving EntityApplyDamageByProjectileOptions to 1.2.0
- Moving EntityDamageCause to 1.2.0
- Moving addTag(tag: string) to 1.2.0
- Moving removeTag(tag: string) to 1.2.0
- Moving hasTag(tag: string) to 1.2.0
- Moving getTags() to 1.2.0
- Moved Container, BlockInventoryComponent, and EntityInventoryComponent to 1.2.0
- Moved Music APIs from beta to stable
- Moved Sound APIs from beta to stable
- Moved ModalFormData, MessageFormData, and ActionFormData to 1.0.0
- Fixed bug in response of MessageFormResponse where selection was inverted from which button was selected. button1 now refers to the left button and results in a selection of 0 and button2 now refers to the right button and results in a selection of 1
- Moved ItemStack constructor and getter APIs to 1.2.0
- Moved EntityItemComponent, ItemComponent, ItemType, and ItemLockMode to 1.2.0
- Moving applyImpulse(vector: Vector3): void to 1.2.0
- Moving applyKnockback(directionX: number, directionZ: number, horizontalStrength: number, verticalStrength: number): void to 1.2.0
- Moving clearVelocity(): void to 1.2.0
- Moved runCommand from beta to 1.2.0
- Moving getComponent(componentId: string): EntityComponent | undefined method to 1.2.0
- Moving getComponents(): EntityComponent[] method to 1.2.0
- Moving hasComponent(componentId: string): boolean method to 1.2.0
- Moving EntityComponent class to 1.2.0
- Moving EntityBaseMovementComponent class to 1.2.0:
- Moving readonly maxTurn: number property to 1.2.0
- Moving the following additional EntityBaseMovementComponent subclasses to 1.2.0:
- EntityMovementAmphibiousComponent
- EntityMovementBasicComponent
- EntityMovementFlyComponent
- EntityMovementGenericComponent
- EntityMovementHoverComponent
- EntityMovementJumpComponent
- EntityMovementSkipComponent
- Renamed EntityIsDyableComponent class to EntityIsDyeableComponent and moved to 1.2.0
- Moving the following additional EntityComponent subclasses to 1.2.0:
- EntityCanClimbComponent
- EntityCanFlyComponent
- EntityCanPowerJumpComponent
- EntityColorComponent
- EntityFireImmuneComponent
- EntityFloatsInLiquidComponent
- EntityFlyingSpeedComponent
- EntityFrictionModifierComponent
- EntityGroundOffsetComponent
- EntityIsBabyComponent
- EntityIsChargedComponent
- EntityIsChestedComponent
- EntityIsHiddenWhenInvisibleComponent
- EntityIsIgnitedComponent
- EntityIsIllagerCaptainComponent
- EntityIsSaddledComponent
- EntityIsShakingComponent
- EntityIsShearedComponent
- EntityIsStackableComponent
- EntityIsStunnedComponent
- EntityIsTamedComponent
- EntityMarkVariantComponent
- EntityPushThroughComponent
- EntityScaleComponent
- EntitySkinIdComponent
- EntityVariantComponent
- EntityWantsJockeyComponent
- Enchantments
- Removed MinecraftEnchantmentTypes class. Use MinecraftEnchantmentTypes from @minecraft/vanilla-data module for minecraft version specific information.
- Added support for “strings” in all Enchantment methods for specifying the enchantment type
- source on ExplosionBeforeEvent is now an optional property because explosions may not have a source
- Tameable Component
- Removed unimplemented tameEvent from TameableComponent
- Updated API to better handle operations outside of loaded and ticking areas
- PositionInUnloadedChunkError: Exception thrown when trying to interact with a Block object that isn’t in a loaded and ticking chunk anymore
- PositionOutOfWorldBoundariesError: Exception thrown when trying to interact with a position outside of dimension height range
- Dimension
- getBlock now returns an optional Block to reflect it might return ‘undefined’ if asking for a block at an unloaded chunk
- Signs
- Added optional SignSide parameter to functions setText, getText, getRawText, setTextDyeColor, and getTextDyeColor on BlockSignComponent to support getting and setting text and colors on both sides of signs
- Added isWaxed property to BlockSignComponent indicating whether players can edit the sign or not
- Added setWaxed method to BlockSignComponent to block players from editing the sign
- runCommand and runCommandAsync on Dimension and Entity can now fail with a CommandError
- runCommand can throw a CommandError exception
- runCommandAsync will pass a CommandError into the reject handler