
Experimental Features:
Player Sneaking
The ability to sneak under 1.5 block gaps is now behind the “Short Sneak” toggle. Enable the toggle to continue to test out the feature while we continue polishing it
Player’s hitbox height now reduces to 1.5 blocks while sneaking
Sneaking will automatically be initiated while stuck in a gap of less than 1.8 blocks
Sneaking will lower the player camera height respective of these changes
Sneaking now requires enough space to stand in order to exit sneaking state
Players will transition from swimming to sneaking if they are unable to stand up but would be able to sneak
Cherry Grove
Introducing the Cherry Grove biome, with pretty Cherry Blossom trees. You can find it in the mountains, like Meadows
It has a new flower, Pink Petals, as ground cover, which can be crafted into Pink Dye
Pigs, Rabbits, Sheep, and Bees spawn there
Comes with a new wood set for the Cherry Blossom trees
Archaeology
Added the Trail Ruins, a buried structure from a lost culture
Added Suspicious Gravel block, which has the same characteristics as Suspicious Sand
Added Suspicious Sand to Warm Ocean Ruins
Added Suspicious Gravel to Cold Ocean Ruins
Added 16 new Pottery Shards (Now 20 Pottery Shards in total)
These have been distributed between the five Archaeology sites: Desert Wells, Desert Temples, Cold Ocean Ruins, Warm Ocean Ruins, and Trail Ruins
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, and can only 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
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 what ingredient you used to apply the trim, and represents 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
Smithing Templates
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 Templates
Smithing Templates define what type of upgrade you will be making to 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
Armor Trim Smithing Templates can be found all throughout the world, and each of the following structures contain their own unique Smithing Template:
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 Armor Trim
Woodland Mansion: Vex Armor Trim
Nether Fortress: Rib Armor Trim
Bastion Remnant: Snout Armor Trim
Stronghold: Eye Armor Trim
End City: Spire Armor Trim
Trail Ruins: Wayfinder Armor Trim, Raiser Armor Trim, Shaper Armor Trim, Host Armor Trim
Ancient City: Silence Armor Trim
Smithing Templates are found in Chests in their respective structure, except for the Ocean Monument. Instead of finding it in Chests, Elder Guardians sometimes drop a Smithing Template when defeated
Some Armor Trim Smithing Templates are rarer than others, so be on the lookout for them to impress your friends!
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, and there is a guarantee of 2 in every Treasure Room Bastion Remnant
This change was made for a variety of reasons:
Increases the time players utilize Diamond equipment before Netherite
Make Netherite equipment a more significant achievement in the game's progression
Adapts Netherite more naturally into the new Smithing Table crafting system
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
They can 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
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
Sign Improvements
Signs have improved customization options
Sign text can now be edited after being placed in the world
This can be done by interacting with the Sign
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
Vanilla Parity:
Renamed and enchanted weapons are now displayed in respawn and chat windows with color when a player is killed by an entity using it
Weighted Pressure Plates now produce the same sound as in Java Edition
Removed the character limit for scoreboard objective names and objective display names
Melons and Pumpkins can now grow onto Mud, Podzol, Rooted Dirt, and Muddy Mangrove Roots
Nylium blocks are now grouped with Netherrack in the Creative inventory
Armor Stands now vanish with no sound effects when killed with the /kill command
Slightly decreased Panda collision box to match Java Edition
Slightly increased Polar Bear collision box to match Java Edition
Shipwreck supply chests are no longer missing Moss Block as loot
Mobs will once again take damage when standing on an incomplete block next to a Campfire
Fixes and Changes:
Stability and Performance
Fixed several crashes that could occur during gameplay
Fixed a bug where invalid Banner Patterns were causing players in render distance to crash
Fixed a bug where Command Blocks could cause actors within a level chunk to freeze
Fixed a crash that could occur when opening the My Packs tab with a broken pack
Gameplay
Fixed the player moving in the wrong direction after exiting a container screen while using a gamepad
Players can no longer sneak while flying
Fixed animation transition between swimming and walking
The Health Boost effect will no longer fully replenish the player's health after the effect runs out
Fixed ambient cave sounds to no longer play when the player enters or loads into The End
Mobs
Mobs can now enter a Boat only if they are smaller than the Boat itself
Villagers will now generate green particles when a successful trade is completed
Mobs no longer play the player eat sound when fed breeding materials
Turtles can now enter Boats and Boats with Chest
Hoglins, Polar Bears, and Spiders can no longer enter Boats and Boats with Chest
Fixed experience orb position desync after teleport
Villagers will now wake up in a valid position and will not phase though blocks
Blocks
Mangrove, Bamboo, and Polished Blackstone buttons are no longer visible on maps
Flowers are once again displayed immediately when placed inside a Flower Pot
Nether Portals can now replace blocks other than just air when being generated. This includes blocks such as Grass and Snow layers
Light Blocks can no longer have their light levels changed in Survival or Adventure modes
Campfire sounds are now louder and clearer
Sponges no longer emit water drop particles underwater
Fixed an issue where colored wool became white wool after been loaded from worlds prior to 1.17
Items
Potions no longer have an enchantment glint, due to it obscuring the color of the potion contents
Cooking Chorus Fruit in a Furnace will now generate experience
Accessibility
A glint strength slider that adjusts how transparent the visual glint is on enchanted items has been added to the Accessibility Settings
A glint speed slider that adjusts how fast the visual glint shimmers across enchanted items has been added to the Accessibility Settings
Focus indicator is now automatically visible on menu items while using a keyboard
Text-to-speech no longer reads previously selected items after moving to new one
Text-to-speech no longer gets stuck on reading accessibility tab while the user switches between different tabs
User Interface
Added a header and title for the inventory tab in inventory screen while using Pocket UI
Updated look of sign in and sign up screens
Increased the spacing between headers in the Settings screen to increase readability
Touchpad scrolling now matches the operating system's scroll direction
Feedback button on the pause menu will now prompt the user with a modal before redirecting to the browser
Corrected toggle navigation in Edit World menu while using gamepad or keyboard that were previously skipped
Graphical
Halved the default visibility of the glint on enchanted items, which can now be modified in the Accessibility Settings
Fixed an issue where unnecessary black boxes appeared in VR while around partial blocks
Fixed the issue where multiple light sources (such as Torches) were incorrectly emitting white light in RTX
Boots do not z-fight anymore when worn by a player
The "leg" and "belt" parts of Leggings do not z-fight anymore when worn by a player
Capes no longer flash red when getting damaged
Fixed a visible gap in Hopper model
Fixed alignment of the output slot of Crafting Table
Going into lava in third person view no longer causes the camera to turn black
Marketplace
A Wishlist has been added to select players for testing so that players can save things to purchase at a later time
This feature is still in testing and, for now, will only be available for select players
Look for this icon in Marketplace:
Realms
Fixed an issue that prevented players on PlayStation 5 from purchasing a Realms Plus trial
Added the ability for members to update the Realm server version, meaning that the Realm owner will not need to log on to update
Added D-pad navigation in the Realms feed screen popup
Added keyboard navigation in the Realms feed screen popup
Fixed a bug where players would be stuck if they added a resource pack to an expired Realm and clicked the exit button
Fixed a bug where content packs applied to a world in a Realm slot were applied to another world in another slot in the same Realm
Fixed a bug where content packs applied to a world is unintentionally unapplied when joining a world
Fixed an extra Cancel button displaying on mobile file download dialog
Added a link to Microsoft Privacy Statement in the world upload dialog
Touch Controls
Added new touch and hold Stack Splitting for precision selection of the items in a single slot
Fixed an issue where items could get stuck in the Crafting Table when using touch input
If the player is underwater and Auto-Jump is enabled, as they approach a block that is 1 level higher than the current level, they will rise. This also allows auto-jumping out of water onto land
Technical Updates:
Updated Add-On Template Packs
General
For behavior packs using version 1.19.80 and above, recipes no longer accept a Molang query for the item's data field, instead use the item's full name, eg. use { "item": "namespace:actor_spawn_egg" } instead of { "item": "spawn_egg", "data": "query.get_actor_info_id('namespace:actor')" }
Fixed an issue that caused the InteractComponent to not work correctly while sneaking
Commands
The /execute command now displays an appropriate error message when there is an error in the second or subsequent subcommand target selector
Provide auto-complete support for block states
Added two new overloads to the summon command:
/summon [spawnPos : x y z] facing <position: x y z> [spawnEvent: string] [nametag: string]
/summon [spawnPos : x y z] facing <lookAtEntity: target> [spawnEvent: string] [nametag: string]
Fixed an issue where the paste button in the Command Block UI would remember extra presses from failed pastes
For worlds using game version 1.19.80 and above, acquiring a custom spawn egg through a command can only succeed with their full name rather than with an aux value, eg. "/give @s namespace:actor_spawn_egg"
"fence" block is now split into unique names, "oak_fence", "acacia_fence", "birch_fence", "dark_oak_fence", "jungle_fence", and "spruce_fence"
Commands will still work with "fence", but only new fence name will be suggested in the command prompt
Removed requirement for blockState argument(s) when using other optional args in /fill /setblock and /clone
Implemented the "inputpermission" command, which allows for setting the player's camera or movement as enabled or disabled
Syntax: /inputpermission set <target: player> <permission: camera | movement> <state: enabled | disabled>
Implemented the "haspermission" target selector, which allows for selection based on player permission levels
Game Events
item_interact_finish game event now has a vibration frequency of 2 instead of 14
item_interact_start is no longer considered a detectable vibration
Reeling a fishing rod now emits projectile_shoot vibration
Data-Driven Components
Added "lose_target" field to projectile data to specify if an entity should unselect its target after shooting the projectile
Added a new Transformation component for blocks to support rotation, scaling and translation. The component can be added to the whole block, and/or to individual block permutations. Eg.
"minecraft:transformation": {
"translation": [0.0, 0.1, -0.1],
"scale": [0.5, 1, 1.5],
"rotation": [90, 180, 0]
}
Transformed geometries still have the same restrictions that non-transformed geometries have, eg. a maximum size of 30/16 units
Add-Ons and Script Engine
Chance information types used in tree feature JSONs for some trunks and foliage now allow 0 as the chance (values like 0.0001 were allowed, but not 0)
Form promises are now rejected using typed errors, vs. strings as used previously
Entity Filters
Created new entity filter "is_raider" to determine if subject is part of a raid
AI Goals
Added "cooldown" field to target descriptors in "minecraft:behavior.nearest_attackable_target" goal
Blocks
Deprecated minecraft:part_visibility block component
Added bone_visibility behavior to minecraft:geometry block component
ItemStack
Added function getTags(): string[] - Returns all tags for the item
Added function hasTag(tag: string): boolean - Returns true if the item has the specified tag
EntityEquipmentInventoryComponent
This component is used to manipulate the equipment of mobs and players. To use it, call getComponent('equipment_inventory')
Added function getEquipment(equipmentSlot: EquipmentSlot): ItemStack | undefined - Returns the item in the given equipment slot
Added function getEquipmentSlot(equipmentSlot: EquipmentSlot): ContainerSlot - Returns the container slot for the given equipment slot
Added function setEquipment(equipmentSlot: EquipmentSlot, itemStack?: ItemStack): void - Sets the item in the given equipment slot
ItemDurabilityComponent
The ItemDurabilityComponent now works with all damageable items, not just custom items
Removed property damageRange
Setting damage will now throw an exception if it is outside of the range [0, maxDurability]
Marketplace
In the map WDW Magic Kingdom, the carts on the Big Thunder Mountain, Snow White and the Seven Dwarves, and Space Mountain rides now properly align with the invisible Minecart they are attached to
Servers
Blocks can now optionally (via a setting in StartGamePacket) use a hashed value for their network IDs. This hashed value is independent of all other blocks and remains stable across future releases
GameTest Framework
Updated specific GameTest exceptions to be thrown as GameTestError error objects
Added two new commands:
/gametest stopall - Used to manually stop all tests while they are running
/gametest runsetuntilfail - Used to run a set of tests but will automatically stop if any of the tests fail
API (Experimental)
Updated versions to add new APIs to stable:
Added version 1.1.0 of @minecraft/server
Added version 1.2.0-beta of @minecraft/server
Removed version 1.1.0-beta of @minecraft/server
Moved the following to @minecraft/server stable (1.1.0)
system.runTimeout
system.runInterval
system.clearRun
system.currentTick
Vector3
BlockPermutation (only a subset of functionality)
Block
Dimension.getBlock
World.sendMessage
Player.sendMessage
Entity.dimension
Entity.typeId
Entity.getVelocity()
Entity.location
Entity.getHeadLocation()
Entity.nameTag
Entity.id
Entity.getViewDirection()
Dimension.getEntities
Dimension.getEntitiesAtBlockLocation
Dimension.getPlayers
EntityQueryOptions
EntityQueryScoreOptions
GameType
World.getPlayers
Minecraft runtime errors are now fired as JavaScript Error objects instead of strings
Fixed a number of base class inheritance issues and added several new base classes to certain class types
/reload works if a script pack references a client resource pack
Fixed a bug where the BeforeItemUseOnEvent function getBlockLocation would return undefined
The BeforeItemUseOnEvent class now inherits from ItemUseOnEvent
Fixed a bug where sendMessage would fail when the message contains Unicode quotation marks
Signs
Added setText to set the text on a sign with a regular string, a RawMessage, or a RawText
Added getText to get the string on a sign, will return undefined if setText was called with a RawMessage or a RawText
Added getRawText to get the RawText on a sign, will return undefined if setText was called with a string
Added getTextDyeColor and setTextDyeColor to read/write the dye of the sign text
Dyes
Added DyeColor enum
sendMessage
rawtext is now RawMessage[] instead of (string | RawMessage)[]
RawMessage
rawtext property on RawMessage is no longer (string | RawMessage)[] and is instead RawMessage[]
RawText
Added a RawText class for reading RawMessage like on Signs
Riding
Added getRiders to EntityRideableComponent which returns an array of all the entities currently riding this entity
Added EntityRidingComponent - this component is only on entities that are currently riding on another entity
Has an entityRidingOn property that returns the entity this entity is currently riding on
Added function getEntity(id: string): Entity | undefined - Gets an entity. Returns undefined for entities that don't exist or aren't loaded
Dimension
getEntities
Modified return type to Entity[]
Modified parameter name getEntities to options
New signature: getEntities(options?: EntityQueryOptions): Entity[]
getPlayers
Modified return type to Player[]
Modified parameter name getPlayers to options
New signature: getPlayers(options?: EntityQueryOptions): Player[];
@minecraft/server-ui
When building forms, all read-only user-facing strings (e.g., text labels, dropdown options etc.) now accept RawMessage This affects the following classes:
ActionFormData
ModalFormData
MessageFormData
Added function getItemStack(amount?: number, withData?: boolean): ItemStack - Gets an item stack of the block. Returns undefined for blocks that don't have a corresponding item (e.g. air)
BlockPermutation
Added function getItemStack(amount?: number): ItemStack – Creates an item stack of the block permutation. Returns undefined for blocks that don't have a corresponding item (e.g. air)
Removed data property
BlockComponent
Added read-only property block - Gets the block that the component is attached to
Renamed IEntityComponent to EntityComponent
Container
Replaced classes
BlockInventoryComponentContainer, InventoryComponentContainer, and PlayerInventoryComponentContainer with Container
function addItem now returns the remainder of the added item stack if the container is full, else undefined
function transferItem no longer takes a destination slot and will now place the given item in the first available slot. The function now returns the remainder of the item stack if the container is full, else undefined
Added function moveItem(fromSlot: number, toSlot: number, toContainer: Container): void - Moves an item from one container to another, replacing any item in the destination slot
Function swapItems can now swap empty slots
Removed function clearItem - Please use setItem(undefined) instead
Signs
Fixed an issue where text set on Signs using setText wasn't reflected on Signs on the client until the Sign was reloaded
getComponent('minecraft:sign') now works with Hanging Signs