Posted on Leave a comment

Bedrock: 1.21.130

New Features

Mount improvements

  • Horses, Zombie Horses, Donkeys, Mules, and Camels no longer sink when ridden by players while swimming
  • Added Netherite Horse Armor
    • Can be crafted at a Smithing Table using a Diamond Horse Armor, a Netherite Ingot, and a Netherite Upgrade
    • Provides 19 armor points

Nautilus

  • New neutral aquatic mob
  • Attacks using a Dash attack if provoked
  • Spawns in all ocean biomes
  • Tamed using Pufferfish or a Bucket of Pufferfish
  • Tamed Nautilus can be mounted using a Saddle
  • Has a Dash skill similar to Camels, used by pressing Jump button
  • Occasionally attacks Pufferfish within range using Dash attack
  • Adds “Breath of the Nautilus” effect to mounted player
  • Tamed Nautilus without Saddle has a roaming restriction of 32 blocks
  • Tamed Nautilus with Saddle has a roaming restriction of 16 blocks
  • Nautilus has a charge attack cooldown of 4 seconds
  • Takes suffocation damage on land
  • A Nautilus can spawn between Y-Level 38 and 58

Nautilus Armor

  • Equipable on Nautilus and Zombie Nautilus
  • Comes in Copper, Golden, Iron, Diamond, and Netherite versions
  • Using Shears on a Nautilus will first remove its armor, and then its Saddle

Breath of the Nautilus

  • Effect that affects mounted player
  • Pauses player oxygen consumption (but does not replenish oxygen)

Zombie Nautilus

  • New neutral underwater mob
  • Attacks using a Dash attack
  • Spawns with a Drowned rider wielding a Trident
  • Is hostile if the rider is a hostile mob
  • Neutral without a rider
  • Tamed using Pufferfish or a Bucket of Pufferfish
  • Tamed Zombie Nautilus can be mounted using a Saddle
  • Has a Dash skill similar to Camels, used by pressing Jump button
  • Occasionally attacks Pufferfish within range using Dash attack
  • Adds “Breath of the Nautilus” effect to mounted player
  • Cannot be bred
  • Tamed Zombie Nautilus without Saddle has a roaming restriction of 32 blocks
  • Tamed Zombie Nautilus with Saddle has a roaming restriction of 16 blocks
  • Takes suffocation damage on land

Coral Zombie Nautilus

  • New Zombie Nautilus variant
  • Spawns in Warm Oceans, replacing the normal Zombie Nautilus
  • Visual variant, functions identically to the normal Zombie Nautilus

Spear

  • New weapon that can be crafted in Wood, Stone, Copper, Iron, Gold, Diamond, and Netherite versions
  • Each material has different stats for timing, influencing how fast they are to use
  • Has a minimum reach for damage, being too close to a target will yield no damage
  • Has extended maximum reach compared to other tools and weapons
  • Zombies and Piglins can spawn with the Spear
  • Has two attacks: Jab and Charge
  • Animals defeated in one hit by the charge attack of a Spear with the Fire Aspect enchantment will drop cooked food

Charge Attack

  • Press and hold secondary action button to use
  • Damage based on Spear material, the player’s view angle and velocity of both player and target
  • While holding down button the attack goes through three stages before returning to idle:
    • Engaged: Spear can deal damage, knockback, and dismount mounted enemies if speed is above the required thresholds
    • Tired: Indicated by Spear rotating to a vertical position and shaking Spear can deal damage and knockback (but not dismount) if the speed is above the required thresholds
    • Disengaged: Indicated by Spear being lowered, pointing downwards Spear gives damage but not knockback or dismount if the speed is above the required threshold

Jab Attack

  • Quick press primary action button to use
  • Low damage attack with knockback
  • Cooldown between attacks
  • Wood spears have the fastest cooldown; Netherite the slowest
  • Can hit multiple enemies
  • Does not destroy blocks

Lunge Enchantment

  • Spear exclusive enchantment
  • Only works with the Jab attack
  • When doing a Jab attack with Lunge it propels the player horizontally in the view direction
  • View angle needs to be perfectly leveled horizontally to achieve maximum lunge distance
  • Using the Lunge attack consumes hunger
    • Level 1 Lunge consumes 1 hunger point, level 2 consumes 2 points, and level 3 consumes 3 points
  • Cost of 1 Durability point for using Lunge for all Enchantment levels

Zombie Horse

  • Spawns naturally at night in Plains and Savanna biomes
  • Spawns with a Zombie rider wielding a Spear
  • Is hostile if the rider is a hostile mob
  • Neutral without a rider
  • Tamed like normal Horses
  • Favorite food is Red Mushroom
  • Tamed Zombie Horse can be mounted using a Saddle
  • Cannot be bred
  • Zombie Horses avoid areas with sunlight
  • Zombie Horses can be leashed when they are untamed, but not when mounted by a Zombie

Parched

  • New Skeleton variant
  • Spawns at 0 light level in Deserts, replacing some of the regular Skeletons
  • Does not burn in sunlight
  • Shoots Arrows of Weakness
  • Has a slower rate of fire compared to normal Skeletons, similar to Bogged
  • Does not spawn in caves, following the Husk’s spawning rules
  • Parched have a chance of spawning riding Spiders and Cave Spiders in Deserts, instead of regular Skeletons

Camel Husk

  • New undead Camel variant
  • Spawns at 0 light level in Deserts
  • Does not burn in sunlight
  • Spawns with two riders: A Husk wielding a Spear and a Parched
  • Does not spawn in caves, following the Husk’s spawning rules
  • Is hostile if the rider is a hostile mob
  • Passive without a rider
  • Despawns like other hostile mobs, but becomes persistent when ridden by a player
  • Favorite food is Rabbit Foot
  • Cannot be bred
  • As a mount, they work similar to normal Camels
  • Zombie Husks that spawn riding a Camel Husk have a 50% chance of dropping a Rabbit Foot
  • The Camel Husk can not be leashed while being ridden by a hostile mob

Features and Bug Fixes

Audio

  • The swimming sound no longer plays when flying underwater
  • The critical hit sound now correctly plays when a player lands a critical hit

Blocks

  • Hanging Roots can now be waterlogged (MCPE-128957)
  • Crimson Roots and Crimson Fungus now generate in the Warped Forest biome (MCPE-83616)

Character Creator

  • Players are no longer prevented from loading into a world due to an Invalid Platform Skin error
  • Fixed an issue where remote player skins would sometimes change to a default skin when they moved in and out of render range (MCPE-222444)

Gameplay

  • Hoppers now have a short cooldown after being moved by a Piston that prevents interaction. This fixes a bug with Bundle duplication
  • Fixed a bug preventing players from growing Pink Petals, Wildflowers, or Leaf Litter by targeting the side of a block (MCPE-190684)
  • Added the Damage Tilt slider to Video settings, controlling how much the screen tilts when the player takes damage, in parity with Java
  • Hoppers can no longer stack multiple Bottles in one slot inside a Brewing Stand (MCPE-228374)

General

  • Fixed a bug where pressing ALT + F4 in-game opened the pause menu instead of closing the game (MCPE-228098)
  • Resolved an issue on Windows where shared worlds (those available to all players) did not load resource or behavior packs (MCPE-228607)
  • Reenabled missing music for several biomes
  • Fixed an issue where signing in at the exact wrong time would make many online features unable to load for 5 minutes
  • Added splash text “One does not simply walk to the Far Lands”

    Developer’s Note: This statement was proven false on October 4, 2025.

Graphical

  • The first critical hit particle for Arrows is now slightly delayed
  • The nose of the Copper Golem is now rotated correctly while the Golem is sitting down (MCPE-228256)
  • Fixed large flipbook textures corrupting other textures
  • Fixed a bug where the fade command would fade to black instead of the specified color when Vibrant Visuals is enabled. Also fixed certain effects such as fire and the Spyglass overlay rendering in front of the fade effect (MCPE-223049)
  • Fixed snowflakes flickering during player movement
  • The partial transparency applied to mobs when close to the camera now also applies to players. (MCPE-227786)
  • Fixed Mooshroom’s mushrooms and armor on mobs not being affected by “Enable Dithering” setting (MCPE-228281) (MCPE-228296)
  • Fixed a regression where Torches and Lanterns weren’t emitting point lights in raytracing-enabled worlds

Input

  • Automatically selects the Chat screen text field on opening for Windows when using Keyboard and Mouse, enabling text input as soon as screen opens (MCPE-229046)
  • Fixed a bug on Windows where disabling the system setting “Scroll inactive windows when hovering over them” had no effect (MCPE-229088)
  • On-Screen Keyboard will no longer appear over the chat box when docked; Input screens, such as signs, will no longer close when switching between different input modes (MCPE-228584)
  • Fixed a bug on Windows where the game widgets would interact with the cursor when another window was focused (MCPE-229548)
  • Fixed an issue where Xbox controllers connected to ROG Xbox Ally did not work while built-in controller was active (MCPE-184251) (MCPE-180470)
  • Fixed a bug on Windows where the mouse cursor moved in the background during gameplay (MCPE-230832)

Items

  • Gold Horse Armor has been renamed to Golden Horse Armor (MCPE-101388)

Mobs

  • Fixed bug where Camels could not dash when standing in water
  • Pufferfish can now spawn in the Lukewarm Ocean and Deep Lukewarm Ocean biomes
  • Pufferfish and Tropical Fish can now be caught when fishing in Jungle biomes
  • Drowned attack now knockbacks attacked mob into air when mob is not in water (MCPE-133343)
  • Added chance for Zombie Horse Riders to spawn in Savannas and Plains
  • Camels now take fall damage starting 4 blocks higher when walking or dashing (MCPE-171996)
  • Phantoms can no longer drown (MCPE-101541)
  • Wolf shadow and model are now centered (MCPE-176018)
  • Fixed some Goat sounds not being controlled by the Friendly Mobs slider (MCPE-178232)
  • Piglins will no longer scream with enthusiasm while admiring gold MCPE-229509
    • They will instead do a courteous grunt of acknowledgement
    • Very polite, just like on Java
  • Only Baby Zombie jockeys and Baby Husk jockeys can ride the following mobs:
    • Adult Chickens
    • Untamed Ocelots
    • Untamed Cats
    • Untamed Wolves
    • Adult Zombies
    • Adult Husks
    • Adult Zombified Villagers
    • Adult Zombified Piglins
    • Cows
    • Adult unsaddled Pigs
    • Sheep
    • Adult untamed Horses
    • Adult untamed Donkeys
    • Adult untamed Mules
    • Adult Skeleton Horses
    • Adult Zombie Horses
    • Mooshrooms
    • Spiders that were not spawned as jockey mounts
    • Cave Spiders that were not spawned as jockey mounts
  • Zombies and Husks that have been spawned as their rider configuration can only ride Zombie Horses and Camel Husks, respectively
  • Dolphins no longer spawn in the Cold Ocean or Deep Cold Ocean biomes
  • It is no longer possible for two mobs to mount each other simultaneously

Profile

  • Removed unexpected Sign Out button on user profile on Windows. Players should sign out via the Xbox app (MCPE-228176)

Realms

  • Fixed Realm server selection behaving unpredictably
  • Fixed controller focus being cut off for the top of the Realms Timeline Opted-Out members list
  • Realms Manage Feed is now located within Realms Stories instead of Realms Settings
  • Fixed an issue where players could get temporarily stuck when adding members to a newly purchased Realm
  • Navigate players back to either the start screen or the settings screen when they confirm the message about not being able to connect to a network
  • Present players with the option to play using mobile data or to change their game settings if mobile data is disabled when attempting to join a newly purchased Realm
  • Introducing Realms Saves, a new and improved version of our previous backup system. Keep your Realms worlds safe with a new bank of cloud storage included with your Realms subscription. Realms saves come in two flavors:
    • Automatic saves are functionally the same as our previous “backups” system:
      • They are on by default – no need to enable anything to keep your Realm world safe with automatic saves.
      • They are taken at the end of every Realms play session when the server shuts down, or every 30 minutes during a play session.
      • They are only retained for a limited time, according to our retention policy (which has not changed with this update): How Mojang Saves Backups for Your Minecraft Realm | Minecraft Help
      • They do not count towards your bank of cloud storage.
      • All previous Realms backups will be converted to automatic saves.
    • Manual saves are created by the Realm owner and count towards a bank of storage that comes with your Realms subscription.
      • Manual saves are retained as long as your Realm is. They are not automatically deleted by our retention policy*, but Realm owners can delete manual saves if they want to free up storage space.
      • Realms Plus subscriptions come with 10GB of manual save storage and Realms core subscriptions come with 5GB.
      • Automatic saves can be turned into manual saves by the Realm owner.
    • Realms saves can be found in the Realms settings menu accessed via the “Edit Realm” button rather than the Realms world settings menu that backups used to show up in. While playing on the Realm, saves can also be found in the in-game settings menu for the Realm owner.
    • Realms saves will also now list the world name and the packs that were applied at the time of the save.

Settings

Storage

  • Display “Unlisted Worlds” that cannot be loaded so they can be deleted (MCPE-223708)

Stability and Performance

  • If syncing world from cloud fails on Xbox, automatically attempt to join the local copy
  • Improved loading times when exiting worlds
  • Improved loading times when using the /reload all command
  • Fixed a crash from using a Data Driven Renderer
  • Improved loading times when re-entering similar worlds
  • Improved loading times when transferring between servers

User Interface

  • Touch Controls: The camera Y-sensitivity for D-Pad controls has been decreased, matching the sensitivity for Joystick controls
  • Hotbar hotkeys now also work when hovering over output slots of Grindstone and Anvil (MCPE-228276)
  • Touch Controls: There is now an option to increase the size of the top row of buttons in the HUD
  • New achievements page: Fixed a bug where some achievements could not be manually removed from the In Progress list
  • Touch Controls: Customizable controls are now always on
  • Updated the Add-Ons navigation button to have proper spacing between the icon and the text
  • Fix issue with rendering custom blocks as “flying items” and with quick move animation (MCPE-180489)
  • Text input in certain inputs such as Book and Quill, will now prevent new lines if it will push text out of the input window
  • Fix suggested commands in chat misplaced when resizing window (MCPE-147816)
  • Fixed the social drawer lacking a border when opened in-game (MCPE-227007)
  • Fixed a bug where the text to speech settings incorrectly auto enabled when starting a world
  • Fixed the Social drawer lacking a border when opened within a world (MCPE-227007)
  • Added a new joystick for touch controls when using the control schemes ‘player_relative_strafe’ or ‘camera_relative_strafe’
    • The new joystick is only available with “Joystick & tap to interact” and “Joystick & aim crosshair”
    • Players who are using “D-Pad & tap to interact” when entering into one of the two control schemes will be put into “Joystick & tap to interact” and then returned to “D-Pad & tap to interact” after they stop using one of the two control schemes
  • Added missing options to the new Accessibility settings page (MCPE-228101)
  • Accessibility option “Enable Open Chat Message” has been renamed to “Chat Instructions on Join”
  • Implemented the same HUD icon for ambient mob effects as Java (like the ones applied by Beacons, Conduits, or Breath of the Nautilus)
  • Fixed ambient mob effects constantly flashing like they are timing out
  • All items now show the Hit attack prompt when aiming at a Mob
  • Items with dedicated interaction prompts now show when aiming at a Mob if there is no other special Mob interaction prompt
  • Fixed a bug where holding up on the D-Pad would not continuously scroll in menus (MCPE-226509)
  • Fixed an issue where the paste button on some screens would paste text twice (MCPE-228233)
  • Title bar of game on PC will now respect Windows dark mode (MCPE-227846)
  • Fixed issue where game icon doesn’t show on taskbar and title bar on Windows (MCPE-227849)
  • The mob’s inventory panel is now hidden for all unchested mobs in the default UI
  • Open windows such as inventory, trading, or chat, will now close when you are hurt by a mob
    • Windows will not close repeatedly if you are attacked multiple times in quick succession

Items

  • Spawn Eggs are now sorted thematically in the Creative Inventory, according to the following categories:
    • Overworld
      • Farm Animals
      • Mounts
      • Pets
      • Wild Animals
      • Aquatic
      • Miscellaneous
      • Golems
      • Villagers
      • Undead
      • Spiders
      • Monsters
      • Illagers
    • Nether
    • The End
  • Tools and weapons now lose durability when used to attack Armor Stands, just like they do when damaging other entities such as Minecarts, Paintings, Boats, or Leash Knots

Technical Updates

AI Goals

  • Made schemas for goals minecraft:behavior.explore_outskirts and minecraft:behavior.investigate_suspicious_location stricter when parsing and will fail to load an entity json that has invalid data in versions 1.21.130 and newer
  • Added the “minecraft:behavior.use_kinetic_weapon” AI goal
    • Description:
      • Allows a mob to make use of items with a “minecraft:kinetic_weapon” item component
      • The mob will approach the target before using the weapon and charging with it
      • If the target gets too close, the mob will retreat and reposition before charging again
      • Once all “max_duration”s in the item’s “minecraft:kinetic_weapon” component have elapsed, the mob goes on cooldown and retreats before approaching again
    • Fields:
      • “approach_distance”: The distance to the target within which the mob begins using its kinetic weapon
      • “reposition_distance”: The distance the mob retreats to once the target is closer than the midpoint of the item’s “minecraft:kinetic_weapon” component’s minimum and maximum “reach”
      • “reposition_speed_multiplier”: Multiplier applied to the mob’s movement speed while repositioning
      • “cooldown_distance”: The distance the mob retreats to after all of the item’s “minecraft:kinetic_weapon” component’s “max_duration” values have elapsed
      • “cooldown_speed_multiplier”: Multiplier applied to the mob’s movement speed while on cooldown
      • “weapon_reach_multiplier”: Multiplier applied to the item’s “minecraft:kinetic_weapon” component’s “reach”
      • “weapon_min_speed_multiplier”: Multiplier applied to each “min_speed” and “min_relative_speed” condition in the item’s “minecraft:kinetic_weapon” component
      • “min_path_time”: Minimum base time, in seconds, before recalculating a new attack path to the target (before increases are applied)
      • “max_path_time”: Maximum base time, in seconds, before recalculating a new attack path to the target (before increases are applied)
      • “path_fail_time_increase”: Time, in seconds, added to the attack path recalculation interval when the mob cannot move along the current path
      • “inner_boundary_time_increase”: Time, in seconds, added to the attack path recalculation interval when the target is beyond “path_inner_boundary”
      • “outer_boundary_time_increase”: Time, in seconds, added to the attack path recalculation interval when the target is beyond “path_outer_boundary”
      • “path_inner_boundary”: Distance at which to increase attack path recalculation by “inner_boundary_time_increase”
      • “path_outer_boundary”: Distance at which to increase attack path recalculation by “outer_boundary_time_increase”
      • “speed_multiplier”: Multiplier applied to the mob’s movement speed when moving toward its target
      • “require_complete_path”: Specifies whether a full navigation path from the mob to the target is required
      • “track_target”: Allows the mob to track its target even if it lacks a hard-coded sensing component
      • “cooldown_time”: Cooldown time, in seconds, between consecutive attacks
      • “melee_fov”: Field of view, in degrees, used by the hard-coded sensing component to detect a valid attack target
      • “x_max_rotation”: Maximum rotation, in degrees, on the X-axis while the mob is trying to look at its target
      • “y_max_head_rotation”: Maximum rotation, in degrees, on the Y-axis while the mob is trying to look at its target
      • “random_stop_interval”: Defines a 1-in-N chance for the mob to stop its current attack, where N equals “random_stop_interval”
      • “attack_once”: Allows the mob to perform this melee attack behavior only once during its lifetime
    • Requirements:
      • The mob must have an item with the “minecraft:kinetic_weapon” item component
      • Must otherwise fulfill the same conditions as other melee attack goals
  • “minecraft:behavior.melee_box_attack”, “minecraft:behavior.delayed_attack”, “minecraft:behavior.melee_attack”, and “minecraft:behavior.stomp_attack” now correctly apply their “path_inner_boundary” field
  • Added two new fields to behavior.float to enable more control of floating and how long the vehicle can be underwater before dismounting its passengers
    • chance_per_tick_to_float: The chance per tick to cause an upward impulse
    • time_under_water_to_dismount_passengers: Time in seconds that a floating vehicles head can be underwater before it causes its passengers to dismount
  • Added a new field to behavior.nearest_attackable_target to enable a probability of target being chosen by behavior.nearest_attackable_target goal
    • target_acquisition_probability: Probability (0.0 to 1.0) that a entity will accept a found target
    • The default value unless specified is 1.0
  • Modified behavior.nearest_attackable_target’s attack_interval field to support a range of value instead
    • range_min: Minimum time in seconds before the entity searches for a attack target, can now be set to other values than just 0
    • range_max: Maximum time in seconds before the entity searches for a attack target
  • Added the “hijack_mount_navigation” field to the “minecraft:behavior.use_kinetic_weapon” AI goal
    • Allows a mob to override its mount’s navigation behavior with the one defined by this goal
    • Requires the mount to be running the “minecraft:behavior.mount_pathing” goal, whose default behavior will be ignored

API

  • Fixed an issue where Dimension.getEntitiesFromRay and Entity.getEntitiesFromViewDirection stopped working for some entities such as minecraft:xp_orb, ground items, minecraft:arrow, minecraft:snowball and minecraft:thrown_trident
  • Released AABB from beta to v2.4.0
  • Released Entity.getAABB from beta to v2.4.0
  • Released ControlScheme from beta to v2.4.0
  • Released Player.setControlScheme from beta to v2.4.0
  • Released Player.getControlScheme from beta to v2.4.0
  • Released GetBlocksStandingOnOptions from beta to v2.4.0
  • Released Entity.getBlockStandingOn from beta to v2.4.0
  • Released Entity.getAllBlocksStandingOn from beta to v2.4.0
  • Added new module @minecraft/server-graphics to change graphics and rendering settings. The current set of APIs are associated with Atmospheric Scattering parameters in Vibrant Visuals
  • The /clone command now fires onBreak beta API event for custom blocks overridden at source destination
  • Moved Loot Table Discovery APIs from beta into 2.4.0
  • Released class BlockRedstoneProducerComponent from beta to v2.4.0
  • Released class InvalidBlockComponentError from beta to v2.4.0
  • Released LiquidSettings from beta to v2.4.0
  • JigsawPlaceOptions
    • Moved liquidSettings?: LiquidSettings from beta to v2.4.0
  • JigsawStructurePlaceOptions
    • Moved liquidSettings?: LiquidSettings from beta to v2.4.0
  • Fixing an issue in new worlds where calling world.getDimension, before a player has spawned, could result in a different spawn location than intended (MCPE-228041)
  • Released BlockComponentBlockBreakEvent from beta to v2.4.0
  • /structure and /place commands and StructureManager API Place function now trigger onBreak beta API event for custom blocks when overridden
  • Moved class Potions from beta to V2.4.0
  • Moved component ItemPotionComponent from beta to V2.4.0
  • Moved class PotionDeliveryType from beta to V2.4.0
  • Moved class PotionEffectType from beta to V2.4.0
  • Moved error InvalidPotionDeliveryTypeError from beta to V2.4.0
  • Moved error InvalidPotionEffectTypeError from beta to V2.4.0
  • Player method clearPropertyOverridesForEntity can now take an Entity or Entity ID as valid arguments in v1.19.0

Biomes

  • Fixed an issue where replacement biomes were not read for client-side chunk generation
  • The client side Molang queries query.entity_biome_has_all_tags, query.entity_biome_has_any_tags, and query.entity_biome_has_any_identifier no longer need the Upcoming Creator Features toggle to be used
  • Fixed biome replacement component (MCPE-229476)

Blocks

  • The “fit_to_frame” option in geometry files can no longer be disabled to render block-items larger than its frame from “format_version” 1.21.130 onward
  • Fixed minecraft:redstone_producer component not properly updating redstone signal for custom blocks on block state change (MCPE-229570)
  • Custom blocks will no longer be overly bright when flying between two inventory slots
  • Moved the Block Precipitations Interactions component from experimental to stable
  • Fixed “ambient_occlusion” field in “minecraft:material_instances” block component
  • “minecraft:collision_box” height is extended to 24 when using a format version of 1.21.130 or higher and the Upcoming Creator Features toggle is enabled
  • “minecraft:collision_box” now supports arrays of boxes when using a format version of 1.21.130 or higher and the Upcoming Creator Features toggle is enabled

Block Rendering

  • Fixed custom blocks rendered in Structure Block GUI

Commands

  • The clone command will no longer clone extra blocks sharing a position with a filtered out block (MCPE-179847)

Components

  • Added is_controlling_passenger_family entity filter to check if the passenger controlling a mount is of the specified family
  • Added has_item_with_component entity filter to check if the entity has equipped an item with the designated component name
  • Updates to minecraft:dash_action
    • Added new field “can_dash_underwater” that allows entities with this component to dash underwater
    • Disabled by default

Gameplay

  • Legacy tree features now respect biome borders (MCPE-168996)

General

  • Fixed disabling of building and mining abilities for players with operator permissions while in Creative mode

Editor

  • Added IListPanePropertyItem to pane API to create lists with text, button, checkbox, and image components
  • Added cubemap controls to the Vibrant Visuals Settings Pane
  • Updated Line Tool’s middle selector to now change to Hermite curve automatically when moving the gizmo
  • Updated Jigsaw Tool to automatically import template pools from loaded behavior packs
  • Fixed a bug that caused Editor scaling to be broken
  • Fixed a bug that prevented Summon tool from spawning custom entities
  • Updated Settings data to be saved across sessions, users need to manually save the Settings
  • Fixed a bug which caused detached gizmo to appear during ruler drag while axis locked
  • Fixed a bug that updated the rotation range to (-360~360) for Summon tool and Brush tool
  • Updated the settings for UI Settings, Tutorial, Keyboard and Graphics mode, users need to manually save these settings
  • Added new IModalDialog API to create scripted dialog windows. They can be registered from IModalDialogManager, and then activated like core dialogs
  • Added new selection tool utility “Quick Move” mode that allows you to easily move the contents of a selection in any one direction. Can also specify a specific destination
  • Added cursor setting to Farm Generator tool; player can place the farm at a position with the target mode
  • Adds a new EditorTagContainer UI component with accompanying modal for adding tags. Swapped theme color mapping for SecondaryActive and SecondaryDefault
  • Added support for Jigsaw blocks to Block Inspector tool
  • Editor will attempt to load jigsaw files from Behavior Packs if they do not conflict with an existing Jigsaw collection name
  • Fixed a bug that the previews position of repeater tool were displaced from the intended position
  • Fixed a bug that prevented the action bar selection menu from closing when pressing the Escape key
  • Moved the brush shapes rotation settings into Rotation sub pane
  • Added Tag management section in the Structure details panel, where tags can be added and removed
  • Fixed a bug that caused the default deleted hotbar to be re-added after re-entering a session
  • Fixed a bug that caused some cursor and brush tooltips to show incorrect key bindings
  • Fixed a bug that auto-save the keyboard binding after reset and reset all to the default
  • Fixed a bug that caused mob effects shortcut to not work in crosshair mode
  • Fixed a bug that caused tutorial message window and dimmer overlay to be misaligned
  • Added shrinkToIcon API property for IButtonPropertyItem creation options
  • Added maxVisibleEntries API property for IDropdownPropertyItem to modify menu size
  • Added enabled API property for IToggleGroupPropertyItemEntry
  • Changed ButtonPropertyItemVariant API enum to ButtonVariant
  • Added Generate Manifest button to Selection Tool
    • Added Deselect and Replace operations to Selection Tool block manifest – allows removing or replacing specific block types from the selection
  • Added “Paint” key bind for pencil in keyboard settings
  • Added filtering options in the Structure panel. Filtering can be by structure display name or Structure tags
  • Added Jigsaw block editing to the block inspector
  • Added bypass validation warning screen to generate jigsaw workflow
  • Added localized message and sub message support for logging APIs
  • Added new Raise and Lower Elevation modes for Terrain Tool
    • Ability to adjust brush falloff
    • Ability to specify how many terrain layers to clone or preserve when raising/lowering
    • Ability to adjust the brush radius
    • Added ability to hold the SHIFT key to lock the brush XZ coordinates in place while painting
  • Added Layout Instance baking (bake individual instances and added to export world and playtest) so that layouts are converted from holograms to actual blocks (Only works for Overworld at the moment)
    • Added Mirror/Rotation to layout templates
    • Added Mirror/Rotation to layout instances
    • Added Mirror and Rotation properties to instance Editor
    • Note: Only Overworld is supported for layout baking at the moment. The Nether and End will be supported in a future update
  • Updated the selection limit for Selection, Paste Preview, Line, Pencil, Brush, Smartfill, Terrain, Workbench, Ruler, Block inspector, Scale, Farm generator tools to match the video render distance setting
  • Updated UI and added multiplayer behaviors in Navigation Pane
    • Stored Locations are shared across all creators in the project and synced for new joiners
    • Implemented edit functionality for name, coordinates, and color of Stored Locations
    • Added select/deselect-all and delete option with confirmation modal; deletion affects all users
    • Introduced a new panel listing all creators in the project with color indicators
    • Added teleportation feature to jump to any other creator
  • Updated Quick Move functionality
    • Changed switching to Quick Move mode binding from M to N
    • Changed default keybinding for moving with the arrow keys with Alt+Shift+arrow
    • Both previous changes remove keybinding conflicts with other Selection mode shortcuts
    • Made it so the gizmo arm won’t disappear after you use it
    • Made the preview more transparent
    • You cannot enter quick move now if there is no selection
    • Fixed a bug where if you went from quick move to a selection (creation) mode that wasn’t the last you used the selection state would get messed up. Now it correctly will clear the selection
  • Fixed structure panel UI performance for projects containing a large number of structures
  • Fixed an issue where selecting certain Vibrant Visual settings caused an error
  • Fixed brush applying masked blocks incorrectly after switching dimensions
  • Fixed unhandled extrude tool error when it’s being applied out of world bounds
  • Fixed a critical crash and several logic issues in the Ruler Tool when using axis locks and editing start/end points
  • Fixed an issue where if you tried to move blocks outside of the bounds of the world, it would freeze the Editor.

Entity Components

  • Added the minecraft:body_rotation_locked_to_vehicle component, that causes the entity’s body to automatically rotate to align with its mounted vehicle
  • Added new field protection_slot to minecraft:burns_in_daylight, which allows specifying an equipment slot that should provide protection from burning in daylight. Valid values are “slot.weapon.offhand”, “slot.armor.head”, “slot.armor.chest”, “slot.armor.legs”, “slot.armor.feet”, and “slot.armor.body”. Leaving this field unspecified will default to having the Head armor slot provide protection from burning in daylight
  • In the “minecraft:ageable” and “minecraft:breedable” components, the “transform_to_item” field has been renamed to “result_item”
    • This field is now defined for each item entry in each component’s “items” list, enabling item-specific transformations on use
  • Added “result_item” field to the items in the “minecraft:healable” and “minecraft:tameable” components
    • This field is defined for each item entry in the “items” list
    • On a successful interaction, the consumed item is replaced with this item
  • Upgraded the minecraft:addrider entity component, allowing it to take an array of riders
    • Description:
      • Allows a rideable mob to spawn with one or more riders
    • Fields:
      • “riders”: Array of riders to add to the entity, with the mandatory field entity_type and optional field spawn_event
    • riders Fields:
      • entity_type: The type of mob to spawn
      • spawn_event: An optional event to spawn with the mob
    • Requirements:
      • The mob must have a minecraft:rideable entity component
      • The array of riders must be no longer than minecraft:rideable has seat_count
  • Added new boolean field can_dehydrate to minecraft:breathable. The field defaults to false to preserve previous breathable behaviour. When set to true, entities that only breathe water will take dehydration damage when out of water
  • Renamed the minecraft:body_rotation_locked_to_vehicle component to minecraft:rotation_locked_to_vehicle
    • The component now aligns both the entity’s body rotation and its overall rotation with that of its mounted vehicle
  • Added a lunge field to the minecraft:exhaustion_values component
    • Defines the amount of exhaustion applied when triggering the lunge enchantment, multiplied by the enchantment level
  • Added the ambient field to minecraft:mob_effect component
    • Causes the effect to render with the ambient effect background
    • Causes the effect to not pulse for timing out

Gameplay

  • Custom items tagged with minecraft::is_shovel now build paths on all blocks the Shovel does

General

  • Added file name to the assertion message for “MERS uniforms is being set more than once” to make future debugging easier

Graphical

  • Fix blocks using “render_method”:”blend” always being semi-transparent
  • Fix blocks using “render_method”:”blend” and “render_method”:”alpha_test” not having shaded sides in the inventory
  • Added cubemap controls to the Editor’s Vibrant Visuals Settings Pane
  • Added the ability to data-drive cubemap lighting and effects in Vibrant Visuals. See the updated Creator portal for more information

    • The new cubemap configuration files should be placed in the cubemaps directory of a resource pack.
    • Example of a cubemap configuration file with path cubemaps/mycubemap.json:
     { "format_version": "1.21.130", "minecraft:cubemap_settings": { "description": { "identifier": "mypack:mycubemap" }, "lighting": { "ambient_light_illuminance": { "0.00000": 4.0, "1.000000": 4.0 }, "sky_light_contribution": 1.0, "directional_light_contribution": 1.0, "affected_by_atmospheric_scattering": true, "affected_by_volumetric_scattering": true } } }
    
    • format_version: Required field containing “1.21.130”
    • minecraft:cubemap_settings: Required field
    • minecraft:cubemap_settings/description/identifier: Required field. If the identifier is equal to minecraft:default_cubemap, it will be used by default in all biomes. Otherwise, the cubemap configuration can be applied to a biome by supplying the same identifier in the respective .client_biome.json file for that biome. Example of a biome configuration file with path biomes/river.client_biome.json:
     { "format_version": "1.21.130", "minecraft:client_biome": { "description": { "identifier": "minecraft:river" }, "components": { "minecraft:cubemap_identifier": { "cubemap_identifier": "mypack:mycubemap" } } } }
    
    • minecraft:cubemap_settings/lighting: Required field. Any fields inside lighting are optional
    • minecraft:cubemap_settings/lighting/ambient_light_illuminance: Contains pairs of numbers, where the first number should be between 0.0 and 1.0 (time of day) and the second number should be between 0.0 and 100000.0 (ambient light). Default value is 5.625 for all times of day
    • minecraft:cubemap_settings/lighting/sky_light_contribution: Contribution of the sky light. It should be between 0.0 and 1.0. Default value is 1.0
    • minecraft:cubemap_settings/lighting/directional_light_contribution: Contribution of the directional light. It should be between 0.0 and 1.0. Default value is 0.0
    • minecraft:cubemap_settings/lighting/affected_by_atmospheric_scattering: Value is a boolean and controls the state of the atmospheric scattering effect applied the cubemap. Default value is false
    • minecraft:cubemap_settings/lighting/affected_by_volumetric_scattering: Value is a boolean and controls the state of the volumetric scattering effect applied the cubemap. Default value is true
  • Fixed black bars appears at the bottom of the screen when launching the game in fullscreen mode (MCPE-227955)
  • Fixed an issue where blocks moved by Pistons are too dark
  • Added Kelp Block to the list of blocks affected by dithering when near the player camera
  • Fixed blocks flashing yellow when pushed with a Piston with Vibrant Visuals enabled
  • Reduced flickering and fixed incorrect reflections on low roughness materials with height maps in Vibrant Visuals
  • Fixed damage particles sometimes rendering as black with vanilla renderer
  • Fixed archaeology items sometimes rendering as nearly black
  • Light absorption in water has been changed from 2 to 1 units, to match Java Edition
  • Updated supported devices for Vibrant Visuals on iOS and Android including additional support for the Adreno 700 series (MCPE-229154)
  • Fixed an issue where Improved Input Latency Response toggle would cause a crash at startup (MCPE-231485 )

Items

  • Fix issue with rendering custom blocks as “flying items” (MCPE-180489)

Item Components

  • Added the minecraft:swing_sounds item component
    • Allows overriding the swing sounds emitted by the user
    • Fields:
      • “attack_miss”: sound played when an attack misses or deals no damage due to invulnerability
      • “attack_hit”: sound played when an attack hits
      • “attack_critical_hit”: sound played when an attack hits and deals critical damage
    • At least one field needs to be specified
  • Added the minecraft:kinetic_weapon item component
    • Description:
      • Allows an item to deal damage and other effects every tick while in use, to all unobstructed targets found in a straight line from the user’s view vector
      • Damage is computed based on both the user’s and target’s velocity projected onto the view vector (via dot product)
      • The more the user and target move toward each other and align with the view vector, the higher the damage
      • After applying “damage_multiplier” and “damage_modifier”, the resulting damage is floored to the nearest lower integer
    • Fields:
      • “delay”: Ticks to wait before applying damage and effects
      • “reach”: Range along the view vector where entities can be hit
      • “hitbox_size”: Extra tolerance on the raycast to detect entities
      • “damage_multiplier”: Multiplies the sum of the projected velocities
      • “damage_modifier”: Adds to the multiplied sum of the projected velocities
      • “damage_conditions”: Conditions that need to be satisfied for damage to be applied
      • “knockback_conditions”: Conditions that need to be satisfied for knockback to be applied
      • “dismount_conditions”: Conditions that need to be satisfied for riders to be dismounted
    • “damage_conditions”, “knockback_conditions” and “dismount_conditions” fields:
      • “max_duration”: Time, in ticks, during which the effect can be applied after “delay” elapses
      • “min_speed”: Minimum user’s speed (projected onto the view vector via a dot product) required for the effect to be applied
      • “min_relative_speed”: Minimum relative speed of the user with respect to the target (projected onto the view vector via a dot product) required for the effect to be applied
      • If omitted, the corresponding effect does not apply
    • Requirements:
      • Requires the “minecraft:use_modifiers” item component on the same item
  • Added the “minecraft:piercing_weapon” item component
    • Description:
      • Allows an item to deal damage to all entities detected in a straight line along the user’s view vector
      • Items with this component cannot destroy blocks, as the attack action always takes priority, regardless of what the user is looking at
    • Fields:
      • “reach”: Range along the view vector where entities can be hit
      • “hitbox_size”: Extra tolerance on the raycast to detect entities
    • Requirements:
  • The “minecraft:cooldown” item component now supports a “type” field
    • Defines the action the cooldown applies to, in a mutually exclusive way, so cooldowns for one action type do not affect the other
    • Values:
      • “use”: puts the item on cooldown when used, preventing further use until it expires, but still allowing attacks, mining, and interaction
      • “attack”: puts the item on cooldown when attacking, preventing further attacks until it expires, but still allowing use, mining, and interaction
    • “use” is the default value, preserving the component’s original behavior
  • Added the creative_reach field to minecraft:kinetic_weapon item component
    • Defines the reach used when the user is in Creative Mode
    • Defaults to reach if unspecified
  • Added the creative_reach field to minecraft:piercing_weapon item component
    • Defines the reach used when the user is in Creative Mode
    • Defaults to reach if unspecified
  • Added the start_sound field to the minecraft:use_modifiers item component
    • Defines the sound to play when starting using the item

Mobs

  • Fixed content warning that incorrectly occurred for format_version field in entity json in versions before 1.8.0
  • Lowered the min_engine_version of the latest zombie_pigman.entity.json slice back to 1.8.0, allowing it to be overridden by existing third-party content (MCPE-229868)

Molang

  • Added four new Molang queries pertaining to the minecraft:on_use_kinetic_damage item component:
    • query.get_kinetic_item_delay, Returns the delay value from the main-hand item’s minecraft:on_use_kinetic_damage component, or 0 if the component is not present
    • query.get_kinetic_item_damage_duration, Returns the damage_duration value from the main-hand item’s minecraft:on_use_kinetic_damage component, or 0 if the component is not present
    • query.get_kinetic_item_knockback_duration, Returns the knockback_duration value from the main-hand item’s minecraft:on_use_kinetic_damage component, or 0 if the component is not present
    • query.get_kinetic_item_dismount_duration, Returns the dismount_duration value from the main-hand item’s minecraft:on_use_kinetic_damage component, or 0 if the component is not present
  • Added “query.kinetic_weapon_delay”, which returns the “delay” value from the main-hand item’s “minecraft:kinetic_weapon” component, or 0 if the component is not present
  • Added “query.kinetic_weapon_damage_duration”, which returns the “max_duration” value of “damage_conditions” from the main-hand item’s “minecraft:kinetic_weapon” component, or 0 if the component is not present
  • Added “query.kinetic_weapon_knockback_duration”, which returns the “max_duration” value of “knockback_conditions” from the main-hand item’s “minecraft:kinetic_weapon” component, or 0 if the component is not present
  • Added “query.kinetic_weapon_dismount_duration”, which returns the “max_duration” value of “dismount_conditions” from the main-hand item’s “minecraft:kinetic_weapon” component, or 0 if the component is not present
  • Added “query.ticks_since_last_kinetic_weapon_hit”, which returns the number of ticks elapsed since the user last hit something while using a kinetic weapon
    • Returns -1.0 if no kinetic weapon is being used or if nothing has been hit yet
    • Hits that occur while the user is unloaded are not counted
  • Added Pack Settings Molang queries
  • query.get_pack_setting(‘ns:slider_name’) the value of a slider
  • query.is_pack_setting_enabled(‘ns:toggle_name’) check if toggle is enabled
  • query.is_pack_setting_selected(‘ns:dropdown_name’, ‘dropdown_option_name’) if a dropdown option is selected

Network Protocol

  • Added ActorFlags::BODY_ROTATION_LOCKED_TO_VEHICLE
  • LevelSoundEventPacket modified: added LevelSoundEvent::SpearAttackHit, LevelSoundEvent::SpearAttackMiss, LevelSoundEvent::WoodenSpearAttackHit and LevelSoundEvent::WoodenSpearAttackMiss
  • ActorEventPacket modified: added ActorEvent::KINETIC_DAMAGE_DEALT
  • Added new Level Sound Event imitate.camel_husk
  • Added new Level Sound Event imitate.parched
  • Renamed ActorFlags::BODY_ROTATION_LOCKED_TO_VEHICLE to ActorFlags::ROTATION_LOCKED_TO_VEHICLE
  • Added Ambient bool field to MobEffectPacket, defines if the effect is considered ambient (like the ones applied by Beacons or Conduits)
  • LevelSoundEventPacket modified: added LevelSoundEvent::SpearUse and LevelSoundEvent::WoodenSpearUse

Particles

  • Fixed a bug that caused incorrect validation errors for particle texture path (MCPE-220351)

Scripting

  • Breakpoints that are checked by MC and considered invalid will appear disabled in VSCode
  • Fix bug causing breakpoints to miss under certain conditions

Structures

  • Prevented a crash when trying to export structures in unsupported platforms
  • Fixed rotation and mirroring of Vine blocks during structure placement

User Interface

  • String multiplication in UI expressions is now limited exclusively to %.<number>s
  • Added resolve_ancestor_scope boolean to view bindings as a way to bind to an ancestor that matches the source_control_name

Experimental Technical Updates

API

  • Debug drawing tech in @minecraft/debug-utilities now supports rendering shapes in different dimensions:
    • Added setLocation(location: minecraftserver.DimensionLocation | minecraftserver.Vector3): void method to DebugShape
    • The location property on DebugShape has been changed to read only (use setLocation above to modify the location)
    • Added dimension readonly property to DebugShape
    • Changed the constructors of all the debug shapes to instead take a variant of Vector3 or DimensionLocation
  • Fixed triggering of PlayerSwingStartAfterEvent to only happen on the start of a swing
  • Fixed issue where onBreak beta API event would not fire if a Piston was the breaking cause
  • Released @minecraft/server version 2.4.0
  • Added @minecraft/server version 2.5.0-beta
  • Debug Drawing
    • Fixed a bug where timeLeft would cause the DebugShape to be removed immediately
    • Fixed a bug where the arrow head of the DebugArrow would look incorrect at certain rotations
  • Fixed issue in preview where world.afterEvents.playerBreakBlock was providing an invalid block position (MCPE-229538)
  • Sends global dynamic property values to the Minecraft debugger’s Live Diagnostics when attached
  • Added EntitySwingSource for providing context of player swings to beta
  • Added PlayerSwingStartAfterEvent.swingSource to beta
  • Added PlayerSwingEventOptions.swingSource to beta
  • Fixed an issue where DebugShape objects were not cleaned up properly after running /reload
  • Fixed an issue where DebugText would not be affected by the scale property
  • World
    • Added property readonly tickingAreaManager: TickingAreaManager to beta
  • Added class TickingAreaManager to beta. This manager is used to add, remove or query temporary ticking areas to a dimension
    • These ticking areas are limited by a fixed amount of ticking chunks per pack independent of the command limits
  • Added interface TickingArea to beta. This provides information about a specific ticking area
  • Added interface TickingAreaOptions to beta. Options to create a ticking area using the TickingAreaManager
  • Added class TickingAreaError to beta
  • Added enum TickingAreaErrorReason to beta
    • Enum for the reason that a TickingAreaError was thrown
  • Added BlockComponentRedstoneUpdateEvent, which can be subscribed by custom block components
  • Added onRedstoneUpdate custom component subscription in beta with the following conditions
    • Block has minecraft:redstone_consumer component, otherwise CONTENT_ERROR is thrown
    • Subscription is not queued if the BlockComponentRedstoneUpdateEvent.powerLevel is less than minecraft:redstone_consumer field min_power Here is an example of a custom component json and the subscription script:
{ "format_version": "1.21.130", "minecraft:block": { "description": { "identifier": "test:custom_block" }, "components": { "minecraft:redstone_consumer": { "min_power": 10, "propogates_power": true }, "test:custom_component": {} } }
}
import { system } from '@minecraft/server-wrapper';
system.beforeEvents.startup.subscribe(init => { init.blockComponentRegistry.registerCustomComponent("test:custom_component", { onRedstoneUpdate: _ => { //insert logic here } });
});

API Infra

  • Modernized CommandOutputPacket serialization
    • Max number of “Output Messages” set max to 100
      • Field “Message Id”, set max size to 512 characters
      • Max number of “Parameters” set to 512
  • Modernized CommandRequestPacket serialization
    • Field “Request ID”, set max size to 39 characters
  • Modernized AvailableCommandsPacket serialization. Added these constraints:
    • Chained Subcommand Data / Name max size set to 512 characters
    • Commands / Name max size set to 512 characters
    • Commands / Description max size set to 1000 characters
    • Commands / Chained Subcommand Indexes max size set to 250 elements
    • Commands / Overloads max size set to 250 elements
    • Constraints / Constraint Indices max size set to 250 elements

Blocks

  • Added component minecraft:support behind the Upcoming Creator Features toggle Example:
"minecraft:support": { "shape": "stair" // "fence" is also valid }
  • Created a new block trait, minecraft:connection, to expose behavior like Fences or Glass Panes from Vanilla where blocks connect to other blocks around them. Using this trait with the example below adds the bool states minecraft:connection_north, minecraft:connection_east, minecraft:connection_south, and minecraft:connection_west. This is only available while the “Upcoming Creator Features” toggle is enabled Example:
{ "format_version": "1.21.130", "minecraft:block": { "description": { "identifier": "test:connection_block", "traits": { "minecraft:connection": { "enabled_states": ["minecraft:cardinal_connections"] } } } }
}
  • One known issue with this is that blocks using minecraft:connection don’t properly decide connections to blocks like Fences, Walls, Iron Bars, Fence Gates, and Glass Panes. Addressing this issue is currently in development
  • Added component minecraft:connection_rule behind the Upcoming Creator Features toggle which allows custom blocks to define whether other blocks with connection behavior – such as fences, walls, bars, and glass panes – can try to create a connection.
  • Added VanillaBlockTag minecraft:has_fence_connections that can be used to identify a custom block as a block that creates connections like a fence; this tag is required to create connections between custom and Vanilla fences. The component and tag can be used along with the minecraft:connection block trait to make a custom fence that creates connections like a Vanilla fence. The following is an example of how they fit into the JSON of a custom fence block:
{ "format_version": "1.21.130", "minecraft:block": { "description": { "identifier": "test:my_fence", "traits": { "minecraft:connection": { "enabled_states": ["minecraft:cardinal_connections"] } } }, "components": { "tag:minecraft:has_fence_connections": {}, "minecraft:connection_rule": { "accepts_connections_from": "only_fences" } } }
}
  • Added new state minecraft:corner_and_cardinal_direction to the minecraft:placement_direction block trait which enables the minecraft:corner with values none, inner_left, inner_right, outer_left, and outer_right to provide similar behavior to how stairs in Vanilla work
    • When this is set, you can use the field blocks_to_corner_with to decide the criteria with an array of block descriptors to determine what blocks to form a corner with
    • The default behavior for this field is to corner with the same block name
    • This all requires the Beta APIs toggle to be enabled on a world and the use_beta_features flag on your block
 "format_version": "1.21.130", "use_beta_features": true, "minecraft:block": { "description": { "identifier": "custom:custom_block", "traits": { "minecraft:placement_position": { "enabled_states": ["minecraft:vertical_half"] "minecraft:placement_direction": { "enabled_states": ["minecraft:corner_and_cardinal_direction"], "blocks_to_corner_with": [{"tags": "q.any_tag('minecraft:cornerable_stairs')"}] } }
  • With the Beta APIs toggle on, Vanilla Stairs have the tag minecraft:cornerable_stairs available, and can corner with custom blocks with the same tag if the block also uses minecraft:cardinal_direction block states
  • Blocks using minecraft:placement_direction Block Trait with the minecraft:corner_and_cardinal_direction had the inner_left/outer_left and inner_right/outer_right states backwards when a block was facing south or west
  • Made blocks that use the minecraft:placement_position block trait with the state minecraft:vertical_half and minecraft:placement_direction with the state minecraft:corner_and_cardinal_direction update the corner state immediately instead of happening a tick later
  • We now will mirror the minecraft:corner block state when used within a structure
  • Added minecraft:redstone_consumer component behind the Upcoming Creator Features experiment. A component describing how a block can consume and potentially propogate a redstone signal
    • Contains optional field min_power which defines the minimum value for incoming signal stregth. If signal strength is greater than or equal to this value then the onRedstoneUpdate event is sent to Scripts. Defaults to 0 meaning event is always emitted
    • Contains optional field propogates_power a Boolean to control whether a signal can pass through this block or not, defaults to false
    • This component is currently not available for block permutations
    • Example:

      { "format_version": "1.21.130", "minecraft:block": { "description": { "identifier": "test:custom_consumer_block" }, "components": { "minecraft:redstone_consumer": { "min_power": 5, "propogates_power": true } } }
      }
      
  • Modified minecraft:material_instances block component
    • Removed redundant experimental field shaded formerly named emissive
    • Same effect can be achieved with existing fields, example below
"minecraft:material_instances" : { "*": { "texture": "my_texture", "render_method": "opaque", "face_dimming": false, "ambient_occlusion", false }
}
  • Added minecraft:leashable block component, which allows custom blocks to receive a lead attachment, including an offset field to change the position of the leash knot. Currently only available with “Upcoming Creator Features” enabled

Editor

  • Initial experimental support for “Prefabs” in the Editor
    • This feature is highly experimental, has some issues, is guaranteed to change and is not yet documented
    • Do not use in production projects
  • Added a “Prefab Template Manager” to help create, edit and delete prefab templates
  • Added a “Prefab Instance Editor” to allow placement of prefabs in the scene, and edit the properties of the instance

Graphical

  • Fixed an error where Marketplace content containing local_lighting.json could spam content errors (MCPE-1498487)
Posted on Leave a comment

JAVA Edition: 1.21.11

New Features

  • Added Nautilus and Zombie Nautilus
  • Added Nautilus Armor
  • Added Spear Weapon
  • Updated advancements to include the Nautilus, the Zombie Nautilus, the Zombie Horse, the Camel Husk, and the Parched
  • Added new graphical options “Texture Filtering” and “Anisotropic Filtering”
  • Added Netherite Horse Armor that can be obtained by upgrading Diamond Horse Armor with a Smithing Table

Nautilus

  • Nautilus is a new neutral aquatic mob
  • Spawns in all ocean biomes
  • Attacks using a Dash attack, if provoked
  • Occasionally attacks Pufferfish within range using the Dash attack
  • Has a Dash skill similar to Camels, used by pressing the Jump button
  • Takes suffocation damage on land
  • Adds the “Breath of the Nautilus” effect to mounted players
  • Nautilus can be bred and tamed using Pufferfish or a Bucket of Pufferfish
  • Despawn naturally, however become persistent when interacted with by a player
  • A Tamed Nautilus:
    • Can be mounted using a Saddle
    • With a Saddle has a roaming restriction of 16 blocks
    • Without a Saddle has a roaming restriction of 32 blocks

Zombie Nautilus

  • Zombie Nautilus is a new underwater mob that spawns with a Drowned rider wielding a Trident
  • Zombie Nautilus is only hostile if ridden by a hostile mob
  • Zombie Nautilus behaves similar to the Nautilus except that it cannot be bred
Coral Zombie Nautilus
  • The Zombie Nautilus has a Coral Zombie Nautilus variant that spawns in the Warm Ocean biome

Nautilus Armor

  • Equippable on the Nautilus and Zombie Nautilus
  • Comes in Copper, Golden, Iron, Diamond and Netherite versions

Parched

  • New Skeleton variant
  • Spawns at light level 0 in Deserts replacing some of the regular Skeletons
  • Does not burn in sunlight
  • Shoots Arrows of Weakness
  • Is immune to Weakness effect
  • Has a slower rate of fire compared to normal Skeletons, similar to Bogged
  • Does not spawn in caves, following the Husk’s spawning rules

Camel Husk

  • New undead Camel variant
  • Spawns a 0 light level in Deserts
  • Does not burn in sunlight
  • Spawns with two riders: A Husk wielding a Spear and a Parched
  • Do not spawn in caves, following Husks spawning rules
  • Is hostile if the rider is a hostile mob
  • Passive without a rider
  • Despawns with other hostile mobs, however becomes persistent when interacted with
  • Favorite food is Rabbit Foot
  • Cannot be bred
  • As a mount they work similar to normal Camels
  • Drops 2-3 Rotten Flesh when killed, with extra 0-1 for each level of Looting

Spear Weapon

  • New weapon that can be crafted in Wood, Stone, Copper, Iron, Gold, Diamond and Netherite versions
  • Each material has different stats for timing, influencing how fast they are to use
  • Has a minimum reach for damage, being too close to a target will yield no damage
  • Has extended maximum reach compared to other tools and weapons
  • Bounces back visually on hit
  • Has two attacks. Jab and Charge
  • Does not cause item interact vibrations
  • Zombies, Husks, Zombified Piglins and Piglins can spawn with the Spear
  • Golden Spear is considered a preferred weapon by Piglins

Jab Attack

  • Quick-press primary action button to use
  • Low damage attack with knockback
  • Cooldown between attacks
  • Wooden Spears have the fastest cooldown; Netherite the slowest
  • Can hit multiple enemies
  • Does not destroy blocks

Charge Attack

  • Press and hold the secondary action button to use
  • Damage is based on Spear material, the player’s view angle, and the velocity of both the player and the target
  • While holding down the button, the attack goes through three stages before returning to idle:
    • Engaged: The Spear can deal damage, knockback, and dismount mounted enemies if the speed is above the required thresholds
    • Tired: Indicated by the Spear rotating to a vertical position and shaking. The Spear can deal damage and knockback (but not dismount) if the speed is above the required thresholds
    • Disengaged: Indicated by the Spear being lowered, pointing downwards. The Spear gives damage but not knockback or dismount if the speed is above the required threshold
  • The Spear’s range when used by mobs is half of that when used by players, but they can deal damage, dismount and knockback at lower speeds than the players
  • Zombies, Husks, Zombified Piglins and Piglins know how to charge with a Spear

Lunge Enchantment

  • Spear exclusive enchantment
  • Only works with the Jab attack
  • When doing a Jab attack with Lunge, it propels the player horizontally in the view direction
  • The view angle needs to be perfectly leveled horizontally to achieve maximum lunge distance
  • Using Lunge has a durability cost of 1 for using Lunge across all Enchantment levels
  • Using Lunge consumes hunger points by exhausting the player, similar to sprinting or jumping
    • Level 1 Lunge consumes 1 hunger point, level 2 consumes 2 hunger points, and level 3 consumes 3 hunger points
    • Lunge can only be used if the player has at least 6 hunger points in their hunger bar
  • Does not work when the player is in water or flying with Elytra

Advancements

  • Added the “Mob Kabob” advancement for spearing 5 enemies with a Charge attack
  • Updated the “How did we get here?” advancement to include the Breath of the Nautilus effect
  • Updated the “Best Friends Forever” advancement to include the Nautilus, Zombie Nautilus, and the Zombie Horse
  • Updated the “The Parrots and the Bats” advancement to include the Nautilus
  • Updated the “Two by Two” advancement to include the Nautilus
  • Updated the “Monster Hunter” advancement to include the Zombie Nautilus, the Zombie Horse, the Camel Husk and the Parched
  • Updated the “A Throwaway Joke”, “Take Aim” and “It Spreads” advancements to include the Nautilus, the Zombie Nautilus, the Zombie Horse, the Camel Husk and the Parched
  • Updated the “Oh Shiny” advancement to include the Golden Spear and Golden Nautilus Armor

Texture Filtering

  • New option in Video Settings
  • Controls the method used to sample textures when they are viewed at an angle or from a distance
  • Available values are “None”, “RGSS”, and “Anisotropic”
  • The default depends on your graphics preset and hardware
  • “RGSS” (Rotated Grid Super Sampling) is a shader-based filtering method that improves texture clarity at a moderate performance cost
    • This is available on all hardware
  • “Anisotropic” is a hardware-based filtering method that provides the best texture clarity
    • The maximum anisotropy may be “2x”, “4x”, and “8x”, controllable by a separate slider
    • If your hardware does not support it, Anisotropic Filtering will do nothing
    • This significantly impacts video memory usage (especially combined with a high mipmap count)

Changes

  • Zombies, Husks, Piglins and Zombified Piglins can now hold Spears
  • Piglins now consider Golden Spears as one of the items they like
  • Parrots can now mimic the sounds of Zombie Nautilus, Zombie Horse, Camel Husk and Parched
  • Items will no longer “bob” whenever their durability changes, such as when losing durability from an attack, or repaired by Mending
  • Some changes were made to debug renderers
  • Graphics modes “Fast”, “Fancy”, and “Fabulous!” have been replaced with graphics presets with the same names
  • Cloud movement is now the same for all players on a server
  • Netherite Armor points have been increased for the Body slot from 11 to 19
  • All blocks in the world now have mipmaps applied if enabled in video settings
    • Blocks that did not have mipmaps before, such as different vines, rails, folliage (apart from leaves) and more should look better from higher distances
  • Client FPS is expected to be higher for most players
  • Underwater biome fog color and fog distance is now blended based on the player’s position between biomes, similarly to regular biome fog and sky colors
  • Environmental Fog in the Nether is no longer dependent on the render distance setting, and will consistently be applied from 10 to 96 blocks
  • Horses, Mules, Donkeys, and Camels no longer sink in water while ridden by a player
  • Chunks now fade in instead of appearing out of nowhere, with the fade-in time adjustable through Video Settings
  • Bats no longer spawn more frequently and in higher light levels between October 20 and November 3
  • The color of the sky during sunrises and sunsets is now affected by rain and thunder
  • Horses, Mules, Donkeys, Camels, Zombie Horses and Camel Husks will not panic if controlled by Mobs
  • Spawn Eggs have been reorganized into groups in the Creative Inventory
  • Mobs no longer spawn during chunk generation when the minecraft:spawn_mobs game rule is set to false
  • When the “See-Through Leaves” video setting is disabled, the gaps between leaves are now dark green instead of black
  • Turning the “See-Through Leaves” video setting off now gives a bigger performance boost than before
  • Added splash text “One does not simply walk to the Far Lands”

Developer’s Note: This statement was proven false on October 4, 2025.

  • Tamed horses no longer run into cacti or sweet berry bushes

Zombie Horse

  • Zombie Horses now spawn naturally
  • Zombie Horses spawn in darkness, and burn in sunlight like other undead mobs
  • Zombie Horses count towards the hostile mob cap and spawn with other hostile mobs
  • Zombie Horses do not display any hostile behavior towards players. Their hostility resides solely in their Zombie rider
  • Zombie Horses can be leashed when its mob jockey is removed
  • Zombie Horses despawn like other hostile mobs
    • However, they become persistent when interacted with by a player
  • Zombie Horses can be tamed in the same fashion as regular Horses, and can then be mounted and controlled by a player
  • Zombie Horses can be healed and tempted using Red Mushrooms
  • Tamed Zombie Horses can be equipped with a Saddle and Horse Armor
  • Horse Armor protects Zombie Horses from sunlight damage
  • Zombie Horses have 25 health points (12.5 hearts) of health
  • Zombie Horses have variable movement speed and jump strength, determined when they spawn
  • Zombie Horses drops 2-3 Rotten Flesh when killed, with extra 0-1 for each level of Looting
  • Zombies riding Zombie Horses now have a chance of dropping a Red Mushroom on death

Mob Spawning

  • Zombie Horses now has a chance to spawn in plains and savanna biome types, with a zombie rider holding an iron spear

World Generation

  • Added various spears to various loot chests around the world
    • Iron Spears can be found in Buried Treasure chests
    • Copper and Iron Spears can be found in Weaponsmith chests in villages
    • Stone Spears can be found in Ocean Ruin chests
    • Diamond Spears can be found in Bastion Remnant and End City chests
  • Copper, Iron, Golden, and Diamond Nautilus Armor now have a chance to be found in the Chests for the following Structures:
    • Buried Treasure
    • Ocean Ruins
    • Shipwreck

Status Effects

  • Added Breath of the Nautilus effect
    • Effect that affects mounted players
    • Pauses player oxygen consumption (but does not replenish oxygen)

Minor Tweaks to Blocks, Items and Entities

Items

  • Spawn Eggs are now sorted thematically in the Creative Inventory, according to the following categories:
    • Overworld
      • Farm Animals
      • Mounts
      • Pets
      • Wild Animals
      • Aquatic
      • Miscellaneous
      • Golems
      • Villagers
      • Undead
      • Spiders
      • Monsters
      • Illagers
    • Nether
    • The End

Sounds

  • Anvil destroy, land, place and use sounds now play at a slightly lower volume

Accessibility

  • Keys used to access debug features can now be rebound
    • It is part of a new Debug category in the Key Binds screen
    • The F3 + Q keybind to display a debug help message in chat has been removed
  • The debug modifier key can be bound separately from the debug overlay key
  • The key to toggle GUI can now be rebound
  • The key to toggle spectator shader effects, such as when spectating an enderman, can now be rebound

Input

Several uses of the cmd key on Mac have been rebound to ctrl:

  • The input modfier to drop all items
  • The input modfier to include all the data when picking a block
  • The input modfier to change GUI scale in the Video Settings screen
  • Stopping the recipe book from cycling through variations of items

Performance Improvements

Debug Renderer Changes

  • Same as before, do not treat debug renderers as supported features, they are there only to aid with development
  • More debug renderers are now available through the Debug Settings screen
  • Some existing renderers were improved
  • The performance of debug renderers has been significantly improved

Graphics Presets

  • Settings on the Video Settings screen have been reordered and split into 3 sections: “Display”, “Quality & Performance”, and “Preferences”
  • The following settings that were duplicating accessibility settings have been removed from the Video Settings screen:
    • “View Bobbing”
    • “Glint Speed”
    • “Glint Strength”
    • “FOV Effects”
    • “Distortion Effects”
  • Tweaks that were previously hidden behind the “Graphics” setting have been split out to be configurable independently:
    • “See-Through Leaves”
    • “Show Vignette”
    • “Weather Effect Radius” configures the distance in blocks within which rain and snow are visible
    • “Improved Transparency” resolves some of the transparent geometry rendering issues at a significant GPU cost, previously was hidden behind “Fabulous!”
  • A new “Preset” slider was added to the top of the “Quality & Performance” section
    • Presets, as you would expect based on gaming industry standard, control most of the “Quality & Performance” settings at once, not only the ones that were previously hidden behind the “Graphics” setting
    • Available presets are “Fast”, “Fancy”, “Fabulous!” and “Custom”
    • The default preset is “Fancy” for new players
    • But for players who are upgrading to this version the preset will be set to “Custom” to preserve your current configuration

UI

  • Menu sliders will now “stick” to the closest available value when you release them after dragging with a mouse
  • When using keyboard to change slider values, arrow keys will now move the slider to the next available value, not by one pixel as before
  • The inF3 button in the Debug Option screen has been renamed to inOverlay
  • The Single Biome Customization screen now has a search box
  • The language selection screen now has a search box to filter languages
  • Renamed the “Show Music Toast” option to “Music Toast”
    • Added a third state to the “Music Toast” option, allowing it to only be shown in the pause menu

Technical Changes

  • The Data Pack version is now 94.1
  • The Resource Pack version is now 75.0
  • The Minecraft Server Management Protocol version is now 2.0.0
  • Added ClientFps JFR event
  • Experience packets that do not change the player’s experience progress or level are no longer sent by the server
  • Added support for KQueue on OSX to improve network connection performance

Minecraft Server Management Protocol Version 2.0.0

  • Added a new notification server/activity
    • Indicates that a network connection to the server has been initiated
    • Rate limited to 1 notification per 30 seconds
  • Enable authentication from web browsers
    • Authenticate by passing the token in Sec-WebSocket-Protocol header when opening the WebSocket connection
      • Example: Sec-WebSocket-Protocol: minecraft-v1, <token>
    • Requests authenticating this way are subject to Origin header checks. This requires configuration of allowed origins on the server side using management-server-allowed-origins. The default value is empty, meaning Sec-Websocket-Protocol authentication is effectively disabled
  • In the typed_game_rule and untyped_game_rule schemas, the type of the value field has been changed from string to take either a boolean or an integer
    • Also, it now uses the game rule resource location as the key

Data Pack Versions 89.0 through 94.1

  • Added stopwatch command for keeping track of real time
  • Certain visual and gameplay effects can now be controlled by Environment Attributes
  • World Border interpolation is now dependent on game ticks instead of real time
    • This means the World Border will no longer move when the game is paused
    • It will also respect any changes made by the /tick command
  • Changed loot function filtered to allow running modification when predicate fails
  • Added discard loot function
  • Added new Coral Zombie Nautilus mob variant
    • The Zombie Nautilus variants can be data-driven
  • Item textures were split out of the blocks atlas into a separate new items atlas
    • It means that the commands that were referencing the blocks atlas for item textures now need to reference the items atlas instead

Zombie Nautilus Variants

  • Zombie Nautilus variants can be data-driven by adding entries to data/<namespace>/zombie_nautilus_variant/<id>.json
  • This feature is experimental
  • Fields in file:
    • model – one of: normalwarm
    • asset_id – namespaced id for this variant asset, resolves to assets/<namespace>/textures/<path>.png
    • spawn_conditions – a uniform variant selection rule explained below

Spawn conditions

minecraft:biome
  • Checks if entity is spawning in specific biomes
  • Fields:
    • biomes – single entry, list or a tag describing biomes
minecraft:moon_brightness
  • Checks if current moon brightness is within certain range
  • Fields:
    • range – floating point range (a single number or an object like {“min”: 1, “max”: 2})
minecraft:structures
  • Checks if entity is spawning in specific structures
  • Fields:
    • structures – single entry, list or a tag describing structures

Commands

  • Resource suggestions now show results in any namespace instead of just within minecraft

Added stopwatch

  • New command that allows the creation of a Stopwatch that keeps track of real time
  • Stopwatches do not depend on game ticks
  • They only run when the server/world is running, even when paused

Syntax:

  • stopwatch create <id> – creates a Stopwatch with the given namespaced ID
  • stopwatch query <id> [<scale>] – shows the elapsed time of the given Stopwatch in seconds and returns it scaled by the given value and truncated.
    • Default scale: 1
  • stopwatch restart <id> – restarts the given Stopwatch
  • stopwatch remove <id> – removes the given Stopwatch

Developer’s NoteThis command is added to replace the need of using world borders to keep track of real time. The intent is to change the world border to be dependent on game ticks in a future snapshot. If you’ve relied on this way of measuring the passage of real time before, please switch to using the new command and let us know if anything doesn’t work as intended. Thank you!

Changes to execute

  • Added new syntax /execute if|unless stopwatch <id> <range>
  • Allows to compare the elapsed time of a given Stopwatch with a floating point value range
    • The Stopwatch value is measured in seconds and has an accuracy of at most a millisecond
    • Example: /execute if stopwatch foo:bar ..10 run say Stopwatch foo:bar has not reached 10 seconds yet

Changes to worldborder

  • The time arguments now specify ticks by default, but can also specify seconds or in-game days using an s or d suffix

Game Rules

Game rules have been moved into a registry. With that, all game rules have been renamed from their previous camel case names to resource locations in snake case.

Additionally, the following game rules have been further renamed:

  • announceAdvancements -> minecraft:show_advancement_messages
  • commandBlocksEnabled -> minecraft:command_blocks_work
  • command_modification_block_limit -> minecraft:max_block_modifications
  • disableElytraMovementCheck -> minecraft:elytra_movement_check
    • The value is inverted accordingly in places that use the resource location
  • disablePlayerMovementCheck -> minecraft:player_movement_check
    • The value is inverted accordingly in places that use the resource location
  • disableRaids -> minecraft:raids
    • The value is inverted accordingly in places that use the resource location
  • doDaylightCycle -> minecraft:advance_time
  • doEntityDrops -> minecraft:entity_drops
  • doImmediateRespawn -> minecraft:immediate_respawn
  • doInsomnia -> minecraft:spawn_phantoms
  • doLimitedCrafting -> minecraft:limited_crafting
  • doMobLoot -> minecraft:mob_drops
  • doMobSpawning -> minecraft:spawn_mobs
  • doPatrolSpawning -> minecraft:spawn_patrols
  • doTileDrops -> minecraft:block_drops
  • doTraderSpawning -> minecraft:spawn_wandering_traders
  • doVinesSpread -> minecraft:spread_vines
  • doWardenSpawning -> minecraft:spawn_wardens
  • doWeatherCycle -> minecraft:advance_weather
  • maxCommandChainLength -> minecraft:max_command_sequence_length
  • maxCommandForkCount -> minecraft:max_command_forks
  • naturalRegeneration -> minecraft:natural_health_regeneration
  • snowAccumulationHeight -> minecraft:max_snow_accumulation_height
  • spawnRadius -> minecraft:respawn_radius
  • spawnerBlocksEnabled -> minecraft:spawner_blocks_work

Limits

Some game rules that previously did not have a limited value range now do:

  • minecraft:max_block_modifications: Minimum 1
  • minecraft:max_command_forks: Minimum 1
  • minecraft:max_command_sequence_length: Minimum 0
  • minecraft:max_entity_cramming: Minimum 0
  • minecraft:max_snow_accumulation_height: Minimum 0, maximum: 8
  • minecraft:players_nether_portal_creative_delay: Minimum 0
  • minecraft:players_nether_portal_default_delay: Minimum 0
  • minecraft:players_sleeping_percentage: Minimum 0
  • minecraft:random_tick_speed: Minimum 0
  • minecraft:respawn_radius: Minimum 0

Added minecraft:fire_spread_radius_around_player

  • Controls the maximum distance in blocks that fire can spread around a player
    • This replaces the previous doFireTick and allowFireTicksAwayFromPlayer game rules, which have now been removed
    • Setting it to 0 will disable fire spreading
    • Setting it to -1 will allow fire spreading without players around
    • Limit: Minimum -1

Game Tests

In the game_rules test environment the keys bool_rule and int_rule have been replaced with a single key rules. It is a map from game rules resource locations to the game rules value. The value type is either integer or boolean depending on the game rule.

Timelines

Timelines are a new concept defined in data packs under the timeline registry (i.e. found under data/<namespace>/timeline/<id>.json).

Timelines specify game behavior based on the absolute day time (that which is set by /time set). Timelines optionally can specify a period over which they will be repeated.

Primarily, Timelines are able to modify game behavior or visuals by applying Environment Attribute modifiers.

Format: object with fields

  • period_ticks: optional integer, defines the duration in ticks over which the timeline will repeat
    • If not specified, the timeline will not repeat
  • tracks: optional map between Environment Attribute IDs and a corresponding Environment Attribute Track object
    • See the section on Environment Attributes below for details

Timelines by default have no effect unless they are included by a dimension – see the Dimension Types section below.

Environment Attributes

Environment Attributes provide a data-driven way to control a variety of visual and gameplay systems.

Each Environment Attribute controls a specific visual or gameplay effect: for example, minecraft:visual/sky_color controls the color of the sky, and minecraft:gameplay/water_evaporates controls whether water can be placed at a given location.

Developer’s Note: This system and many of the introduced attributes should be considered very experimental, and may still change significantly in coming snapshots and releases. In the meantime, we would as always love to hear any feedback or suggestions you may have!

Sources

Environment Attribute values can be provided by the following Environment Attribute sources (in order of low to high priority):

  • Dimensions
  • Biomes
  • Timelines
  • Weather (not data-driven)

While Biomes act as a source to modify an attribute by position, Timelines can modify an attribute based on time.

The “effective” value of the Environment Attribute (i.e. what will actually show up in game) will be some combination of the values provided by each source according to their priority.

For example, in the following scenario:

  • The overworld dimension provides sky_color = #00ff00 (green)
  • The plains biome provides sky_color = #ff0000 (red)

When the player is in the plains biome, they will see the red sky_color, while anywhere else in the overworld they will see green.

When an Environment Attribute source provides an Environment Attribute, it can:

  • Override the value, such as the plains biome overriding the overworld‘s sky_color in the above scenario
  • Apply a modifier to a previous value (see section on Modifiers below)

Modifiers

As described in the above example, an Environment Attribute source may simply override the value of a particular attribute. However, it is sometimes also desirable to rather apply a modifier to a value provided by a source with lower priority.

For example, in the following scenario:

  • The overworld dimension provides water_fog_end_distance = 96.0
  • The plains biome modifies water_fog_end_distance with a multiply modifier of 0.85

When in the plains biome, the water_fog_end_distance will be resolved to 96.0*0.85 = 81.6, while in any other Overworld biome, it will resolve to 96.0.

The kinds of modifiers available depends on the type of Environment Attribute. The most basic modifier, supported by every Environment Attribute, is the override modifier. This behaves purely as an override of the preceding value. If not specified by an Environment Attribute source, the modifier will always be assumed to be override.

Full descriptions of the available modifiers and their behaviors can be found in the Common Modifiers section below.

Interpolation

While modifiers describe how a value provided by one source is applied on the value from a preceding source, interpolation describes the combination of values within a source. Only some Environment Attributes support interpolation. This allows for the smooth transition between two or more values, such as when moving between two biomes.

Between multiple Biomes, interpolation is performed on values from a source after modifiers have been applied. Within a Timeline, interpolation is performed on the modifier arguments before they get applied.

Biomes

For example, in the following scenario:

  • The plains biome provides sky_color = #ff0000 (red)
  • The desert biome provides sky_color = #ffff00 (yellow)

sky_color is one such attribute that will transition smoothly based on position: for example, in the above scenario, as a player moves from a plains to a desert biome, the sky color will gradually shift from red to yellow. Other attributes, such as water_evaporates, represent discrete values and will not be smoothly transitioned – only the biome exactly at a subject position will be considered.

Smooth transitions between biomes are based on the biomes within an 8 block radius of the camera. Biomes that occupy a larger portion of that radius and are closer to the camera will have a stronger influence on the final interpolated value.

Timelines

Timelines can define Attribute Tracks – these specify how a modifier for a particular Environment Attribute changes over time by defining keyframes. Depending on the attribute, interpolation may be used between each keyframe. If interpolation is not used, the previous keyframe value will always be selected.

For example, a Timeline with a period of 24000 might be set up as following:

  • At time = 0, the timeline provides sky_color = #ff0000 (red)
  • At time = 1000, the timeline provides sky_color = #ff0000 (red)
  • At time = 6000, the timeline provides sky_color = #ff00ff (magenta)

Between time = 0 and time = 1000, the sky color will be red. Between 1000 and 6000, it will shift from red to magenta. Then, from 6000 all the way until the timeline repeats and reaches time = 0 again, the color will slowly shift back to red.

Note: unlike biomes, if a Timeline uses a modifier instead of an override, interpolation is applied to the modifier arguments rather than the final modified values.

Environment Attribute Map

Dimension Type and Biome definitions contain a new attributes field, enabling them to define Environment Attributes.

This map generally takes the form of an object mapping between Environment Attribute IDs and their corresponding values, for example:

"attributes": { "minecraft:visual/fog_color": "#ffaa00", "minecraft:gameplay/water_evaporates": true
}

Values defined as above will always be assumed to use the override modifier.

The value object can however be expanded in order to express different modifiers, in the format of an object with the following fields:

  • modifier: optional string modifier ID, dependent on the Attribute Type (see the Common Modifiers section below)
    • Default: override
  • argument: the modifier argument (format dependent on the chosen modifier)
    • How the argument is used also depends on the type of modifier

For example, the following definition describes multiplying water_fog_end_distance by 85%:

"attributes": { "minecraft:visual/water_fog_end_distance": { "modifier": "multiply", "argument": 0.85 }
}

Attribute Track

An Attribute Track specified within a Timeline takes the format of an object with the following fields:

  • ease – optional Easing Type (see below), used to ease the interpolaton of the value between keyframes
    • Default: linear
    • If the target attribute does not support interpolation, the easing mode will have no effect
  • keyframes – list of keyframe objects, must be ordered by the ticks field:
    • ticks – integer between 0 and period_ticks (if specified), defines the tick (within the period) at which this keyframe’s value will be active
    • value – the modifier argument (format dependent on the chosen modifier)
      • If no modifier is specified (or override is used), the type of this field is the same as the Environment Attribute itself
      • How this value is used depends on the type of modifier
    • Note: at most two keyframes can be placed on the same tick, creating an immediate transition
  • modifier – optional string modifier ID, dependent on the Attribute Type (see the Common Modifiers section below)
    • Default: override

For example, the following Timeline has a period of 24000, and has an attribute track that modifies only minecraft:gameplay/cat_waking_up_gift_chance. Because the easing is constant, between tick 362 and 23667 the value is 0.0, while between tick 23667 and 362 it is 0.7.

Like other Environment Attribute sources, the specified value is used as the argument to the specified modifier. This is then applied on top of sources with a lower priority. In this case the modifier is maximum, so this timeline will only ever increase the value of cat_waking_up_gift_chance to the value specified in the track.

{ "period_ticks": 24000, "tracks": { "minecraft:gameplay/cat_waking_up_gift_chance": { "ease": "constant", "modifier": "maximum", "keyframes": [ { "ticks": 362, "value": 0.0 }, { "ticks": 23667, "value": 0.7 } ] } }
}
Easing Types

Easing Types control the interpolation between two keyframes by applying a curve. The following built-in Easing Types are provided:

  • constant – always selects the previous keyframe
  • linear
  • in_back
  • in_bounce
  • in_circ
  • in_cubic
  • in_elastic
  • in_expo
  • in_quad
  • in_quart
  • in_quint
  • in_sine
  • in_out_back
  • in_out_bounce
  • in_out_circ
  • in_out_cubic
  • in_out_elastic
  • in_out_expo
  • in_out_quad
  • in_out_quart
  • in_out_quint
  • in_out_sine
  • out_back
  • out_bounce
  • out_circ
  • out_cubic
  • out_elastic
  • out_expo
  • out_quad
  • out_quart
  • out_quint
  • out_sine

An Easing Type may also be specified with a Cubic BĂ©zier in the format: { “cubic_bezier”: [ x1, y1, x2, y2 ] }

  • x1: float between 0 and 1, x-coordinate of the first control point
  • y1: float, y-coordinate of the first control point
  • x2: float between 0 and 1, x-coordinate of the second control point
  • y2: float, y-coordinate of the second control point

Developer’s NoteTo play around with and visualize easings, easings.net and cubic-bezier.com are great references!

Common Data Types

The following data types are reused in various parts of the Environment Attributes system and will be referenced in sections below.

RGB Color

Format can be one of the following:

  • A hex color RGB string, in the form #rrggbb
  • A float array with 3 components, between 0 and 1, in the form [r, g, b]
  • An integer in packed RGB form
ARGB Color

Format can be one of the following:

  • A hex color ARGB string, in the form #aarrggbb
  • A float array with 4 components, between 0 and 1, in the form [a, r, g, b]
  • An integer in packed ARGB form
Particle Options

A full definition of a particle, including any type-specific properties (as in the /particle command).

For example:

{ "type": "minecraft:block_crumble", "block_state": { "Name": "minecraft:dirt" }
}
Mob Activity

A string ID from the minecraft:activity built-in registry. One of:

  • minecraft:core
  • minecraft:idle
  • minecraft:work
  • minecraft:play
  • minecraft:rest
  • minecraft:meet
  • minecraft:panic
  • minecraft:raid
  • minecraft:pre_raid
  • minecraft:hide
  • minecraft:fight
  • minecraft:celebrate
  • minecraft:admire_item
  • minecraft:avoid
  • minecraft:ride
  • minecraft:play_dead
  • minecraft:long_jump
  • minecraft:ram
  • minecraft:tongue
  • minecraft:swim
  • minecraft:lay_spawn
  • minecraft:sniff
  • minecraft:investigate
  • minecraft:roar
  • minecraft:emerge
  • minecraft:dig

Common Modifiers

Every Environment Attribute has a specific value type, which describes how values must be defined as well as what modifiers are available and how they are interpolated. Some are very specific, while others are reused across many attributes.

Although this is not an exhaustive list, the following Attribute Types are used commonly across many Environment Attributes:

Modifiers on Boolean Values

Argument format: boolean

  • override
  • and
  • nand
  • or
  • nor
  • xor
  • xnor
Modifiers on Float Values

Argument format: float

  • override
  • add
  • subtract
  • multiply
  • minimum
  • maximum
  • alpha_blend
    • Modifies subject according to: result = lerp(alpha, subject, value)
    • Argument format: object with fields:
      • value: float to blend towards
      • alpha: float between 0 and 1
Modifiers on RGB Color Values
  • override
    • Argument format: RGB Color
  • add – component-wise additive color blending
    • Argument format: RGB Color
  • subtract – component-wise subtractive color blending
    • Argument format: RGB Color
  • multiply – component-wise multiplicative color blending
    • Argument format: RGB Color
    • If specified, the alpha component is multiplied independently just like the other color channels
  • alpha_blend – traditional alpha blending that might be seen in image editing software
    • Argument format: ARGB Color
    • When the argument alpha is 1, it will behave as an override with no blending
  • blend_to_gray – modifies a color by taking its grayscale form, applying a brightness modifier, and mixing with this using some factor
    • Where gray = brightness * (0.3 * red + 0.59 * green + 0.11 * blue)result = lerp(factor, subject, [gray, gray, gray])
    • Argument format: object with fields:
      • brightness: float between 0 and 1, a multiplier to apply to the grayscale value
      • factor: float between 0 and 1, the factor to mix with
Modifiers on ARGB Color Values
  • override
    • Argument format: ARGB Color
  • add – component-wise additive color blending
    • Argument format: RGB Color
  • subtract – component-wise subtractive color blending
    • Argument format: RGB Color
  • multiply – component-wise multiplicative color blending
    • Argument format: RGB or ARGB Color
    • If specified, the alpha component is multiplied independently just like the other color channels
  • alpha_blend – traditional alpha blending that might be seen in image editing software
    • Argument format: ARGB Color
    • When the argument alpha is 1, it will behave as an override with no blending
  • blend_to_gray – same as for RGB Color

New Environment Attributes

minecraft:visual/fog_color

The color of fog (when the camera is not submerged in another substance).

  • Value type: RGB color
  • Default value: #000000
  • Modifiers: RGB Color Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
  • Replaces Biome effects.fog_color field
minecraft:visual/fog_start_distance

The distance in blocks from the camera at which fog starts to have an effect (when the camera is not submerged in another substance). If negative, the fog will start out with density as if it had started that many blocks behind the camera.

  • Value type: float
  • Default value: 0.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
minecraft:visual/fog_end_distance

The distance in blocks from the camera at which fog reaches its maximum density (when the camera is not submerged in another substance).

  • Value type: non-negative float
  • Default value: 1024.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
minecraft:visual/sky_fog_end_distance

The distance in blocks from the camera at which the fog that affects the sky reaches its maximum density (when the camera is not submerged in another substance). Only visible with the overworld skybox type.

Note: this value is restricted by the Render Distance option.

  • Value type: non-negative float
  • Default value: 512.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
minecraft:visual/cloud_fog_end_distance

The distance in blocks from the camera at which the fog that affects clouds reaches its maximum density (when the camera is not submerged in another substance).

Note: this value is restricted by the Cloud Distance option.

  • Value type: non-negative float
  • Default value: 2048.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
minecraft:visual/water_fog_color

The color of fog when submerged in water.

  • Value type: RGB color
  • Default value: #050533
  • Modifiers: RGB Color Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
  • Replaces Biome effects.water_fog_color field
minecraft:visual/water_fog_start_distance

The distance in blocks from the camera at which underwater fog starts to have an effect. If negative, the fog will start out with density as if it had started that many blocks behind the camera.

  • Value type: float
  • Default value: -8.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
minecraft:visual/water_fog_end_distance

The distance in blocks from the camera at which underwater fog reaches its maximum density.

Note: the final value is also modified by how long the player has been underwater.

  • Value type: non-negative float
  • Default value: 96.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
  • Replaces #has_closer_water_fog Biome Tag
minecraft:visual/sky_color

The color of the sky. This color is only visible for the overworld sky. Only visible with the overworld skybox type.

  • Value type: RGB color
  • Default value: #000000
  • Modifiers: RGB Color Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
  • Replaces Biome effects.sky_color field
minecraft:visual/cloud_color

The color of the clouds. If fully transparent, clouds are entirely disabled and Happy Ghasts will not regenerate health faster when at cloud height.

  • Value type: ARGB color
  • Default value: #00000000
  • Modifiers: ARGB Color Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position for rendering, or at the position of a Happy Ghast for regeneration
minecraft:visual/cloud_height

The height at which all clouds appear.

  • Value type: float
  • Default value: 192.33
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position for rendering, or at the position of a Happy Ghast for regeneration
  • Replaces Dimension Type cloud_height field
minecraft:visual/default_dripstone_particle

The default particle to be dripped from Dripstone blocks when no fluid is placed above.

  • Value type: Particle Options
  • Default value: {type:”minecraft:dripping_dripstone_water”}
  • Modifiers: override
  • Interpolated: no
  • Resolved at the position of the Dripstone block
  • Replaces Dimension Type ultrawarm field
minecraft:visual/ambient_particles

Controls ambient particles that randomly spawn around the camera.

  • Value type: list of objects with fields
    • particle: Particle Options to spawn
    • probability: float between 0 and 1, the probability to spawn the particle in an empty space when randomly ticked
  • Default value: []
  • Modifiers: override
  • Interpolated: no
  • Resolved at the camera’s position
  • Replaces Biome effects.particle field
minecraft:visual/sunrise_sunset_color

Controls the color and intensity of the sunrise and sunset effect. If fully transparent, no sunrise or sunset will be rendered. Only visible with the overworld skybox type.

  • Value type: ARGB Color
  • Default value: “#00000000”
  • Modifiers: ARGB Color Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
minecraft:visual/sun_angle

The angle in degrees of the sun, clockwise from east to west, with 0 being directly up.
Only visible with the overworld skybox type.

  • Value type: float, angle in degrees
  • Default value: 0.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
minecraft:visual/moon_angle

The angle in degrees of the moon, clockwise from east to west, with 0 being directly up. Only visible with the overworld skybox type.

  • Value type: float, angle in degrees
  • Default value: 0.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
minecraft:visual/star_angle

The angle in degrees of the stars, clockwise from east to west, with 0 being directly up. Only visible with the overworld skybox type.

  • Value type: float, angle in degrees
  • Default value: 0.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
minecraft:visual/moon_phase

The phase of the moon. Only visible with the overworld skybox type.

  • Value type: string id, one of:
    • full_moon
    • waning_gibbous
    • third_quarter
    • waning_crescent
    • new_moon
    • waxing_crescent
    • first_quarter
    • waxing_gibbous
  • Default value: “full_moon”
  • Modifiers: override
  • Interpolated: no
  • Resolved at the camera’s position
minecraft:visual/star_brightness

The brightness of the stars in the sky, where 0.5 is the normal brightness during the night and 0 is fully hidden. Only visible with the overworld skybox type.

  • Value type: float between 0 and 1
  • Default value: 0.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
minecraft:visual/sky_light_color

The visual color of sky light. For blocks with a sky light level of 0 (or minecraft:visual/sky_light_factor is 0), this will have no effect. This is the value passed to the lightmap.fsh shader as SkyLightColor.

  • Value type: RGB Color
  • Default value: “#ffffff”
  • Modifiers: RGB Color Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
minecraft:visual/sky_light_factor

The visual brightness of sky light. minecraft:visual/sky_light_color is multiplied by this value. This is the value passed to the lightmap.fsh shader as SkyFactor.

The corresponding gameplay effect is controlled entirely by minecraft:gameplay/sky_light_level.

  • Value type: float
  • Default value: 1.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the camera’s position
minecraft:audio/background_music

Controls how and which background music is played.

  • Value type: object with fields
    • default: optional object with fields:
      • sound: Sound Event to play
      • min_delay: int, minimum delay in ticks between tracks
      • max_delay: int, maximum delay in ticks between tracks
      • replace_current_music: optional boolean, whether this track can replace whatever is currently playing
        • Default: false
      • If not defined and not overridden, no music will start playing while this attribute is active
    • underwater: optional object with fields in the same format as default – if present and the player is underwater, will override default
    • creative: optional object with fields in the same format as default – if present and the player is in Creative Mode, will override default
  • Default value: {}
  • Modifiers: override
  • Interpolated: no
  • Resolved at the camera’s position
  • Replaces Biome effects.music field
minecraft:audio/music_volume

The volume at which music should play. Any music playing will fade over time to this value.

  • Value type: float between 0 and 1
  • Default value: 1.0
  • Modifiers: Float Modifiers
  • Interpolated: no
  • Resolved at the camera’s position
  • Replaces Biome effects.music_volume field
minecraft:audio/ambient_sounds

Controls which ambient sounds are played around the camera, and when.

  • Value type: object with fields
    • loop: optional Sound Event, sound to be continually looped
    • mood: object with fields, sounds that will be randomly played based on surrounding darkness
      • sound: Sound Event to play
      • tick_delay: int, the number of ticks between mood sounds, assuming a light level of 0
      • block_search_extent: int, the radius in which light levels are sampled
      • offset: double, an additional distance offset to apply to sounds produced
    • additions: list of objects with fields, sounds that will be randomly played
      • sound: Sound Event to play
      • tick_chance: float between 0 and 1, probability within a tick to play a given sound
  • Default value: {}
  • Modifiers: override
  • Interpolated: no
  • Resolved at the camera’s position
  • Replaces Biome effects.ambient_soundeffects.mood_sound, and effects.additions_sound fields
minecraft:audio/firefly_bush_sounds

If true and not below an opaque block, Firefly Bushes will produce idle sounds.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position of a Firefly Bush
minecraft:gameplay/can_start_raid

If false, a Raid cannot be started by a player with Raid Omen.

  • Value type: boolean
  • Default value: true
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position that the Raid would be started
  • Replaces Dimension Type has_raids field
minecraft:gameplay/water_evaporates

If true, Water cannot be placed with a Bucket, melting Ice will not produce water, Wet Sponge will dry out when placed, and Dripstone will not produce water from Mud blocks.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position of the interaction
  • Replaces Dimension Type ultrawarm field
minecraft:gameplay/bed_rule

Controls whether a Bed can be used to sleep, and whether it can be used to set a respawn point.

  • Value type: object with fields
    • can_sleep: one of:
      • always – the Bed can always be used to sleep (assuming the Bed is not obstructed and there are no monsters nearby)
      • when_dark – the Bed can only be used to be sleep when the global skylight level is less than or equal 11
      • never – the Bed can never be used to sleep
    • can_set_spawn – same as can_sleep
    • explodes – optional boolean, if true the Bed will explode when interacted with
      • Default: false
    • error_message: optional Text Component, the message to show if the player is unable to sleep or set their spawn
  • Default value: {can_sleep:”when_dark”,can_set_spawn:”always”,error_message:{translate:”block.minecraft.bed.no_sleep”}}
  • Modifiers: override
  • Interpolated: no
  • Resolved at the head position of the Bed block
  • Replaces Dimension Type bed_works field
minecraft:gameplay/respawn_anchor_works

Controls whether Respawn Anchors can be used to set spawn (or respawn). If false, the Respawn Anchor will explode once charged.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position of the Respawn Anchor block
  • Replaces Dimension Type respawn_anchor_works field
minecraft:gameplay/nether_portal_spawns_piglin

Controls whether Nether Portal blocks can spawn Piglins.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position of a random Nether Portal block
  • Replaces Dimension Type natural field
minecraft:gameplay/fast_lava

Controls whether Lava should spread faster and further, as well as have a stronger pushing force on entities when flowing.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved for a whole dimension (cannot be specified on a Biome)
  • Replaces Dimension Type ultrawarm field
minecraft:gameplay/increased_fire_burnout

Controls whether Fire blocks burn out more rapidly than normal.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position of the burning Fire block
  • Replaces #increased_fire_burnout Biome Tag
minecraft:gameplay/piglins_zombify

Controls whether Piglins and Hoglins should zombify.

  • Value type: boolean
  • Default value: true
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position of the zombifying entity
  • Replaces Dimension Type piglin_safe field
minecraft:gameplay/snow_golem_melts

Controls whether a Snow Golem should be damaged.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position of the Snow Golem
  • Replaces #snow_golem_melts Biome Tag
minecraft:gameplay/sky_light_level

The effective light level of the sky used by mechanics such as mob spawning or Daylight Detectors. For example, a block fully exposed to the sky will be considered to have a light level of exactly this value, while a block deep in a cave will not be affected at all.

The corresponding visual effect is controlled entirely by minecraft:visual/sky_light_factor.

  • Value type: float
  • Default value: 15.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved for a whole dimension (cannot be specified on a Biome)
minecraft:gameplay/eyeblossom_open

If true, Closed Eyeblossoms will eventually open by random block ticks. If false, Open Eyeblossoms will do the opposite. If “default”, Open or Closed Eyeblossoms will remain in their current state.

  • Value type: one of:
    • true
    • false
    • “default”
  • Default value: “default”
  • Modifiers: override
  • Interpolated: no
  • Resolved at the Eyeblossom block’s position
minecraft:gameplay/turtle_egg_hatch_chance

The chance that a Turtle Egg block will switch to its next hatching state when randomly ticked.

  • Value type: float between 0 and 1
  • Default value: 0.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the Turtle Egg block’s position
minecraft:gameplay/creaking_active

While true, Creaking Heart blocks (and their corresponding Creaking) will become active. On the other hand, when false, it will enter its dormant state.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the Creaking Heart block’s position
minecraft:gameplay/surface_slime_spawn_chance

An additional chance rolled when a natural Slime spawn attempt occurs in a biome with the #allows_surface_slime_spawns tag.

  • Value type: float between 0 and 1
  • Default value: 0.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the position of the Slime spawn attempt
minecraft:gameplay/cat_waking_up_gift_chance

The chance that a Cat lying on its owner’s Bed will drop a gift (from the gameplay/cat_morning_gift loot table) when the player wakes up.

  • Value type: float
  • Default value: 0.0
  • Modifiers: Float Modifiers
  • Interpolated: yes
  • Resolved at the Cat’s position
minecraft:gameplay/bees_stay_in_hive

When true, Bees will try to navigate to their Hives and will not exit unless the Hive is broken or next to a Fire.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at a Bee or Bee Hive block’s position
minecraft:gameplay/monsters_burn

When true, monsters will burn while exposed to the sky.

  • Value type: boolean
  • Default value: false
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the monster’s position
minecraft:gameplay/can_pillager_patrol_spawn

When true, Pillager Patrols are able to spawn.

Note: the global skylight level must also be greater than 11.

  • Value type: boolean
  • Default value: true
  • Modifiers: Boolean Modifiers
  • Interpolated: no
  • Resolved at the position of the patrol spawn attempt
  • Replaces the #without_patrol_spawns biome tag
minecraft:gameplay/villager_activity

Controls the default AI activity for adult Villagers.

Not all activities are supported by Villager AI – if an unsupported one is chosen, the Villager will do nothing. The following activities are supported:

  • core

  • hide

  • idle

  • meet

  • panic

  • pre_raid

  • raid

  • rest

  • work

  • Value type: Mob Activity

  • Default value: “minecraft:idle”

  • Modifiers: override

  • Interpolated: no

  • Resolved at the Villager’s position

minecraft:gameplay/baby_villager_activity

Controls the default AI activity for baby Villagers.

Not all activities are supported by Villager AI – if an unsupported one is chosen, the Villager will do nothing. The following activities are supported:

  • core

  • hide

  • idle

  • meet

  • panic

  • play

  • pre_raid

  • raid

  • rest

  • Value type: Mob Activity

  • Default value: “minecraft:idle”

  • Modifiers: override

  • Interpolated: no

  • Resolved at the Villager’s position

Data Components

  • New components:
    • zombie_nautilus/variant – namespaced id from zombie_nautilus_variant registry

Item Components

Added food properties to the following fish bucket items:

  • minecraft:cod_bucket
  • minecraft:salmon_bucket
  • minecraft:pufferfish_bucket
  • minecraft:tropical_fish_bucket

Added minecraft:use_effects

  • Controls how the player behaves when using an item (right mouse click)
  • Format: object with fields
    • can_sprint: boolean, whether the player can sprint while using this item
      • Default value: false
    • interact_vibrations: boolean, whether using this item emits minecraft:item_interact_start and minecraft:item_interact_finish game events
      • Default value: true
      • speed_multiplier: float (0 to 1), the speed multiplier applied to the player while using this item
        • Default value: 0.2
      • e.g. use_effects={can_sprint:true,speed_multiplier:1.0}

Added minecraft:minimum_attack_charge

  • Sets the minimum attack charge on the attack indicator required to attack with this item
  • Format: float (0.0 to 1.0)
    • 0.0: no charge required
    • 1.0: full charge required

Added minecraft:damage_type

  • Specifies the type of damage this item deals
  • Format: string, damage type identifier
    • e.g. damage_type=’minecraft:spear’

Added minecraft:attack_range

  • Enables a custom attack range when using the item.
  • Overrides the normal entity interaction range for Player.
  • Regular melee attack range is computed for Mobs based on the distance of the target hitbox to their hitbox. This component modifies that distance check by adjusting minimum and maximum padding for the attack hitbox.
  • Mobs using minecraft:kinetic_weapon will have their attack range applied in the same way it applies to players
  • Format: object with fields
    • min_reach: float, the minimum distance in blocks from the attacker to the target to be considered valid
      • Default value: 0.0, valid from 0.0 to 64.0
    • max_reach: float, the maximum distance in blocks from the attacker to the target to be considered valid
      • Default value: 3.0, valid from 0.0 to 64.0
    • min_creative_reach: float, the minimum distance in blocks from the Creative Mode attacker to the target to be considered valid
      • Default value: 0.0, valid from 0.0 to 64.0
    • max_creative_reach: float, the maximum distance in blocks from the Creative Mode attacker to the target to be considered valid
      • Default value: 5.0, valid from 0.0 to 64.0
    • hitbox_margin: float, the margin applied to the target bounding box when checking for valid hitbox collision
      • Default value: 0.3, valid from 0.0 to 1.0
    • mob_factor: float, the multiplier applied to the min_range and max_range when checking for valid distance when item is used by a mob
      • Default value: 1.0, valid from 0.0 to 2.0

Added minecraft:kinetic_weapon

  • Enables a charge-type attack when using the item (primarily for Spears), where, while being used, the damage is dealt along a ray every time an entity comes in contact with it, with the damage based on the relative speed of the entities
  • Format: object with fields
    • contact_cooldown_ticks: integer, the cooldown in ticks after hitting, and loosing contact with an entity before being able to hit it again
      • Default value: 10
    • delay_ticks: integer, the time in ticks required before weapon is effective
      • Default value: 0
    • dismount_conditionsknockback_conditionsdamage_conditions: indicating the condition to apply dismount, knockback and damage effects respectively. Objects with fields:
      • max_duration_ticks: integer, the ticks after which the condition is no longer checked. This starts after delay has elapsed
      • min_speed: float, the minimum speed of the attacker, in blocks per second, along the direction that the attacker is looking
        • Optional, default value: 0.0
      • min_relative_speed: float, the minimum relative speed between the attacker and target, in blocks per second, along the direction that the attacker is looking
        • Optional, default value: 0.0
    • forward_movement: float, the distance the item moves out of hand during animation
      • Default value: 0.0
    • damage_multiplier: float, the multiplier for the final damage from the relative speed
      • Default value: 1.0
    • sound: Optional Sound Event to play when the weapon is engaged
    • hit_sound: Optional Sound Event to play when the weapon hits an entity
    • e.g. kinetic_weapon={forward_movement:1.0,delay:20,damage_conditions:{max_duration:60},knockback_conditions:{max_duration:40},dismount_conditions:{max_duration:20}}
  • The damage dealt is calculated as floor(relative_speed * velocity_multiplier) where relative_speed is the difference of speed vectors of the attacker and the target as projected onto the axis of the attacker’s view vector
    • Any additional damage from enchantments or attribute modifiers is added after this calculation

Added minecraft:piercing_weapon

  • Enables a quick attack that damages multiple entities along a ray (primarily for Spears)
  • Format: object with fields
    • deals_knockback: boolean, whether the attack deals knockback
      • Default value: true
    • dismounts: boolean, whether the attack dismounts the target
      • Default value: false
    • sound: Optional Sound Event to play when a player attacks with the weapon
    • hit_sound: Optional Sound Event to play when the weapon hits an entity
    • e.g. piercing_weapon={dismounts:true}

Added minecraft:swing_animation

  • Specifies the swing animation to play when attacking or interacting using this item
  • Format: object with fields
    • type: string, the animation identifier (nonewhackstab)
      • Default value: whack
    • duration: integer, the duration in ticks
      • Default value: 6
    • e.g. swing_animation={type:’stab’,duration:20}

Changed minecraft:consumable

  • The animation field has been updated:
    • Renamed spear to trident
    • Added new spear animation

Changed minecraft:intangible_projectile

  • Items with this component now show information about it in their tooltip

Entity Data

  • The AngryAt field has been renamed to angry_at
  • The AngerTime field has been removed
  • An anger_end_time (long) field has been added, containing the time anger ends in game ticks

Advancements

  • Added new spear_mobs trigger with fields:
    • player: optional entity predicate, the player using the kinetic weapon
    • count: optional integer, the number of mobs hit in a single use of the kinetic weapon

Damage Types

  • Added a new minecraft:spear damage type

Slot Sources

  • Added slot sources to allow the location of any inventory slot to be specified within datapacks
  • Format: object with fields
    • type: the slot source type
    • <type-specific>: additional fields depending on the type

minecraft:empty Type

  • Empty selection containing no slots

minecraft:group Type

  • Merges several slot sources into one, with the resulting selection containing all slots from each slot source provided
    • If a slot is included in more than one slot source, it will be repeated in the resulting slot source
    • e.g. [a, b] + [c, a] -> [a, b, c, a]
  • Format:
    • terms: list of slot sources to join
  • Can alternatively be written inline as a list of slot sources

minecraft:slot_range Type

  • Selects slots within a slot range from the inventory of an entity or block entity
  • Mirrors the behavior of the from argument of the /item command
  • Format:
    • source: an entity or block entity from which the slots will be sourced, from loot context
      • Can be block_entitythisattacking_entitylast_damage_playerdirect_attackertarget_entity, or interacting_entity
    • slots: a slot range in the format of <slot_type> or <slot_type>.<slot_number> (e.g. armor.chest or container.*)

minecraft:contents Type

  • Selects all non-empty slots from the inventory component of one or more items
    • If no item is stored inside that component, the resulting selection will be empty
  • The location of the item(s) whose inventory component to use is specified by another slot source
    • If the slot source includes more than one item with that component, the resulting selections will be merged identically as with the minecraft:group type
    • e.g. Bundle [a, b] + Shulker Box [c, d] -> [a, b, c, d]
  • Format:
    • component: the inventory component to target
      • Allowed values are minecraft:bundle_contentsminecraft:charged_projectiles, and minecraft:container
    • slot_source: a slot source containing slots with item(s) to target

minecraft:filtered Type

  • Applies a filter to the selected slots, excluding any non-matching slots from the resulting selection
  • Format:
    • item_filter: an item predicate to match against the items in each slot
    • slot_source: the slot source to filter

minecraft:limit_slots Type

  • Limits the number of slots provided, with the resulting selection containing at most that number of slots
    • Any slots bringing the number of slots above that limit will be excluded, in order of inclusion
    • e.g. [a, b, c, d] -> [a, b, c] if the limit is set to 3
  • Format:
    • limit: integer, the maximum number of slots to include in the resulting selection
    • slot_source: the slot source to limit

Example slot source selecting every slot with more than 16 items from the hotbar and armor slots of an entity:

{ "type": "minecraft:filtered", "item_filter": { "count": { "min": 16 } }, "slot_source": [ { "type": "minecraft:slot_range", "source": "this", "slots": "hotbar.*" }, { "type": "minecraft:slot_range", "source": "this", "slots": "armor.*" } ]
}

Loot Tables

  • Added new minecraft:slots loot pool entry
    • Provides the items contained within the selected slots to the loot table
    • Format:
      • slot_source: a slot source describing where the items are located
    • Supports all standard loot pool entry fields

Loot Functions

minecraft:filtered

  • Field modifier has been replaced with two fields:
    • on_pass – function or a list of functions to run when item_filter predicate passes
    • on_fail – function or a list of functions to run when item_filter predicate fails

minecraft:discard

  • Replaces any item stack with empty one
  • No fields

Predicates

Component Predicates

  • Component predicates (predicates field in block, item and entity predicates) now include predicates for checking existence of every component type
  • Those predicates are written as {<component_type>: {}}
  • Such predicate check passes as long as component is present, no matter the actual value
  • Existing predicates for specific components remain unchanged
  • Example:
    • {predicates:{written_book_content:{author:”foo”}} – existing format for matching books
    • {predicates:{written_book_content:{}} – special case of above that accepted any value, as long as component existed
    • {predicates:{instrument:{}} – checks if component minecraft:instrument exists (was not allowed before)

Entity Predicates

The flags predicate now supports new values:

  • is_in_water: when an entity is touching water or a bubble column
  • is_fall_flying: when an entity is gliding with an elytra

Item Predicates

  • Item predicate in command form (<item>[predicate~{…},component={…}]) has been extended to accept empty predicates for any component type
  • Similarily to component predicates in data, those empty entries only check for component existence
  • Existing shorter syntax for checking component existence remains unchanged
    • That means *[instrument] and *[instrument~{}] are equivalent

Enchantments

Enchantment Effect Components

  • minecraft:post_piercing_attack: Effects applying after a piercing attack with an item

Enchantment Entity Effects

  • minecraft:apply_impulse: applies an impulse to the targeted entity
    • direction – The first step of determining the impules is applying this vector as local coordinates (the same used by tp @s ^ ^ ^) onto the entity look vector
    • coordinate_scale – The second step is scaling the resulting vector by this vector on each axis in world space, X, Y and Z
    • magnitude – The third step is scaling the resulting vector by this Level-Based Value
  • minecraft:apply_exhaustion: applies exhaustion to the targeted entity
    • amount – Level-Based Value indicating the amount of exhaustion to apply
    • effective only on players
  • minecraft:play_sound: can now support a list of sound event identifiers, one for each level of enchantment. If a level is higher than the number of sounds, the last sound in the list is used

Enchantment Level-Based Values

Added exponent
  • Raises the base to the specified power level.
    • base – Level-Based Value indicating the base of the exponent.
    • power – Level-Based Value indicating the power of the exponent.

World Generation

Dimension Types

  • Added new attributes field for dimensions to specify Environment Attributes
    • Refer to the Environment Attribute Map section for information about the format of this field
  • Added a new optional timelines field that specifies which Timelines are active in this dimension
    • Format: a Timeline ID, a list of Timeline IDs, or a Timeline Tag
  • Many fields have been migrated to Environment Attributes:
    • Note: the form of these attributes may not be identical to the original fields
    • ultrawarm -> minecraft:gameplay/water_evaporatesminecraft:gameplay/fast_lavavisual/default_dripstone_particle
    • bed_works -> minecraft:gameplay/bed_rule
    • respawn_anchor_works -> minecraft:gameplay/respawn_anchor_works
    • cloud_height -> minecraft:visual/cloud_height
    • piglin_safe -> minecraft:gameplay/piglins_zombify
    • has_raids -> minecraft:gameplay/can_start_raid
    • natural -> minecraft:gameplay/nether_portal_spawns_piglinminecraft:gameplay/eyeblossom_openminecraft:gameplay/creaking_active
  • The effects field has been removed and replaced with the following new fields:
    • skybox – the skybox rendering type to use, one of:
      • none (was minecraft:nether effect ID)
      • overworld (was minecraft:overworld effect ID)
        • Following environment attribues are applied only when the skybox is overworld:
          • minecraft:visual/sky_colorminecraft:visual/sun_angle,minecraft:visual/sunrise_sunset_colorminecraft:visual/moon_phaseminecraft:visual/moon_angleminecraft:visual/star_angleminecraft:visual/star_brightness
      • end (was minecraft:end effect ID)
      • Default: overworld
    • cardinal_light – the direction of cardinal lighting that affects blocks, one of:
      • default (was minecraft:overworld and minecraft:end effect ID)
      • nether (was minecraft:nether effect ID)
      • Default: default
  • The fixed_time field has been replaced by a has_fixed_time boolean (default: false)
    • Time-based effects such as the angle of the sun are now specified instead by Environment Attributes
    • However, the remainder of behaviors formerly affected by fixed_time being present will now instead use the has_fixed_time boolean

Biomes

  • Added new attributes field for biomes to specify Environment Attributes
    • Refer to the Environment Attributes section for information about the format of this field
    • Note: certain attributes, such as gameplay/fast_lava are not evaluated positionally and thus cannot be set on a Biome
  • Many subfields under effects have been migrated to Environment Attributes:
    • Note: the form of these attributes may not be identical to the original fields
    • fog_color -> minecraft:visual/fog_color
    • water_fog_color -> minecraft:visual/water_fog_color
    • sky_color -> minecraft:visual/sky_color
    • particle -> minecraft:visual/ambient_particles
    • ambient_soundmood_soundadditions_sound -> minecraft:audio/ambient_sounds
    • music -> minecraft:audio/background_music
    • music_volume -> minecraft:audio/music_volume
  • The following color fields in the effects definition now support colors as a string in the form “#rrggbb”, or a float array in the form [red, green, blue]
    • water_color
    • foliage_color
    • dry_foliage_color
    • grass_color
    • grass_color_modifier

Tags

Block Tags

  • Added #can_glide_through – climbable blocks that can be glided through without stopping

Item Tags

  • Added #nautilus_taming_items – items that can be used to tame a Nautilus and a Zombie Nautilus
  • Added #nautilus_bucket_food – bucketed fish items that can be used to feed a tamed Nautilus and Zombie Nautilus
  • Added #nautilus_food – all items that can be used to feed a tamed Nautilus and Zombie Nautilus
  • Added #camel_husk_food – all items that can be used to feed a Camel Husk
  • Added #spears – all Spear weapons
  • Added #enchantable/lunge – all items that can be enchanted with the lunge enchantment
  • Added #enchantable/melee_weapon – all primary melee weapons including Swords and Spears
  • Renamed #enchantable/sword to #enchantable/sweeping
  • Updated #piglin_loved to include the Golden Nautilus Armor and the Golden Spear
  • Updated #piglin_preferred_weapons to include Golden Spears

Biome Tags

  • Removed #snow_golem_melts and #increased_fire_burnout – replaced by gameplay/snow_golem_melts and gameplay/increased_fire_burnout Environment Attributes
  • Removed #plays_underwater_music – replaced by only_underwater field in the audio/background_music Environment Attribute
  • Removed #has_closer_water_fog – replaced by visual/water_fog_end_distance Environment Attribute
  • Added #spawns_coral_variant_zombie_nautilus – biomes where the Coral Variant of the Zombie Nautilus can spawn
  • Removed #without_patrol_spawns – replaced by gameplay/can_pillager_patrol_spawn Environment Attribute

Entity Tags

  • Added #can_wear_nautilus_armor – entities that can equip Nautilus Armor
  • Added #nautilus_hostiles – entities that the Nautilus will be hostile towards when untamed
  • Changed #not_scary_for_pufferfish to include Nautilus and Zombie Nautilus
  • Added #burn_in_daylight – entities that burn in daylight
  • Added #can_float_while_ridden – entities that can float on water while being ridden
  • Changed #skeletons to include Parched
  • Changed #zombies to include Zombie Nautilus, Zombie Horse and Camel Husk
  • Changed #can_equip_saddle to include Nautilus, Zombie Nautilus, Zombie Horse and Camel Husk

Timeline Tags

  • Added #universal – Timelines that are active in every dimension
  • Added #in_overworld – Timelines that are active in the Overworld
  • Added #in_nether – Timelines that are active in the Nether
  • Added #in_end – Timelines that are active in the End

Resource Pack Versions 70.0 through 75.0

  • Unifont has been updated to 17.0.01
  • block.vsh/fsh copies terrain.vsh/fsh and handles ad-hoc blocks (e.g. held by entities)
  • Added ChunkSection uniform, used by terrain.vsh (which replaces DynamicTransforms)
  • New shaders have been introduced to perform GPU based sprite animations
  • Globals uniform now has camera coordinates
  • Item textures were split out of the blocks atlas into a separate new items atlas that does not have mipmaps
    • All textures used in an item model have to come from the same (items or blocks) atlas
    • All textures used in a block model have to come from the blocks atlas
    • Textures used for still water and lava are now hardcoded to minecraft:block/water_still and minecraft:block/lava_still
  • To prepare for future work, the game will now print a warning if any defined sprites in any atlases share a name
  • Block model and state format has been expanded to allow more rotations
  • Textures for the Leather Horse Armor item and equipment asset have been split into a tinted base layer and an overlay layer

Textures

  • texture section of *.mcmeta files has two new fields: mipmap_strategy and alpha_cutoff_bias
    • mipmap_strategy has the following supported values:
      • mean averages both color and alpha between groups of four pixels for the current mipmap level to generate the next mipmap level pixel. This was and stays the default strategy for most solid or translucent full block textures
      • dark_cutout is similar to mean, but blends colors in a way that makes the pixels bordering cutout pixels darker. This was and stays the strategy for leaves and Mangrove Roots. It simulates dark interior of the blocks
      • cutout is a new strategy that always generates a mipmap based on the original texture instead of the previous mipmap. Used for most cutout blocks that became mipmapped in this version.
      • strict_cutout is a modification of cutout that uses stricter alpha cutoff value leading to the textures using this value disappearing at higher mipmap levels. Is used for flowers and similar blocks to avoid artifacts.
      • auto is the default value and will make the game to pick mean for textures that do not contain fully transparent pixels and cutout for those that do
    • alpha_cutoff_bias is a float field for controling the alpha bias for cutout textures
      • Technically there is no limit for this value, it can be negative as well, but it does not make sense to set this higher than 1.0 or lower than -1.0 since the texture will become either fully opaque or fully transparent
      • Default value for this field is 0.0, and it can be increased for textures that can become too transparent/thin at distance, or decreased if it’s too “opaque”
      • It’s recommended to increment or decrease this value in fine granuality for finding the sweet spot. As an example, 0.1 is used for kelp textures in order to prevent them being fully trasparent at distance
      • Only used for lower mips of cutout textures, does not change the alpha of first mip level, and has no effect on other textures
  • Glass, Glass Pane and Redstone dust now support translucent textures
  • Added gui/container/nautilus used for the Nautilus inventory UI

Item Sprites

  • Added new item sprites:
    • item/nautilus_spawn_egg
    • item/zombie_nautilus_spawn_egg
    • item/camel_husk_spawn_egg
    • item/parched_spawn_egg
    • item/copper_nautilus_armor
    • item/iron_nautilus_armor
    • item/golden_nautilus_armor
    • item/diamond_nautilus_armor
    • item/netherite_nautilus_armor
    • item/netherite_horse_armor
    • item/leather_horse_armor_overlay
  • Added the following item sprites for the Spear weapon:
    • When in inventory: item/wooden_spearitem/stone_spearitem/copper_spearitem/iron_spearitem/golden_spearitem/diamond_spearitem/netherite_spear
    • When in hand: item/wooden_spear_in_handitem/stone_spear_in_handitem/copper_spear_in_handitem/iron_spear_in_handitem/golden_spear_in_handitem/diamond_spear_in_handitem/netherite_spear_in_hand

UI Sprites

  • Added new UI sprite:
    • container/slot/nautilus_armor
    • container/slot/spear – Spear icon used in the Smithing Table screen
    • container/slot/nautilus_armor_inventory – Nautilus icon used in Nautilus inventory UI
  • Added new nine-sliced sprites:
    • container/inventory/effect_background
    • container/inventory/effect_background_ambient
  • Removed the following sprites:
    • container/inventory/effect_background_large
    • container/inventory/effect_background_small

Celestials Atlas

  • A new celestials atlas has been introduced, including sprites for objects rendered in the sky such as the Sun and Moon
  • Includes sprites from <namespace>:textures/environment/celestial/<path>.png
  • The following textures have been moved or split:
    • textures/environment/sun.png -> sun
    • textures/environment/end_flash.png -> end_flash
    • textures/environment/moon_phases -> moon/full_moonmoon/waning_gibbousmoon/third_quartermoon/waning_crescentmoon/new_moonmoon/waxing_crescentmoon/first_quartermoon/waxing_gibbous

Mob Effect Sprites

  • Added new mob effect sprite:
    • breath_of_the_nautilus

Entity Textures

  • Added new entity textures:
    • entity/nautilus/nautilus.png
    • entity/nautilus/nautilus_baby.png
    • entity/nautilus/zombie_nautilus.png
    • entity/equipment/zombie_nautilus_coral.png
    • entity/equipment/nautilus_body/copper.png
    • entity/equipment/nautilus_body/iron.png
    • entity/equipment/nautilus_body/gold.png
    • entity/equipment/nautilus_body/diamond.png
    • entity/equipment/nautilus_body/netherite.png
    • entity/equipment/nautilus_saddle/saddle.png
    • entity/equipment/horse_body/leather_overlay.png
    • entity/camel/camel_husk.png
    • entity/equipment/camel_husk_saddle/saddle.png
    • entity/equipment/horse_body/netherite.png
    • entity/skeleton/parched.png
    • entity/skeleton/parched_overlay.png

Sounds

  • Added new sounds for Spears:
    • item.spear.hit
    • item.spear.use
    • item.spear.attack
  • Added special sounds for the Wooden Spear:
    • item.spear_wood.hit
    • item.spear_wood.use
    • item.spear_wood.attack
  • Added new sound events for the Lunge Enchantment:
    • item.spear.lunge_1
    • item.spear.lunge_2
    • item.spear.lunge_3
  • Added new sound events for the Nautilus:
    • entity.baby_nautilus.ambient
    • entity.baby_nautilus.death
    • entity.baby_nautilus.eat
    • entity.baby_nautilus.hurt
    • entity.baby_nautilus.swim
    • entity.nautilus.ambient
    • entity.nautilus.death
    • entity.nautilus.dash
    • entity.nautilus.dash_ready
    • entity.nautilus.eat
    • entity.nautilus.hurt
    • entity.nautilus.swim
    • entity.zombie_nautilus.ambient
    • entity.zombie_nautilus.death
    • entity.zombie_nautilus.dash
    • entity.zombie_nautilus.dash_ready
    • entity.zombie_nautilus.eat
    • entity.zombie_nautilus.hurt
    • entity.zombie_nautilus.swim
    • item.nautilus_armor.equip
    • item.nautilus_armor.unequip
    • entity.nautilus.riding
    • item.nautilus_saddle_equip
    • item.nautilus_saddle_underwater_equip
    • entity.baby_nautilus.ambient_land
    • entity.baby_nautilus.death_land
    • entity.baby_nautilus.hurt_land
    • entity.nautilus.ambient_land
    • entity.nautilus.dash_land
    • entity.nautilus.dash_ready_land
    • entity.nautilus.death_land
    • entity.nautilus.hurt_land
    • entity.zombie_nautilus.ambient_land
    • entity.zombie_nautilus.dash_land
    • entity.zombie_nautilus.dash_ready_land
    • entity.zombie_nautilus.death_land
    • entity.zombie_nautilus.hurt_land
  • Added new sound event for the Zombie Horse:
    • entity.zombie_horse.angry
    • entity.zombie_horse.eat
  • Added new sound events for the Parched:
    • entity.parched.ambient
    • entity.parched.death
    • entity.parched.hurt
    • entity.parched.step
  • Added new sound events for the Camel Husk:
    • entity.camel_husk.ambient
    • entity.camel_husk.dash
    • entity.camel_husk.dash_ready
    • entity.camel_husk.death
    • entity.camel_husk.eat
    • entity.camel_husk.hurt
    • entity.camel_husk.saddle
    • entity.camel_husk.sit
    • entity.camel_husk.stand
    • entity.camel_husk.step
    • entity.camel_husk.step_sand
  • Added new sound events for the Parrot:
    • entity.parrot.imitate.camel_husk
    • entity.parrot.imitate.parched
    • entity.parrot.imitate.zombie_horse
    • entity.parrot.imitate.zombie_nautilus

Item Models

  • Added new option for all item models: swap_animation_scale
    • Defaults to 1.0
    • Indicates how fast the item moves up and down when swapping items in hotbar
    • Large speeds can allow items that take more of the screen space to fully duck before swapped into the next item

Added new item model:

  • spear_in_hand – model for the Spear when in hand.

Block Models

  • Block model elements can now be rotated around multiple axes
    • Model is first rotated around X, then Y, then Z
    • New fields:
      • x – rotation around axis X in degrees, float, defaults to 0.0
      • y – rotation around axis Y in degrees, float, defaults to 0.0
      • z – rotation around axis Z in degrees, float, defaults to 0.0
    • Existing fields axis and angle can still be used
      • If both field sets are present, older notation takes presence
  • Existing restriction for angle value limiting them to [-45, 45] has been removed
    • Note: Names of faces are not influenced by rotation. Features that depend on them, like culling, will always use original directions

Block State Model Dispatch

  • Variants in block state dispatch files (defined in assets/…/blockstates/ can now be also rotated around Z axis
    • New optional field z has the same format as existing x and y fields: an integer with allowed values of 0 (default), 90180 and 270
    • Rotation around Z axis is applied after X and Y

Shaders & Post-process Effects

  • Added animate_sprite* core shaders, which use a new SpriteAnimationInfo uniform

Sprite Animations

  • Sprites (textures as part of a larger atlas) are now animated on the GPU rather than per-tick on the CPU
  • For regular frame-based animations, animate_sprite.vsh and animate_sprite_blit.fsh are used to perform the draw
  • For interpolated animations, animate_sprite.vsh and animate_sprite_interpolate.fsh are used to perform the draw
  • The UBO SpriteAnimationInfo contains information on where the sprite should be drawn to, within the greater texture atlas

Fixed bugs in 1.21.11

  • MC-2791 – The player model in the inventory screen renders in the wrong orientation when it’s not standing up straight
  • MC-22882 – Ctrl + Q doesn’t work on Mac
  • MC-53491 – The world border can change in size when the game is paused
  • MC-54988 – World border “warning” effect is not shown when graphics setting is set to “Fast”
  • MC-54989 – Sliders can be moved to positions between available values
  • MC-73186 – Gaps between the faces of item models and complex block models
  • MC-80476 – On macOS, the “drop item stack” shortcut conflicts with the “quit Minecraft” shortcut
  • MC-114265 – Mipmaps are too dark around transparent edges in textures (e.g. side of grass)
  • MC-146862 – Long effect names cause text to appear outside the effect box
  • MC-147718 – F1, F3, F3+[char] combos cannot be rebound
  • MC-149630 – Some particles have very thin, vertical lines that flash in and out around the particles
  • MC-154651 – Boats and rafts can break off paintings and item frames
  • MC-159275 – Map player markers on maps of the nether don’t rotate when doDaylightCycle is disabled
  • MC-162573 – A white outline is rendered on composters’ edges when viewed from far away
  • MC-171688 – Invisibility status of LivingEntity is not updated when ActiveEffects are modified directly
  • MC-179383 – Leaves not culled with graphics set to Fast
  • MC-188602 – In non-natural custom dimensions, if “bed_works” is set to true, beds cannot be used to skip the night or set the spawn point
  • MC-189837 – Nether fog is dark after rejoining a world that is thunder storming in the Overworld
  • MC-195505 – Short grass is unaffected by mipmap levels
  • MC-199467 – Certain entity animations stop after they’ve existed in world for too long
  • MC-234358 – MoirĂ© patterns / aliasing on certain objects when viewed from a distance
  • MC-237158 – Magma blocks can generate on the ceilings of caves below aquifers
  • MC-238715 – The “minecraft:block.chest.locked” sound cannot be heard by other players when attempting to open locked blocks
  • MC-241321 – Darkness vignette effect is not shown when graphics setting is set to “Fast”
  • MC-245854 – Fast graphics description is slightly misleading
  • MC-245895 – View Bobbing stops working after long elytra flight
  • MC-248499 – Potion UIs displayed within the inventory don’t have cyan outlines if the effects are granted by beacons or conduits
  • MC-259368 – Z-fighting occurs on trimmed armor items
  • MC-263562 – World types in Realms backup info screen are untranslatable
  • MC-264151 – Glass blocks do not use mipmapping, but glass panes do
  • MC-266425 – Recipes for new waxed copper blocks are not grouped
  • MC-267364 – Teleporting in the air is considered flying by server
  • MC-269295 – Jump bar progress renders unused pixels from dynamic texture atlas
  • MC-271729 – Armadillo scute drops are not affected by the mob_drops game rule
  • MC-271938 – Mace smash attack can push players in creative mode that are flying
  • MC-271941 – Music discs can sometimes spawn inside jukeboxes when ejected from them
  • MC-274828 – Horse armor item and entity model tint affects the entirety of the textures
  • MC-276382 – Leather horse armor leggings & helmet parts are untextured
  • MC-276445 – Highlighted text within the anvil and creative inventory interfaces renders blue making it difficult to read
  • MC-277768 – Mipmapping no longer affects items
  • MC-278742 – Creakings cannot be ridden by any entities using commands
  • MC-279076 – Certain mobs will always retarget the player upon reloading the chunks, regardless of distance or gamemode
  • MC-295949 – Flying through vines with an elytra cancels the flight
  • MC-296952 – F4 key to toggle shaders cannot be rebound
  • MC-297328 – Unloading and reloading an area causes invisible entities to be visible until you get close enough.
  • MC-297367 – Checkbox filled status isn’t narrated
  • MC-298405 – Text components in the “label” of input controls in dialogs don’t support “hover_event”
  • MC-298767 – Piercing arrows phase through mobs that are in the same block
  • MC-298915 – Multishot crossbows loaded in survival or adventure mode show their secondary charged projectiles on a separate line in the tooltip
  • MC-298942 – Character body moves instead of the head when riding a happy ghast
  • MC-299136 – Hyper Potions (Ian Tsuchiura) is not mentioned in the credits and splash texts
  • MC-299196 – Waypoints fade out when an advancement is granted
  • MC-299876 – Labels for booleans within dialogs are rendered in a slightly different shade of white than normal
  • MC-300588 – Waypoint modifications reset upon death
  • MC-300642 – When texture atlases are large, gaps are rendered between blocks that have a low resolution
  • MC-300979 – The movement and duration messages in the demo introduction screen now have a text shadow
  • MC-301127 – Music stops and restarts when trying to connect to a server when the music frequency is set to constant
  • MC-301271 – Object text components do not render in some places unless there are text glyphs on the same line
  • MC-301311 – The “Transfer Now” button no longer renders highlighted when the java realms information box is selected
  • MC-301424 – entity_data item component detection is broken in resource packs
  • MC-301516 – The mouse cursor doesn’t change to the hand shape when hovering over tabs in the “Create New World” menu and similar screens
  • MC-301517 – The mouse cursor doesn’t change to the hand shape when hovering over arrows in the singleplayer, multiplayer, resource packs, and data packs menus
  • MC-301518 – The mouse cursor doesn’t change to the hand shape when hovering over checkboxes
  • MC-301520 – The mouse cursor doesn’t change to the hand shape when hovering over the difficulty lock button
  • MC-301527 – The mouse cursor doesn’t change to the resize shape when scrolling in the advancements menu
  • MC-301557 – The shading direction of the bolts on single and large copper chests does not match
  • MC-301595 – Music toasts briefly appear in the pause menu after a song has finished
  • MC-301632 – Comparators measuring jukeboxes do not update when a music disc is taken out of a jukebox if the music disc has already finished its song
  • MC-301754 – The hand animation plays when right-clicking shelves with nothing in your hand
  • MC-301756 – The “This is a Snapshot Realm…” box outline is rendered above the delete realm interface
  • MC-301763 – The outline of the “Invited” element within the realms “Players” tab renders above other tabs when selected and when a scroll bar is present
  • MC-301805 – Selected item outline on statistics screen renders outside of scissor area
  • MC-301879 – Double weathered and waxed weathered copper chests’ bottom texture looks off compared to the other variants
  • MC-301988 – Buttons in the telemetry screen are not aligned properly in some languages
  • MC-302030 – Setting commandBlocksEnabled to false prevents command blocks from being edited
  • MC-302071 – Single and double copper chests have inconsistent side textures
  • MC-302111 – Elements within the resource pack and data pack menus are not selected in order when using the TAB key
  • MC-302184 – Copper golems in cave/void air never turn into statues
  • MC-302209 – Debug renderers stop working when changing dimensions
  • MC-302246 – Sprite object component does not render in server list depending on component tree
  • MC-302254 – Cursor changes do not work for command suggestions
  • MC-302288 – All shelves have the oak tan map color
  • MC-302325 – When the player toggles a debug renderer using its hotkey (F3+B, F3+G) while in the debug options screen, the corresponding entry is not updated
  • MC-302338 – The narrator button in the Accessibility Settings menu doesn’t update upon pressing Ctrl+B
  • MC-302362 – Clicking on “Singleplayer” or “Multiplayer” in the main menu then immediately clicking on a world or server joins it even when not clicking the play button
  • MC-302409 – Lightning that strikes waxed lightning rods do not deoxidize nearby unwaxed copper blocks
  • MC-302469 – Creepers at the player’s exact position with an explosion radius of 0 set the player’s velocity to NaN
  • MC-302477 – Loot tables stopped supporting SNBT as entity data
  • MC-302482 – Resource and data pack names can overlap selection boxes when the scroll bar is present
  • MC-302493 – The mouse cursor doesn’t change to the hand shape when hovering over the close button in the “Add Realm” screen
  • MC-302516 – Zombie villagers spawn as the variant matching the biome at 0, 0, 0
  • MC-302549 – Server main thread deadlock during respawn position resolution when the entire world spawn radius is filled with fluids
  • MC-302601 – A white outline is rendered on anvils’ top texture when viewed from far away
Posted on Leave a comment

Bedrock: 1.21.111

Minecraft 1.21.111 Patch Notes

Features and Bug Fixes

Copper Chest

Copper chests are a new block! Summon a copper golem to get your first copper chest, which you can leave to oxidize, or keep pristine with wax. Drop items into a copper chest, and then sit back and relax as your copper golem sorts them into normal chests around your base!

  • Copper Chest is a new type of chest that has waxed and oxidized variants
  • Copper Chests oxidize over time and can be waxed like other Copper blocks
  • Copper Chests can be crafted using a Chest and Copper Ingots

Copper Equipment

What comes between stone and iron? Now the answer is: copper! Craft tools, weapons, and armor from copper, giving this early-game ore more uses than ever before. Unlike copper blocks, these items won’t oxidize, but like all copper blocks – they will look beautiful!

  • Copper armor has higher durability than leather but less than iron. Copper armor enchantability sits slightly lower than with iron

  • Copper equipment turns into Copper Nuggets when smelted

  • Hostile Monsters have a chance to spawn with Copper Armor equipped

  • Hostile Monsters can pick up and use Copper Weapons and Armor

  • Added Copper Horse Armor

    • Has the same loot table and chance of generating as Iron Horse Armor
    • Armor toughness: 4

Copper Golem

Copper golems are handy, organization-loving companions that’ll bring your base to life! Summoned with copper and carved pumpkins, the copper golem removes items you leave in copper chests and sorts them based on the item type into chests around your base!

  • Copper Golem will drop between 1 and 3 Copper Ingots when killed

  • Copper Golem can help with sorting items into Chests

  • If the Copper Golem has fully oxidized it will turn into a Copper Golem Statue Block

  • When turned into a Copper Golem Statue block, it will freeze in a random pose

  • When turned into a Copper Golem Statue the Copper Golem will drop any item it may be holding

  • A Copper Golem turned into a Copper Golem Statue will keep its name if named with a Name Tag

  • Interacting with the Copper Golem with an empty hand will drop its carried item

  • Iron Golems will sometimes plant a decorative flower onto a nearby Copper Golem

Copper Golem Item Sorting

  • If the Copper Golem is not holding an item, it will look for nearby Copper Chests to try to pick up an item
  • The Copper Golem will look in any oxidized and waxed Copper Chest variant to pick up items
  • It can pick up max 16 items in a stack at a time
  • Any item in a Copper Chest can be picked up
  • If the Copper Golem is holding an item, it will look for nearby Chests to try to place the item in
  • The Copper Golem will look in Chests and Trapped Chests to try to place items
  • It can place an item in a Chest if it’s empty, or if it contains the same type of item it is holding in its hand
  • The Copper Golem will visit max 10 Chests or Copper Chests in sequence to try to pick up or place an item
  • If no matching chest is found the Copper Golem will idle for 7 seconds before trying again
  • The search area for chests from the Copper Golem’s position is horizontally 32 blocks and vertically 8 blocks

Copper Golem Statue Block

  • Copper Golem Statue Block is a new type of decorative block which has waxed and oxidized variants
  • Copper Golem Statue Block oxidizes over time and can be waxed like Copper blocks
  • The pose of the block can be changed by interacting with it
  • If the Copper Golem Statue Block has no oxidation when interacted with using an Axe, the block will turn into a Copper Golem again
  • When connected to a Redstone Comparator, the Copper Golem Statue Block emits a Redstone signal based on its current pose

Copper Decorations

  • Added Copper Torch
    • A green variant of the Torch crafted from a Copper Nugget, Coal, and Stick
    • Functionally identical to the Torch
  • Added Copper Bars
    • Functions like the existing Iron Bars block
    • Made from copper and oxidizes over time
  • Added Copper Chain
    • Functions like the existing Chain block (now renamed to Iron Chain)
    • Made from copper and oxidizes over time
  • Added Copper Lantern
    • Crafted similarly to a regular Lantern but uses Copper and a Copper Torch
    • The lantern itself oxidizes, changing its look as it ages
    • Functionally identical to the Lantern

Shelf

  • The Shelf is a new type of decorative block which comes in the following variants:

    • Oak
    • Spruce
    • Birch
    • Jungle
    • Acacia
    • Dark Oak
    • Mangrove
    • Cherry
    • Pale Oak
    • Bamboo
    • Crimson
    • Warped
  • The Shelf can be crafted from six matching blocks of any Stripped Log, Stripped Stem, or Block of Stripped Bamboo, filling the top and bottom row

    • This recipe produces 6 Shelves
  • The Shelf can store up to 3 item stacks:

    • Interacting with any of the 3 slots on its front swaps the player’s main hand item with the content of that slot
    • The Shelf displays all items it contains in front of it, similar to an Item Frame
  • While a Shelf is powered by Redstone, its front texture changes to reflect that it’s powered; when placed next to each other, up to 3 powered Shelves will connect

    • Interacting with a single powered Shelf swaps all its contents with the 3 rightmost items in the player’s hotbar
    • Interacting with two connected Shelves swaps their contents with the 6 rightmost items in the player’s hotbar
    • Interacting with three connected Shelves swaps their contents with all items in the player’s hotbar
    • It does not matter which of the connected Shelves the player interacts with
  • Shelf storage affects a Comparator’s output signal depending on which slots are occupied (MCPE-225226)

    • Each Shelf slot corresponds to 1 bit
    • The signal strength is determined by converting the 3 bits of the slots into a decimal value
    • All slots empty [000] means a signal strength of 0
    • Only the first slot occupied [100] means a signal strength of 1
    • Only the second slot occupied [010] means a signal strength of 2
    • Only the third slot occupied [001] means a signal strength of 4
    • All slots occupied [111] means a signal strength of 7

Accessibility

  • Dye Colors now have updated icons

    • The goal with these is to enhance visual cohesion across the dye set while maintaining distinct shapes to support colorblind accessibility
  • Text to Speech support has been added to all Dressing Room pages

Blocks

  • Some blocks that could catch fire with Flint and Steel, like the top Stone Slab or Wood Stair, will now also catch fire during fire explosion, such as those from Fireballs (MCPE-78691)

  • Glass Blocks will now catch fire with Flint and Steel or fire explosion (MCPE-78691)

  • Fixed a bug where placing water from a Water Bucket onto a block containing another block (e.g. Button or Lever) would not allow the user to remove that water block afterwards (MCPE-218044)

  • Fixed an issue with being unable to continue destroying valid blocks in Adventure Mode when they are behind water

Gameplay

  • Entities are no longer placed halfway outside of a Nether portal after traveling through the portal (MCPE-189106MCPE-157992)

  • Fixed an issue where the player sleeping animation would start before the player climbed into bed

  • Camera command no longer leads to crash when using the in_out_back method (MCPE-223147)

  • Fixed an issue where players could duplicate Bundle content using a Hopper (MCPE-223261)

  • Rider rotation lock now applies to cameras when using camera relative movement

  • Fixed an issue where equipping armor while aiming at a mob would create a “ghost” cloned item (MCPE-220172)

  • Fixed an issue where the control scheme set via control scheme commands would not be retained if a later-activated camera did not support it. The scheme will now persist as intended until explicitly cleared via /controlscheme clear, beginning since base game version 1.21.110

  • Fixed stuck progress arrow despite no process in Furnace/Blast Furnace/Smoker (MCPE-63099)

  • The Ender Dragon no longer freezes at the end of its death. It now dies and creates the portal (MCPE-224403)

  • Fixed a bug that caused the facing direction of Command Blocks to differ from all other blocks like Pistons and Dispensers when placed in certain coordinates in the world (MCPE-62252)

General

  • Fixed grass color in Swamps that was too green (MCPE-223910)

  • Fixed Paintings from breaking when joining a multiplayer game in high-latency scenarios (MCPE-181306)

  • Enabling blending for Legacy Chunks. This fixes an issue where blocks were missing from the terrain after loading into the world on some Starter Biomes

  • Improved blending around Frozen River chunks (MCPE-189996)

Graphical

  • Updated Volumetric Fog configs for PC to have more consistent steps in performance impact, while also maximizing image quality for cost

  • Added support for Subsurface Scattering on particle textures

  • Fixed rain and snow lighting up far above the light source in Vibrant Visuals

  • Fixed the issue where the Nether Portal fullscreen effect appeared black in Vibrant Visuals (MCPE-221341)

  • Updated max render distance to 28 on PC for Vibrant Visuals

  • Fixed lack of illumination in some particles emitted by breaking blocks (MCPE-218184)

  • Increased thickness on Block Selection wireframe to make it more visible in Vibrant Visuals especially with TAAU enabled

  • Fixed an issue causing Chests to appear desaturated while held in hand in Vibrant Visuals

  • Fixed an issue causing attachables such as Bows to appear desaturated in Vibrant Visuals

  • Fixed a bug where Vanilla Mob Flame textures are missing

  • Progress of Leaves turning white in snow is now correctly set when entering a world, and this color change now works correctly in Custom Biomes

  • Fixed unlit Candles not casting shadows

  • Fixed unlit Cake Candles not casting shadows

  • Fixed Glass Block depth issues with Candles

  • Fixed water depth buffer issues with Cake Candles

  • Fixed infinite duration blindness effect visuals

  • Colored text on signs no longer appear dark in Vibrant Visuals

  • Fixed an issue that caused certain mobs to display incorrectly when using the Minecraft Classic Texture Pack (MCPE-221572)

  • Added an option to Hide Sky Flashes in the End when playing with Vibrant Visuals

Mobs

  • Wolves no longer start shaking off water if they are already shaking off water

  • Foxes now consider Honey Bottle to be a food item and will prioritize picking it up the same way it does other food items

  • It is possible for Zombies and Skeletons to spawn with diamond tier armor again (MCPE-226140)

Realms

  • Fixed several crashes that could occur

  • Realms invite page no longer loads endlessly on PS4/PS5

  • Leaving Realm now removes it from Realms list on Play screen

  • Tooltip text no longer overlaps with loading bar

  • Realms Stories settings page now includes accurate instructions for closing/opening a Realm

  • Realms tab ‘Settings’ button now scales correctly

Sounds

  • When picking up an item to hand that is not hand equippable, mobs no longer play an equip sound (MCPE-223747)

  • Music in Forest biome will no longer get stuck to the position it started playing at (MCPE-222113)

Stability and Performance

  • Fixed a crash when downloading packs from a multiplayer world on Xbox

  • Fixed a Realms crash in liquid sensing system

User Interface

  • The RTX and Marketplace Pass icon will no longer show up on the same item

  • The RTX chevron will now show up correctly on the Marketplace search screen

  • Fixed an issue where the Featured Server details would randomly scroll up (MCPE-181924)

  • Recipe Book can no longer show duplicate icons if user has Recipe Book hidden when acquiring new recipes

  • Fixed Marketplace pass chevron priority on hero row items

  • Fixed Blade row missing Marketplace Pass chevron

  • Touch Controls: The Invert Y-Axis setting now works correctly for spectators (MCPE-179110)

  • Touch Controls: The Swap Jump And Sneak option no longer changes the position of the swim/fly up buttons (MCPE-184808)

  • Resized the “Textures & More” button icon to be in line with the other button icons

  • Using the /hud command to hide touch controls now correctly hides all touch buttons (MCPE-184856)

  • Action bar messages now have a text shadow (MCPE-186346)

  • The /hud command to hide the progress bar now also hides the Horse and Camel bars, and also the Locator bar (MCPE-184858)

  • Updated the Marketplace Pass chevron on tiles and the purchase buttons to have the correct scaling

  • Resized the icons on the Marketplace sidebar to match the icon’s proper size

  • Resized the icons on the Inventory category selection to match the icon’s proper size

  • Addded a properly sized My Library button for the top bar to use

  • Changed a couple of locations where the information bulb appears to be the correct resolution

  • Updated the Marketplace error animations to display at the correct resolution

  • Added new icons for the Sale banners to fit the pixelated style of the UI

  • Added a new Minecraft Profile Pic. This icon is a snapshot of your character’s appearance. The new Minecraft Profile Pic replaces your Xbox Gamerpic on all screens, including Profile, lists of players, and on Realms.

Technical Updates

Add-Ons and Script Engine

  • Moved the properties “ash”, “red_spores”, “blue_spores”, and “white_ash” from the minecraft:climate biome component to the new client biome component “minecraft:precipitation”

AI Goals

  • Made the schemas for the following goals stricter when parsing and will fail to load an entity JSON that has invalid data in versions 1.21.110 and newer

    • minecraft:behavior.roar
    • minecraft:behavior.slime_attack
    • minecraft:behavior.slime_float
    • minecraft:behavior.slime_keep_on_jumping
    • minecraft:behavior.slime_random_direction
    • minecraft:behavior.sniff
    • minecraft:behavior.sonic_boom
    • minecraft:behavior.stay_near_noteblock
    • minecraft:behavior.swim_idle
    • minecraft:behavior.swim_up_for_breath
    • minecraft:behavior.swim_wander
    • minecraft:behavior.swoop_attack
  • Transport Items Goal

    • Mobs with the goal will now queue when players are interacting with their target container if “allow_simultaneous_interaction” is false
  • The minecraft:behavior.transport_items AI goal now checks that the entity can see the container it tries to interact with. It checks once before starting to queue at the container and once before starting to interact. If it does not see the container, it fails to open it

API

@minecraft/server

  • Added @minecraft/server version 2.3.0-beta

  • Added @minecraft/server version 2.2.0

  • Enabled Player.applyImpulse and Player.clearVelocity

  • class AimAssistRegistry

    • Added readonly property DefaultCategoryId
  • Updated System.sendScriptEvent to be able to be called in “before” events

  • Change the following methods on Dimension to have the read-only privilege so they can be called in “before” events:

    • getWeatherfindClosestBiomegetBlockAbovegetBlockBelowgetTopmostBlockgetLightLevelgetSkyLightLevel
  • Moved ItemBookComponent from beta to V2.2.0

  • Moved BookError from beta to V2.2.0

  • Moved BookPageContentError from beta to V2.2.0

  • Moved BookErrorReason from beta to V2.2.0

  • Moved InvalidItemStackError from beta to V2.2.0

  • Camera

    • Moved setFov(fovCameraOptions?: CameraFovOptions): void from beta to V2.2.0

      • Moved setLore(loreList?: (RawMessage | string)[]): void from beta to V2.2.0

      • Moved getRawLore(): RawMessage[] from beta to V2.2.0.

  • ContainerSlot

    • Moved setLore(loreList?: (RawMessage | string)[]): void from beta to V2.2.0

    • Moved getRawLore(): RawMessage[] from beta to V2.2.0

Biomes

  • Custom Biomes are now out of experimental

  • Added content errors in server-side biome components that were missing them to more easily identify issues and how to fix them

  • Added bool for Overworld surface to BiomeDefinitionChunkGenData, which is only relevant for client-side chunk generation

  • Pre Caves and Cliffs components, minecraft:overworld_generation_rules and minecraft:multinoise_generation_rules, do nothing with biome generation and will return a content error when used in custom biomes

  • Added underwater_music parameter to minecraft:biome_music client biome component that enables the underwater music for the biome

  • Fixed an issue where a default surface builder was not chosen leading to bare surfaces in some biomes

  • Fixed a bug where setting the precipitation of a biome to 0 in biome.json files would not stop rain from occurring in the biome

Blocks

  • Fixed a bug that caused default editor movement speed to initialize incorrectly

  • Custom block geometry no longer produces a warning when fully contained within the first or last 1/16ths of the unit cube volume in any axis

    • A warning is still produced if the geometry doesn’t have at least one corner overlapping the unit cube volume, not counting its boundary
  • Pick block now works on all variations of LightBlock, light_block_0 through light_block_15 (MCPE-135298)

  • Added “oak_planks”, “spruce_planks”, “birch_planks”, “jungle_planks”, “acacia_planks”, and “dark_oak_planks” definitions to blocks.json (MCPE-177977)

  • Added “mossy_stone_brick_double_slab”, “smooth_quartz_double_slab”, “normal_stone_double_slab”, “cut_sandstone_double_slab”, and “cut_red_sandstone_double_slab” definitions to blocks.json

  • Custom blocks were never intended to support multiple different render_method in the material_instance component. This scenario will now give a content warning to let creators know (MCPE-190430)

Character Creator

  • Fixed a crash when wearing some Character Creator pieces that support custom colorization

Commands

  • Updated /locate biome to support underground biomes

    • Y axis is now more accurate to exactly where the biome is
  • Fix issue preventing /place from working correctly in flat worlds

  • Fixed hidden commands (getlocalplayername and geteduclientinfo) showing into the autocomplete options in the chat (MCPE-136930)

  • Fixed issue where command selector ‘c=-1’ would not return the furthest matching entity (MCPE-226102)

Components

  • Content warnings will log missing references in Jigsaw Structure, Processor List, Template Pool, and Structure Sets JSON

  • Content warnings will log missing references in Camera Preset, Camera List, Aim Assist Preset, and Aim Assist Categories JSON

  • Content warnings will log missing item references in Crafting Items Catalog JSON

  • Changes to ‘minecraft:input_air_controlled’

    • Renamed to minecraft:free_camera_controlled
    • Removed upward movement behaviour when holding the jump action from this component
  • Added new component minecraft:vertical_movement_action

    • Adds the functionality of upward or downward movement when holding the jump action
    • This component is automatically added to any entity that uses the old minecraft:input_air_controlled with format version 1.21.100 or older
  • Updates to “minecraft:dash”

    • Renamed to “minecraft:dash_action” to improve clarity
  • Updates to “minecraft:dash_action”

    • Added new field “direction” taking either “entity” or “passenger” as its value. Defaults to “entity”
      • “entity”
        • Behaves like before
      • “passenger”
        • Momentum applied from the dash action will now instead be applied in the view direction of the passenger entity, using the horizontal_momentum as forward momentum and vertical_momentum as upward momentum in the direction of the passenger. Short of it: looking up with horizontal momentum will launch you upwards.
      • Old schemas with format version older than 1.21.110 will automatically receive the “entity” direction

Editor

We are excited to announce Editor v1.1.0! To learn more about Editor and its multiblock world editing capabilities, check out the documents HERE, or learn how to build an Editor Extension HERE

Feature Highlights in Editor v1.1.0

Updated Flatten Tool

The Flatten Tool has been redesigned with new functionality and more flexible controls. You’ll now find a new Flatten mode within the Terrain Tool, along with two sub-modes: Flatten Up and Flatten Both, for better control over how terrain is leveled. New properties like FlattenSmoothing, FlattenIntensity, and FloorBlockOverride give you more customization. We’ve also added support for reading Cylinder Brush Shape properties (width, depth, height, radius, isUniform), and included the option to hide rotation controls. The previous version of the Flatten Tool has been removed.

Line node weights

You can now adjust the vertical and horizontal line weight for each node. This provides finer control over the thickness and shape of lines, making it easier to create more customized and organic-looking builds.

Full Editor Changelogs

  • Added the ability for the Pencil Tool to place “objects” in the scene. Objects are non-trivial Minecraft elements, like beds, doors, plants, etc.

  • Added toast notifications support

    • Added support for toast notifications by introducing a new logChannel property and a subMessage field in the LogMessage class.
    • Log messages with the Toast channel now appear as popup notifications in the viewport when an error occurs
    • The subMessage field allows for additional contextual information to be displayed in the toast
  • Added a new Setting – ‘Show Toast Notifications’:

    • A new checkbox setting, ‘Show Toast Notifications’, has been added to the Settings panel
    • When enabled, Info and Warning messages will also be displayed as toast notifications, in addition to Errors
  • Added weights to control points on the Line Tool to now linearly transition a Line’s thickness from one point to the next

  • Added a button on the Structure Panel to let you update an existing selected structure with one from the clipboard

  • Added clear button for Vector3 input fields

  • Added IComboBoxPropertyItemEntry API type for IComboBoxPropertyItem entries. Each entry now can support a localized label

  • Added a progress modal when toggling vibrant visuals during the graphics mode change

  • Added in EditorStructure’s missing display name field for Scripting

  • Added support for toast messages display. This specific task adds a new option in the Settings panel called ‘Show Toast Notifications’. When this checkbox is checked, the Info and Warning messages will be shown as toast messages.

  • Added a new value ‘ShowToastNotifications’ in the enumeration ‘GraphicsSettingsProperty’

  • Added new Flatten Tool functionality

    • Added new Flatten mode to Terrain Tool, and new FlattenSmoothing, FlattenIntensity, and FloorBlockOverride properties
    • Added two new Flatten sub-modes: Flatten Up and Flatten Both
    • Added ability to hide rotation controls within Cylinder Brush Shape
    • Added Cylinder Brush Shape property getters for width, depth, height, radius, and isUniform
    • Removed old Flatten Tool, along with its FlattenHeight and FlattenRadius properties
  • Added a gizmo to the center of freehand and smart tool

  • Added new ProjectAfterEvents API to global editor object for project wide events

  • Added a new button in export settings that sets the current position in Overworld as world spawn point for the playable world

  • Updated expand/collapse indicator of drawer panels to be interactive for keyboard only navigation

  • Updated tooltip API property of IToggleGroupPropertyItemEntry to take BasicTooltipContent

  • Updated Locate tool to use a combo box for biome selection

  • Updated the Copy to Clipboard button in the Detailed Structure Panel to now switch to PastePreview when clicked pressed

  • Updated Block Picker to give input focus to the search field when filter mode is Name

  • Updated summon tool to use Shift + Scroll to rotate the entity

  • Updated messages to show up as notifications

  • Updated the brush API to now specify a specific or relative position of the ‘front face’ of a block. You can also force the brush to apply a specific state to the block after its been placed

  • Updated paused entity state to persist through sessions for each project world

  • Updated Ruler Tool to support click-and-drag. Holding CTRL while clicking will create additional rulers. Rulers will no longer disappear when switching to other tools

  • Updated Terrain Tool by consolidating Flatten and Elevation into one tool and improved functionality

  • Updated Editor Structures to be exported under the /structures folder in the world’s directory when an Editor world is exported

  • Removed PBR Fallout Settings from Vibrant Visuals Settings

  • Fixed a bug where the selection highlight used the wrong color after changing the theme

  • Fixed a bug that caused keybinding text to be narrated incorrectly

  • Fixed a bug that caused text field clear button to overlap with inner contents

  • Fixed block inspector failing silently in unloaded areas

  • Fixed the issue where entity type names were not localized for summon tool

  • Fixed a bug that caused Export pane data to be incorrect when the reset button is pressed

  • Fixed a bug that caused Farm tool settings to reset when another player joins

  • Fix a bug so origin value set in the Structure Panel is now reflected in Paste Preview

  • Fixed a bug that caused origin and size values set in the Structure Panel not to propagate to the Editor Structure’s metadata

  • Fixed a bug that caused horizontal sub pane to have broken layout for some property items

  • Fixed a bug that caused some paused entities to be deformed

  • Fixed a bug where the Locate tool failed to find distant biomes

  • Fixed a bug where the line tool failed to fill long lines or lines far from the player

  • Fixed a bug that caused hidden gizmo widget to appear on creation

  • Fixed a bug that caused selection brush indicator to remain after enabling Vibrant Visuals

  • Fixed a bug in the Vibrant Visuals Settings pane which caused incorrect filepaths

  • Fixed the Line Tool’s performance when moving a gizmo with thickness applied to the Line

  • Fixed issue that prevents dragging nodes to be placed on a desired position

  • Fixed issue with distance between nodes while dragging. There should be a minimum predefined distance between nodes so two nodes cannot be placed on the same position

  • Fixed a bug that caused revert button in Vibrant Visuals panel settings to not function

  • Fixed Vibrant Visuals settings to have proper formatting after being copied to clipboard

  • Fixed a bug that caused Paste Preview offset to be incorrect after switching back from another modal tool

  • Fixed a bug that caused difficulty setting not applying correctly while exporting a playable world

  • Fixed a bug that caused weather setting not applying correctly while exporting a playable world

  • Fixed a bug that caused Smart Fill to highlight air when blocks are replaced with air block

Entity Components

  • Fixed the documentation of minecraft:on_death claiming the component only works on the Ender Dragon, it works on all entities
  • Added slot.weapon.mainhand and slot.weapon.offhand as valid slots for minecraft:interact component operations
  • Changed the schema for the minecraft:experience_reward entity component so that the on_bred and on_death members no longer accept arrays; only single Molang expressions are now supported for each member

Entity Event Responses

  • Added the drop_item entity event response, which allows an entity to drop its item in a given slot

Gameplay

  • Fixed an issue where the player behaved incorrectly with the fixed boom camera when using the locked_player_relative_strafe control scheme. Player movement is now consistent with the free camera in this scenario

  • From 1.21.110 onward, the free camera and fixed boom cameras use Camera Relative Strafe as default scheme

  • Camera custom FOV command no longer requires the Experimental Creator Cameras experimental toggle

General

  • Models exported via Structure Blocks no longer use the missing texture for all block geometry (MCPE-223559)

Graphical

  • Changed defaults for color grading contrast and saturation fields to 1. Previously the defaults were 1.2 and 1.05, respectively

Items

  • Setting the “minecraft:use_modifiers” component’s “movement_modifier” field to 1.0 now allows using the item while sprinting, and starting to sprint while using the item

  • “poly_mesh” is no longer treated or documented as an experimental feature

  • “texture_meshes” is no longer treated or documented as an experimental feature

  • The “scale” field can now adjust the depth of “texture_meshes”, since its value is no longer ignored

  • Added the “use_pixel_depth” option to “texture_meshes” to control how geometry depth relates to texture resolution

    • If set to “true”, the geometry will have a depth of one pixel (in entity space, not texture space)
      • This causes textures with a resolution different from 16×16 to appear stretched
    • If set to “false”, the geometry will be built from perfectly cubic voxels, regardless of the texture’s aspect ratio
    • Defaults to “true” to ensure backward compatibility
  • Added Armor and Armor Toughness values to Armor tooltips (MCPE-152962)

  • “poly_mesh” is now documented as a deprecated feature

    • It was already treated as deprecated, but the documentation did not reflect this
  • “texture_meshes” is no longer documented as an experimental feature

    • It was already treated as non-experimental, but the documentation did not reflect this
  • Fixed bug where custom Items’ menu_category is_hidden_in_commands value was not sent to client and the items would show up in commands’ autocomplete when they shouldn’t.

  • All items that can be eaten now have the tag minecraft:is_food, except glow_berries

Item Components

  • Repairing an item using the minecraft:repairable item component no longer fails when a stack larger than strictly needed is used as repair material

  • Added the new minecraft:fire_resistant item component, which determines whether an item is immune to burning when dropped in fire or lava

Mobs

  • The minecraft:shareables component now also accepts item entries specifying item tags to name all items tagged as that to become shareable with the given settings

  • Foxes now use the minecraft:is_food tag instead of listing all foods manually, except glow_berries which is still listed manually

  • Fixed a bug where the minecraft:shareables component would mix attributes of duplicated entries in its items list. E.g. the priority would be taken from the first duplicated element and the max_amount from the last. Now the first “matching” entry will fully shadow those coming after it. Consider this items list in a minecraft:shareables using the new tag functionality:

    "items": [ { "item": "minecraft:apple", "priority": 1, "max_amount": 2 }, { "item": "minecraft:is_food", "priority": 0, "max_amount": 1 }] 
  • Previously minecraft:apple would have had priority 1 but max_amount 1 instead of 2. Now it will correctly use all data from that first item apple entry.

Molang

  • Renamed query.is_cooldown_type to query.is_cooldown_category, to better reflect what it does

Network Protocol

  • Modified the binary format of PlayerArmorDamagePacket

Experimental Technical Updates

API

  • Adds methods setAfterBatchMethod and setBeforeBatchMethod to GameTest, which can be used to add methods that will be run before and after test batches

  • Removed PotionModifierType from beta

  • Removed PotionOptions from beta

  • Renamed PotionLiquidType to PotionDeliveryType in beta

  • Added InvalidPotionDeliveryTypeError and InvalidPotionEffectTypeError errors to beta

  • Potions

    • Added resolve(potionEffectType: PotionEffectType | T, potionDeliveryType: PotionDeliveryType | U): ItemStack method to beta. This replaces the createPotion(options: PotionOptions): ItemStack that was removed from ItemStack
    • Removed getPotionModifierType(potionModifierId: string): PotionModifierType | undefined from beta
    • Added getAllDeliveryTypes(): PotionDeliveryType[] method to beta. This returns all the potion delivery types
    • Added getAllEffectTypes(): PotionEffectType[] method to beta. This returns all the potion effect types
    • Renamed getPotionEffectType to getEffectType in beta
    • Renamed getPotionLiquidType to getDeliveryType in beta
  • ItemPotionComponent

    • Removed readonly potionLiquidType: PotionLiquidType property in beta
    • Renamed readonly potionLiquidType: PotionLiquidType property to readonly potionDeliveryType: PotionDeliveryType in beta
  • PotionEffectType

    • Added readonly durationTicks?: number property to beta. This is the number of ticks the effect will last for. Undefined means the effect does not expire
    • Removed static createPotion(options: PotionOptions): ItemStack method from beta. This was replaced by Potions.resolve
  • Added new method isChunkLoaded to Dimension which returns true if a chunk at an area is loaded and ticking

  • Expanded LootTableManager beta functionality, which now allows for loot table discovery via the new getLootTable method

  • Added enum HeldItemOption to beta for PlayerSwingEventOptions. This specifies options related to the item currently being held at the time of a player swing

    export enum HeldItemOption { AnyItem = 'AnyItem', NoItem = 'NoItem' }
    
  • Added interface PlayerSwingEventOptions to beta. Event options/filters for PlayerSwingStartAfterEvent.
    – Field heldItemOption?: HeldItemOption

    • Added class PlayerSwingStartAfterEvent to beta. This contains information regarding a player starting to swing their arm
      • Field heldItemStack?: ItemStack
      • Field player: Player
    • Added class PlayerSwingStartAfterEventSignal to beta. This event is fired at the start of a player’s swing (e.g. attacking, using an item, interacting). It can be subscribed/unsubscribed via world.afterEvents.playerSwingStart and optionally filtered by passing in PlayerSwingEventOptions

@minecraft/server

  • Fixed an issue where using /reload in the command console throws a Gametest error if using the GameTest.setAfterBatchCallback method

  • Added Dimension.getBiome(location: Vector3) which can be used to locate the Biome of a given location

  • Added Entity.getBlockStandingOn(options?: GetBlocksStandingOnOptions): Block | undefined method to beta

  • Added Entity.getAllBlocksStandingOn(options?: GetBlocksStandingOnOptions): Block[]; methods to beta

  • Added GetBlocksStandingOnOptions interface

    • Optional Parameter blockFilter?: BlockFilter filters the block being returned
    • Optional Parameter ignoreThinBlocks?: boolean determines if blocks of height 0.2 or lower are ignored
  • Added method Camera.setCameraWithEase(cameraPreset: string, easeOptions: EaseOptions): void to beta

  • Added methods to Block scripting API that allows creators to get the total light level and the sky light level at a specific position

  • Added methods to Dimension scripting API that allows creators to get the total light level and the sky light level at a specific position

@minecraft/server-gametest

  • GameTest objects will now throw a GameTestCompletedError if accessed after completion for support functions or during clean up for test based functions

@minecraft/diagnostics

  • Added method captureException to Sentry which allows capturing of exceptions that are gracefully caught with a try/catch block
  • Renamed enum SentryBreadcrumbLevel to SentryEventLevel
  • Updated methods on Sentry to be callable in all contexts, including read-only (before events)

Biomes

  • Removing support for loading custom biomes for base game versions 1.21.100 and below

  • Adding max_puddle_depth_below_sea_level to the surface_builder biome component for the swamp builder type. The component will set the search depth for how far below sea level to search for a surface to add a puddle

  • Removing the 1.20.60 format version for server side biome JSON files. All server side biome JSON files should be version 1.21.110 or higher

  • Updating the server side biome file format version to be 1.21.110

  • Fix for custom biomes no longer appearing in game

  • Fix for biome music component being removed from some biomes

  • Adding custom biomes to a world that already has custom biomes is more stable now

Blocks

  • Added component minecraft:redstone_producer behind the Upcoming Creator Features toggle

Block Components

  • Modified minecraft:material_instances to support weighted variations textures with these requirements

    • “format_version” must be greater than or equal to 1.21.110
    • World must have Upcoming Creator Features experiment enabled
  • Added new block component minecraft:flower_pottable

    • It is an empty component defined as such: minecraft:flower_pottable: {}
    • When the component is present on the block, > a player can interact with an empty flowerpot when holding the block in order to embed it
    • Similar to other Vanilla pottable blocks, a player can remove the potted block by interacting with the pot with an empty hand
    • The component requires the Upcoming Creator Features toggle
    • Pottable not potable
  • Added new block component minecraft:embedded_visual

    • The component has two required fields, “geometry” and “material_instances”, similarly to minecraft:item_visual
    • When the component is present on the block, it defines which geometry and material_instances to use when the block is embedded into another block, eg. into a Flowerpot
      • If the component is not present, embedded blocks fallback to their innate geometry and material_instances
      • The component cannot be defined in the “permutations” section; only one embedded visual can be achieved per block type
    • The component requires the Upcoming Creator Features toggle
  • Added new field embedded to the item_display_transforms object

    • The field defines the overall transformation this geometry should be subject to when embedded into a block, eg. a Flowerpot
    • If the field is not defined, the default transformation is a 0.75x scale, similar to the one applied to most Vanilla flowers

Graphical

  • Fixed Candles not casting point light shadows
Posted on Leave a comment

JAVA Edition: 1.21.9

JAVA Edition: 1.21.9 – The Copper Age Patch Notes

New Features

  • Added Copper Chest
  • Added Copper Golem
  • Added Copper Golem Statue Block
  • Added Copper Equipment
  • Added Copper Decorations
  • Added Shelf
  • Added light flashes to The End dimension
  • Added Chat Drafts
  • Added sound previews to the Music & Sound Options sliders
  • Added the Minecraft Server Management Protocol
  • Added support for servers to have an in-game Code of Conduct
  • Added Halychian language support

Copper Chest

  • The Copper Chest is a new type of chest that has waxed and oxidized variants
  • Copper Chests oxidize over time and can be waxed like other Copper blocks
  • A Copper Chest can be crafted using a Chest and 8 Copper Ingots

Copper Golem

  • The Copper Golem is a new mob which can be spawned by placing a Jack o’Lantern or Carved Pumpkin on top of a Copper block
  • Copper Golems oxidize over time and can be waxed like Copper blocks
  • If the Copper Golem is fully oxidized and not waxed it will turn into a Copper Golem Statue
    • Upon turning into a statue, the Copper Golem will drop any item it may be holding
    • The statue retains the Copper Golem’s name
  • Copper Golems can help with sorting items into Chests
  • Interacting with the Copper Golem with an empty hand will make it drop its carried item
  • Iron Golems will occasionally plant a decorative flower onto a nearby Copper Golem
    • The flower can be removed with Shears
    • This flower is dropped when the Copper Golem turns into a Copper Golem Statue

Copper Golem Item Sorting

  • If the Copper Golem is not holding an item, it will look for nearby Copper Chests to try to pick up an item
    • The Copper Golem will look in any oxidized and waxed Copper Chest variant to pick up items
    • It can pick up at most 16 items in a stack at a time
    • Any item in a Copper Chest can be picked up
  • If the Copper Golem is holding an item, it will look for nearby Chests to try to place the item in
    • The Copper Golem will look in Chests and Trapped Chests to try to place items
    • It can place an item in a Chest if it’s empty, or if it contains the same type of item that it is holding in its hand
  • The Copper Golem will visit at most 10 Chests or Copper Chests in sequence to try to pick up or place an item
  • If no matching chest is found the Copper Golem will idle for 7 seconds before trying again
  • The search area for chests from the Copper Golem’s position is horizontally 32 blocks and vertically 8 blocks 

Copper Golem Statue Block

  • The Copper Golem Statue is a new type of decorative block which has waxed and oxidized variants
  • The Copper Golem Statue oxidizes over time and can be waxed like Copper blocks
  • If the Copper Golem Statue has no oxidation when interacted with using an Axe, the statue will turn into a Copper Golem
  • The Copper Golem Statue can be in one out of four poses: standing, sitting, running, and star
    • The pose of the statue can be changed by interacting with it
    • Each pose emits a Redstone Comparator signal

Copper Equipment

  • Added Copper Nugget
  • Added Copper armor
    • Added Copper Helmet, Copper Chestplate, Copper Leggings and Copper Boots
    • Copper armor has higher durability than Leather and Gold
    • Copper armor has slightly less enchantability than Iron
  • Added Copper tools and weapons
    • Added Copper Axe, Copper Hoe, Copper Pickaxe, Copper Shovel and Copper Sword
    • Copper tools and weapons do the same amount of damage as Stone, but have higher durability
    • Copper tools work faster and last longer than Stone
    • Copper tools have higher enchantability than Diamond, but slightly less than Iron
  • Copper equipment can be crafted using Copper Ingots
  • Copper equipment can be repaired with Copper Ingots
  • Copper equipment turns into a Copper Nugget when smelted
  • Added Copper Horse Armor
    • Has the same loot table and chance of generating as Iron Horse Armor
    • Armor toughness: 4

Copper Decorations

  • Added Copper Torch
    • A green variant of the Torch crafted from a Copper Nugget, Coal, and Stick
    • Functionally identical to the Torch
  • Added Copper Bars
    • Functionally identical to the existing Iron Bars block
    • Made from copper and oxidizes over time
  • Added Copper Chain
    • Functionally identical to the existing Chain block (now renamed to Iron Chain)
    • Made from copper and oxidizes over time
  • Added Copper Lantern
    • Crafted similarly to a regular Lantern but uses Copper and a Copper Torch
    • The lantern itself oxidizes, changing its look as it ages
    • Functionally identical to the Lantern

Shelf

  • The Shelf is a new type of decorative block which comes in the following variants:
    • Oak
    • Spruce
    • Birch
    • Jungle
    • Acacia
    • Dark Oak
    • Mangrove
    • Cherry
    • Pale Oak
    • Bamboo
    • Crimson
    • Warped
  • The Shelf can be crafted from six matching blocks of any Stripped Log, Stripped Stem or Block of Stripped Bamboo, filling the top and bottom row
    • This recipe produces 6 Shelves
  • The Shelf can store up to 3 item stacks:
    • Interacting with any of the 3 slots on its front swaps the player’s main hand item with the content of that slot
    • The Shelf displays all items it contains in front of it, similar to an Item Frame
  • While a Shelf is powered by Redstone, its front texture changes to reflect that it’s powered
    • When powered, up to 3 Shelves will connect to each other
    • Interacting with a single powered Shelf swaps all its contents with the 3 rightmost items in the player’s hotbar
    • Interacting with two connected Shelves swaps their contents with the 6 rightmost items in the player’s hotbar
    • Interacting with three connected Shelves swaps their contents with all items in the player’s hotbar
    • It does not matter which of the connected Shelves the player interacts with

Lightning Rod

  • Lightning Rods now oxidize like other Copper blocks

The End Light Flashes

  • The End dimension now has skylight
    • Normally the skylight does not affect how the dimension looks
    • From time to time flashes in the sky happen and produce a rumbling sound
    • When they happen skylight intensity increases, flooding the dimension with purple light
  • While the Ender Dragon fog effect is active the flash source in the sky is not visible and the brightness of the light affecting the world is reduced
  • The “Hide Sky Flashes” accessibility option disables the End flashes
    • When the flash is disabled by the setting the world is not lit by the flash but the flash source is still visible in the sky and the sound effect still plays

Minecraft Server Management Protocol

Added a server management API (JSON-RPC over WebSocket) for dedicated servers

  • The API is disabled by default and can be enabled in server.properties
    • management-server-enabled=true
    • management-server-host=localhost
    • management-server-port=0
  • The API is accessible at ws://<management-server-host>:<management-server-port> when enabled
  • Supports querying and updating of server state (players, allowlist, operators, settings, game rules)
  • Sends notifications on state changes (e.g. player joins, game rule updates)
  • Calling {“id”:1,”method”:”rpc.discover”} returns an API schema containing supported methods and notifications of the currently running server
  • The Data Generator produces an API schema (json-rpc-api-schema.json) in the reports output folder mirroring the contents returned by the rpc.discover method
  • The API adheres to the JSON-RPC 2.0 specification
  • Uses namespaced methods and the reserved namespaces are minecraft (e.g. minecraft:playersminecraft:allowlist/add)
    • Extensible via custom namespaces for additional methods and events
  • Core method groups: players, allowlist, operators, server (save, stop), server settings, game rules
  • Example method call:
    • Request: {“method”:”minecraft:allowlist/add”,”id”:1,”params”:[[{“name”:”jeb_”}]]}
    • Response: {“jsonrpc”:”2.0″,”id”:1,”result”:[{“id”:”853c80ef-3c37-49fd-aa49-938b674adae6″,”name”:”jeb_”}]}
  • Example notification:
    • {“jsonrpc”:”2.0″,”method”:”minecraft:notification/players/joined”,”params”:[{“id”:”853c80ef-3c37-49fd-aa49-938b674adae6″,”name”:”jeb_”}]}
  • Example error:
    • Request: {“method”: “minecraft:foo/bar”,”id”: 1}
    • Response: {“jsonrpc”:”2.0″,”id”:1,”result”:{“jsonrpc”:”2.0″,”id”:1,”error”:{“code”:-32601,”message”:”Method not found”,”data”:”Method not found: minecraft:foo/bar”}}}
    • Errors and error codes follow JSON-RPC 2.0 error object format
  • Clients must authenticate to access the API
    • Clients should supply an Authorization bearer token header with a server-specific secret
    • The secret is configured in server.properties
      • management-server-secret=
      • The secret should be exactly 40 alphanumeric characters (A-Z, a-z, 0-9)
      • The secret will be automatically generated if the server property is empty
      • Unauthorized requests are rejected with 401 Unauthorized
  • TLS is enabled by default
    • Can be disabled in server.properties
      • management-server-tls-enabled=false
    • Requires a keystore file to be set in server.properties
      • management-server-tls-keystore=path/to/keystore.p12
    • The keystore file must be in PKCS12 format
    • Keystore password can be set in the following ways, in order of priority
      • Environment variable: MINECRAFT_MANAGEMENT_TLS_KEYSTORE_PASSWORD
      • JVM argument: -Dmanagement.tls.keystore.password=
      • Server property: management-server-tls-keystore-password=

Chat Drafts

  • Unsent chat messages now get saved as Chat Drafts if the chat was forcibly closed
    • This includes it being closed by external sources such as dying or a dialog opening, but not the player intentionally closing their chat
  • Any existing Chat Draft will get pre-filled into the message box the next time the chat is opened
  • Draft text has a grayed-out appearance until fully restored
    • Draft text can be restored as regular text by interacting with it:
      • Typing additional text
      • Moving the text cursor using the arrow keys
      • Clicking it
      • Highlighting it
    • Pressing enter on a Chat Draft prior to it being restored sends it like a normal chat message
    • Pressing backspace on a Chat Draft prior to it being restored deletes it
  • Added an option to the Chat Settings screen that enables saving unsent chat messages by default
    • With this option enabled, unsent messages will always get saved as Chat Drafts, even if the player intentionally closed their chat

Server Code of Conduct

When connecting to a server, a Code of Conduct screen can now be shown.

  • Accepting the Code of Conduct is required to play on the server
  • A checkbox is available for not showing the same Code of Conduct in the future
    • If the Code of Conduct changes, it will be shown again

Server Setup

  • A new boolean field has been added to server.properties called enable-code-of-conduct
    • Setting it to true will make the server look for Code of Conduct files in the codeofconduct subfolder in the same folder as server.properties
    • Each file in the folder should have the form <language_code>.txt and be UTF-8 encoded
      • The language shown will attempt to match the player’s language
      • If it doesn’t exist, the en_us Code of Conduct will be used
      • If that also doesn’t exist, an arbitrary available entry is used

Sounds

  • Some sound sliders in the Music & Sound Options now play a preview sound when adjusting the setting outside a world

Accessibility

  • The “Attack/Destroy” and “Use Item/Place Block” key binds are now toggleable, meaning they can be set to either “Hold” or “Toggle” in the Controls screen
  • Added “Invert Mouse X” option to the Mouse Settings screen, which inverts the mouse x-axis
  • Added “Sprint Window” option to the Controls screen, which represents the time window in ticks where double-tapping the forward key activates sprint
  • Multiple key binds that have the same key assigned to them can now work together, while before only one would work
    • For example, you can now bind D to Jump and Strafe Left to jump and strafe left at the same time
    • The red warning for assigning the same key to multiple key binds is changed to yellow
  • The spectator hotbar menu key can now be rebound
    • It is part of a new Spectator category in the Key Binds screen, alongside the pre-existing Highlight Players key bind

Changes

  • Performance improvements
  • The Chain block has been renamed to “Iron Chain”
  • Monster Spawn Eggs now have a tooltip warning when the difficulty is set to Peaceful
    • The mob no longer spawns for one tick when an attempt is made to use the Spawn Egg
  • Changes to world loading and the “Spawn Chunks”
  • A dimension that has any player activity, forceloaded chunks, active portals, or Ender Pearls in flight will be considered “active” and will keep processing chunks and entities
    • Previously, this would only apply if a player was in the dimension or a chunk was forceloaded
  • Reworked the debug overlay to be less cluttered and more configurable
  • Players seen in the game world of the current server are now always shown in the Social Interactions screen even if they are offline
  • Players now stop flying when switching from Spectator Mode to Creative Mode if they are near the ground
    • A player is considered to be near the ground if there is a collidable surface (i.e. blocks, Happy Ghasts, boats…) within 1 block below them
    • Flight will not get disabled if the player was inside a block or collidable entity
      • This is to prevent players from suddenly falling through the ground
  • Migrated several server properties into game rules
  • OpenGL 3.3 is now required to play the game, up from 3.2. This does not change our posted Minimum Requirements

Performance Improvements

  • Entity rendering order was improved for significantly better performance
    • You’ll notice much smoother gameplay in areas with lots of mobs, like mob farms
    • FPS won’t improve much if most of your lag comes from things other than entities, like playing with high render distance while not being near many mobs
  • Particles outside the player’s view are not rendered anymore, which provides a performance improvement in some cases

World Loading and Spawn Chunks

  • The concept of fixed “Spawn Chunks” has been removed
  • The game will ensure that the following chunks are fully loaded before the player joins or the server starts, in the same way as spawn chunks formerly were:
    • Chunks loaded by the forceload command
    • Chunks active due to portal activity
    • Thrown Ender Pearls (Singleplayer only)
    • A small area of chunks around the player (Singleplayer only)
    • Chunks required to assign the global world spawn (World creation only)
  • The world loading screen now shows the chunks that the player is about to be placed into, rather than chunks loaded around world spawn
  • The loading screen now has a progress bar
    • This progress bar accounts for all kinds of chunk loading mentioned above

Server Properties

Several server properties were removed in favor of making them into game rules, allowing these settings to be changed while the server is running.

  • Removed server property allow-nether in favor of the new game rule allowEnteringNetherUsingPortals
  • Removed server property spawn-monsters in favor of the new game rule spawnMonsters
  • Removed server property enable-command-block in favor of the new game rule commandBlocksEnabled
  • Removed server property pvp in favor of the new game rule pvp
  • Added server property management-server-enabled controlling whether the new Minecraft Server Management Protocol is enabled or not
    • Defaults to false
  • Added server property management-server-port controlling on what port the Minecraft Server Management Protocol is started
    • Defaults to 0, assigning an available port each time management server is started
  • Added server property management-server-host controlling with what host the new Minecraft Server Management Protocol is started
    • Defaults to localhost
  • Added server property management-server-tls-enabled controlling whether the Minecraft Server Management Protocol uses TLS or not
    • Defaults to true
  • Added server property management-server-tls-keystore controlling the path to the keystore file used for TLS
    • Defaults to an empty string
    • A dedicated server won’t start when TLS is enabled and no keystore is provided
  • Added server property management-server-tls-keystore-password controlling the password to the keystore file used for TLS
    • Defaults to an empty string
  • Added server property status-heartbeat-interval controlling the interval the management server sends heartbeat notifications to connected clients
    • Defaults to 0, meaning it’s disabled
  • Added server property enable-code-of-conduct
    • Details on this property can be found in the “Server Setup” header

Game Rules

  • Removed spawnChunkRadius game rule
  • Added pvp game rule controlling whether players can deal damage to other players
    • Defaults to true
  • Added allowEnteringNetherUsingPortals game rule controlling if the Nether can be entered through portals
    • Defaults to true
  • Added spawnMonsters game rule controlling if monsters should spawn naturally
    • Defaults to true
  • Added commandBlocksEnabled game rule controlling if Command Blocks should be enabled or not
    • Defaults to true
  • Added spawnerBlocksEnabled game rule controlling if Spawner Blocks should be enabled or not
    • Defaults to true

Mob Spawning

  • The logic for choosing a type of equipment for mobs spawning with equipment has been tweaked to add Copper as a possibility
    • The initial roll to choose a type now chooses between Leather, Copper and Gold
    • The chance to increase an armor tier has increased from 9.5% to 10.87%

Minor Tweaks to Blocks, Items and Entities

  • Test Instance Blocks now preserve error markers between world reloads
  • Ambient lighting on entities has been adjusted to be more visually in line with blocks and other parts of the game
    • The underside of flat surfaces will now be lit from that direction, instead of the opposite direction
    • This mainly affects models containing cubes that are either flat or “hollow” such as:
      • Worn armor
      • Worn Elytra
      • The outside layers on player skins
      • The ribcages of Skeletons or Skeleton Horses
      • The feet of Chickens or Frogs
      • The wings of Phantoms or the Ender Dragon
      • The fins on fish
      • And more!

Recipes

  • Changed the Copper Trapdoor recipe to use 4 Copper Ingots instead of 6 and now yields one Copper Trapdoor instead of two

Sounds

  • The Happy Ghast is now audible from 64 blocks
  • Sounds for Chests now play at a lower volume
  • The volume at which a sound is played at now respects the sound source volume value
  • The “Voice/Speech” sound source has been rephrased to “Narrator/Voice”

UI

  • The Resource Pack and Data Pack selection screens now have a search box
  • More text inputs now support selecting text by mouse dragging
  • Double-clicking a word in an edit box now selects it
  • When adding a new server to the server list, the server name is no longer prefilled
    • When omitted, the default name “Minecraft Server” is used

Mouse cursor

  • Some UI components will now change the shape of the mouse cursor
    • Examples: text inputs, numeric sliders, buttons, scroll bars
  • Additionally, clickable parts of text labels (like links) will now change the cursor to the “hand” shape
  • This feature can be disabled with the “Allow Cursor Changes” option in the Mouse Settings screen

Debug Overlay

  • The debug overlay is accessible by pressing F3, as before
  • The debug overlay can now be accessed from everywhere in the game, not only when in a game world
  • It is now less cluttered, displaying less information by default
  • Added a new Debug Options screen, available by pressing F3 + F6, which can be used to configure what debug information should be displayed
    • For each element, you can configure whether it should be visible in the debug overlay or not, and can even set it to always be visible regardless of the debug overlay being active
    • Some debug features that were previously available, like chunk border rendering or entity hitbox rendering, can now be toggled through this Debug Options screen
    • Some debug features that were not previously available to the community, like Octree visualization, are now accessible through the Debug Options screen
    • The state of the Debug Options screen is saved between launches of the game
    • The Debug Options screen has the following preset profiles:
      • Default resets everything to the default state
      • Performance shows simple performance metrics, including the FPS meter always visible

Chat

  • It is now possible to start chatting while standing inside a Nether Portal
  • The chat will now remain open and unchanged if the player was chatting before being transferred to another dimension

Accessibility

  • Dye Colors now have updated icons
    • The goal with these is to enhance visual cohesion across the dye set while maintaining distinct shapes to support colorblind accessibility
  • A button leading to the Controls screen has been added to the Accessibility Settings screen
    • The “Auto-Jump” option, as well as the “Sneak” and “Sprint” toggles have been removed from the Accessibility Settings screen
  • The “Show Subtitles” option has been rephrased to “Closed Captions” to more accurately describe what it does
  • The “Hide Lightning Flashes” accessibility setting has been renamed to “Hide Sky Flashes” as it includes the End light flashes

Technical Changes

  • Pack versions now have minor versions
  • The Data Pack version is now 88.0
  • The Resource Pack version is now 69.0
  • Some previously hidden debug features have been exposed to players

Pack Formats

  • The pack versions for data packs and resource packs now have minor versions
    • A minor version increment of the game’s pack version is backwards-compatible, meaning all packs made for previous iterations of the same major version will keep working
  • Packs can set compatibility requirements on minor versions in case they rely on resources introduced in a minor version

Pack Metadata

The pack.mcmeta format has been updated:

  • The supported_formats field has been removed
    • If your pack declares support for a pack version with the previous format (data pack < 82, resource pack < 65), it is still required
    • Otherwise, it is not allowed and must be removed
  • The pack_format field is now optional
    • If your pack declares support for a pack version with the previous format (data pack < 82, resource pack < 65), it is still required
  • Added required field min_format – specifies the minimum version supported
    • A full version is specified as a list of two integers, e.g. [74, 1]
    • Specifying a single integer is interpreted as that major version, e.g. 74 is the same thing as [74, 0]
    • Specifying a list of a single integer is interpreted the same as specifying that integer alone
  • Added required field max_format – specifies the maximum version supported
    • A full version is specified as a list of two integers, e.g. [74, 1]
    • Specifying a single integer is interpreted as any minor version, i.e. the minor version is 0x7fffffff
    • Specifying a list of a single integer is interpreted the same as specifying that integer alone
  • For overlay entries:
    • The formats field has been removed
      • If your pack includes any overlay range that includes a pack version with the previous format (data pack < 82, resource pack < 65), it is still required for all overlay definitions
      • Otherwise, it is not allowed and must be removed
    • Added required fields min_format and max_format with the same formats as the fields above with the same name for the pack section

Debug Features

  • Some debug features that were previously removed during compilation are now preserved and can be used by players
  • Individual values can be enabled with JVM properties:
    • First, a global debug flag must be enabled with -DMC_DEBUG_ENABLED or -DMC_DEBUG_ENABLED=true
    • Then, a specific feature can be enabled, for example -DMC_DEBUG_BRAIN or -DMC_DEBUG_BRAIN=true
    • To get the list of all available debug properties, add -DMC_DEBUG_PRINT_PROPERTIES
  • Warning: this is debug code, and the primary intention is to help modders – not for normal play. Handle with extreme care!
    • Features can crash your game or corrupt your worlds
    • Features are not guaranteed to work as intended
    • Features might be added, changed or removed without a notice

Data Pack Versions 82.0 Through 88.0

  • Added Mannequin entities
  • World Borders can now be set per dimension
  • Added a way to use GUI and item sprites in text
  • Player profiles in data components and block entities no longer resolve automatically
  • Added fetchprofile command for downloading player profiles
  • Renamed chain to iron_chain

Mannequins

Added a new type of technical entity called minecraft:mannequin which can only be spawned with summon commands.

  • A Mannequin is a Player Avatar without a connected Player
  • Mannequins show a description text (by default entity.minecraft.mannequin.label) where a Player’s below_score score would show
  • Mannequins function as Living Entities – they can hold and wear equipment, have attributes & effects, take damage, etc.
  • Mannequins accept the minecraft:profile component from spawner items

Data Fields:

  • profile – Which Player profile to show on the entity (same format as a minecraft:profile component), defaults to {} (i.e. static profile with both id and name missing)
  • hidden_layers – List of outer skin layers to hide
    • Valid entries: capejacketleft_sleeveright_sleeveleft_pants_legright_pants_leghat
  • pose – The pose of the mannequin
    • Valid entries: standingcrouchingswimmingfall_flyingsleeping
  • main_hand – Which hand is the main hand of the Mannequin – one of left and right
  • immovable – Optional boolean specifying that the Mannequin cannot be moved (defaults to false)
  • description – Optional Text Component shown where a Player’s below_score score would show
    • The default entity.minecraft.mannequin.label text is shown if omitted
  • hide_description – Optional boolean specifying that no description should be shown at all
    • A Mannequin with the description hidden displays as if a Player had no below_score display

World Border

  • The World Border is now dimension-specific
    • This means that each dimension can have its own World Border size, position, etc.

Text Rendering

object Text Component

  • New text component with type object has been added
  • This component will display a non-character object as a part of text
  • Sprites are always rendered as a rectangle, 8×8 pixels in size
    • Bold and italics styles are ignored
  • Format:
    • object: type of object, string, see below for values
    • <type-specific>: additional fields depending on object type
  • Similarly to the nbt text component, the object field can be omitted
    • However, it’s recommended to provide it for error checking

atlas Object Type

  • Renders a single sprite from a sprite atlas as a character
  • Format:
    • atlas: namespaced ID of a sprite atlas, default value: minecraft:blocks
    • sprite: namespaced ID of a sprite in the atlas, for example item/porkchop

General note about atlas contents:

  • Sprite Atlases contain textures for items, blocks, mob effects, GUI elements, etc.
  • The contents are controlled by files in the assets/minecraft/atlases/ directory in a resource pack
  • The current contents can be reviewed with the F3+S key combination

player Object Type

  • Renders a player head
  • If a partial profile is given, the skin is resolved in the same way as the minecraft:profile component on a player head
  • Format:
    • player: player profile
      • name: player name, optional string
      • id: player uuid, optional UUID
      • properties: profile properties, optional map
    • hat: controls rendering of a hat layer, boolean, default true

run_command Click Event

  • Previously, if the command field contained a command that required a signed message (/say/me/msg/tell/w/teammsg/tm), it would be silently discarded
  • Instead, a screen will be shown that lets the user insert the command into the chat window or copy the command to their clipboard if the chat window can’t be opened

Commands

  • The summon command now fails when trying to summon monsters while the difficulty is set to Peaceful
  • The spawnpoint and setworldspawn commands now have control over the full player look direction
    • The angle argument has been removed
    • Added an optional rotation argument which requires both yaw and pitch to be specified
  • The setworldspawn command is no longer limited to the Overworld
    • This means players can respawn e.g. in the Nether when they have no Bed or Respawn Anchor
  • Server commands now run from the respawn dimension by default instead of always running in the Overworld

Added fetchprofile

  • A new command that has been added to fetch the contents of a player profile from Minecraft servers
  • Since the operation might take some time, it works asynchronously while the game keeps running
  • After successful completion, a message will be printed that lets the user perform various actions:
    • Copy the contents of a fully resolved minecraft:profile component
    • Get a Player Head with the resolved profile
    • Summon a Mannequin with the resolved profile
    • Copy a text component to display the player head in text
  • Since the result is not known at the time of execution, this command always returns 1

Syntax:

  • fetchprofile name <player name> – resolves profile by name (case-insensitive)
  • fetchprofile id <uuid> – resolves profile by id

Data Components

Modified minecraft:profile

New Resolution Behavior

  • Previously the contents of this component would permanently change when the profile was resolved, i.e. downloaded from Minecraft services
  • To avoid issues with this unexpected change, the resolved value is no longer stored and contents of the profile will always remain unchanged
  • That means this component now has two behaviors:
    • Static: when it has the properties field or when both name and id are present or when both are missing
      • In this state, the profile will always render as-is
      • If the properties field is missing, a default skin will be used (selected based on id, same as in offline mode)
      • That means the skin will be frozen at the moment of component creation
      • This option is preferred for decorative uses
    • Dynamic: when it has either name or id set (but not both)
      • When an item containing this profile is rendered on the client side, the profile will be resolved to most recent value
      • This means that this item will always render with the current skin of the targeted player
        • Note: if a player changes their skin while the game is running, the change will not be visible until the client restarts
      • The resolution might happen with a delay, during which the item will render with a default skin
      • The profile name will replace the item name only when it is present
        • Items with just id will show the default name
      • Items with dynamic profiles are distinguished from static ones with a label in their tooltip
  • Items stack based on exact contents, so even if a dynamic component is eventually resolved to the same profile as a static one, they won’t stack together
  • Player heads in older maps that have not been loaded in newer versions yet will usually be converted to dynamic contents

Player Skin Overrides

  • Profiles can now also have additional fields that can replace various values used for rendering
  • If any of the fields are omitted, the value from the resolved profile is used, even if the profile resolves to the default skin
  • New fields
    • texture – Optional namespaced ID of the skin texture to use for rendering
      • The skin is specified relative to the textures folder and with a .png suffix
      • e.g. entity/player/wide/steve will use the default wide Steve skin
    • cape – Optional namespaced ID of the cape texture to use for rendering
      • When specified, uses the same format as the texture field
    • elytra – Optional namespaced ID of the elytra texture to use for rendering
      • When specified, uses the same format as the texture field
      • If this value is not present either as an override or in a player profile, Mannequins using this profile will use the cape texture, or if that is also not present, the default Elytra texture when wearing an Elytra
    • model – Optional model type, one of wide and slim

blocks_attacks Item Component

  • If the damage reduced in an attack is 0, for example by the angle threshold not matching, the item can no longer get disabled in the attack, nor cause knockback due to blocking

Entity Data

Modified minecraft:player

  • Changes to the respawn object
    • angle has been renamed to yaw and is now a required field
    • pitch has been added as a required field
    • dimension is now a required field

Block Entity Data

Modified minecraft:skull

  • profile field has been changed to match minecraft:profile component
    • That means that it also becomes immutable and is resolved only when necessary

Loot Tables

  • Added minecraft:entity_interact loot table type which takes the following parameters:
    • target_entity, the entity being interacted with
    • interacting_entity, the optional entity that is interacting with the target_entity
    • tool, the tool used to interact with target_entity
  • Added minecraft:block_interact loot table type which takes the following parameters:
    • block_state, the block state of the block entity being interacted with
    • block_entity, the optional block entity being interacted with
    • interacting_entity, the optional entity that is interacting with the block_state
    • tool, the optional tool used to interact with block_state
  • Fields that specify a target entity in a loot table, such as entity_properties.entity, can additionally target the target_entity and interacting_entity parameter types
  • Added charged_creeper/root loot table for drops when an entity is killed by a Charged Creeper
    • This loot table dispatches on the mob that was killed, to the following loot tables:
      • charged_creeper/piglin
      • charged_creeper/creeper
      • charged_creeper/skeleton
      • charged_creeper/wither_skeleton
      • charged_creeper/zombie
    • Once any killed mob drops an item from this loot table, other mobs killed by the same Creeper will not drop from this loot table
  • Added brush/armadillo loot table for drops when an Armadillo is brushed
  • Added gameplay/turtle_grow loot table for drops when a Turtle grows into an adult
  • Added harvest/beehive loot table for drops when a Beehive or Bee Nest is harvested using Shears
  • Added harvest/cave_vine loot table for drops when a Cave Vine with Glowberries is harvested by interacting with it
  • Added harvest/sweet_berry_bush loot table for drops when a Sweet Berry Bush with Sweet Berries is harvested by interacting with it
  • Added carve/pumpkin loot table for drops when a Pumpkin is carved using Shears

Loot Functions

minecraft:fill_player_head

  • The entity field now accepts new entity context values:
    • target_entity
    • interacting_entity

minecraft:set_lore

  • The entity field now accepts new context values:
    • target_entity
    • interacting_entity

minecraft:copy_custom_data

  • The source field now accepts new context values:
    • target_entity
    • interacting_entity

minecraft:copy_name

  • The source field now accepts new context values:
    • direct_attacker
    • target_entity
    • interacting_entity

minecraft:copy_components

  • The source field now accepts new context values:
    • this
    • attacker
    • direct_attacker
    • attacking_player
    • target_entity
    • interacting_entity
    • tool

Predicates

minecraft:entity_scores

  • The entity field now accepts new entity context values:
    • target_entity
    • interacting_entity

minecraft:entity_properties

  • The entity field now accepts new entity context values:
    • target_entity
    • interacting_entity

Enchantments

explode Effects

New field: block_particles – specifies per-block particles. Each block particle is randomly chosen according to weights. A set limit of block particles is spawned each tick from all explosions that tick.

Format: List of entries:

  • weight: Non-negative integer representing the random weight for this entry being chosen
  • particle: The particle to spawn
  • scaling: Optional scaling to apply between explosion center and block position, or 1.0 if not specified
  • speed: Optional scaling to apply to the speed of the particle, or 1.0 if not specified

World Generation

  • The initial_density_without_jaggedness field in noise_settings definitions has been replaced with a preliminary_surface_level field
    • initial_density_without_jaggedness was a 3D density function that was used to determine an approximate surface level by scanning for the first point with a density greater than 0.390625
    • preliminary_surface_level is a 2D density function that should produce the y-level of the approximate surface
    • The minecraft:find_top_surface density function can be used to replicate the previous scanning

Density Functions

Added minecraft:find_top_surface

  • Approximates the topmost surface of a given density function
  • It scans from an upper bound to a lower bound to find the point at which the density changes from negative to positive
    • The upper bound should be as close to the actual surface as possible for best performance
    • The upper bound should never be lower than the actual surface

Fields:

  • density – density function to approximate the surface of
  • upper_bound – 2D density function providing the highest possible y-value
  • lower_bound – integer, lowest possible y-value
  • cell_height – positive integer defining the grid resolution on which to scan

Added minecraft:invert

  • Resolves to 1/argument

Fields:

  • argument – density function

Jigsaw Structures

  • The max_distance_from_center field may now specify a different restriction on the vertical axis from horizontal
    • This can be specified by an object with fields:
      • horizontal – required integer between 1 and 128
      • vertical – optional integer between 1 and 4096 (default: 4096)
      • e.g.: “max_distance_from_center”: { “horizontal”: 20, “vertical”: 500 }
    • The previous format of a single inline value specifying both horizontal and vertical distance is still supported

Tags

Block Tags

  • Added #copper_chests – all Copper Chest blocks
  • Added #copper – all Copper blocks
  • Added #incorrect_for_copper_tool – all blocks which will not drop items with a copper tool
  • Added #copper_golem_statues – all Copper Golem Statue blocks
  • Added #chains – all Chain blocks
  • Added #lanterns – all Lantern blocks
  • Added #bars – all Bar blocks

Item Tags

  • Added #copper_chests – all Copper Chest block items
  • Added #copper – all Copper block items
  • Added #copper_tool_materials – all copper tool materials
  • Added #repairs_copper_armor – all items which repair copper armor
  • Added #copper_golem_statues – all Copper Golem Statue block items
  • Added #chains – all Chain block items
  • Added #lanterns – all Lantern block items
  • Added #bars – all Bar block items
  • Added #shearable_from_copper_golem – all items that can be removed from the Copper Golem’s saddle slot via Shears

Entity Type Tags

  • Added #cannot_be_pushed_onto_boats – mobs that cannot be pushed onto boats which includes the Creaking, players and all aquatic mobs that aren’t amphibious

  • Added #accepts_iron_golem_gift – mobs that will accept and receive an offered item from an Iron Golem

  • Added #candidate_for_iron_golem_gift – mobs that an Iron Golem will attempt to offer an item to, but may not necessarily accept it (see #accepts_iron_golem_gift)

Particles

  • dragon_breath now optionally takes a power parameter (float, default 1.0), which is multiplied onto its initial velocity, after all randomness
  • instant_effect and effect now optionally take power (float, default 1.0) and color (rgb, default 0xFFFFFF) parameters
  • flash now requires a color parameter (argb)

Resource Pack Versions 64.0 Through 69.0

  • Added new display transform “on_shelf”
    • Used for displaying items on the Shelf

Block Sprites

  • Added new block sprites:
    • copper
    • copper_left
    • copper_right
    • exposed_copper
    • exposed_copper_left
    • exposed_copper_right
    • weathered_copper
    • weathered_copper_left
    • weathered_copper_right
    • oxidized_copper
    • oxidized_copper_left
    • oxidized_copper_right
    • acacia_shelf
    • bamboo_shelf
    • birch_shelf
    • cherry_shelf
    • crimson_shelf
    • dark_oak_shelf
    • jungle_shelf
    • mangrove_shelf
    • oak_shelf
    • pale_oak_shelf
    • spruce_shelf
    • warped_shelf
    • copper_bars
    • copper_chain
    • copper_lantern
    • copper_torch
    • exposed_copper_bars
    • exposed_copper_chain
    • exposed_copper_lantern
    • exposed_copper_torch
    • oxidized_copper_bars
    • oxidized_copper_chain
    • oxidized_copper_lantern
    • oxidized_copper_torch
    • weathered_copper_bars
    • weathered_copper_chain
    • weathered_copper_lantern
    • weathered_copper_torch
  • Renamed the following block sprites:
    • chain to iron_chain

Entity Sprites

  • Added new entity sprites:
    • copper_golem
    • exposed_copper_golem
    • weathered_copper_golem
    • oxidized_copper_golem
    • copper_golem_eyes
    • exposed_copper_golem_eyes
    • weathered_copper_golem_eyes
    • oxidized_copper_golem_eyes

Item Sprites

  • Added new item sprites:
    • copper_axe
    • copper_boots
    • copper_chestplate
    • copper_golem_spawn_egg
    • copper_helmet
    • copper_hoe
    • copper_leggings
    • copper_nugget
    • copper_pickaxe
    • copper_shovel
    • copper_sword
    • copper_chain
    • copper_lantern
    • exposed_copper_chain
    • exposed_copper_lantern
    • oxidized_copper_chain
    • oxidized_copper_lantern
    • weathered_copper_chain
    • weathered_copper_lantern
  • Renamed the following item sprites:
    • chain to iron_chain

Textures

  • Added a new texture:
    • environment/end_flash.png
  • Moved the result slot of gui/container/villager.png up by one pixel

Sounds

Sound Events

  • Added new sound events:
    • block.copper_chest.open
    • block.copper_chest.close
    • block.copper_chest_weathered.open
    • block.copper_chest_weathered.close
    • block.copper_chest_oxidized.open
    • block.copper_chest_oxidized.close
    • entity.copper_golem.step
    • entity.copper_golem.hurt
    • entity.copper_golem.death
    • entity.copper_golem.spin
    • entity.copper_golem_weathered.step
    • entity.copper_golem_weathered.hurt
    • entity.copper_golem_weathered.death
    • entity.copper_golem_weathered.spin
    • entity.copper_golem_oxidized.step
    • entity.copper_golem_oxidized.hurt
    • entity.copper_golem_oxidized.death
    • entity.copper_golem_oxidized.spin
    • item.armor.equip_copper
    • entity.copper_golem.spawn
    • entity.copper_golem.no_item_get
    • entity.copper_golem.no_item_not_get
    • entity.copper_golem.item_drop
    • entity.copper_golem.item_no_drop
    • entity.copper_golem_become_statue
    • block.copper_golem_statue.break
    • block.copper_golem_statue.place
    • block.copper_golem_statue.hit
    • block.copper_golem_statue.fall
    • block.copper_golem_statue.step
    • block.shelf.activate
    • block.shelf.deactivate
    • block.shelf.multi_swap
    • block.shelf.place_item
    • block.shelf.single_swap
    • block.shelf.take_item
    • weather.end_flash”

Particles

  • Added new particle:
    • copper_fire_flame

Shaders & Post-process Effects

Shaders

  • The following unused shaders have been removed:
    • core/position_color_lightmap.vsh
    • core/position_color_lightmap.fsh
    • core/position_color_tex_lightmap.vsh
    • core/position_color_tex_lightmap.fsh
  • A new PER_FACE_LIGHTING flag has been added to the following shaders:
    • core/entity.vsh
    • core/entity.fsh
  • When set, cardinal lighting will be computed separately for front- and back-faces
  • As we now require OpenGL 3.3, we have bumped the version of all shaders from 150 to 330

Changes to Full Screen Passes

  • The following vertex shaders have been removed, and replaced by core/screenquad.vsh:
    • core/blit_screen.vsh
    • post/blit.vsh
    • post/blur.vsh
    • post/invert.vsh
    • post/sobel.vsh
    • post/screenquad.vsh
  • Vertex shaders for post-processing effects, as well as lightmap generation and full screen blits are no longer are passed the Position attribute, and instead must assign vertex coordinates by gl_VertexID
  • These passes furthermore are only executed with 3 vertices, instead of a full quad

Fixed bugs in 1.21.9

  • MC-383 – In the world selection screen, world names/versions/timestamps can overflow the list to the right
  • MC-2681 – No loading progress bar whenever we create a new world or when the game is loading something
  • MC-26334 – Chat UI is forcibly cleared when killed
  • MC-36783 – Item frames/Glow item frames don’t change their hitbox if they contain a map
  • MC-46503 – You can retain entities’ shaders by running the “/kill” command while in spectator mode
  • MC-46634 – Thunder volume is not affected by weather volume settings
  • MC-59413 – Water and lava can drip from barriers
  • MC-69216 – Switching to spectator mode while fishing keeps rod cast
  • MC-73881 – Summoning monsters in peaceful difficulty spawns monster for 1 tick
  • MC-89142 – Changing jump key to “Enter” let player jump after completing chat line
  • MC-94610 – Missing loot table entries for mob heads from charged creepers
  • MC-98200 – All sound sliders except master are ignored by high-volume /playsound
  • MC-98322 – Flying after shifting between Creative/Spectator
  • MC-99785 – You can leash entities in spectator mode
  • MC-119417 – A spectator can occupy a bed if they enter it and then are switched to spectator mode
  • MC-147784 – Fletching table flashes crafting table’s GUI for about a second upon right-clicking it in spectator mode
  • MC-160528 – End portals do not negate fall damage
  • MC-163218 – Players with the Sneak option set to “Toggle” can sneak while in GUIs
  • MC-165991 – TNT explosion no longer shows additional smoke particles since 1.15 Pre-release 1
  • MC-173730 – Shift-clicking water buckets against a waterloggable block doesn’t place the water beside the waterloggable block
  • MC-174759 – Dragon eggs can be teleported to a height below void
  • MC-183776 – After switching game modes using F3+F4, you need to press F3 twice to toggle the debug screen
  • MC-183784 – Visual bug to the Game Mode Switcher debug menu after resizing the window
  • MC-187850 – “run_command” click_event doesn’t work in written books if chat is hidden
  • MC-191669 – Sprinting is disabled when switching your gamemode to spectator while sprinting into a block or general obstruction
  • MC-192907 – The F3 debug menu cannot be toggled while chat is open
  • MC-196443 – When reducedDebugInfo is true, hitting F3+B and F3+G would still tell the player in chat that they are being toggled, despite nothing happening
  • MC-197247 – Using F3+D to clear pending lines keeps the previous delay for a new message
  • MC-203401 – Double-tapping forward button to sprint cannot be disabled/reconfigured
  • MC-217956 – Number keys do not work on the game menu with the debug pie
  • MC-220842 – Opening game mode switcher while spectating a mob with shader effect toggles the effect
  • MC-220913 – Parity issue: Adjusting slider in the sound settings when not being in a world does not play a sound of that category
  • MC-223142 – Player can move while spectating a marker
  • MC-225088 – Overworld surface is darker than before on low brightness
  • MC-232968 – Spectators can prevent the closing animation of a chest/barrel when viewing it at the same time as a non-spectator
  • MC-234479 – You can invite the same player multiple times to your realm even if they’ve already received an invitation or have already joined it
  • MC-234737 – Typo in exception message: “EmtyPoolElement”
  • MC-235780 – The beacon GUI incorrectly displays the “Beacon” tooltip when the mouse cursor is held over the “Done” or “Cancel” buttons
  • MC-236508 – The title within the “Add Server” menu is displayed as “Edit Server Info”
  • MC-237016 – The chat delay function continues to print messages despite the game being paused
  • MC-237590 – The word “chunks” is improperly capitalized within the render and simulation distance sliders
  • MC-237843 – Players can be idle kicked whilst viewing the end credits
  • MC-238146 – When you switch to Spectator mode while sleeping, the night never skips
  • MC-238273 – “Locked by another running instance of Minecraft” lacks punctuation
  • MC-243759 – Explosions won’t damage an entity if the distance to its eyes is 0
  • MC-249205 – “minecraft.used:minecraft.potion” increases by a value of two when using water bottles to create mud in creative mode
  • MC-250062 – Several strings throughout the game contain comma splices
  • MC-250193 – Server log does not use the string representation of a player’s GameProfile on a disconnect during encryption
  • MC-251407 – Darkness pulsing effect doesn’t work in The End
  • MC-254052 – /locate doesn’t work outside build limit
  • MC-254668 – Pressing Escape on the death screen’s title screen warning respawns the player
  • MC-257540 – Sheep eat half as often as they did before 21w39a
  • MC-257792 – Output slot for trading menu is off-center
  • MC-258191 – Root system feature allows hanging root vertical span of 0, causing error
  • MC-259347 – Height limit warning message is shown when right-clicking the top of a block at the build height limit with a bucket
  • MC-259571 – Last player game mode not saved after player dies or the game is reloaded
  • MC-259673 – Tab selection works differently in world creation and statistics screens
  • MC-259692 – Sneaking and sprinting states are activated or toggled unexpectedly when releasing their input keys while an interface was just previously closed
  • MC-259935 – It can snow even when biome precipitation is set to NONE
  • MC-260591 – ‘execute on origin’ and ‘execute on owner’ fail to find the targeted entity when it is in a separate dimension
  • MC-260822 – The “Done” and “Cancel” buttons within the beacon GUI no longer display tooltips when the mouse cursor is held over them
  • MC-260920 – Statistics screen columns are not accessible through keyboard navigation
  • MC-261387 – Redundant block_predicate_filter check in mangrove tree placement
  • MC-262000 – Unused texture: misc/white.png
  • MC-262370 – Some multiplayer strings are untranslatable
  • MC-263597 – The ender dragon’s respawning noise cannot be turned down by the Hostile Mobs volume slider
  • MC-264962 – Strings that contain two inputs for a given action have inconsistent spacing and apostrophes
  • MC-265290 – Elements within the command block interface are not selected in order when using the TAB key
  • MC-265807 – Mobs don’t drown if their Air NBT is less than -19
  • MC-269838 – Pumpkin seeds drop from sheared pumpkins is hardcoded
  • MC-269839 – Honeycomb drop from sheared bee nests and beehives is hardcoded
  • MC-270172 – Client and server desync for hooked players when changing gamemode to spectator
  • MC-270190 – Hovering over banner patterns in the loom UI does not display tooltips
  • MC-270669 – Incorrect argument order in translation key argument.block.property.novalue
  • MC-270918 – Loot tables for mob heads are missing copy_components loot function for custom_name
  • MC-272584 – Fireballs redirected by explosions caused by player owned entities no longer carry player ownership
  • MC-273894 – Some non-persistent mobs in spawn chunks continue to count towards mob cap when far away
  • MC-273943 – Sweet berries drop from harvested bushes is hardcoded
  • MC-275244 – Setting “width_smoothness” in file configured_carver to 0 causes the game to freeze or crash
  • MC-275432 – Subtitles are difficult to see within screens
  • MC-276431 – Dragon egg teleports above the build height limit and deletes itself
  • MC-276568 – Mipmapped versions of the armor trims atlas are generated
  • MC-276629 – Glow berries drop from cave vines appears to be hardcoded
  • MC-276759 – Scute drop from brushing armadillos is hardcoded
  • MC-276826 – Entity models render completely white in GUI screens while affected by glowing and invisibility at the same time
  • MC-276931 – Enchanted books have the wrong rarity
  • MC-277447 – Minecraft generates mipmapped textures for chests, but does not use them
  • MC-277450 – Minecraft generates mipmapped textures for shulker boxes, but does not use them
  • MC-277470 – Minecraft generates mipmapped textures for beds, but does not use them
  • MC-277471 – Minecraft generates mipmapped textures for signs, but does not use them
  • MC-277473 – Minecraft generates mipmapped textures for decorated pots, but does not use them
  • MC-277481 – Minecraft generates mipmapped textures for banners, but does not use them
  • MC-277483 – Minecraft generates mipmapped textures for shields, but does not use them
  • MC-277661 – Constantly rotating the player to their current rotation using /rotate produces jittery camera movement
  • MC-277770 – Processor type block_age always modifies slabs property “type” to bottom
  • MC-277975 – The first line of the command execution warning in an item’s tooltip is missing punctuation
  • MC-278435 – Mushroom Fields biome doesn’t generate pumpkin patches despite being specified in vanilla datapack
  • MC-278550 – While flying in creative or spectator mode, the surface of water can prevent you from sprinting
  • MC-278965 – Cherry Grove is not part of the #stronghold_biased_to tag
  • MC-279123 – Some strings that reference Minecraft Realms use inconsistent or missing verb forms
  • MC-279153 – Some strings that mention the base values of attributes are missing articles
  • MC-279173 – The “chat.disabled.invalid_command_signature” string is missing an article before the word “Command”
  • MC-279174 – The “gamerule.spawnChunkRadius.description” string is missing an article before the word “Amount”
  • MC-279175 – Some multiplayer disconnection strings are missing articles and demonstratives
  • MC-279176 – The “gamerule.commandModificationBlockLimit.description” string is missing an article before the word “Number”
  • MC-279212 – Some narration strings are missing articles and possessive determiners
  • MC-279548 – TNT minecart does not remember ignition source when exploding from a fall
  • MC-279793 – Mounting horses, donkeys, mules, zombie horses, skeleton horses, and camels no longer forces you to face forward
  • MC-289348 – Ender pearls stop loading chunks in The End after relog, if there are no players in that dimension
  • MC-295829 – Test instance block GUI uses “Batch” instead of “Environment”
  • MC-295841 – Interactive collision check path is broken
  • MC-296054 – Fast non-projectile entity movements may fail to apply block effects from blocks around the starting position when moving in positive directions
  • MC-296055 – Slow non-projectile entity movements may fail to apply block effects from origin block
  • MC-296057 – Sideways non-projectile movements may fail to apply block effects from blocks around start of sideways motion
  • MC-296129 – The sunrise/sunset effect flickers on Intel graphics of Gen9 architecture
  • MC-296372 – Teleport duration is unreliable as of 1.21.5
  • MC-296789 – The color of text within the test instance block interface is inconsistent with other similar interfaces
  • MC-296897 – Fast moving entities freeze the server which causes watchdog crash x2
  • MC-297126 – “Failed to read field…” error spam when upgrading a 25w15a or 25w16a world
  • MC-297496 – Text inside the middle of the java realms information box completely disappears when selected
  • MC-297593 – Cauldrons now apply the effect of the substance they’re filled with when contacted from the underside
  • MC-297898 – Entering a dialog temporarily closes the chat and clears anything the player was currently typing
  • MC-298274 – Certain invalid commands give “see below for error” with no additional information
  • MC-298605 – When creating a Water World superflat world, the player spawns at the bottom of the sea
  • MC-298732 – The cursor is no longer shown at the end of lines that aren’t the final one
  • MC-298805 – Axes disable shields even when the shield does not block the attack
  • MC-298883 – The active world slot is not highlighted when selected via TAB navigation in Realms
  • MC-299067 – Arrows can lose ownership on disconnection in multiplayer
  • MC-299105 – Tears and Lava Chicken music disc ‘desc’ translations are unused
  • MC-299115 – Arrows lose their owner tag when deflected while the owner is offline
  • MC-299314 – Breaking jukeboxes in certain ways doesn’t stop the music
  • MC-299450 – You can no longer double-click to select characters in the book and quill interface
  • MC-299451 – Pages in book and quills are no longer automatically focused when switching pages
  • MC-299548 – “run_command” dialog actions don’t work if chat is hidden
  • MC-299566 – The cursor in the book and quill interface is positioned too far to the left
  • MC-299627 – Entity interpolation for high speed projectiles is wildly inaccurate
  • MC-299628 – Mounted players/mobs trigger sculk sensors on world load
  • MC-299770 – Chunks loaded by ender pearls permanently unload upon player death even when enderPearlsVanishOnDeath is set to false
  • MC-299782 – Zombie villagers saved in jigsaw structures forget their biome variant and profession upon world generation
  • MC-299823 – Minecraft shaders cause C7050 warnings
  • MC-299837 – Running two or more /rotate commands in the same tick only applies the rotation of the last command
  • MC-299872 – The freezing overlay flashes when a freezing player touches fire
  • MC-299873 – Selection boxes of plain messages within dialogs can get cut off
  • MC-299896 – You can switch the worlds of expired realms to empty slots, which misleadingly prompts world creation despite no active realms subscription
  • MC-299913 – The “You don’t seem to have a Realm…” focusable text widget now has a black background
  • MC-300021 – Some elements of the villager interface are now rendered above the cursor item
  • MC-300034 – Dolphins can ride boats
  • MC-300092 – F3 pie chart particle entries are missing names
  • MC-300340 – Continuously clicking “Continue” on the welcome page resets the button disappearance animation progress
  • MC-300457 – Dialog is unescapable when action or exit_action is set to run_command with a command that would produce a signed chat message
  • MC-300856 – I-beam cursor in book signing screen has wrong color
  • MC-301447 – Items with plain-String names created before 1.20.4 cause DFU JSON exception when loaded
  • MC-301494 – Falling particles no longer appear from floating sand or gravel
  • MC-301510 – GUI sprites nine slice performance regression
  • MC-301619 – Game mode translation key is used in the console message sent when a player tries to switch their game mode without permission
  • MC-301770 – The below_name plate is not displayed higher for players and mannequins named “deadmau5”
  • MC-301883 – Entities going through portals with their Motion set to more than 10 on an axis have their Motion tag reset
Posted on Leave a comment

JAVA Edition: 1.21.6

New Features

  • Added Happy Ghast mob
  • Added Dried Ghast block
  • Added Harness items
  • Added the Locator Bar, a new HUD element that shows the direction of other Players in multiplayer
  • Added a new Music Disc with the track “Tears” by Amos Roddy
  • Added 5 new music tracks by Amos Roddy
  • Added new advancements
  • Added Old Spelling Indonesian (Indonesian pre-reform) and Cantabrian language support

Happy Ghast

The Happy Ghast is a new mountable flying mob.

Dried Ghast Block

  • The Dried Ghast block is found in Nether Fossil structures and is the first stage of the Happy Ghast mob
  • Can be crafted with 1 Soul Sand block and 8 Ghast Tears
  • When waterlogged, it undergoes 3 hydration level changes over approximately 20 minutes until it spawns a Ghastling mob
  • The hydration level decreases when it is no longer waterlogged, using the same timescale
  • The hydration level is not preserved when mined
  • Makes sounds and shows particles depending on its hydration level
  • The Dried Ghast block emits a vibration frequency of 11 when its block state changes

Ghastling Mob

  • The Ghastling is a young version of the Happy Ghast mob
  • Spawns from a Dried Ghast block that has continuously been waterlogged for about 20 minutes
  • After spawning, the Ghastling will try and follow:
    • Players within a 16-block radius or
    • An adult, non-aquatic passive mob or some of the neutral mobs within a 16-block radius
  • If no player or suitable mob is close around, the Ghastling will idle around within 32 blocks from its home position where it spawned or was last interacted with
    • It will reset its home position if it is moved more than 16 blocks away from the border of its home position
  • Can be tempted and fed using Snowballs
  • Will grow up into a Happy Ghast after about 20 minutes, or faster if fed Snowballs

Happy Ghast Mob

  • Can be equipped with a Harness and then be mounted by up to four players
  • Tempted by Snowballs and Harness
    • The Happy Ghast can only be tempted with a Harness when it has no harness equipped
  • Slowly regenerates health, with regeneration speeding up during rain, snow or when flying at the same height as clouds
  • The first player that mounts the Happy Ghast will control it, sitting above it in the front seat
    • When controlled, the goggles of the Happy Ghast flip down to cover its eyes
  • Players mounting after the first player are placed in slots on each side of it, starting clockwise from the first player
  • Pressing the sneak key dismounts the player on top of the Happy Ghast
  • If the Happy Ghast detects players standing on top of it, it ceases all movement and rotates to the closest cardinal direction
    • This happens regardless of whether it has a Harness equipped or not
  • When mounted on the Happy Ghast, the third-person camera is further away from the player
  • When there are no players mounted or walking on the Happy Ghast, it starts its roaming behavior
    • If players dismount midair, the Happy Ghast will descend towards the ground before it starts roaming
    • The roaming behavior is similar to the Ghastling, except for the radius being 64 blocks
    • When wearing a Harness, the Happy Ghast roams closer to the home position, within a 32 block radius
    • When leashed, the Happy Ghast has a roaming distance of 10 blocks
    • The Happy Ghast will try to stay close to blocks when roaming
  • Cannot be bred
  • Cannot enter boats
  • Has no panic behavior when taking damage

Harness Item

  • The Harness is a new item that can be equipped on a Happy Ghast to allow players to ride it
  • The Harness comes in 16 different colors
  • Can be crafted out of 3 Leather, 2 Glass blocks and 1 Wool block
    • The Harness will have the same color as the Wool block used when crafting
  • Can be re-dyed in the crafting grid
  • Can only be equipped on a Happy Ghast
  • Allows up to 4 players to mount the Happy Ghast
  • Can be removed from the Happy Ghast using Shears when no players are mounted

Locator Bar

The Locator Bar is a new UI element that displays the direction of other players in the world.

  • If another player is in the world (and that player is not hiding) the Locator Bar will display in the same area as experience bar
    • When experience is gained the experience bar will appear
    • If there are no other players in the world the experience bar will display as normal
  • Facing other players within a 120 degree range will display those players as colored indicators on the Locator Bar
    • Other players that are above/below the screen will also display an up/down arrow together with their indicator
    • The indicator will change to different sized icons depending on how far away the other Player is
    • Colored indicators are randomized for each player
      • Operators can modify the colors of indicators with the /waypoint command
        • e.g.: /waypoint modify @s color red to set an indicator to red
      • Players on a team will override their default indicator color with their team color
  • Players can hide by crouching, wearing a mob head or a Carved Pumpkin, or using a Potion of Invisibility
  • Players in Spectator Mode are not visible on the Locator Bar
    • However, spectators are visible to each other
  • The Locator Bar can be toggled off by setting the locatorBar game rule to false

Music and Sound

  • Added a new music disc:
    • “Tears” by Amos Roddy
      • Can be obtained by killing a Ghast with a Fireball deflected by a Player
      • Has a comparator output of 10 when played in a Jukebox
  • Added 5 new background music tracks by Amos Roddy:
    • “Below and Above”
    • “Broken Clocks”
    • “Fireflies”
    • “Lilypad”
    • “O’s Piano”
  • Added a new sound for when a Lead snaps
  • Added new custom sounds for shearing Saddles, Horse Armor, and Carpets from Llamas
  • Added new sound volume category called “UI” for sounds played by UI elements, like button clicks
  • Music now plays even when the game is paused
  • Added an option to the Music & Sound settings that allows players to change how frequently music plays while in a game world
  • Added an option to the Music & Sound settings that enables a music toast to be shown whenever a song starts playing
    • With this option enabled, the song that is currently playing will always be seen in the top left corner of the in-game Pause Menu

Advancements

  • Added new “Stay Hydrated!” Husbandry Advancement when a Dried Ghast block is placed into Water
  • Added “Heart Transplanter” Adventure Advancement that is unlocked when a player places a Creaking Heart with the correct alignment between two Pale Oak Log blocks

Changes

  • Changed leash mechanics and updated recipe for Lead
  • Saddles are now craftable and shearable
  • Updated Ghast texture
  • Improvements to fog
  • Updates to music and sound
  • Improvements to the Realms configuration screen and introduced a region preference setting
  • Piglins can now give Dried Ghast blocks when bartered with
  • Splash Potions effect strength is now based on the distance of the hitboxes
  • The target tolerance margin of projectiles now changes over time
  • Changed Elytra so that while gliding, using a Firework Rocket will only be used as a boost even if it could be placed on a block
  • Spectators will now teleport together with entities that move to other dimensions, but will stop spectating them
  • Increased the third-person camera distance when spectating or riding Ghasts or Ender Dragons
  • The fix to MC-3697 has been partially reverted
    • Decorative hanging entities such as paintings and item frames are now immune to explosions from submerged TNT while items and armor stands are once again vulnerable to them
  • Wolves, Sheep and Pigs now have their legs mirrored
  • The test framework will no longer try to restart running tests after a server restart
  • Clouds now exist all the way to the horizon, with an option to reduce them
  • Updated the pattern of clouds in the sky
  • Horses, Donkeys, and Mules can now be fed Carrots to heal, grow, and improve their temper
  • Updated the main screen panorama
  • Removed Herobrine

Leash Changes

  • The Slime Ball in the Lead recipe has been replaced with a String
  • Improved leash mechanics, with reworked leash physics, allowing for more stable leash connection, especially when leashed entities are not on ground
    • When dragged on the leash, leashed objects will now orient themselves towards the entity holding the leash
    • Using a Firework Rocket when flying with leashed entities will now break the leash connections
  • Leashes are now rendered twice as thick, matching Minecraft: Bedrock Edition
  • Leashes can now be used to leash two mobs together
    • Sneak-interact on any mob while holding leashed mobs will leash these mobs to the entity interacted with
    • Re-leashing an entity is prevented if the re-leashing would result in immediate leash snapping due to distance
  • Leashes can be snipped from an entity when interacting with them using Shears
    • This applies to its own leash connection as well as all entities attached to it
    • Dispensers can now snip leashes from entities in front of them when they are equipped with Shears
  • When leashing an already leashed mob, their previous leash snaps
  • You cannot steal leashed entities from other players
  • Interactions with a Leash Knot/Fences:
    • Fails for entities that are not in range of the Leash Knot/Fence
    • All entities leashed to the player will be leashed to the Leash Knot/Fence
    • Transfers all its leashed entities to the player if the player has no entities leashed
    • Sneak-interact only ever attaches leashes
    • Shearing or punching the Leash Knot will result in all current connections to be broken
  • A Leash Knot requires at least one connection to exist
  • Boats and large mobs that can be leashed but cannot fit in a Boat (Horses, Donkey, Mule, Camel and Sniffer) can be leashed in a special quad connection to the Happy Ghast
    • Happy Ghast will also show a custom layer when it’s leashing something using a quad connection
    • Entities leashed in quad connection are now rendered without slack
  • Leash snapping distance has been changed from 10 to 12 blocks
    • Happy Ghast has a leash snapping distance of 16 blocks
    • The distance between two leashed entities is determined based on the center of their bounding boxes, rather than their feet

Saddle Changes

Crafting Saddles

  • Saddles can now be crafted with 3 Leather and 1 Iron Ingot
  • The recipe is unlocked when a player picks up their first Leather

Removing Saddles and Equipment

  • Saddles, Horse Armor, Harnesses and Carpets can now be removed from the mobs by using Shears
    • This does not work in case the mob has a rider, or if the player is crouching
    • Saddles cannot be removed from Ravagers using Shears
  • Dispensers with Shears cannot remove Saddles, Horse Armor, Harnesses or Carpets equipped on mobs
  • Shearing Saddles, Horse Armor, and Carpets will emit a vibration frequency of 6, along with the Unequip frequency of 4

Loot Table Changes

The following loot tables have had Saddles removed from them and replaced with 1-5 Leather:

  • Monster Room chests
  • Ancient City chests
  • Desert Pyramid chests
  • Jungle Pyramid chests
  • Stronghold altar chests

Fog

  • Fog was tweaked for improved atmospheric perspective
  • It now becomes foggier when it rains
  • Fog is now applied to 3D HUD elements such as first-person player hands and items in hands

Ambient Desert Block Sounds Changes

  • Ambient sand sounds no longer require sky access to play
  • Ambient sand sounds now have a slightly decreased chance to play
  • Terracotta blocks no longer trigger ambient sand sounds
  • Sand blocks no longer trigger ambient wind sounds
  • Terracotta blocks no longer trigger ambient wind sounds
  • Short Dry Grass and Tall Dry Grass can now trigger ambient wind sounds when above 2 Sand, Red Sand or Terracotta blocks
  • Dead Bush ambient sounds now have a slightly increased chance of playing

Music and Sound

  • The following sound categories have been renamed:
    • Friendly Creatures -> Friendly Mobs
    • Hostile Creatures -> Hostile Mobs
  • Rules for when ambient desert blocks sounds play have been tweaked

Realms

  • Changed the layout of the Realms configuration screen to use tabs
    • The Worlds tab allows changes to any of the world slots, creating new worlds and changing their settings
    • The Players tab allows management of the players that have access and their level of access to the Realm
    • The Subscription tab allows management of the Realms subscription
    • The Settings tab allows changing the settings of the Realm
  • Introduced a Region Preference setting that allows for more granular control over what region a Realm is hosted in
  • Changed wording for Close/Open Realm to Temporarily close/Reopen Realm
  • Added the Realms logo to the Realms loading screens
  • Added region information when connecting to a Realm

Projectile Targeting

  • The target tolerance margin of projectiles now changes over time
    • Previously, all projectiles had a target tolerance margin of 0.3 blocks
    • Now, all projectiles start with no margin for the first two ticks of their flight
    • After that, the target margin will expand by 0.05 blocks per tick until it reaches the previous 0.3 blocks margin
    • This allows for better precision close to the shooting player or entity, while still allowing for some collision leeway when the projectile is further away

Splash Potions

  • Splash Potions distance to affected entities now depends on the closest distance between the entity hitbox and the splash potion hitbox where it landed
    • This means that if an entity is hit directly by the splash potion, it will receive the full effect of the potion
    • If the entities are grouped together, they will receive the same effect strength

Technical Changes

  • The Data Pack version is now 80
  • The Resource Pack version is now 63
  • All JSON files (in worlds, packs, configuration, etc.) are now parsed in strict mode
  • Pressing F3 + V now prints client-side version information
  • “Command Syntax” report now contains information about required permission level
  • –quickPlaySingleplayer command line argument can now be used without an identifier to launch into the last played world

Data Pack Versions 72 Through 80

  • Dimension Type definitions have a new optional field, cloud_height that indicates on what y-level the clouds start in the dimension
  • New version command has been added
  • New datapack create subcommand has been added
  • Added a way to display very simple dialogs to users
  • Added a Server-authoritative Waypoint broadcasting system for controlling the Locator Bar behavior for Players
  • Added custom – a new click_event action type for text components
  • New optional fields can_be_sheared and shearing_sound have been added to the equippable item component
  • Added player_sheared_equipment advancement trigger

Commands

Added version

Prints the current version information on the server side.

  • Takes no arguments
  • Available in singleplayer or for server operators

Added datapack create

Creates a new empty directory data pack for the current world.

  • The supported pack version is always equal to one supported by the game
  • Available only to server owners
  • Syntax: datapack create <id> <name>
    • id – new pack name, must be a valid directory name
    • name – text component to be placed in description in pack.mcmeta

Modified playsound

  • Added new category ui
    • Sounds in this category will continue playing when paused, similarly to music

Added waypoint

This is a new command for querying and modifying waypoints.

waypoint list waypoint modify <entity-selector> color <color>
waypoint modify <entity-selector> color hex <hex-color>
waypoint modify <entity-selector> color reset
waypoint modify <entity-selector> style <waypoint_style/resource>
waypoint modify <entity-selector> style reset

Arguments:

  • entity-selector: For selecting entities that are transmitting as waypoints (see waypoint_transmit_range attribute)
  • color: Overrides the Locator Bar icon color for this waypoint
  • hex <hex-color> arguments are in web format (RRGGBB)
    • Red is either hex F00 or hex FF0000
    • Cornflower blue is hex 6495ED
  • style: For changing the icon spriteset and selection distances
    • set <waypoint_style/resource> changes the style to a specific asset under waypoint_style/ (see Waypoint Styles section below)
    • reset will restore the default icon behavior of the Locator Bar

Waypoint Broadcasting

The Locator Bar works through a server-controlled Waypoint system. Waypoints are received by Players, and connections between Waypoints and Players are managed by the multiplayer server.

  • By default, all Players transmit a Waypoint from themselves, and all Players receive all Waypoints
  • Individual Players can have their transmission and receive ranges controlled by the waypoint_transmit_range and waypoint_receive_range attributes

Dialogs

  • Added a way to display simple modal dialogs to a user
  • Dialogs are stored in a minecraft:dialog registry, but can also be defined inline
  • Dialogs are an experimental feature
  • To avoid user confusion, dialog screens are marked with a warning sign next to the title
    • Clicking on this warning leads to a screen that explains to user that this screen is provided by custom content
    • It also gives the user an option to leave the current world to avoid them being locked in an infinite loop of dialogs
    • If a new dialog is received by the client while warning screen is visible, it will not replace it, but when user clicks the “Back” button, the new dialog will be restored instead
  • Dialogs can be displayed by server in play and configuration connection phases
    • However, only inline registries are allowed in configuration, since registries are not yet available in that phase
    • Additionally, run_command click event is not available in configuration phase
  • Dialogs by default will close after the Escape key is pressed
    • When this happens, dialog will run action specific to dialog type described as “exit action” below
    • This behavior is configurable
  • When the dialog screen is closed, the game goes back to previously displayed non-dialog screen or back to gameplay
    • That means that new dialogs always replace already opened ones, if any
  • Dialogs can be configured to be accessible from Pause menu
    • This replaces and expands the “Server Links” button added in previous versions
  • New key bind called “Quick Actions” has been added to allow accessing content-configured dialogs
  • Most dialogs follow a common layout, however exact contents depend on type:
    • Header with title and warning button
    • Body elements, scrollable if needed:
      • messages and items
      • inputs
      • actions buttons
    • Optional footer, contains main buttons and submit actions

Developer’s NoteDialogs are not supposed to fully describe any in-game UI, but just to allow custom content to display simple messages and get input from users. This feature is intentionally limited to match that use case.

Dialog Description Format

  • Dialogs are stored in minecraft:dialog registry that can be provided by a datapack

Fields:

  • type – one of dialog types from minecraft:dialog_type registry
  • <type-specific> – see below
Common Dialog Fields
  • Most dialog types share some fields. To avoid duplication, they are listed in this section

Fields:

  • title – screen title, text component
    • Should be always visible on screen, no matter the specific type
  • external_title – name to be used for a button leading to this dialog (for example from Pause screen), optional text component
    • If not present, title will be used instead
  • body – optional list of body elements or a single element, see below
  • inputs – optional list of inputs, see below
  • can_close_with_escape – can dialog be dismissed with Escape key, default true
  • pause – should the dialog screen pause the game in single-player mode, default: true
  • after_action – additional operation performed on dialog after click or submit actions, default: close
    • close – closes dialog and returns to previous non-dialog screen (if any)
    • none – do nothing, i.e., keep the current screen open
      • only available if pause is false to avoid locking the game in single-player mode
    • wait_for_response – replace the current dialog with a “Waiting for Response” screen
      • this option is intended to prevent users from sending multiple actions on laggy connections
        • servers are expected to eventually replace this screen with a new dialog
      • to avoid accidental locking, a “Back” button will become active after 5 seconds
        • clicking this button will continue as if the dialog was closed (i.e., game returns to the previous non-dialog screen, if any)
      • “Waiting for Response” screen will unpause the game in single-player mode to avoid locking the game
Dialog Types
minecraft:notice
  • A simple screen with one action in footer
  • Exit action: same as action

Fields:

  • Common dialog fields (see above)
  • action – main action (see below), defaults to a button with gui.ok label and no action or tooltip
minecraft:confirmation
  • A simple screen with two actions in footer
  • Exit action: same as no action

Fields:

  • Common dialog fields (see above)
  • yes – action (see below) for positive outcome
  • no – action (see below) for negative outcome
minecraft:multi_action
  • A scrollable list of actions arranged in columns
  • Screen can have optional exit action that will appear in footer
  • Exit action: same as exit_action, if present

Fields:

  • Common dialog fields (see above)
  • actions – non-empty list of actions (see below)
  • exit_action – optional action (see below) in footer
  • columns – positive integer describing number of columns, default: 2
minecraft:server_links
  • A scrollable list of links received from server in minecraft:server_links packet, arranged in columns
  • Note: this is a replacement for the previous Server Links screen, but now with an additional body
  • Exit action: same as exit_action, if present

Fields:

  • Common dialog fields (see above)
  • exit_action – optional action (see below) in footer
  • columns – positive integer describing number of columns, default: 2
  • button_width – width of buttons in the list, integer from 1 to 1024 (inclusive) with default 150
minecraft:dialog_list
  • A scrollable list of buttons leading directly to other dialogs, arranged in columns
    • Titles of those buttons will be taken from external_title fields of targeted dialogs
  • Exit action: same as exit_action, if present

Fields:

  • Common dialog fields (see above)
  • dialogs – dialog, a list of dialogs or a dialog tag
  • exit_action – optional action (see below) in footer
  • columns – positive integer describing number of columns, default: 2
  • button_width – width of buttons in the list, integer from 1 to 1024 (inclusive) with default 150
Dialog Body Types
  • All dialogs have a list of body elements describing contents between title and actions or inputs
  • Hover and click events on text components within bodies function as expected
    • Click events are handled by dialog screen like any other action – that means it will also run after_action

Fields:

  • type – one of dialog body types from minecraft:dialog_body_type registry
  • <type-specific> – see below
minecraft:plain_message
  • A multiline label

Fields:

  • contents – text component
  • width – maximum width of message, integer from 1 to 1024 (inclusive) with default 200
minecraft:item
  • Item with optional description
    • If a description is present, it will be rendered to the right of item
  • The Item will be rendered as if it was in inventory slot
  • The Item is not scaled even if width and height are set to values other than default

Fields:

  • item – item stack with count
  • description – optional object with fields:
    • contents – text component
    • width – maximum width of contents, integer from 1 to 1024 with default 200
    • Can also just be text component
  • show_decorations – if true, count and damage bar will be rendered over the item, default: true
  • show_tooltip – if true, item tooltip will show up when item is hovered, default: true
  • width – horizontal size of element, integer from 1 to 256 (inclusive) with default: 16
  • height – vertical size of element, integer from 1 to 256 (inclusive) with default: 16
Input Control Types
  • Dialog can contain a set of controls that accept user input
  • When submitted, the current value of the input will be used to build response to the server according to action selected by user (see below)
    • When a value is inserted into a macro, template substitution form is used
    • When a value is sent as a tag, tag form is used

Fields:

  • type – one of input control types from minecraft:input_control_type registry
  • key – string identifier of value used when submitting data, must be a valid template argument (letters, digits and _)
  • <type-specific> – see below
minecraft:text
  • A simple text input
  • Output values:
    • As template substitution: contents with special characters escaped to fit in a SNBT literal (note: both  and  are escaped)
    • As tag: a string tag with contents without modification

Fields:

  • width – width of the text input, integer from 1 to 1024 (inclusive) with default: 200
  • label – a text component to be displayed to the left of control
  • label_visible – controls label visibility, default: true
  • initial – initial contents, default: “” (empty)
  • max_length – maximum length of the text input, positive integer with default of 32
  • multiline – if present, allows users to input multiple lines, optional object with fields:
    • max_lines – if present, limits maximum lines, optional positive integer
    • height – height of input, optional integer in range 1 to 512
      • If this field is omitted, but max_lines is present, the height will be chosen to fit the maximum number of lines (but can’t exceed 512)
      • If this and max_lines are both omitted, it will default to a height that fits 4 lines
minecraft:boolean
  • A plain checkbox with a label
  • Output values:
    • As template substitution: on_true when checked, on_false when unchecked
    • As tag: 1b when checked, 0b when unchecked

Fields:

  • label – a text component to be displayed to the right of control
  • initial – an initial value, default: false (i.e., unchecked)
  • on_true – a string value to send when control is checked, default: true
  • on_false – a string value to send when control is unchecked, default: false
minecraft:single_option
  • A button that cycles between a set of options when clicked
  • Output values:
    • As template substitution: contents of id field of currently selected option
    • As tag: a string tag with contents of id field of currently selected option

Fields:

  • label – a text component to be displayed on the button
  • label_visible – if true, label will be incorporated into button text, default: true
  • width – width of the button, integer from 1 to 1024 (inclusive) with default: 200
  • options – a list of objects with fields:
    • id – a string value to send on submit
    • display – a text component to display on button, optional (if not present, id is used)
    • initial – an optional boolean flag that selects initial option (only one option can have this be set to true)
    • Additionally, the list might also contain a plain string – in that case it’s equivalent to a single entry with field id set to that string and other fields set to default
minecraft:number_range
  • A slider for picking a numeric value out of some range
  • Sends currently selected value
  • Output values:
    • As template substitution: text representation of current value
      • Whole numbers will be sent without decimal point
    • As tag: a float tag with current value

Fields:

  • label – a text component to be used as a slider label
  • label_format – a translation key to be used for building label (first argument is contents of label field, second argument is current value), default: options.generic_value
  • width – width of input, integer from 1 to 1024 (inclusive) with default: 200
  • start – start value (when slider is in leftmost position) (inclusive), float
  • end – end value (when slider is in rightmost position) (inclusive), float
  • initial – initial value of the slider, float, defaults to the middle of slider range
  • step – step size, optional positive float
    • If present, only values of initial + <any integer> * step will be allowed
    • If absent, any value from range the is allowed

Actions

Dialogs have at least one action, presented to the user as a button. After every action dialog will always evaluate contents of after_action field (see above).

Fields:

  • label – a button label, text component
  • tooltip – an optional text component to display when the button is hovered or focused
  • width – the width of the button, integer from 1 to 1024 (inclusive) with default 150
  • action – an action to perform when the button is clicked, optional object with fields:
    • type – value from minecraft:dialog_action_type registry
    • <type-specific> – see below, depends on type
Static Dialog Action Types

All existing click_event actions (except for open_file) are included as dialog action types.

Uses same format as click_event on text components (but with action replaced with type) For example, when using show_dialog, the entry for action button will look like this:

{ "label": "some label", "action": { "type": "show_dialog", "dialog": "some:id" }
}
minecraft:dynamic/run_command Action Type
  • This action will build a run_command event using a provided macro template
  • The macro will be expanded with string values from inputs
    • For example, if the macro template is some_command $(some_input), the string value from input with key of some_input parameter will be used for the template expansion
    • Inputs not used in macro will be ignored, while macro parameters not matching any inputs will be replaced with an empty string

Fields:

  • template – a string with a macro template to be interpreted as a command
minecraft:dynamic/custom Action Type
  • This method will build a minecraft:custom event using all input values
  • All input contents will be sent together inside a compound tag, with tag value of each input put under id from key field of that input
  • Additional static fields can be added to payload

Fields:

  • additions – fields to be added to payload, optional compound tag
  • id – namespaced ID
Built-in Dialogs

The built-in datapack contains some custom dialogs to provide customization of specific screens used by the client.

minecraft:server_links
  • Replacement for the previously existing “Server Links” screen
  • Meant to simplify migration for servers that previously used this feature
minecraft:custom_options
  • Shows contents of minecraft:pause_screen_additions tag (see below)
  • Allows the user to select a specific dialog if this tag contains multiple entries
  • Note: Since this tag is meant for interoperability, any content that replaces this dialog should be careful not to hide other dialog providers

Dialog Command

  • New command has been added to show dialog to clients

Syntax:

  • dialog show <targets> <dialog> – show dialog to player(s)
    • <targets> – player name, UUID or a player selector
    • <dialog> – a namespaced ID from minecraft:dialog registry or inline dialog value as described above
    • Returns the number of players in targets argument
  • dialog clear <targets> – clean dialog for player(s), if they have any visible
    • <targets> – player name, UUID or a player selector
    • Returns the number of players in targets argument

Pause Screen Configuration

  • A data pack can request some of the available dialogs to be accessible from Pause screen
  • This feature replaces the “Server Links” button and is placed on Pause screen according to the same rules
  • Buttons leading to dialogs exposed in this way will use label described in external_title field
  • This feature is configured by minecraft:pause_screen_additions dialog tag:
    • If this tag is not specified or is empty but the server has sent server_links packet, the tag will be handled as if it contained minecraft:server_links dialog
      • Note: this matches previous Server Links feature behavior
      • If this dialog is removed, the tag remains empty
    • If this tag is still empty, the button will not be visible (“Send Feedback” and “Report Bugs” buttons are visible instead)
    • If this tag has a single element, the pause screen button will lead directly to that dialog
    • If this tag has multiple elements, the pause screen button will lead to a minecraft:custom_options dialog which (by default) lets user select one of the tag elements
      • If this dialog is removed, the button is will not be visible

Quick Actions Key Bind

  • A new key bind has been added that allows users to access a set of dialogs
  • Default key: G
  • This feature is configured by minecraft:quick_actions dialog tag
    • If this tag is empty, the key bind will do nothing
    • If this tag has a single element, the key bind will open that dialog
    • If this tag has multiple elements, the key bind will lead to minecraft:quick_actions dialog which (by default) lets user select one of the tag elements
      • If this dialog is removed, the key bind will do nothing
  • This option is intended for use in custom content and by servers, so this tag is empty in the Vanilla pack

Text Components

Click Events

  • Users will now be prompted for confirmation before executing a command from the run_command click action in books and chat if the command can’t be parsed or requires elevated permissions (i.e., higher than 0)
Added minecraft:custom
  • A new click action called minecraft:custom has been added
    • When user clicks a component with this click action, the client will send a dedicated packet minecraft:custom_click_action to a server
    • The intended use is as an alternative for run_command to be used by modded servers without worrying about having to add custom commands
    • This packet has no functionality on Vanilla servers
    • Fields:
      • id – namespaced ID
      • payload – optional tag field
Added minecraft:show_dialog
  • A new action called show_dialog has been added
    • When user clicks this component, a dialog will be opened for them
    • Fields:
      • dialog – a namespaced ID from minecraft:dialog registry or inline dialog value as described above

Game Rules

Added locatorBar

  • Default is true: enabling the Locator Bar
  • Changing to false will remove all existing Waypoints from all players

Attributes

Added camera_distance

  • Default value: 4.0
  • Modifies the distance at which the camera is placed away from the player or spectated entity when in a third-person view
  • If the entity being ridden has a larger camera_distance attribute, that distance will be used
  • This distance is multiplied by the scale attribute to get a final target camera distance

Added waypoint_transmit_range and waypoint_receive_range

  • Default: 0.0, Minimum: 0.0, Maximum: 60000000.0

  • Players have a default transmission and reception range of 60,000,000

  • Mobs with a transmission range above zero will send waypoint packets to nearby receivers that are within that range

  • Similarly, receivers only receive waypoints that are inside their reception range (and receive nothing if that range is zero) Examples:

  • /attribute @s minecraft:waypoint_transmit_range base set 0 will prevent a player from transmitting (hiding them)

  • /attribute @s minecraft:waypoint_transmit_range base set 80 will only let a player transmit up to 80 blocks (hiding them from players further than that)

  • /attribute @s minecraft:waypoint_receive_range base set 0 will prevent a player from receiving (turns off their Locator Bar)

  • /attribute @s minecraft:waypoint_receive_range base set 120 will only let a player see Locator Bar dots that are within 120 blocks (hiding all players further than that)

Changed flying_speed

  • The flying_speed attribute now also applies to Ghasts and Happy Ghasts

Data Components

equippable Item Component

  • Added a new optional field: can_be_sheared (boolean)
    • If true, players can use Shears to remove this equippable item from a target mob by right-clicking, provided all other shearing conditions are satisfied
    • If not specified, it defaults to false
  • Added a new optional field: shearing_sound (sound event)
    • It’s a sound event that plays when the equippable item is sheared
    • If not specified, it defaults to the item.shears.snip sound event

attribute_modifiers Item Component

  • Added an optional display field to attribute_modifiers entries
    • There are 3 display types:
      • default – Current behavior of showing the calculated attribute modifier values on the tooltip
      • hidden – Does not show the attribute modifier entry
      • override – Replaces the shown attribute modifier text
        • Contains a single field value for the text contents to show for this attribute modifier entry

painting/variant Item Component

  • No longer accepts inline variants

Entity Data

  • Added the home_pos and home_radius fields to all mobs
    • Mobs with set home position will limit their pathfinding to stay within the indicated area
    • Some mobs, such as Bats, Slimes, Magma Cubes, Phantoms and Ender Dragons may ignore it
    • Interacting with leashes or riding may change the home position of the mob

area_effect_cloud

  • The Particle field has been renamed to custom_particle, and now always functions as an exact override for the default colored entity_effect particle
    • The field will not be written if no override is specified
    • The color will no longer be inherited from the potion contents when specifying the entity_effect or tinted_leaves particle types

tnt

  • The entity that primed the TNT is now stored in an optional owner field (UUID of Living entity)

vex

  • The owner of a Vex is now stored in an optional owner field (UUID of mob)

Advancements

Added minecraft:player_sheared_equipment trigger

  • Can Trigger when a player shears off a shearable equipment from an Entity
  • Conditions:
    • item – Item that is sheared
    • entity – The entity that was sheared

Tags

Block Tags

  • Added #triggers_ambient_desert_dry_vegetation_block_sounds – blocks that can trigger ambient desert dry vegetation sounds to play from blocks above
  • Added #happy_ghast_avoids – blocks that Happy Ghasts avoid getting close to
  • #plays_ambient_desert_block_sounds has been renamed to #triggers_ambient_desert_sand_block_sounds
  • Added triggers_ambient_dried_ghast_block_sounds – blocks that can trigger ambient Dried Ghast sounds to play when a Dried Ghast block is placed on them

Item Tags

  • Added #happy_ghast_food – items that can be used to feed Happy Ghasts
  • Added #happy_ghast_tempt_items – items that can be used to tempt Happy Ghasts

Entity Tags

  • Added #can_equip_harness – entities that can equip the Harness items
  • Added #followable_friendly_mobs – non-baby entities that will be followed by Baby Happy Ghasts

Resource Pack Versions 56 Through 63

  • The game will now consistently respect the blur texture parameter in .png.mcmeta files
  • All core shader uniforms are now uniform blocks
  • The cloud texture (clouds.png) can no longer be colored
  • Cube rotations in block models are no longer limited to multiples of 22.5 degrees
  • Updated Unifont to 16.0.03
  • Panorama textures must now all be the same size, and square
  • Added oversized_in_gui item model field
  • Added new player head special model type

Waypoint Styles

These define custom icons to be displayed on the Locator Bar and are within the waypoint_style/ asset directory.

  • near_distance and far_distance are optional and default to the values 128 and 332 respectively
    • far_distance distance must be greater than near_distance
  • sprites is a list of at least one sprite IDs within the prefix of hud/locator_bar_dot/ (the directory textures/gui/sprites/hud/locator_bar_dot)
  • An example “bowtie” waypoint style is provided and accessible via the command:
    • /waypoint modify <entity-selector> style set bowtie
  • When the distance to the waypoint is less than near_distance, the first sprite in the list will be selected
  • When the distance to the waypoint is greater than far_distance, the last sprite in the list will be selected
  • Between this range, sprites will be selected based on the linear progress between the near and far distances

Sounds

  • Changed location on the sounds for Glow Squid, Squid, Guardian, Horse, Rabbit and Pufferfish from entity folder to the mob folder
  • Added entity/leashknot/break for when a Lead snaps
  • The following sounds have been renamed:
    • entity/leashknot/break1 -> entity/leashknot/unleash1
    • entity/leashknot/break2 -> entity/leashknot/unleash2
    • entity/leashknot/break3 -> entity/leashknot/unleash3
    • entity/leashknot/place1 -> entity/leashknot/leash1
    • entity/leashknot/place2 -> entity/leashknot/leash2
    • entity/leashknot/place3 -> entity/leashknot/leash3
  • The following sounds have been added for shearing Saddles, Horse Armor, and Carpets
    • mob/horse/armor_unequip
    • mob/horse/saddle_unequip
    • mob/llama/unequip

Sound Events

  • block.sand.wind has been renamed to block.dry_grass.ambient
  • entity.leash_knot.break had been replaced with item.lead.break and item.lead.untied
  • entity.leash_knot.place has been renamed to item.lead.tied
  • The following sound events have been added:
    • block.dried_ghast.break
    • block.dried_ghast.step
    • block.dried_ghast.fall
    • block.dried_ghast.ambient
    • block.dried_ghast.ambient_water
    • block.dried_ghast.place
    • block.dried_ghast.place_in_water
    • block.dried_ghast.transition
    • entity.ghastling.ambient
    • entity.ghastling.death
    • entity.ghastling.hurt
    • entity.ghastling.spawn
    • entity.happy_ghast.ambient
    • entity.happy_ghast.death
    • entity.happy_ghast.hurt
    • entity.happy_ghast.riding
    • entity.happy_ghast.equip
    • entity.happy_ghast.unequip
    • entity.happy_ghast.harness_goggles_up
    • entity.happy_ghast.harness_goggles_down
    • item.horse_armor.unequip
    • item.llama_carpet.unequip
    • item.shears.snip
    • item.saddle.unequip

UI Sprites

  • The mob effect atlas has been removed, and sprites in the textures/mob_effect/ folder are now included within the GUI atlas
    • This means mob effect sprites now support GUI sprite scaling properties
  • Added icon/music_notes and toast/now_playing sprites

Font

Unifont

  • Updated Unifont to 16.0.03
  • Added previously omitted Unifont glyphs for Private Use Areas
    • Those glyphs are loaded as a separate sub-font minecraft:include/unifont_pua and are not included in any normally used font
    • Characters in those areas are managed by Under-CSUR (Under-ConScript Unicode Registry), which adds various scripts not present in official Unicode set, like Tengwar or Sitelen Pona

unihex Font Provider

  • The size_overrides field is now optional (defaults to empty list)

Equipment Assets

  • Added new happy_ghast_body layer type, rendering in the body slot of the Happy Ghast

Item Models

  • Item model definitions now have a boolean field oversized_in_gui which is false by default
    • If true, the item model will be allowed to be bigger than its item slot
    • If false, the item model will be clipped to the item slot size when being rendered in gui
    • This ability of items being rendered outside their slots should not be considered officially supported, it was temporarily restored as an exception since many servers are relying on it
    • At some point in the future we hope to replace it with an officially supported way of achieving similar functionality
  • Introduced new item model minecraft:player_head to handle player profile texture loading and rendering
  • Removed support for minecraft:profile from minecraft:head

minecraft:player_head Special Model Type

  • Renders a player head
  • Uses profile from minecraft:profile component to load a texture. Renders a default texture until the profile texture is fully loaded
  • No fields

minecraft:head Special Model Type

  • No longer supports profile from minecraft:profile component to load a player texture
  • Renders a default player texture when kind is player and no texture override is supplied
  • Fields remain unchanged

Block Models

  • elements[].rotation.angle value in block models is no longer limited to multiplies of 22.5 degrees and can now be any angle from -45 to +45

Shaders & Post-process Effects

Developer’s NoteAlthough it is possible in Resource Packs, overriding Core Shaders is considered as unsupported and not an intended Resource Pack feature. These shaders exist as part of the internal implementation of the game, and as such, may change at any time as the game’s internals evolve. We understand that overriding Core Shaders is used for very cool Resource Pack features, many of which lack supported alternatives. We would like to provide better, supported alternatives in the future.

  • All built-in uniforms are now uniform blocks instead of opaque loose uniforms
  • Custom uniforms provided to post-process shaders are now uniform blocks
  • Uniform definitions inside json files are now per-block

Post-process Effect Definitions

  • Entries in the targets map have been expanded to support new properties
    • New optional boolean field: persistent (default: false)
      • If true, this render target will be persistent across frames
      • The contents of the target will be cleared when the screen is resized
    • New optional field: clear_color (default: [0, 0, 0, 0])
      • Format: integer ARGB value, or float array in order [R, G, B, A]
      • When this target is created or cleared, it will be filled with this color
  • The uniforms values is now a list-per-block, instead of a global list
    • e.g. uniforms: { “UniformBlockName”: [ { “type”: “vec2”, “value”: […] } ] }
      • The order of uniforms in a block must match the order in the shader
  • name as part of a uniform definition is no longer used
    • We encourage setting it to help keep the json file organized/readable, but the game won’t use it
  • value as part of a uniform definition replaces the old values, and the type depends on the type field
    • This field is required
    • “type”: “int” needs “value”: 123 (a single int)
    • “type”: “float” needs “value”: 123.4 (a single float)
    • “type”: “vec2” needs “value”: [1.2, 3.4] (two floats)
    • “type”: “vec3” needs “value”: [1.2, 3.4, 5.6] (three floats)
    • “type”: “ivec3” needs “value”: [1, 2, 3] (three ints)
    • “type”: “vec4” needs “value”: [1.2, 3.4, 5.6, 7.8] (four floats)
    • “type”: “matrix4x4” needs “value”: [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0] (four rows of four columns of floats)
  • We do not validate that the uniform block is valid for a given shader, giving incorrect information will cause undefined and funky behavior

Post-process Effect Shaders

  • Instead of every uniform being an individual opaque type, they are now grouped in uniform blocks
    • They will be set according to the pass definition in the json file, and may be shared across both vertex and fragment shaders
  • The list of sizes (all vec2 *Size uniforms) are now replaced with a single SamplerInfo uniform block
    • This contains, in order, the size of the output texture followed by the size of every input texture
    • The order of textures in the definition file will dictate the order of samplers in this uniform
    • For most post chains this is just OutSize and InSize as before
    • All sizes are vec2
post/bits.fsh
  • Expects a BitsConfig of float Resolution and float MosaicSize
post/blit.fsh
  • Expects a BlitConfig of vec4 ColorModulate
post/blur.vsh and post/box_blur.fsh
  • Expects a BlurConfig of vec2 BlurDir and float Radius
post/color_convolve.fsh
  • Expects a ColorConfig of vec3 RedMatrixvec3 GreenMatrix and vec3 BlueMatrix
post/invert.fsh
  • Expects a InvertConfig of float InverseAmount
post/rotscale.vsh
  • Expects a RotScaleConfig of vec2 InScalevec2 InOffset and float InRotation
post/spiderclip.fsh
  • Expects a SpiderConfig of vec4 Scissor and vec4 Vignette

Shader Fog Changes

  • The fog is now split into environmental and render-distance-based fog
  • Previously both those concepts were mixed in the same uniforms
  • Environmental fog is supposed to represent the “fogginess” of the environment the player is in
    • e.g. lava, water, and now also atmosphere
  • Render distance fog is supposed to obscure the border of visible terrain
  • Environmental fog uses spherical distance to determine its intensity, render distance fog uses cylindrical distance
  • The resulting fog value for any given vertex is the maximum of both

Globals Uniform Block

  • Available through #moj_import <minecraft:globals.glsl> for convenience
  • Most shaders are able to receive this uniform block, even if they don’t normally use it
  • Contains ScreenSizeGlintAlphaGameTime and MenuBlurRadius (new)
    • MenuBlurRadius is the blur radius of the background when a menu is open

Fog Uniform Block

  • Available through #moj_import <minecraft:fog.glsl> for convenience
  • Most shaders are able to receive this uniform block, even if they don’t normally use it
  • Contains FogColorFogEnvironmentalStart (new)FogEnvironmentalEnd (new)FogRenderDistanceStart (renamed from FogStart), FogRenderDistanceEnd (renamed from FogEnd), FogSkyEnd (new) and FogCloudsEnd (new)
    • FogSkyEnd is new and represents where the fog should end when drawing for the sky
    • FogCloudsEnd is new and represents where the fog should end when drawing the clouds
    • FogRenderDistanceStart is the render distance fog start
    • FogRenderDistanceEnd is the render distance fog end
    • FogEnvironmentalStart is new and represents the start of environment-based fog
    • FogEnvironmentalEnd is new and represents the end of environment-based fog
    • FogShape was removed. Render distance fog is now cylindrical and environmental fog is spherical

Projection Uniform Block

  • Available through #moj_import <minecraft:projection.glsl> for convenience
  • Most shaders are able to receive this uniform block, even if they don’t normally use it
  • Contains ProjMat with no changes

DynamicTransforms Uniform Block

  • Available through #moj_import <minecraft:dynamictransforms.glsl> for convenience
  • Is no longer available to shaders that do not normally use it
  • Contains ModelViewMatColorModulatorModelOffsetTextureMatLineWidth
    • These are very likely to change in the near future
    • The values of some of these are often hard coded and may not make sense for a given shader, i.e., LineWidth in any non-line based pipeline

Lighting Uniform Block

  • Available through #moj_import <minecraft:light.glsl> for convenience
  • Most shaders are able to receive this uniform block, even if they don’t normally use it
    • The values may not make sense if the shader wouldn’t normally expect it, however
  • Contains Light0_Direction and Light1_Direction

CloudInfo Uniform Block

  • Only available to the cloud shaders (rendertype_clouds.vsh/rendertype_clouds.fsh)
    • Contains CloudColorCloudOffset and CellSize (new)
      • CellSize contains the size of an individual cloud cell

LightmapInfo Uniform Block

  • Only available to the lightmap shader (lightmap.fsh)
  • Contains AmbientLightFactorSkyFactor, BlockFactorUseBrightLightmapNightVisionFactorDarknessScaleDarkenWorldFactorBrightnessFactorSkyLightColor with no change in behavior

Fixed bugs in 1.21.6

  • MC-36696 – Clicking on the statistics button on the menu screen advances the game by 1 tick
  • MC-69821 – TNT “forgets” the player that ignited it when the world is reloaded
  • MC-94800 – URL shown in open URL dialog is not shortened
  • MC-97423 – Horse temporarily stuck in jump animation if dismounted
  • MC-103511 – Sound/Song stops playing after adjusting the volume
  • MC-104231 – Loading a custom structure doesn’t load rails correctly
  • MC-112730 – Beacon beam and structure block render twice per frame
  • MC-118081 – Sounds don’t pause when game is paused on some UI screens
  • MC-118430 – Vex summoner is not stored in NBT despite being used for AI task
  • MC-118432 – Vex summoner is not reset once it is dead
  • MC-140819 – Lectern model extends past inventory slot
  • MC-147260 – Map icons are not displayed in the cartography table
  • MC-148278 – You can select multiple buttons at once in the book editing GUI by repeatedly pressing Tab
  • MC-189246 – Unable to copy and paste on title page of a Book & Quill
  • MC-191306 – Sounds played using /playsound are played in all dimensions
  • MC-200092 – /setworldspawn seems to ignore the ‘angle’ parameter
  • MC-200925 – Ghasts are not affected by potions thrown on their head
  • MC-217887 – Unsigned books written in 1.9-pre1 or earlier don’t upgrade properly
  • MC-224704 – Block cracks are not affected by the fog from powder snow or lava
  • MC-228451 – You cannot move the cursor around on the title page of a book and quill
  • MC-229483 – Withers are not affected by instant harming and healing splash potions thrown above their heads
  • MC-230902 – Black shapes sometimes appear in the end sky at low render distance
  • MC-236464 – Beacon beams emitted from below the player are invisible after reloading chunks
  • MC-237015 – The cursor in the book signing GUI doesn’t turn fully invisible when blinking
  • MC-238931 – Clouds stop rendering before they are hidden by fog
  • MC-239701 – Rendering issue when breaking ice and flying with “Chunk Builder” set to Threaded
  • MC-240121 – “1x1_b5.nbt” piece does not generate in woodland mansions
  • MC-248682 – Translucent blocks moved by pistons aren’t affected by fog correctly
  • MC-248688 – Falling translucent blocks aren’t affected by fog correctly
  • MC-256411 – Clouds not fully rendered depending on angle
  • MC-257532 – Clouds don’t fill the sky after 1.18 height change
  • MC-258336 – Frost Walker causes frequent visual corruption near chunk borders on Threaded and Semi-Blocking Chunk Builder
  • MC-262268 – Keyboard navigation does not work in the book and quill GUI
  • MC-264431 – #minecraft:sand tag has two minecraft:suspicious_sand
  • MC-266318 – Trapdoors and doors have inconsistent subtitles for being opened and closed
  • MC-269744 – Out of memory crash when using a preset with a large layer
  • MC-270279 – Disabled item cooldown overlay renders incorrectly over stack size number
  • MC-272825 – Custom filled maps from 23w31a and earlier do not upgrade properly in later versions
  • MC-275374 – Drowneds with CanBreakDoors:1b don’t break doors
  • MC-276264 – Advancement screen shadow renders below item icons
  • MC-276665 – Music is never turning on when it’s toggled in the menu
  • MC-277369 – The draft report icon isn’t initially visible when saving a report as a draft
  • MC-277370 – The draft report icon doesn’t initially disappear when a report is discarded
  • MC-277486 – Mob effect icons ignore “scaling” parameter in mcmeta files
  • MC-277903 – Creative inventory tab icons can display item cooldown overlay
  • MC-277991 – The 2 brightest pixel colors on pale oak boat items are still switched
  • MC-277992 – 1 color in the pale chest boat item is incorrect
  • MC-278231 – Space characters at the end of a line in book and quill are invisible even if given a texture
  • MC-278459 – unifont.json contains trailing comma
  • MC-278466 – Bundle experiment data pack related strings are not in deprecated.json
  • MC-278873 – The data fixer regenerates chunks containing items obtained from flower pots using Ctrl + Pick Block before version 1.13, or it crashes the game if the item is in the player’s inventory
  • MC-279284 – Experience orbs from thrown bottles o’ enchanting are very prone to getting stuck inside blocks
  • MC-279417 – Luring mobs onto blocks at Y=-64 will instead make them pathfind to the highest elevation
  • MC-279515 – The game stalls when running the “/test clearall” command with large radiuses
  • MC-279875 – Cannot diagonally climb slab through suspended scaffolding
  • MC-280047 – Temperate cows use their 1.14 texture with the Programmer Art resource pack enabled
  • MC-280266 – Firefly bushes don’t produce as many, or as constant, amounts of particles as on Bedrock Edition
  • MC-280268 – Blazes and breezes use “large” spawn eggs despite mobs of a similar size using “medium”
  • MC-280276 – Some item models can still clip into the block below when hovering on the ground
  • MC-280281 – Fishing bobbers rapidly jitter when attached to entities that are moving
  • MC-280297 – The volume level between grass and dirt is inconsistent
  • MC-280471 – The Particle.color field in area effect clouds is read-only
  • MC-280502 – Translation key snbt.parser.undescore_not_allowed has a typo
  • MC-293619 – The chicken spawn egg texture in Programmer Art is missing pixels that match the inventory slot background color
  • MC-293754 – Minecraft causes OpenGL errors occasionally
  • MC-295395 – Entities interact differently with nether portals
  • MC-295677 – Title screen fades in from black after closing the “Welcome to Minecraft” screen
  • MC-295681 – Leaf litter can generate inside of woodland mansions
  • MC-295690 – Players stay on fire for a while after barely touching fire
  • MC-295850 – Done and Cancel buttons on the world creation Edit Game Rules screen do the same thing
  • MC-295866 – The /setblock and /fill commands no longer update redstone power in some situations
  • MC-295867 – Structures from previous versions fail with DataFixerUpper
  • MC-295879 – Sprint-hitting boats and then getting in them causes the boat to fall through the block underneath
  • MC-295895 – 1.21.5 breaks minecart behavior when travelling through nether portals
  • MC-295914 – Loot table files accept invalid JSON
  • MC-295944 – Reloading a professionless zombie villager causes it to gain random profession clothing
  • MC-296035 – Two pixels from “mooshroom_spawn_egg” are the same as “cow_spawn_egg”
  • MC-296099 – Nether portal collision is or isn’t working depending on the cardinal direction
  • MC-296121 – ClientboundLevelChunkPacketData buffer size is too big
  • MC-296311 – TNT touching water will destroy blocks and damage entities but will ignore decorative entities
  • MC-296337 – Minecarts cause memory usage increases and crashes
  • MC-296348 – NoAI:1b mobs cannot be ridden in 1.21.5+
  • MC-296624 – Old Brown Mooshroom texture is missing from Programmer Art
  • MC-296638 – Clocks, compasses, and lodestone compasses do not render enchantment glint in certain display contexts when using Fabulous! graphics
  • MC-296701 – Transformed entities do not retain their custom_data component
  • MC-296709 – All non-default jukebox_playable components are deleted from existing items when updating past 1.21.4
  • MC-296784 – The “Welcome to Minecraft” screen is missing its fade out
  • MC-296866 – Predicates of particular namespaces failed to be accessed on /execute
  • MC-297264 – Cat breeds are not seed based anymore
  • MC-297347 – Tamed animals no longer sit when their owner changes dimension
  • MC-297461 – Equipment and sleeping pos data cannot be loaded in 1.21.4, but can be loaded in 1.21.5 to bees spawned from bee nest and bee hive
  • MC-297524 – Connection with realm gives weird HTML text
  • MC-297537 – Extra “entity.wolf_whine.whine” sound event exists in sounds.json
  • MC-297591 – Ender pearls can unexpectedly come to a halt
  • MC-297614 – Area effect clouds with duration greater than or equal to 2147483628 disappear after a tick
  • MC-297868 – Items in the armor.body and saddle slots are not kept when dying while the game rule keepInventory is set to true
  • MC-297893 – prevent_equipment_drop enchantment effect does not work with armor.body and saddle slots
  • MC-297894 – /clear command does not clear armor.body and saddle slots
Posted on Leave a comment

JAVA Edition: 1.21.6 Release Candidate 1

It’s that time again.  Time to get ready for the next release of Minecraft!  

Fixed bugs in 1.21.6 Release Candidate 1

  • MC-298022 – Not signed Books and Quills with an overflowing new line at the bottom do not depict the pages’ contents
  • MC-298633 – Happy Ghast gets you stuck in blocks while riding and gets stuck in blocks upon dismount
  • MC-298658 – Locator Bar shows inaccurate positions after respawn
Posted on Leave a comment

JAVA Edition Craftmine Update

Behold: The Mine Crafter!

Inside your mine are more resources to collect, which you can use to create even more astonishing mines! All you have to do is survive long enough to reach the exit. Or not survive… well, you do have to survive, but how difficult surviving is depends on the elements of the world you created. It’s not YOU who created it, it was the Mine Crafter, but it wasn’t really the Mine Crafter either, it’s just code, you know, dev code, it’s not a real machine, it’s not like we created a real machine in real life, and then managed to put that into the game, no way, but hopefully you’ll have a good time!

And that’s all there is to it: just dive into the mine and see if you can find the exit. Once you have, you can generate the next one!

Any questions?  No?  Good because I probably don’t have the answer for you.

The Next Step

If you’re sitting there thinking that this will utterly mess up crafting and make it odd and weird, then let me assure you we had a lot of fika coming up with these ideas, and we really can’t waste those cinnamon buns. So… enjoy!

We’re all very excited, just look at these worlds:

How to Try This Update

Snapshots are available for Minecraft: Java Edition. To install the snapshot, open the Minecraft Launcher and enable snapshots in the “Installations” tab, then select the “Latest Snapshot”. You can even play the snapshot on your own Java Realms together with your friends!

Remember, snapshots can corrupt your world, so please back up your world and/or run the snapshot in a different folder from your main worlds.

Posted on Leave a comment

JAVA Edition: 1.21.5

New Features

  • Added cold and warm variants for the Pig, Cow and Chicken
  • Sheep now spawn with wool color dependent on the biome in which they spawn
  • Added new sound variants for Wolves
  • Overhauled the visuals of each Spawn Egg to improve readability and accessibility
  • Added fallen tree generation
  • Added Firefly Bush block
  • Added Leaf Litter block
  • Added Wildflowers block
  • Added Bush block
  • Added Short Dry Grass and Tall Dry Grass blocks
  • Added Cactus Flower block which can grow on Cactus blocks
  • Added new falling leaf particles to all Leaves blocks that did not already have them
  • Added new ambient block sounds in the Desert and Badlands biomes
  • Added language support for Kyrgyz

Farm Animal Variants

  • Warm and cold variants have been added for the following animals:
    • Pig
    • Cow
    • Chicken

  • The variant is determined by the biome they spawn in
  • Temperate variant – The variants we are all familiar with, spawns by default where the other variants do not
  • Cold variant – A variant that will be selected if spawned (naturally or by player) in these biomes:
    • Cold Ocean
    • Deep Cold Ocean
    • Deep Dark
    • Deep Frozen Ocean
    • End Barrens
    • End Highlands
    • End Midlands
    • Frozen Ocean
    • Frozen Peaks
    • Frozen River
    • Grove
    • Ice Spikes
    • Jagged Peaks
    • Old Growth Pine Taiga
    • Old Growth Spruce Taiga
    • Small End Islands
    • Snowy Beach
    • Snowy Plains
    • Snowy Slopes
    • Snowy Taiga
    • Stony Peaks
    • Taiga
    • The End
    • Windswept Forest
    • Windswept Gravelly Hills
    • Windswept Hills

  • Warm variant – A variant that will be selected if spawned (naturally or by player) in these biomes:
    • Badlands
    • Bamboo Jungle
    • Basalt Deltas
    • Crimson Forest
    • Deep Lukewarm Ocean
    • Desert
    • Eroded Badlands
    • Jungle
    • Lukewarm Ocean
    • Mangrove Swamp
    • Nether Wastes
    • Savanna
    • Savanna Plateau
    • Soul Sand Valley
    • Sparse Jungle
    • Warm Ocean
    • Warped Forest
    • Windswept Savanna
    • Wooded Badlands

  • When bred by a player, a baby variant will not be chosen by the current biome, but instead randomly selected from one of the parents’ variants
  • Two new Egg items have been added for the warm and cold Chicken variants
    • Blue Egg – The Egg that is laid by and can hatch cold Chicken variants
    • Brown Egg – The Egg that is laid by and can hatch warm Chicken variants

Sheep Wool Color in Warm and Cold Biomes

  • Sheep now spawn with wool color dependent on the biome in which they spawn:
    • Temperate biomes: (these colors are unchanged from previous behavior)
      • Common Sheep color is white
      • Uncommon Sheep colors are black, gray, light gray and brown
      • There is a rare chance for a pink Sheep to spawn
    • Cold biomes:
      • Common Sheep color is black
      • Uncommon Sheep colors are gray, light gray, white and brown
      • There is a rare chance for a pink Sheep to spawn
    • Warm biomes:
      • Common Sheep color is brown
      • Uncommon Sheep colors are gray, light gray, white and black
      • There is a rare chance for a pink Sheep to spawn

Wolf Sounds Variants

  • Added 6 new Wolf sound variants with unique ambient, hurt, death, growl, whine, and pant sounds
    • The new sounds are part of variants that are called “Big”, “Cute”, “Puglin”, “Angry”, “Grumpy”, and “Sad”
    • The original Wolf sounds now are used for the variant called “Classic”
    • Every Wolf will have a sound variant randomly assigned to it from these 7 variants
    • The sound variant is not related to the texture variant

Spawn Egg Visuals Overhaul

  • Each Spawn Egg now has their own unique visual which captures the personality and character of the mob it spawns
  • Each egg visual varies in shape to reflect the in-world size of the mob it spawns
    • For example, smaller mobs tend to have a smaller Spawn Egg

  • Fallen trees are a new decorative variant of trees
  • Fallen trees come in four different wood type variants:
    • Oak
    • Birch
    • Jungle
    • Spruce
  • Birch fallen trees come in a shorter and a longer version
  • Some fallen trees can be decorated with Mushrooms or Vines
  • Fallen trees can be found in all biomes where their standing tree variant grows, except the following:
    • Bamboo Jungle
    • Flower Forest (has fallen Birch trees but not fallen Oak trees)
    • Grove
    • Meadow
    • River

Firefly Bush

  • The Firefly Bush is found adjacent to water in Swamps, Mangrove Swamps, Badlands, and near Rivers
  • When it is dark, glowing firefly particles appear around the Firefly Bush
  • Using Bone Meal on a Firefly Bush grows a Firefly Bush in a random adjacent space if possible
  • The Firefly Bush emits a light level of 2
  • The Firefly Bush has a chance of playing ambient sounds when these conditions are met:
    • it is night
    • it is not blocked from above by any collidable block except leaves

Leaf Litter

  • Leaf Litter is a new type of decorative block which can be found in the Forests, Dark Forests and Wooded Badlands
    • Note: Leaf Litter is only spawned as part of world generation, and does not regenerate during gameplay
  • Leaf Litter can have different amounts of leaves in one block space
    • Up to four Leaf Litter pieces can be placed in the same block space
    • Placing a Leaf Litter into an existing Leaf Litter block increases the amount of leaves
  • Leaf Litter can be placed in four orientations
  • Leaf Litter can be placed on any block with a full top face
  • Leaf Litter can be created by smelting any type of Leaves block
  • Leaf Litter can be used as fuel for smelting
  • Leaf Litter can be used in the Composter
  • Leaf Litter has unique block sounds
  • Leaf Litter is tinted based on which biome it is in
  • Leaf Litter is replaceable when building

Wildflowers

  • Wildflowers are a new type of flower which grow in Birch Forests, Old Growth Birch Forests and Meadows
  • Wildflowers can have different amounts of flowers in one block space
    • Up to four Wildflowers can be placed in the same block space
    • Placing a Wildflower into an existing Wildflowers block increases the amount of flowers
    • Using Bone Meal on Wildflowers will produce more Wildflowers
  • Wildflowers can be placed in four orientations
  • Wildflowers can be crafted into Yellow Dye

Bush

  • The Bush is a new type of decorative block that can be found in small patches in the following biomes:
    • Birch Forest
    • Forest
    • Frozen River
    • Old Growth Birch Forest
    • Plains
    • River
    • Windswept Forest
    • Windswept Gravelly Hills
    • Windswept Hills
  • The Bush can be used in the Composter
  • Using Bone Meal on a Bush grows a Bush in a random adjacent space if possible
  • A Bush only drops when broken with Shears or a Silk Touch tool
  • The Bush is replaceable when building

Short and Tall Dry Grass

  • Added two new types of grass: Short Dry Grass and Tall Dry Grass
  • Both are 1 block high, which means Tall Dry Grass differs from regular Tall Grass which is 2 blocks high
  • Both generate in the Desert and Badlands biomes
  • Both can be placed on types of Sand, Terracotta, Dirt blocks, and Farmland like the Dead Bush
  • Both can be bonemealed
    • Using Bone Meal on Short Dry Grass grows it into a Tall Dry Grass
    • Using Bone Meal on Tall Dry Grass grows a Short Dry Grass in a random adjacent space if possible
  • Both can be used in the Composter
  • Sheep can eat both to regrow their wool
  • Both can be used as fuel for smelting
  • Both are replaceable when building

Cactus Flower

  • Cactus Flower is a new type of flower that has a chance of generating on Cactuses in Deserts and Badlands
  • Cactus Flower can be placed on Cactus blocks, Farmland, or any block which has center support at the top of the block
  • Cactus Flowers have a chance of growing on Cactus blocks instead of the Cactus growing taller
    • If a Cactus is 1-2 blocks tall, the Cactus Flower has a 10% chance to grow
    • If a Cactus is 3 blocks or taller the Cactus Flower has a 25% chance to grow
    • Cactus Flowers will only grow if they have space on all four sides
  • Cactus Flowers can be used in the Composter
  • A Cactus Flower can be used to craft 1 Pink Dye

Falling Leaf Particles

  • All Leaves blocks now have chance of spawning falling leaf particles
  • The following blocks are affected by this change:
    • Acacia Leaves
    • Azalea Leaves
    • Birch Leaves
    • Dark Oak Leaves
    • Flowering Azalea Leaves
    • Jungle Leaves
    • Mangrove Leaves
    • Oak Leaves
    • Spruce Leaves

New Ambient Sounds for Desert and Badlands

  • Sand, Red Sand and Terracotta of any color have a chance of playing ambient sounds when surrounded by another block in the same group on at least 3 sides, at a distance of 8 blocks
    • block.sand.idle can be played in any biome
    • block.sand.wind only plays when in Desert or Badlands biomes
  • Dead Bush blocks have a chance of playing ambient sounds when placed on top of two blocks that are any color of Terracotta, Sand or Red Sand blocks in any biome

Changes

  • The main menu panorama has been updated for the “Spring to Life” drop
  • Beacons and their beams now render beyond 16 chunks, up to the client render distance
    • To keep it easily visible at large distances, the beam is rendered thicker the further away you are
    • The beam now renders up to 2048 blocks high, up from 1024

  • Lodestones have a new crafting recipe and can now be found in Ruined Portals
  • The trades of the Cartographer and Wandering Trader have been updated
  • Bundles can now be found in some of the Chests in Villages
  • Updates to Camel, Chicken, Cow, Pig, and Sheep spawning
  • Zombified Piglins now need to be killed by a Player to drop the Player-specific loot such as experience
    • This makes them consistent with all other mobs in the game
  • Changes to world generation of the Pale Garden and Meadow biomes
  • Chunks loaded by a portal will now be re-loaded again automatically when the world is reopened
  • Improved how simulation distance affects block ticks
  • Tweaks to the Creaking and Creaking Heart
  • Textures and models for temperate Cow, Mooshrooms and Sheep have been updated
  • Minor tweaks to existing Blocks, Items and Entities
  • Various changes and tweaks to sounds
  • Minor improvements to world uploads in Realms
  • Reverted fix MC-152728 – “The player continues sprinting when performing actions that slow them down

    Developer’s NoteAfter consideration, we have decided to revert this fix. While we do want to revisit these mechanics in the future, it’s clear that these recent fixes alone didn’t quite hit the mark and caused too many negative side effects for parkour, speedbridging, and movement in general

  • If the game detects that the last startup did not complete normally, the fullscreen option will now be reset
  • Removed Herobrine

Lodestone Changes

  • The Lodestone is now crafted from 1 Iron Ingot surrounded by 8 Chiseled Stone Bricks
  • Lodestones can now be found as loot at Ruined Portals in the Overworld or Nether
  • Advancement “Country Lode, Take me Home” has been moved from the “Nether” category to the “Adventure” category

Cartographer and Wandering Trader Trade Rebalance

Cartographer Trades

  • Cartographers now sell 7 new maps each pointing to a different village or other structures in a different biome
  • Cartographers from different village types will sell a different range of maps and colored banners
  • Some prices and quantities have also been adjusted

Wandering Trader Trades

  • The Wandering Trader now has better prices, more trades and a larger amount of stock for many items
  • They will also now buy basic supplies from players, so it is possible to get some Emeralds by helping them prepare for their next journey – even if you don’t feel like buying anything
  • The Wandering Trader will offer to buy two items from this list:
    • Water Bottle
    • Water Bucket
    • Milk Bucket
    • Fermented Spider Eye
    • Baked Potato
    • Hay Bale
  • Wandering Traders now have a chance of selling these items (in addition to their previous trades):
    • Logs (Acacia, Birch, Dark Oak, Jungle, Oak, Spruce, Pale Oak or Cherry)
    • Enchanted Iron Pickaxe
    • Potion of Invisibility

Mob Spawning Changes

  • Camels now spawn in Deserts
  • Chickens, Cows, Pigs, and Sheep can now spawn in Badlands

World Generation Changes

  • The Pale Garden biome now occupies more space that was previously taken by Dark Forest
  • Woodland Mansions can now generate in the Pale Garden biome
  • Short Grass now generates slightly sparser in Meadows

Simulation Distance

  • Any block in simulation distance of a player, or loaded by another source of chunk loading such as Ender Pearls, may now receive random ticks instead of 8 chunks just around players
    • For example: if a chunk is loaded by an Ender Pearl or is in the spawn chunks, crops are able to grow, Ice can melt, Snow can fall, and a Cauldron can be filled by rain
    • Mob spawning, Lava spreading fire, and Lightning strikes still occur in the previous radius of 8 chunks around players
  • Fire will no longer burn or spread if no player is within 8 chunks

Creaking and Creaking Heart

  • Creakings can now be named using Name Tags
    • Named Creakings will persist through the day
      • However, they will still be torn down if stuck with a player or if too far from their Heart
    • Named Creakings are still resistant to all damage, and can communicate with their Hearts via particles
  • Creaking Hearts correctly placed between Logs have a new dormant texture during the day
    • Dormant Creaking Hearts cannot spawn new Creakings or Resin
  • The transition between the awake and dormant states for Creaking Hearts, as well as the transition of Eye Blossoms is now based on the fixed day time
    • All these behaviors are no longer affected by weather or dimension brightness

Mob Texture and Model Changes

  • The look of the temperate Cow has been slightly updated to have an extruded snout
  • The look of both Mooshroom variants have been slightly updated to have an extruded snout
  • Sheep’s wool undercoat is now also colored when dyed
  • The Sheep wool texture has been tweaked to remove the stark line at the back

Minor Tweaks to Blocks, Items and Entities

  • Sheep can now eat Fern blocks
  • Landing on Powdered Snow with Leather Boots equipped after falling further than 2.5 blocks will now make entities fall through the snow
    • Jumping or falling less than 2.5 blocks allows the entity to land on top of the snow like before
  • Saddles equipped onto Pigs or Striders will now maintain properties such as custom name when dropped
  • Bubble columns produce less particles and sounds when entities are unaffected by them are inside them
  • Pale Oak Leaves and Pale Oak Saplings have an updated map color
  • Improved tooltips for the Crossbow and all container items

Item Tooltips

  • Crossbows will now show all charged projectiles in their tooltip instead of just the first
    • All charged projectiles will also add their entire tooltip as a subsection, instead of only Fireworks
  • All container items with stored contents, such as a Chest picked with Ctrl+Pick Block, will now list the first 4 items in their tooltip just like Shulker Boxes

Sound Changes

  • The volume of the narrator is now affected by the game’s configured volume in the “Voice” category
  • Added new break, place, step, fall and hit sounds for Iron Blocks, Iron Bars, Iron Trapdoors, Iron Doors and Heavy Weighted Pressure Plates
  • The breaking sound for the “grass” sound type has been lowered
  • Blocks that are broken by a Piston now play their breaking sound
  • Ambient block sounds in Desert, Badlands and Pale Garden which are only used for ambience have been moved from the “Blocks” to the ‘Ambient/Environment’ category

Realms World Uploads

  • Uploading a world to Realms will now enable Command Blocks by default
  • It is now possible to upload Hardcore singleplayer worlds to Realms

Technical Changes

  • The Data Pack version is now 71
  • The Resource Pack version is now 55
  • A new entry point is present in the server jar: net.minecraft.gametest.Main
    • Automatically starts a server and runs all available game tests
  • A new command line argument is available for the client: –renderDebugLabels
    • Adds debug labels to relevant OpenGL objects, making debugging rendering easier for developers
  • Minor changes to chat network protocol

Game Test Entry Point

This new entry point automatically starts a server, runs all available game test, and then exits.

Options:

  • –help – Shows usage information
  • –packs <path> – Set a folder of data packs to include in the world
    • Any zip file or folder containing a pack.mcmeta file is included
  • –report <path> – Exports results in a JUnit-like XML report at the given path
  • –tests <selection> – Specify which tests to run with a selection – a wildcard expression matching namespace test instance IDs
    • If omitted, or used with an empty ID, all tests will be run
  • –universe <path> – The path in which the test server world will be created
    • Any existing folder will be replaced
    • Default: gametestserver
  • –verify <boolean> – Enables test verification
    • Runs the tests specified with test or testNamespace 100 times for each 90-degree rotation step
    • Default: false

Example usage: java -DbundlerMainClass=”net.minecraft.gametest.Main” -jar server.jar –packs mytestpacks

Network Protocol

  • The clientbound player_chat packet now contains an index increasing for every message sent to the client
    • The index starts at 0 when logging in (or is reset by configuration phase and the login packet)
    • For every message, the server should increment this value by 1
    • If this value updates in an unexpected way, the client will disconnect
    • As the protocol requires that every chat packet reaches the client in produced order, the goal is to enable faster detection of missed/reordered chat messages for custom server developers
  • The serverbound chat and chat_command_signed packets now contain a checksum byte along with the “last seen” update
    • This is a simple hash of the “last seen” signatures which should be reconstructed by the server, allowing quicker detection of desynchronized state
    • This can be passed as 0 to disable the check, for compatibility with protocol translation

Data Pack Versions 62 through 71

  • The Game Tests system is now accessible through data packs and for mods
  • Added new allowFireTicksAwayFromPlayer and tntExplodes Game Rules
  • All entities can now store custom data
  • Added a uniform way to define variant selection rules
  • Wolf Sound, Pig, Cat, Chicken, Cow, and Frog variants are now data-driven
  • Changes to commands
  • Structure Blocks in the “Load” mode have a new option: “Strict Placement”
    • If set to false, the blocks in the placed structure will not trigger block updates, block entity side effects, or shape updates
  • The game’s handling of NBT has been updated to allow “heterogeneous” lists with elements of different types
  • The object notation used in commands for NBT, text components and inline predicates (a.k.a. SNBT) has been extended
  • Updated data format of Text Components
  • Updated many data formats within entities and block entities
  • Added new item components, and updates to existing components
    • The control of tooltip behavior has been reworked into a tooltip_display component
  • Entity variants are now set and queried with components
  • Updated Entity Predicates to support entity components
  • Updated Block Predicates to support block entity components
  • Updated toggle_tooltips loot function to support new tooltip_display component
  • The potion entity type has been split into splash_potion and lingering_potion
  • Added saddle equipment slot for entities, driven by the equippable component
    • Only mobs that normally support saddles will support riding and rendering of the saddle
    • Items in the saddle slot can apply attribute modifiers as with other equipment
  • Changes to crafting_transmutesmithing_transform, and smithing_trim recipe types
  • Trim pattern and trim material items are no longer specified in the trim registries, but instead in the recipes and items respectively
  • Added fallen_tree feature type and attached_to_logs tree decorator type
  • The background field in Advancement definitions no longer contains a textures/ prefix and .png suffix
  • The effects field in Biome definitions has a new subfield, dry_foliage_color, that defines the color used for tinting blocks using dry foliage tinting (Leaf Litter)
  • Changes to tags
  • Added firefly and tinted_leaves particles

Game Tests

The Game Tests system is a new integrated system for testing aspects of the game. Each test is an asset defining some parameters for how the test gets executed, combined with a saved structure file containing a base setup.

Generally, the test framework expects to run tests in a separate superflat world.

Test Instances

Test instances are defined in the registry test_instance. They’re small assets defining a test to run.

Fields:

  • environment: Namespaced ID of the test environment to run this test as part of
  • structure: The namespaced ID of the structure to use for the test
  • max_ticks: A positive integer representing the maximum number of ticks allowed to pass before the test is considered timed out
  • setup_ticks: Optional non-negative integer (default: 0) representing a number of ticks to wait after placing the structure before starting the test
  • required: Optional boolean (default true) – whether the test is considered required to pass for the full test suite to pass
  • rotation: Optional rotation to apply to the test structure
    • One of none (default), clockwise_90180 and counterclockwise_90
  • manual_only: Optional boolean (default false), set to true for tests that are not included as part of automated test runs
  • sky_access: Whether the test needs clear access to the sky
    • By default (false), tests are enclosed in barrier blocks – if set to true, the top is left open
  • max_attempts: Number of attempts to run the test (default 1)
  • required_successes: Number of attempts that must succeed for the test to be considered successful (default 1)
  • type: The type of test – one of block_based and function
Function Tests

Function tests rely on built-in functions to run a test and indicate success or failure. They have one additional field:

  • function: The namespaced ID of the Test Function to run

See the “Using the Game Test Framework from Code” changelog section for more information.

Block Based Tests

Block based tests use Test Blocks in the test structure to run the test and indicate success or failure.

Test Environments

Test Environments are a way to group up tests and give them the right preconditions to run. A Test Environment is an asset in the test_environment registry. Each Test Environment definition has a type field that determines its setup:

  • all_of definitions apply the setup from several sub-definitions in the definitions field
  • function definitions use mcfunction files as setup and teardown
    • setup: Optional namespaced ID of the mcfunction to use for setup, if any
    • teardown: Optional namespaced ID of the mcfunction to use for teardown, if any
  • game_rules: definitions set any number of game rules
    • bool_rules: A list of boolean game rules to set and the value to set
    • int_rules: A list of integer game rules to set and the value to set
    • Each rule is an object with two fields:
      • rule: The exact name of the rule to set
      • value: The value to set
    • Game rules are reset to their default values after the test environment has completed
  • weather definitions sets the weather state
    • weather: The weather to set – one of clearrain and thunder
  • time_of_day definitions set a given time of day
    • time: The time of day to set in number of ticks, as a non-negative integer

The game provides a single, empty Test Environment by default: minecraft:default.

Test Blocks

The Test Block is a block used for implementing a block-based tests. It has four modes:

  • start: Triggers a redstone pulse when the test starts
  • log: Logs a message to the log file when powered by redstone
  • fail: Fails the test when powered by redstone
  • accept: Completes the test when powered by redstone

Block-based tests are required to have at least one start block and one accept block in the structure.

The test Command

The test command is a new command used to create and run tests.

Syntax:

test clearall [<radius>]
test clearthat
test clearthese test create <test> [<width>] [<height> <depth>] test locate <selector> test resetclosest
test reseetthese
test resetthat test pos [<variable>] test run <selector> [<numberOfTimes>] [<untilFailed>] [<rotationSteps>] [<testsPerRow>]
test runclosest [<numberOfTimes>] [<untilFailed>]
test runfailed [<numberOfTimes>] [<untilFailed>] [<rotationSteps>] [<testsPerRow>]
test runmultiple <selector> [<amount>]
test runthat [<numberOfTimes>] [<untilFailed>]
test runthese [<numberOfTimes>] [<untilFailed>] test stop test verify <tests>

Parameters:

  • radius: The radius to clear tests within
  • test: The namespaced ID of a test
  • selector: A wildcard-enabled selector for test IDs
    • Supports * and ? for matching namespaced IDs
    • If namespace is not supplied, defaults to minecraft
    • Examples:
      • *:* – matches all IDs
      • * – matches everything in the minecraft namespace
      • custom:folder/*_test_? – matches IDs in the folder folder of the custom namespace, with a prefix followed by _test_ followed by a single valid character
  • width: The width of the test structure – if omitted, 5 is used
  • height: The height of the test structure – if omitted, the width is used
  • depth: The depth of the test structure – if omitted, the width is used
  • variable: The variable name to include in the copied code snippet
  • numberOfTimes: The number of times to repeat each test – if omitted, 1 is ued
  • untilFailed: Boolean (default false) noting that the test should be stopped as soon as one iteration fails
  • rotationSteps: Number of extra 90 degree steps to apply to the test – if omitted, 0 is used
  • testsPerRow: Number of tests to place per row in a grid layout – if omitted, 8 is used
test clear*

These subcommands clear the structures and blocks associated with the selected tests.

test create

This subcommand creates a test setup in the current location for the given test, preparing for a structure of the given size. This gives a starting point for creating the structure for the test.

test locate

Attempts to locate the given test. Note that only loaded chunks are searched.

test reset*

These subcommands reset the structures for the selected tests, removing any surrounding barriers and placing the structure in from scratch.

test pos

Shows the local coordinates to the block pointed at in the test. If the optional variable name is specified, this variable name is used in a code fragment obtained by clicking on the coordinates in the output message.

test run*

Runs one or more tests. If multiple tests are run at once, they are placed in a grid and run in parallel, although only up to a certain limit. Beyond that limit, tests are run in rounds where each round completes before any tests from the next round are started.

For each test, loads the given structure and runs the associated test. Each test location will have a beacon beam showcasing the test status.

  • Gray beacon = in progress
  • Red = fail (required test)
  • Orange = fail (optional test)
  • Green = success

If a test fails, the error is shown on a lectern book and an overlay.

Note that Game Tests are designed to run on standard superflat worlds. The area around each test is replaced with stone when it runs, and the running test is encased in barrier blocks.

test stop

This stops all running tests. Note that gameplay events triggered by tests may still remain.

test verify*

Verifies one or more tests by running multiple instances of the same test.

Test Instance Blocks

To run a test in a world, a Test Instance Block is used. This type of block represents the test as placed in the world and is used to interact with that test, to save the structure, reset or run the test.

Using the test command to run or create a test will also place a Test Instance Block to control that test.

Using the Game Test Framework from Code

The Game Test Framework can also be used from code in a more versatile manner than block-based tests. For this to work, you need to mod the game to add your test functions to the test_function registry (Registries.TEST_FUNCTION).

Hook into some startup method (pre-registry bootstrap) to add your loader – call TestFunctionLoader.registerLoader() with an implementation of TestFunctionLoader. Your implementation can then use the provided register consumer to register test functions with their namespaced IDs. This namespaced ID can then be referenced in a function type Test Instance.

A test function is a Consumer<GameTestHelper>, using that GameTestHelper instance to manipulate the world and make assertions about the state of the resulting world.

The helper can be used to summon mobs, set blocks, query for blocks and entities and assert the state of the test. Most GameTestHelper methods take test-local coordinates, which you can also find using /test pos.

Example code that might go along with a test structure with a locked hopper containing a Cod, pointed into a Furnace:

public void furnaceSmeltsItem(final GameTestHelper helper) { helper.setBlock(0, 4, 0, Blocks.AIR); helper.succeedWhen(() -> helper.assertContainerContainsSingle(new BlockPos(0, 0, 0), Items.COOKED_COD));
}

More complicated setups will often use helper.startSequence() to model sequences of events that must happen.

As opposed to block-based tests, function tests failing will often produce more helpful error messages including the location of whatever failed and what was expected at that location.

Game Rules

allowFireTicksAwayFromPlayer

  • When true, fire and lava can spread fire outside the 8 chunk range of a player
  • Note: the fire and lava blocks must still be in simulation distance to spread
  • Default value: false

tntExplodes

  • When false, TNT will not explode and cannot be ignited
  • Default value: true

Uniform Variant Selection

  • Variants that have spawn rules now use a uniform approach for selection
  • Selection process:
    • Every variant has a field spawn_conditions that contains a list of entries
    • Every entry has a condition and an integer priority
    • Conditions for all variants for given entity type are evaluated for the position that entity is being spawned
    • Entries with a priority lower than the maximum priority of remaining entries are removed
    • The game randomly picks one entry out of the remaining ones
    • If no conditions are remaining, the variant remains unchanged from default for that entity
  • Entry format:
    • priority – integer
    • condition – optional structure
      • Fields:
        • type – see below for values
        • Additional fields are dependent on type
      • If this field is not present, the condition is always true

Spawn Conditions

minecraft:biome
  • Checks if entity is spawning in specific biomes
  • Fields:
    • biomes – single entry, list or a tag describing biomes
minecraft:moon_brightness
  • Checks if the current moon brightness is within a certain range
  • Fields:
    • range – floating point range (a single number or an object like {“min”: 1, “max”: 2})
minecraft:structures
  • Checks if the entity is spawning in specific structures
  • Fields:
    • structures – single entry, list or a tag describing structures

Data-driven Mob Variants

Wolf Variants

  • The fields angry_texturetame_texture and wild_texture have been grouped in an assets field, and renamed to angrytame, and wild
  • Added field spawn_conditions described in uniform variant selection above

Pig Variants

  • Pig variants can be data-driven by adding entries to data/<namespace>/pig_variant/<id>.json
  • This feature is experimental
  • Fields in file:
    • model – one of: normalcold
    • asset_id – namespaced id for this variant asset, resolves to assets/<namespace>/textures/<path>.png
    • spawn_conditions – field described in uniform variant selection above

Cat Variants

  • Cat variants can be data-driven by adding entries to data/<namespace>/cat_variant/<id>.json
  • This feature is experimental
  • Fields in file:
    • asset_id – namespaced id for this variant asset, resolves to assets/<namespace>/textures/<path>.png
    • spawn_conditions – field described in uniform variant selection above

Frog Variants

  • Frog variants can be data-driven by adding entries to data/<namespace>/frog_variant/<id>.json
  • This feature is experimental
  • Fields in file:
    • asset_id – namespaced id for this variant asset, resolves to assets/<namespace>/textures/<path>.png
    • spawn_conditions – field described in uniform variant selection above

Cow Variants

  • Cow variants can be data-driven by adding entries to data/<namespace>/cow_variant/<id>.json
  • This feature is experimental
  • Fields in file:
    • model – one of: normalcoldwarm
    • asset_id – namespaced id for this variant asset, resolves to assets/<namespace>/textures/<path>.png
    • spawn_conditions – field described in uniform variant selection above

Chicken Variants

  • Chicken variants can be data-driven by adding entries to data/<namespace>/chicken_variant/<id>.json
  • This feature is experimental
  • Fields in file:
    • model – one of: normalcold
    • asset_id – namespaced id for this variant asset, resolves to assets/<namespace>/textures/<path>.png
    • spawn_conditions – field described in uniform variant selection above

Wolf Sound Variants

  • Wolf sound variants can be data-driven by adding entries to data/<namespace>/wolf_sound_variant/<id>.json
  • The file contains the following fields which correspond to sound events to use for the specific behaviour:
    • ambient_sound
    • death_sound
    • growl_sound
    • hurt_sound
    • pant_sound
    • whine_sound

Commands

  • SNBT literals now accept heterogeneous lists
  • /data can now create and modify heterogeneous lists transparently
  • The /setblock/fill/clone, and /place commands now support a “strict” placement mode
  • /setblock and /fill have updated handling of block entities
  • The horse.saddle item slot has been renamed to saddle, and now supports any entity that can equip a Saddle
  • Text Components in commands such as /tellraw or /title are now specified with SNBT instead of JSON
  • Text Style in the /scoreboard command when specifying the styled number format is also now specified with SNBT instead of JSON
  • Text Component arguments in /bossbar/scoreboard and /team commands are now resolved before use (in the context of entity the held in @s)

Changes to /setblock/fill/clone, and /place

  • The behavior of setblock and fill commands have changed in how they handle block entity data:
    • If the block entity data is not specified, and the existing block has data, the block entity data will be preserved
    • If the block entity data is specified, the block entity data will be set to that specified value
    • To clear block entity data explicitly, you must now specify the block entity data as {}
    • The operation is now successful if either the block state changed or the block entity data changed
  • fillclonesetblock and place template accept a new option: strict
    • If specified, the command will place blocks as-is without triggering block updates or shape updates
  • The replace option in the fill command is no longer terminal, and can be followed with additional options
  • New syntax for commands to use the new strict option, and more flexible use of replace:
    • fill <from> <to> <block> keep
    • fill <from> <to> <block> [replace <filter>]? [strict|destroy|hollow|outline]?
    • clone [from <sourceDimension>]? <begin> <end> [to <targetDimension>]? <destination> [strict]? [[replace|masked|filtered <filter>] [force|move|normal]?]?
    • setblock <pos> <block> [destroy|keep|replace|strict]?
    • place template <template> [<pos> [<rotation> [<mirror> [<integrity> [<seed> [strict]?]?]?]?]?]?

NBT Changes

  • Any interface with NBT data within the game (SNBT representation, /data) now supports heterogeneous lists, i.e. ones where elements are not of the same type
    • Inserting or replacing into a list of a different type with /data will no longer give an error
    • Inserting into an array type (e.g. [I;1,2,3]) is still type-restricted
    • This means that the “wrapper” objects previously used to represent heterogeneous lists will no longer be observable by in-game means
  • /data can no longer traverse paths with an empty key (e.g. /data get … foo.”.bar)
  • The NBT file format is unchanged:
    • Heterogeneous lists are transformed before storage to bypass NBT constraints
    • Example transform: [‘a’, {‘b’:3}] is stored as [{”:’a’},{‘b’:3}]
    • Existing external tools will still be able to read NBT files as before, but heterogeneous lists will be displayed in the transformed form
  • No data produced by the game has changed: objects such as Text Components were already producing heterogeneous lists in this form
  • Note: these wrapper objects may never be observed in-game, they are only relevant to developers working with the NBT file or network format directly

SNBT Changes

  • The text format for describing object-like data in commands (like NBT, text components, predicates, etc.) has been extended
  • To simplify input of data and macro use, SNBT now also supports following operations:
    • bool(arg) – converts argument to boolean
      • if argument is a boolean value, returns value directly
      • if argument is a number value, returns true if it is non-zero
    • uuid(str) – converts string representation of UUID to integer array

Number Format

  • Either whole or fraction parts of a float number can be omitted
    • Examples: .1 and 1. are valid now
  • Float numbers now use E notation
    • Example: both 1.2e3 and 1.2E31.2E+312000e-1 are now a valid way to represent 1200.0
  • Integer numbers can now be prefixed with 0x to represent hexadecimal numbers and 0b to represent binary numbers
    • Example: 0xbad (equal to 2989), 0xCAFE (equal to 51966), 0b101 (equal to 5)
  • Non-zero integer numbers now can’t start with 0
    • Normally it would mean number is in base-8, but we are restricting it to avoid accidental use
  • Numbers can now contain _ character between sequences of digits (but not at the start or the end of sequence)
    • Example: 0b10_010xAB_CD1_2.3_4__5f1_2e3_4
  • NaNInf or hexadecimal float representation are NOT supported
  • Implicit infinite float values (like 1e1000) are rejected
  • Type suffixes have been extended:
    • Integer type suffixes (b or B – byte, s or S – short, i or I – integer, l or L – long) can now be prefixed with s (signed) or u unsigned
    • New suffixes only affect the valid range when parsing – values are still stored as signed
      • Example: 240ub is equal to -16sb, while 240sb does not parse
    • When a suffix is used without u or s, it defaults to signed for decimal numbers and unsigned for binary and hexadecimal numbers
    • Note: since b is also a valid hexadecimal digit, byte sized hexadecimal values can only be written with a signed suffix, like 0x11ub or 0x11sb

Strings

  • Quoted strings can now use escape sequences beyond  and \:
    • Unicode escapes:
      • \x – two digit escape, like \x42
      • \u – four digit escape, like \u2603
      • \U – eight digit escape, like \U00002603
      • \N{<name>} – named Unicode character, like \N{Snowman}
    • Built-in escape sequences:
      • \b – backspace, Unicode \x08
      • \s – space, Unicode \x20
      • \t – horizontal tab, Unicode \x09
      • \n – linefeed, Unicode \u0a
      • \f – form feed, Unicode \u0c
      • \r – carriage return, Unicode \u0d
  • Unquoted strings now can’t start with 0-9.+ to avoid accidental collision with numbers

Number Arrays

  • Values in arrays ([B;][I;][L;]) without a suffix are now assumed to have suffix matching the type of the array

    • Example: [B;1,2] is equivalent to [B; 1b, 2b]
  • Arrays can now also accept types smaller than the array type

    • Example: [I;1b,2s,3] is valid and equivalent to [I;1i,2i,3i]

Lists

  • Lists now accept trailing commas
    • Example: [1,2,] is valid and equivalent to [1,2]
    • Only one trailing comma is allowed, and it must come after a valid element – both [,] and [1,,] are invalid

Compounds

  • Compounds (maps) now accept trailing commas
    • Example: {a:b,}
    • Only one trailing comma is allowed, and it must come after a valid key-value pair – both {,} and {a:b,,} are invalid

Text Component Data Format

  • Text Components are no longer stored as JSON wrapped by a string
  • The format itself is the same as before, but inlined directly into the outer structure
    • For example, the item component minecraft:custom_name=”{“text”:”Renamed item”}” will become minecraft:custom_name={text:’Renamed item’}
  • This includes Text Components passed as arguments to commands such as /tellraw or /title
    • For example, /tellraw @s {“text”:”Hello world”} may become /tellraw @s {text:’Hello world’}
  • Note: in the case where Text Components are embedded in NBT, no distinction exists between boolean and integer types
    • To pass boolean arguments to translations, you must use the string form
  • For Text Components with the nbt type and interpret set to true, Text Components will be parsed from the given NBT directly rather than converting to a string and parsing as JSON
  • The format of hover and click events has been updated

Hover Events

  • The hoverEvent field has been renamed to hover_event
  • The legacy value field (which was parsed from a rendered text component) is no longer supported
  • For the show_text action:
    • The contents field has been renamed to value
    • e.g. {action:’show_text’,contents:’Hello world’} becomes {action:’show_text’,value:’Hello world’}
  • For the show_item action:
    • The contents field has been inlined
    • e.g. {action:’show_item’,contents:{id:’minecraft:stick’,count:2}} becomes {action:’show_item’,id:’minecraft:stick’,count:2}
    • If contents was specified only as an item id, it is replaced with the full format and inlined
    • e.g. {action:’show_item’,contents:’minecraft:stick’} becomes {action:’show_item’,id:’minecraft:stick’}
  • For the show_entity action:
    • The contents field has been inlined
    • The id field has been renamed to uuid
    • The type field has been renamed to id
    • e.g. {action:’show_entity’,contents:{id:[I;0,0,0,0],type:’minecraft:pig’}} becomes {action:’show_entity’,uuid:[I;0,0,0,0],id:’minecraft:pig’}

Click Events

  • The clickEvent field has been renamed to click_event
  • For the open_url action:
    • The value field has been renamed to url
    • The click event will no longer parse if not a valid URI with either https:// or http:// schemes, instead of simply not working
    • e.g. {action:’open_url’,value:’https://minecraft.net’} becomes {action:’open_url’,url:’https://minecraft.net’}
  • For the run_command action:
    • The value field has been renamed to command
    • The click event will no longer parse if the command contains disallowed characters, instead of simply not working
    • It is no longer required that the specified command field has a / prefix
    • e.g. {action:’run_command’,value:’/tp @e @s’} becomes {action:’run_command’,command:’/tp @e @s’}
  • For the suggest_command action:
    • The value field has been renamed to command
    • The click event will no longer parse if the command contains disallowed characters, instead of simply not working
    • e.g. {action:’suggest_command’,value:’/help’} becomes {action:’suggest_command’,command:’/help’}
  • For the change_page action:
    • The value field has been renamed to page
    • The page value now requires a positive integer instead of a string
    • e.g. {action:’change_page’,value:’1′} becomes {action:’change_page’,page:1}
  • The copy_to_clipboard format is unchanged

Entity Data

  • Custom data (previously present only on Marker) is now available on all entities
    • It’s exposed as a minecraft:custom_data component, so it can be set by spawning items and matched by predicates
    • The component is currently stored in a field called data, which will be changed in the future when more proper storage for entity components is introduced
    • It’s stored only if it’s non-empty
  • Updated and unified formats for storing equipment-related data on entities
  • The Owner field of tamed animals is no longer restricted to referencing Players
  • The Health and Air fields now default to their respective maximum value if not specified
  • The Tags and FallFlying fields will no longer be preserved if removed
  • The FallDistance field has been changed from float to double and is now called fall_distance
  • The SleepingXSleepingY, and SleepingZ fields have been collected into a single sleeping_pos field
  • PosMotion, and Rotation values without the correct number of components (3, 3, and 2 respectively) will now be fully discarded, instead of only selecting the specified components
    • e.g. sleeping_pos: [I;1,2,3]
  • Block States in the entity data of Arrows, Minecarts, Block Displays, Endermen, Falling Blocks, Primed TNT, or Piston Moving Blocks are no longer allowed to be specified as an empty object
  • Many tweaks to entity data formats of specific entities

Equipment Data

  • The ArmorItemsHandItems, and body_armor_item fields have been merged into an equipment field
    • Format: map between equipment slot type and item stack
      • Valid equipment slots: headchestlegsfeetmainhandoffhandbodysaddle
    • If not specified or removed, the entity will have no equipment
    • e.g. equipment:{chest:{id:’minecraft:diamond_chestplate’}}
    • This affects all mobs and Armor Stands
    • The armor and off-hand equipment of Players is now also stored in the equipment field (although items written into the Inventory using armor and off-hand slot numbers still work)
  • The data format of saddles has been unified between mobs such as Horses and Pigs, becoming a new kind of equipment slot (and stored in the equipment.saddle field)
    • This is a pure rename from the previous SaddleItem in Horse-like mobs
    • This also replaces the boolean Saddle flag from Pigs and Striders
    • The Saddle dropping on death is now affected by the drop_chances field, as with other equipment slots
  • The ArmorDropChancesHandDropChances, and body_armor_drop_chance fields have been merged into a drop_chances field
    • Format: map between equipment slot type and chance value
    • If not specified or removed, chances will be assumed as default (0.085f)
    • e.g. drop_chances:{chest:0.1,feet:1.0}
  • Drop chances with a default value will no longer be stored, and the drop_chances field is removed entirely if all defaults

allay

  • Removed redundant CanDuplicate field (controlled by DuplicationCooldown)

area_effect_cloud

  • Area Effect Clouds have a new field: potion_duration_scale (float)
    • If not specified, defaults to 1.0
    • The duration of the potion effect applied is scaled by this factor
    • Area Effect Clouds created by Lingering Potions will have a scale of 0.25
  • The Duration field now defaults to -1 if not specified
  • If the Duration field is -1, the Area Effect Cloud will never run out
  • This means that an Area Effect Cloud summoned with no duration specified will no longer immediately disappear

cat

  • The CollarColor field now defaults to 14 (red) if not specified

creeper

  • The Fuse field now defaults to 30 if not specified
  • The ExplosionRadius field now defaults to 3 if not specified

dolphin

  • Removed TreasurePosXTreasurePosYTreasurePosZ fields
  • The Moistness field now defaults to 2400 if not specified

ender_dragon

  • The DragonDeathTime field now defaults to 0 if not specified

falling_block

  • The BlockState field can now be air (will despawn immediately) – if otherwise not specified or invalid, defaults to sand
  • The HurtEntities field now defaults to false if not specified (or true if BlockState is anvil)
  • The FallHurtAmount field now defaults to 0 if not specified
  • The FallHurtMax field now defaults to 40 if not specified
  • The DropItem field now defaults to true if not specified
  • The TileEntityData field will no longer be preserved if removed

firework_rocket

  • The ShotAtAngle field now defaults to false if not specified

fox

  • The Trusted field now defaults to empty if not specified (and will no longer be merged with the previous state if modified by /data)

ghast

  • The ExplosionPower field now defaults to 1 if not specified

goat

  • The HasLeftHorn and HasRightHorn fields now default to true if not specified

interaction

  • The width and height fields now default to 1 if not specified

item

  • The Health field now defaults to 5 if not specified
  • The PickupDelay field now defaults to 0 if not specified
  • The Age field now defaults to 0 if not specified
  • The Owner and Thrower fields will no longer be preserved when removed

item_frame and glow_item_frame

  • The TileXTileY, and TileZ fields have been collected into a single block_pos field
  • The ItemDropChance field now defaults to 1.0 if not specified

item

  • The Owner and Thrower fields will no longer be preserved when removed

phantom

  • The Size field has been renamed to size
  • The AXAY, and AZ fields have been collected into a single anchor_pos field

player

  • The SpawnXSpawnYSpawnZSpawnAngleSpawnDimension, and SpawnForced fields have been collected into a single respawn field
    • Format: object with fields
      • pos – block position to spawn at
      • angle – float, angle to spawn with (default: 0.0)
      • dimension – dimension id to spawn in (default minecraft:overworld)
      • forced – boolean, true if this spawn was set through commands (default: false)
  • The enteredNetherPosition field has been renamed to entered_nether_pos, and is now formatted as a list of doubles
    • e.g. entered_nether_pos: [1.0, 2.0, 3.0]

primed_tnt

  • The fuse field now defaults to 80 if not specified
  • The block_state field now defaults to tnt if not specified
  • The explosion_power field now defaults to 4 if not specified

shulker

  • The Color field now defaults to 16 (no color) if not specified

shulker_bullet

  • The Dir and Target fields will no longer be preserved when removed

skeleton

  • The StrayConversionTime field will no longer be preserved when removed

spectral_arrow

  • The Duration field now defaults to 200 if not specified

snow_golem

  • The Pumpkin field now defaults to true if not specified

tnt_minecart

  • The fuse field now defaults to 80 if not specified
  • The explosion_power field now defaults to 4 if not specified
  • The explosion_speed_factor field now defaults to 1 if not specified

turtle

  • The HomePosXHomePosY, and HomePosZ fields have been collected into a single home_pos field
  • Removed TravelPosXTravelPosY, and TravelPosZ fields
  • The HasEgg field has been renamed to has_egg

trader_llama

  • The DespawnDelay field now defaults to 47999

vex

  • The LifeTicks field has been renamed to life_ticks
  • The BoundXBoundY, and BoundZ fields have been collected into a single bound_pos field

villager

  • The FoodLevel and Xp fields now default to 0 if not specified
  • The Gossips and ConversionTime fields will no longer be preserved when removed

wandering_trader

  • The DespawnDelay field now defaults to 0 if not specified
  • The wander_target field will no longer be preserved when removed

wolf

  • The CollarColor field now defaults to 14 (red) if not specified

zombie

  • The DrownedConversionTime field will no longer be preserved when removed

zombie_villager

  • The Xp field now defaults to 0 if not specified
  • The Gossips and ConversionTime fields will no longer be preserved when removed

evoker_fangsarea_effect_cloud, and all projectiles

  • The Owner field will no longer be preserved when removed

painting and leash_knot

  • The TileXTileY, and TileZ fields have been collected into a single block_pos field

arrowspectral_arrowtrident

  • The inBlockState and SoundEvent fields will no longer be preserved when removed
  • The damage field now defaults to 2 if not specified

dragon_fireballwind_chargebreeze_wind_chargewither_skullsmall_fireball, and large_fireball

  • The acceleration_power field now defaults to 0.1 if not specified

small_fireball and large_fireball

  • The ExplosionPower field now defaults to 1 if not specified

minecart*_minecart

  • The CustomDisplayTile field has been removed
  • DisplayState will now always override the default displayed block state if specified
  • DisplayOffset may now be specified to override the default offset even without a custom display block state set

block_displayitem_display, and text_display

  • The interpolation_durationteleport_duration, and start_interpolation fields now default to 0 if not specified
  • The view_range field now defaults to 1 if not specified
  • The shadow_radius field now defaults to 0 if not specified
  • The shadow_strength field now defaults to 1 if not specified
  • The width and height fields now default to 0 if not specified
  • The glow_color_override field will no longer be preserved when removed

witchravagerpillagerillusionerevoker, and vindicator

  • The patrol_target field will no longer be preserved when removed

Block Entity Data

  • The CustomName field will no longer be preserved when removed
  • The LootTable field will no longer be preserved when removed

campfire

  • The CookingTimes and CookingTotalTimes fields will no longer be preserved when removed

chiseled_bookshelf

  • The last_interacted_slot field now defaults to -1 if not specified

end_gateway

  • The exit_portal field will no longer be preserved when removed

furnacesmokerblast_furnace

  • The RecipesUsed field will no longer be preserved when removed

hopper

  • The TransferCooldown field now default to -1 if not specified

jigsaw

  • The nametarget, and pool fields now default to minecraft:empty if not specified
  • The final_state field now defaults to minecraft:air if not specified

sculk_shrieker

  • The warning_level field now defaults to 0 if not specified

skull

  • The note_block_sound field will no longer be preserved when removed

structure_block

  • The ignoreEntities and showboundingbox fields now default to true if not specified
  • The posY field now defaults to 1 if not specified

Data Components

New weapon Item Component

  • When present, the “Item Used” statistic will be incremented for each attack with the item
  • The specified amount of damage will be subtracted from the item’s durability with each attack
  • Format: object with fields:
    • item_damage_per_attack – non-negative integer (default: 1)
      • The amount of damage to subtract from the weapon item’s durability for each attack performed
    • disable_blocking_for_seconds – non-negative float (default: 0)
      • If non-zero, will disable a blocking Shield on successful attack for the specified amount of seconds
    • e.g. weapon={item_damage_per_attack:2}

New blocks_attacks Item Component

  • When present, this item can be used like a Shield to block attacks to the holding player
  • Format: object with fields:
    • block_delay_seconds – non-negative float (default: 0)
      • The number of seconds that right-click must be held before successfully blocking attacks
    • disable_cooldown_scale – non-negative float (default: 1)
      • Multiplier applied to the number of seconds that the item will be on cooldown when attacked by a disabling attack (disable_blocking_for_seconds on the weapon component)
      • If 0, this item can never be disabled by attacks
    • damage_reductions – list of objects with fields (optional)
      • Controls how much damage should be blocked in a given attack
      • If not specified, all damage is blocked
      • Each entry in the list contributes an amount of damage to be blocked, optionally filtered by damage type
      • Each entry adds to blocked damage, determined by clamp(base + factor * dealt_damage, 0, dealt_damage)
      • The final damage applied in the attack to the entity is determined by dealt_damage – clamp(blocked_damage, 0, dealt_damage)
      • Entry format:
        • horizontal_blocking_angle – angle in degrees as a positive float (default: 90)
          • The maximum angle between the user’s facing and the incoming attack for the block to be effective
          • If the damage has no position, the compared angle will be assumed to be the maximum 180
        • type – damage type id, list of damage type ids, or hash-prefixed damage type tag (optional)
          • This entry will only contribute to the blocked damage if the dealt damage type matches this field
          • If not specified, any damage type will be accepted
        • base – float
          • Constant amount of damage to be blocked
        • factor – float
          • Fraction of the dealt damage that should be blocked
    • item_damage – object with fields (optional)
      • Controls how much damage should be applied to the item from a given attack
      • If not specified, a point of durability is removed for every point of damage blocked
      • The final damage applied to the item is determined by: floor(base + factor * damage_blocked)
      • The final value may be negative, causing the item to be repaired
      • Format:
        • threshold – non-negative float
          • The minimum amount of damage blocked in the attack before item damage is applied to the item
        • base – float
          • Constant amount of damage applied to the item, if threshold is passed
        • factor – float
          • Fraction of the blocked damage that should be applied to the item, if threshold is passed
    • bypassed_by – hash-prefixed damage type tag (optional)
      • If specified, blocking is bypassed by these damage types
    • block_sound – sound event (optional)
      • If specified, this sound will be played when an attack is successfully blocked
    • disabled_sound – sound event (optional)
      • If specified, this sound will be played when the item goes on its disabled cooldown due to an attack

New potion_duration_scale Item Component

  • When present, for items that have the potion_contents component, the duration of the applied effects will be scaled by this factor
  • This also applies to custom_effects in the potion_contents component, unlike the previous hardcoded scaling factor
  • If not specified, defaults to 1.0
  • Format: non-negative float
    • e.g. potion_duration_scale=0.25

New break_sound Item Component

  • When present, this sound will be played when the item runs out of durability and breaks
  • If not present, no sound will be played on break
  • This component is present by default on every item type
  • Format: sound event
    • e.g. break_sound=’item.wolf_armor.break’

New provides_banner_patterns Item Component

  • When present, this item can be placed in the pattern slot of a Loom
  • Format: hash-prefixed banner pattern tag
    • e.g. provides_banner_patterns=’#minecraft:pattern_item/globe’

New provides_trim_material Item Component

  • When present, this item will provide the specified trim material when used in a trimming recipe
  • Note that to be used in the built-in smithing recipes, the item must also be in the #trim_materials tag
  • As such, the trim material registry definition no longer specifies an item
  • Format: trim material id
    • e.g. provides_trim_material=’minecraft:iron’

tool Item Component

  • Added new optional field: can_destroy_blocks_in_creative (boolean)
    • If false, players cannot break blocks while holding this tool in Creative Mode
    • If not specified, defaults to true

equippable Item Component

  • Can now apply to saddle slot
  • Any mob can now have equipment added in the body slot as long as the component allows it (allowed_entities)
  • Added new optional field: equip_on_interact (boolean)
    • If true, players can equip this item onto a target mob by right-clicking it (as long as this item can be equipped on the target at all)
    • The item will not be equipped if the target already has an item in the relevant slot
    • If not specified, defaults to false

Updated Tooltip Components

  • The way in which tooltips are controlled by components has been reworked
  • Individual show_in_tooltip fields, as well as the hide_additional_tooltip and hide_tooltip components have been replaced by a general tooltip_display component
  • Filled Maps without any map_id component no longer show an “Unknown Map” tooltip (invalid IDs will still produce this tooltip)

New tooltip_display Item Component

  • This component allows the tooltips provided specifically by any given item component to be suppressed
  • This replaces the previous show_in_tooltip fields, hide_additional_tooltip and hide_tooltip components
  • Format: object with fields:
    • hide_tooltip – boolean (default: false)
      • If true, the item will have no tooltip when hovered
    • hidden_components – list of item component ids (default: [])
      • The tooltips provided by any component in this list will be hidden
      • If that component provides no tooltip, it will have no effect
Removed hide_additional_tooltip Item Component
  • Replaced by use of the tooltip_display component and hidden_components field
  • The following components previously covered by the hide_additional_tooltip component may need to be hidden:
    • minecraft:banner_patterns
    • minecraft:bees
    • minecraft:block_entity_data
      • Specifically, Mob Spawner and Trial Spawner block entity data will display the configured mob
    • minecraft:block_state
      • Specifically, the honey_level property will be displayed in the tooltip for any item with this specified
    • minecraft:bundle_contents
    • minecraft:charged_projectiles
    • minecraft:container
    • minecraft:container_loot
    • minecraft:firework_explosion
    • minecraft:fireworks
    • minecraft:instrument
    • minecraft:map_id
    • minecraft:painting/variant
    • minecraft:pot_decorations
    • minecraft:potion_contents
    • minecraft:tropical_fish/pattern
    • minecraft:written_book_content
  • This additionally means that tooltips from the above listed components are no longer restricted to specific item types
  • Note: for existing items in a world with the hide_additional_tooltip component, any of the above listed components also present on the same item will be added to the list to hide in tooltip_display
Removed hide_tooltip Item Component
  • Replaced by use of the tooltip_display component and hide_tooltip field
attribute_modifiers Item Component
  • Removed show_in_tooltip field, replaced by tooltip_display component
  • This component now always uses its simplified form, with the modifiers field inlined to top-level
    • e.g. attribute_modifiers={modifiers:[…]} -> attributes_modifiers=[…]
dyed_color Item Component
  • Removed show_in_tooltip field, replaced by tooltip_display component
  • This component now always uses its simplified form, with the rgb field inlined to top-level
    • e.g. dyed_color={rgb:12345} -> dyed_color=12345
  • The specified color now supports the RGB array format
    • e.g. dyed_color=[0.5, 1.0, 0.2]
can_place_on and can_break Item Components
  • Removed show_in_tooltip field, replaced by tooltip_display component
  • The predicates field has been inlined to top-level, and supports either a single element or list
    • e.g. can_place_on={predicates:[{blocks:’stone’},{blocks:’dirt’}]} -> can_place_on=[{blocks:’stone’},{blocks:’dirt’}]
    • or: can_place_on={predicates:[{blocks:’stone’}]} -> can_place_on={blocks:’stone’}
enchantments and stored_enchantments Item Components
  • Removed show_in_tooltip field, replaced by tooltip_display component
  • These components now always use their simplified form, with the levels field inlined to top-level
    • e.g. enchantments={levels:{sharpness:2}} -> enchantments={sharpness:2}
jukebox_playable Item Component
  • Removed show_in_tooltip field, replaced by tooltip_display component
trim Item Component
  • Removed show_in_tooltip field, replaced by tooltip_display component
unbreakable Item Component
  • Removed show_in_tooltip field, replaced by tooltip_display component

Entity Components

  • Entities now have a set of components for configuring variants and other aspects of appearance
  • If those components are present on spawning item, they will be applied to the new entity
    • Spawning items include Spawn Eggs, Mob Buckets, Arrows, Lingering Potions, Armor Stands, Paintings, Item Frames, Minecarts, and Boats
  • Components are currently not restored when a Spawn Egg is picked from an existing entity
  • New components:
    • villager/variant – one of desertjungleplainssavannasnowswamptaiga
    • wolf/variant – namespaced id from wolf_variant registry
    • wolf/sound_variant – namespaced id from wolf_sound_variant registry
    • wolf/collar – one of 16 dye colors
    • fox/variant – one of redsnow
    • salmon/size – one of smallmediumlarge
    • parrot/variant – one of red_bluebluegreenyellow_bluegray
    • tropical_fish/pattern – one of kobsunstreaksnooperdasherbrinelyspottyflopperstripeyglitterblockfishbettyclayfish
    • tropical_fish/base_color – one of 16 dye colors
    • tropical_fish/pattern_color – one of 16 dye colors
    • mooshroom/variant – one of redbrown
    • rabbit/variant – one of brownwhiteblackwhite_splotchedgoldsaltevil
    • pig/variant – namespaced id from wolf_variant registry
    • frog/variant – namespaced id from frog_variant registry
    • horse/variant – one of whitecreamychestnutbrownblackgraydark_brown
    • painting/variant – namespaced id from painting_variant registry
    • llama/variant – one of creamywhitebrowngray
    • axolotl/variant – one of lucywildgoldcyanblue
    • cat/variant – namespaced id from cat_variant registry
    • cat/collar – one of 16 dye colors
    • sheep/color – one of 16 dye colors
    • shulker/color – one of 16 dye colors
  • Mob buckets and paintings available in the creative menu will now use the new variants instead of minecraft:entity_data component
  • Custom tooltips for Bucket of Tropical Fish and Painting items are now based on new components instead of minecraft:bucket_entity_data and minecraft:entity_data
  • Some existing components are now also transferred from the spawning item to the spawned entity:
    • minecraft:custom_name – any entity
    • minecraft:potion_contents – Lingering Potion to Area Effect Cloud
    • minecraft:potion_duration_scale – Lingering Potion to Area Effect Cloud

Predicates

Entity Predicates

  • New optional fields have been added to entity predicates: components and predicates
    • Their functionality and format are identical to the fields components and predicates on item predicates, but they operate on entity components
      • When present, components will match exact contents of entity components
      • When present, predicates will match partial contents of entity components
    • In general, any component that is transferred from a spawning item to an entity should be available to this predicate
  • The following entity sub-predicates have been removed and replaced with a combination of the components predicate and entity variant components:
    • minecraft:axolotl
    • minecraft:cat
    • minecraft:fox
    • minecraft:frog
    • minecraft:horse
    • minecraft:llama
    • minecraft:mooshroom
    • minecraft:painting
    • minecraft:parrot
    • minecraft:pig
    • minecraft:rabbit
    • minecraft:salmon
    • minecraft:tropical_fish
    • minecraft:villager
    • minecraft:wolf
  • The color field has been removed from the minecraft:sheep sub-predicate
  • The stepping_on field will now only match the specified location if the entity is on the ground

Block Predicates

  • New optional fields have been added to block predicates: components and predicates
  • Their functionality and format are identical to the fields components and predicates on item predicates, but they operate on block entity components (when present)
    • When present, components will match exact contents of block entity components
    • When present, predicates will match partial contents of block entity components

Loot Functions

toggle_tooltips

  • Now supports any component id in the toggles map
  • Any component specified will be toggled in the tooltip_display component

Recipes

crafting_transmute Recipe Type

  • The result field now supports specifying a count and a components patch to apply to the result
  • The components patch is applied to the final transmuted item
  • The new format is an object with fields:
    • id – item id
    • count – positive integer (default: 1)
    • components – a component patch object (default: empty)
    • e.g. “result”: {“id”: “minecraft:stick”, “count”: 3, “components”: {“!minecraft:damage”: {}, “minecraft:enchantment_glint_override”: {}}}
  • The field can still be defined as before as an inline item id (e.g. “result”: “minecraft:stick”)

smithing_transform Recipe Type

  • The base ingredient field is no longer optional
    • Previously, if no base ingredient was given, the recipe would parse but never be usable

smithing_trim Recipe Type

  • The basetemplate, and addition ingredient fields are no longer optional
    • Previously, if these ingredients were not given, the recipe would parse but never be usable
  • Added new pattern field, controlling which trim pattern will be applied in the recipe
    • As such, the trim pattern registry definition no longer specifies the item
    • Format: trim pattern id
    • e.g. “pattern”: “minecraft:bolt”

Trim Patterns and Trim Materials

  • The registry definitions for trim patterns and trim materials no longer include an item field
  • Instead, this mapping in patterns and materials is defined by the recipe and item components respectively

World Generation

Added fallen_tree Feature Type

  • Places a stump block (given by trunk_provider), and a number of logs to the side placed in a random direction (given by trunk_provider, rotated by direction)
  • Format:
    • trunk_provider – Block State Provider, the log block to be placed
    • log_length – Int Provider (between 0 and 16), the number of blocks from the origin to generate (including the stump and free space)
    • stump_decorators – List of Tree Decorators to apply to the stump block
    • log_decorators – List of Tree Decorators to apply to the log blocks

Added attached_to_logs Tree Decorator Type

  • Places blocks adjacent to logs in random directions, with a specified probability
  • Format:
    • probability – float (between 0 and 1), the probability for a block to be attached in a given direction
    • block_provider – Block State Provider, selects the adjacent block to place
    • directions – list of directions, the cardinal directions in which blocks can be placed

Tags

Block Tags

  • Added #replaceable_by_mushrooms – exhaustive list of all bocks that can be replaced as a mushroom is placed or grows
  • Added #sword_instantly_mines – blocks that are instantly mined by Swords
  • Added #plays_ambient_desert_block_sounds – blocks that will play ambient desert block sounds
  • Added #edible_for_sheep – blocks that can be eaten by Sheep to regrow their Wool
  • Added #camels_spawnable_on – blocks that Camels can spawn on
  • #dead_bush_may_place_on has been renamed to #dry_vegetation_may_place_on

Item Tags

  • Added #book_cloning_target – item that can be crafted together with a Written Book to clone it
  • Added #eggs – all variants of the Egg item
  • Added #flowers – corresponding item tag for the already existing #flowers block tag

Biome Tags

  • Added #spawns_cold_variant_farm_animals – all biomes where cold variant of farm animals spawn
  • Added #spawns_warm_variant_farm_animals – all biomes where warm variants of farm animals spawn

Entity Tags

  • Added #can_equip_saddle – entities that can be equipped with a Saddle
    • Note: this does not mean that the Saddle will function, just that it can be equipped into the saddle slot
  • Added #can_wear_horse_armor – entity that can hold horse armor in their body slot

Structure Tags

  • Added #on_savanna_village_maps – structures that can appear on Savanna Village Maps
  • Added #on_desert_village_maps – structures that can appear on Desert Village Maps
  • Added #on_plains_village_maps – structures that can appear on Plains Village Maps
  • Added #on_taiga_village_maps – structures that can appear on Taiga Village Maps
  • Added #on_snowy_village_maps – structures that can appear on Snowy Village Maps
  • Added #on_swamp_explorer_maps – structures that can appear on Swamp Explorer Maps
  • Added #on_jungle_explorer_maps – structures that can appear on Jungle Explorer Maps

Cat Variant Tags

  • Removed #default_spawns and #full_moon_spawns

Particles

tinted_leaves

  • This particle is spawned below most Leaves blocks
  • Fields:
    • color: Tint color, specified either as packed int or list of 4 floats

firefly

  • This particle spawns around Firefly Bushes
  • Has no fields

Resource Pack Version 47 through 55

  • Added new block sprites for new content
  • The Creaking Heart “active” state has been renamed to “awake”
  • Added new item sprites for new content
  • Added new item sprites for each Spawn Egg
  • Added new sound events for new content
  • Added new particle definitions and sprites for Falling Leaves and Fireflies
  • New and updated textures for the Pig, Cow, Chicken and Sheep
  • Added new equipment asset layer type for Pigs and Striders, and moved saddle textures
  • Renamed textures/misc/enchanted_glint_entity.png to textures/misc/enchanted_glint_armor.png
  • Added colormap texture for tinting dry foliage tinted blocks (textures/colormap/dry_foliage.png)
  • Item model definitions can now dispatch on item component contents
  • Changes to shaders and post-processing effect definitions
  • Expanded paletted_permutations atlas sprite source to support custom separators
  • Small changes in rendering of items in world

Block Sprites

  • Added new block sprites:
    • bush
    • cactus_flower
    • creaking_heart_dormant
    • creaking_heart_top_dormant
    • firefly_bush_emissive
    • firefly_bush
    • leaf_litter
    • short_dry_grass
    • tall_dry_grass
    • test_block_accept
    • test_block_fail
    • test_block_log
    • test_block_start
    • test_instance_block
    • wildflowers_stem
    • wildflowers
  • Renamed block sprites:
    • creaking_heart_active -> creaking_heart_awake
    • creaking_heart_top_active -> creaking_heart_top_awake

Item Sprites

  • Added new item sprites:
    • blue_egg
    • brown_egg
    • firefly_bush
    • leaf_litter
    • wildflowers
    • <mob>_spawn_egg for every mob, replacing the previous spawn_egg and spawn_egg_overlay sprites

Sound Events

  • Added new sound events:
    • block.cactus_flower.break
    • block.cactus_flower.place
    • block.deadbush.idle
    • block.firefly_bush.idle
    • block.iron.break
    • block.iron.step
    • block.iron.place
    • block.iron.hit
    • block.iron.fall
    • block.leaf_litter.break
    • block.leaf_litter.step
    • block.leaf_litter.place
    • block.leaf_litter.hit
    • block.leaf_litter.fall
    • block.sand.idle
    • block.sand.wind
    • For each of: puglinsadangrygrumpybigcute:
      • entity.wolf_<variant>.ambient
      • entity.wolf_<variant>.death
      • entity.wolf_<variant>.growl
      • entity.wolf_<variant>.hurt
      • entity.wolf_<variant>.pant
      • entity.wolf_<variant>.whine
  • Removed sound event: entity.wolf.howl

Particles

  • Added new particle sprites:
    • firefly
    • leaf_<frame> with frame ranging between 0 and 11

New and Updated Pig Textures

  • Added new textures for Pig variants:
    • cold_pig
    • warm_pig
  • Texture pig has been renamed to temperate_pig
  • Changed the size of temperate_pig and pig_saddle texture

New and Updated Cow Textures and Model

  • Added new textures for Cow variants:
    • cold_cow
    • warm_cow
  • Texture cow has been renamed to temperate_cow
  • Changed the size of temperate_cow texture
  • Changed the size of red_mooshroom and brown_mooshroom textures
  • The temperate Cow and Mooshroom have updated models and textures
    • Models now have a snout
    • Models now have their legs mirrored

New and Updated Chicken Textures

  • Added new textures for Chicken variants:
    • cold_chicken
    • warm_chicken
  • Texture chicken has been renamed to temperate_chicken
  • The temperate_chicken texture has been moved to a new folder:
    • entity/chicken.png -> entity/chicken/temperate_chicken.png

Updated Sheep Textures

  • Name of sheep_fur texture has been renamed to sheep_wool
  • Sheep now has a separate texture for its wool undercoat, which is dynamically recolored in-game
    • The name of this undercoat texture is sheep_wool_undercoat

Equipment Assets

  • Equipment assets may now define new layer types:
    • pig_saddle – equipment layer for Pig saddles
    • strider_saddle – equipment layer for Strider saddles
    • camel_saddle – equipment layer for Camel saddles
    • horse_saddle – equipment layer for Horse saddles
    • donkey_saddle – equipment layer for Donkey saddles
    • mule_saddle – equipment layer for Mule saddles
    • skeleton_horse_saddle – equipment layer for Skeleton Horse saddles
    • zombie_horse_saddle – equipment layer for Zombie Horse saddles
  • The following textures have been moved to support the use of equipment assets for saddles:
    • entity/pig/pig_saddle.png -> entity/equipment/pig_saddle/saddle.png
    • entity/strider/strider_saddle.png -> entity/equipment/strider_saddle/saddle.png
  • The following textures have been split from their base entity texture to support the use of equipment assets for saddles:
    • entity/camel/camel.png -> entity/equipment/camel_saddle/saddle.png
    • entity/horse/horse_<variant>.png -> entity/equipment/horse_saddle/saddle.png
    • entity/horse/donkey.png -> entity/equipment/donkey_saddle/saddle.png
    • entity/horse/mule.png -> entity/equipment/mule_saddle/saddle.png
    • entity/horse/horse_skeleton.png -> entity/equipment/skeleton_horse_saddle/saddle.png
    • entity/horse/horse_zombie.png -> entity/equipment/zombie_horse_saddle/saddle.png
  • Equipment layers configured to be dyeable will now show if the dyed_color component is present on the item, even if the item is not in the #dyeable tag

Item Models

minecraft:component Select Property

  • New data source has been added to select item model: component
  • Returns value of component on item, if any
  • Fields:
    • component – namespaced ID of component type
  • Possible values: depends on component type
    • Example: if component is set to minecraft:wolf/collar, list of cases will accept dye colors, like lime
    • If value comes from registry and current datapack does not provide it, entry will be silently ignored

minecraft:component Boolean Property

  • New conditional model property has been added to condition item model: component
  • Uses component predicates (like ones used in item predicates) to match item components
    • However, instead of encoding them as a map of <predicate type>:<predicate value>, a single predicate is encoded in two fields
  • Fields:
    • predicate – type of component predicate (member of minecraft:data_component_predicate_type registry)
    • value – predicate-specific value

Atlas

minecraft:paletted_permutations Sprite Source

  • New field:
    • separator – optional string (default: _) – value to be used when joining texture and permutation names to produce sprite name

Shaders & Post-process Effects

Developer’s NoteAlthough it is possible in Resource Packs, overriding Core Shaders is considered as unsupported and not an intended Resource Pack feature. These shaders exist as part of the internal implementation of the game, and as such, may change at any time as the game’s internals evolve. We understand that overriding Core Shaders is used for very cool Resource Pack features, many of which lack supported alternatives. We would like to provide better, supported alternatives in the future.

  • Shader program definitions for core shaders and post-processing effects as JSON files have been removed
  • The shader programs themselves are still available and can be overridden
  • The post-processing effects are still configurable as JSON
  • “Global” uniforms may be defined in any shader, and the game will attempt to fill it
    • Currently, these are: ModelViewMatProjMatTextureMatScreenSizeColorModulatorLight0_DirectionLight1_DirectionGlintAlphaFogStartFogEndFogColorFogShapeLineWidthGameTimeModelOffset
    • The type of the uniform must match what it would normally be, or it’ll be undefined behavior

Post-process Effect Definitions

  • The field program was replaced with vertex_shader and fragment_shader
    • <namespace>:<path> will resolve to assets/<namespace>/shaders/<path>.<vsh|fsh>
  • type is now a required field for each uniform
    • Possible values are currently intivec3floatvec2vec3vec4matrix4
  • values in each uniform is now optional
    • Leaving it unset is not recommended and is used for runtime configuration of the blur effect
  • Leaving a uniform unspecified results in undefined behavior, you must specify each one that will be used by the shaders

Item Rendering

Item Display

  • firstperson_lefthand and thirdperson_lefthand transforms are now rendered the same as when held in hand

Item Entity

  • When on ground, model size is now taken into account when determining hovering motion
    • That means that models should never clip into the block below, no matter what size they are
  • Positioning of items in an item stack on ground now depends on model size and model type
    • If model depth (Z coordinate) is below 1/16th of a block, item is rendered as flat stack of items
    • Otherwise, the model is rendered as a cluster of items offset in all directions around center
    • Previously, flat stack rendering happened only for models with builtin/generated parent

Fixed bugs in 1.21.5

  • MC-7697 – Tridents or arrows shot through lava sometimes don’t catch fire
  • MC-13738 – Invisible saddle when using invisibility potion on a horse, donkey or mule
  • MC-55800 – Successful “/fill air destroy” commands give error message and return 0 for result/success
  • MC-56653 – Zombified Piglins drop XP and rare drops if killed by anything while in angered state
  • MC-80243 – Saddles don’t apply attribute modifiers when worn by entities
  • MC-90212 – You cannot hang on to climbable blocks while gliding with elytra
  • MC-93185 – The exit portal in the end generates at highest block at 0 0 which can make it generate incomplete
  • MC-97244 – The “minecraft:enchant.thorns.hit” sound event doesn’t play when non-player entities are damaged by the thorns enchantment
  • MC-98271 – The sound of blocking with a shield is only hearable by other players (not the person blocking)
  • MC-101556 – Nether Portal teleport range is too large (equivalent to a full block)
  • MC-108495 – Non-LivingBase entities can be on a team (and show color) but can’t be targeted using team=
  • MC-113878 – Attribute modifiers description for chest is misleading / “When on body” instead of “When on chest”
  • MC-117574 – Using /setblock or /fill to re-place a block entity keeps old NBT (if no NBT specified) but clears inventories, even when the command fails
  • MC-118092 – Crafting recipe unlock toast says “New Recipes Unlocked!” even when only one recipe was unlocked
  • MC-118470 – Narrator plays at full volume when volume is off
  • MC-122840 – “/data remove” cannot delete beam_target tag in End Crystals
  • MC-128079 – Statistic for using shears doesn’t increase when mining certain blocks
  • MC-135192 – Boats are immediately sunken if there is a string on the surface of the water
  • MC-141297 – You cannot set lit state of redstone torches using setblock, debug stick and BlockStateTag, to be to opposite of the situation it would be in
  • MC-152382 – End gateways and end portals don’t fade away with render distance fog
  • MC-153392 – Unable to remove villager gossips using /data remove
  • MC-157196 – Tamed animals cannot be added to a team
  • MC-160304 – Sneaking on ice can change direction of movement to lines along axis
  • MC-165421 – Bubble columns have the opposite effect on wind charges
  • MC-165461 – Crossbow loading animation stops after loading, even when still holding down right click
  • MC-165711 – Eye of ender hitbox always lags behind the animation
  • MC-167125 – Rounding error on fall damage
  • MC-168262 – Dead bushes cannot be placed on farmland
  • MC-170134 – Minecraft uses several times more VRAM than needed after exploring terrain for a while
  • MC-176233 – Crossbows no longer have a transition after loading
  • MC-177522 – Wolf barking and whining sounds are subtitled as “Wolf pants”
  • MC-183329 – Nether portal teleport overlay does not show up if the player has the nausea effect
  • MC-183623 – Hardcore worlds in the world menu have a comma after the red exclamation mark
  • MC-184530 – Player movement at low speeds is biased towards cardinal directions
  • MC-184681 – Customized worlds still say “Buffet world customization” since 20w21a
  • MC-186241 – World border faces are rendered incorrectly with “Fabulous!” graphics
  • MC-189525 – Armored entities from pre-1.9 worlds upgrade to dual wielding armor
  • MC-190000 – Saddles equipped on horses cannot be replaced without removing them first
  • MC-193404 – Changing a powered or activator rail to powered using a debug stick or /setblock does not work
  • MC-200311 – Advancement background texture referencing is inconsistent with models
  • MC-202226 – /recipe give or take for one recipe says “recipes”
  • MC-203550 – Blocks broken by pistons do not play breaking sounds
  • MC-220091 – Summoning falling_block entities with BlockState NBT set to any air block (air, cave_air, void_air) default to sand
  • MC-220672 – Inconsistent pluralization in customize world preset heading source string
  • MC-222876 – “Buffet world customization” is incorrectly capitalized
  • MC-226772 – Shulker box opening / closing subtitle shows “Shulker”
  • MC-227097 – End portals delete blocks that are inside of the portal
  • MC-230445 – End portals and end gateways are not rendered properly with the Blindness or Darkness effects
  • MC-231331 – Advancement toasts continue to appear despite the said advancements being revoked shortly after
  • MC-236100 – End crystal beam appears to be black
  • MC-239705 – Sprinting forward while facing a certain angle pushes the player either to the left or to the right
  • MC-241951 – Player momentum on X and Z axis are cancelled separately at low values
  • MC-248099 – Mob pathfinding breaks after falling into water accidentally while walking
  • MC-253721 – Wrong logs when running /op @a
  • MC-255756 – When the shield is broken between players, the attacking side has no shield breaking sound
  • MC-256469 – Invisible camels don’t show their saddles
  • MC-257133 – Desync when placing large paintings with NBT on a small space
  • MC-258253 – Spawn egg particles use an uncolored spawn egg overlay
  • MC-260440 – Players can no longer activate swimming mode in water while flying with elytra
  • MC-261385 – Bubble columns act differently at the surface depending on non-air blocks
  • MC-262928 – The “minecraft:entity.player.hurt” sound is no longer played when players receive thorns damage from guardians or elder guardians
  • MC-262939 – Changing dimensions or respawning with nausea effect active displays nether portal overlay
  • MC-265514 – HRTF stuck on even when directional audio is set to off in update 1.20.2
  • MC-266912 – Saddle equipping sounds aren’t played when saddles are equipped on horses, donkeys, mules, or camels shortly after the said entity is summoned
  • MC-267221 – “value” within “change_page” clickEvent json looks for a string instead of an integer
  • MC-267323 – Items fields with old boolean JSON formatting are cleared upon world update
  • MC-268942 – The swimming animation no longer displays when gliding with an elytra and swimming at the same time
  • MC-269386 – Flow Pottery Sherd is not in the correct spot in the creative inventory
  • MC-269637 – Horses can wear multiple saddles but not multiple horse armor
  • MC-270043 – Reduced armor glint applies to tridents
  • MC-270192 – The saddles of some entities stay visible through their death animation
  • MC-270197 – The saddle on pigs and striders stays visible through their death animation
  • MC-270220 – Granting all advancements results in prolonged, disruptive and loud audio spam
  • MC-271065 – Diagonal player movement is not normalized when holding two movement keys
  • MC-272100 – Unused palette pixels in horse textures (horse_[brown/chestnut/creamy/white].png)
  • MC-272790 – Shulker boxes and other blocks in the end exit portal when it changes state are not dropped as items
  • MC-273338 – Flying boat glitch using string and rising bubble columns
  • MC-274187 – The sweeping attack from a sword enchanted with Fire Aspect can ignite other players with PVP disabled
  • MC-274258 – All horse textures contain an unused chest bag texture
  • MC-275994 – Having the pie chart open while the window is unfocused spams the logs
  • MC-276061 – Decorated pot sherds don’t visually update until relog when replacing with blank pot
  • MC-276861 – The player can sometimes teleport through blocked end portals when moving very fast
  • MC-277403 – Flaming arrows and tridents still don’t extinguish when water is placed in their location
  • MC-277537 – Pale moss carpets sometimes generate disjointed
  • MC-277780 – Minecraft resaves all maps with every autosave even after the 1st patch
  • MC-277807 – Teleporting the player’s mount causes rotation de-sync, previously did not
  • MC-277865 – The animation of boats in bubble columns breaks when over a certain “Time” in level.dat
  • MC-277922 – Boats in 1 block high downward bubble column will continue to rock back and forth
  • MC-278040 – Creaking swim pathfinding breaks after being submerged
  • MC-278096 – “Fabulous!” graphics and clouds disabled causes all particles to linger in frame buffer for one frame
  • MC-278140 – The “/fill” command doesn’t work properly with the directional states of several blocks placed adjacent to one another
  • MC-278164 – Click sound is played twice when you click a setting button and there’s a slider under the mouse in the next screen
  • MC-278204 – Blaze fireballs now cause TNT minecarts to explode instantly
  • MC-278249 – Experience orb positions desync severely and abruptly correct themselves
  • MC-278375 – Feeding wheat or hay bale to llama or trader llama with maximum Temper causes item stack to be desynced
  • MC-278376 – Arrows and tridents act weirdly in one block deep bubble columns
  • MC-278400 – Arrows and tridents move after hitting a block in flowing lava
  • MC-278417 – Arrows and tridents on fire and stuck in the ground cannot be extinguished by rain
  • MC-278422 – Reloading the world after removing Owner tag from a sitting tamed wolf with /data remove makes the wolf moving and sitting at the same time
  • MC-278455 – Slow sideways movement in spectator mode is wrong at angles which aren’t (close to) a multiple of 45°
  • MC-278493 – Tamed wolves which are angry at creakings remain angry when said creakings despawn
  • MC-278502 – Weeping and twisting vines disconnect
  • MC-278552 – minecraft:entity.player.big_fall no longer plays the sound when falling from great height
  • MC-278585 – Players can get stuck when landing on the edge of powder snow
  • MC-278591 – Ender dragon spawn egg is no longer given when using pick block on the ender dragon entity
  • MC-278615 – Reinforcement zombified piglins are angry at you even if you killed the “caller” in one hit
  • MC-278621 – Client/server desync when placing powder snow while landing in it
  • MC-278627 – Players wearing leather boots will take fall damage when landing on the edge of powder snow
  • MC-278634 – Trying to /setblock a ‘waterlogged=true’ state on (glow_lichen, resin_clump, sculk_vein, etc.) produces an error
  • MC-278639 – Tripwire hooks are not activated by shulker bullets
  • MC-278659 – Attacking a natural stationary creaking does not trigger sculk sensors
  • MC-278673 – The x-rotation of /teleport is limited to ±90 degrees relative to the entity’s original angle
  • MC-278683 – Mobs spawned from spawners or /summon never drop their equipment
  • MC-278708 – Throwing ender pearls while mounted only dismounts you, without teleporting
  • MC-278728 – smithing_transform recipes can’t set an item’s components back to default
  • MC-278733 – Breaking a double resin brick slab block only returns a single slab
  • MC-278734 – Sheep’s heads stutter when they look up or down
  • MC-278755 – Teleporting far away while riding an entity softlocks the game
  • MC-278801 – The closed eyeblossom to gray dye recipe is not grouped with the other gray dye recipe
  • MC-278841 – Powder snow no longer slows down the player falling from a high place
  • MC-279145 – Shulker bullets are no longer affected by bubble columns
  • MC-279152 – Shulker bullets can’t teleport through nether or end portals, end gateways
  • MC-279196 – Block loot tables cannot be removed with /data remove
  • MC-279340 – Baby polar bears are too small
  • MC-279364 – CustomName cannot be removed from block entities
  • MC-279390 – Baby zombified piglin helmet clipping
  • MC-279472 – Void appears lower & more faded than before
  • MC-279572 – End portals and end gateways aren’t affected by water, lava or powder snow fog
  • MC-279646 – Toggling fullscreen with F11 does not visually update the fullscreen option in the video settings menu
  • MC-279653 – Block Entity Data desynchronizes after subsequent setblock commands
  • MC-279857 – Piglins summoned by the /summon command do not pick up gold items
  • MC-280170 – Goats can no longer ram armor stands unless the game rule mobGriefing is set to false
  • MC-280211 – End crystal beams cause OpenGL errors with glDebugVerbosity set to 3
Posted on Leave a comment

Bedrock: 1.21.70

New Game Drop Features

Blocks

Bush

  • The Bush is a new type of decorative block that can be found in small patches in the following biomes:
    • Plains
    • Windswept Hills
    • Windswept Gravelly Hills
    • Windswept Forest
    • River
    • Forest
    • Birch Forest
    • Old Growth Birch Forest
  • The Bush can be used in the Composter
  • Using Bone Meal on a Bush places a new Bush next to the Bush if possible

Firefly Bush

  • Added the Firefly Bush block
    • Spawns Firefly particles that fly around it when in darkness
    • Illuminates the area around it
  • Using Bone Meal on a Firefly Bush places a new Firefly Bush next to it if possible
  • Firefly Bushes are found naturally in clumps next to water in the Overworld
  • In Swamp biomes they can be found anywhere and are twice as likely to be found next to water
  • Added ambient sounds to the Firefly Bush that will play at night when the sky is visible

Cactus Flower

  • Added the Cactus Flower, a new type of flower which has a chance of generating on Cactuses in Deserts and Badlands
  • Cactus Flower can be placed on Cactus blocks or any block which has center support at the top of the block
  • Cactus Flowers have a chance of growing on Cactus blocks
    • If a Cactus is 1-2 blocks high the Cactus Flower has a 10% chance to grow instead of the Cactus getting higher
    • If a Cactus is 3 blocks high the Cactus Flower has a 25% chance to grow instead of the Cactus getting higher
    • Cactus Flowers can only grow if they have empty space on all four sides
  • Cactus Flowers can be used in the Composter
  • A Cactus Flower can be used to craft 1 Pink Dye

Leaf Litter

  • Leaf Litter is a new type of decorative block which can be found in the Forests, Dark Forests and Wooded Badlands
  • Leaf Litter can have different amounts of leaves in one block space
    • Up to four Leaf Litter pieces can be placed in the same block space
    • Placing a Leaf Litter into an already placed Leaf Litter block increases the amount of leaves
  • Leaf Litter can be placed in four orientations
  • Leaf Litter can be created by smelting any type of Leaves block
  • Leaf Litter can be used as fuel for smelting
  • Leaf Litter has unique block sounds

Short and Tall Dry Grass

  • Added two new types of grass: Short Dry Grass and Tall Dry Grass
  • Both are 1 block high, which makes Tall Dry Grass differ from Tall Grass which is 2 blocks high
  • Both generate in the Desert and Badlands
  • Both can be placed on types of Sand, Terracotta and Dirt blocks like the Dead Bush
  • Both can be bone mealed
    • Using Bone Meal on Short Dry Grass grows it into a Tall Dry Grass
    • Using Bone Meal on Tall Dry Grass places a neighbouring Short Dry Grass next to the block if possible
  • Both can be used in the Composter
  • Sheep can eat both to regrow its wool
  • Both can be used as fuel for smelting

Wildflowers

  • Wildflowers are a new type of flower which grow in Birch Forests, Old Growth Birch Forests and Meadows
    • Using Bone Meal on Grass Blocks in these biomes can grow Wildflowers
  • Wildflowers can have different amounts of flowers in one block space
    • Up to four Wildflowers can be placed in the same block space
    • Placing Wildflowers into an already placed Wildflowers block increases the amount of flowers
    • Using Bone Meal on Wildflowers will produce more Wildflowers
  • Wildflowers can be placed in four orientations
  • Wildflowers can be crafted into Yellow Dye

New Ambient Sounds for Desert and Badlands

Ambient sounds do not come from the biome settings but are generated by blocks found in the biome, building on the system that we introduced with the Garden Awakens drop.

  • Sand, Red Sand and Terracotta of any color have a chance of playing ambient sounds when surrounded by any one of them on at least 3 sides 8 blocks away
    • block.sand.ambient can be played in any biome
    • block.sand.ambient.attached only plays when in Desert or Badlands biomes
  • Dead Bush blocks have a chance of playing ambient sounds when placed on top of two blocks that are any color of Terracotta, Sand or Red Sand blocks in any biome

Animal Variants

  • Applied the warm and cold animal variant tags to all appropriate biomes, so that animals spawned in these biomes by spawn eggs or commands are an appropriate variant even if they still do not spawn in the biome naturally
  • Cold Farm Animal Biomes:
    • Deep Frozen Ocean
    • Frozen Ocean
    • Frozen Peaks
    • Frozen River
    • Grove
    • Ice Spikes
    • Jagged Peaks
    • Snowy Beach
    • Snowy Plains
    • Snowy Slopes
    • Snowy Taiga
    • The End
    • Cold Ocean
    • Deep Cold Ocean
    • Deep Dark
    • Stony Peaks
    • Old Growth Pine Taiga
    • Old Growth Spruce Taiga
    • Taiga
    • Windswept Forest
    • Windswept Gravelly Hills
    • Windswept Hills
  • Warm Farm Animal Biomes
    • Mangrove Swamp
    • Badlands
    • Bamboo Jungle
    • Basalt Deltas
    • Crimson Forest
    • Desert
    • Eroded Badlands
    • Jungle
    • Nether Wastes
    • Savanna Plateau
    • Savanna
    • Soul Sand Valley
    • Sparse Jungle
    • Warm Ocean
    • Warped Forest
    • Windswept Savanna
    • Wooded Badlands
    • Deep Lukewarm Ocean
    • Lukewarm Ocean
  • Temperate Farm Animal Biomes
    • Swamp
    • Beach
    • Birch Forest
    • Cherry Grove
    • Dark Forest
    • Dripstone Caves
    • Flower Forest
    • Forest
    • Lush Caves
    • Meadow
    • Mushroom Fields
    • Ocean
    • Old Growth Birch Forest
    • Plains
    • River
    • Stony Shore
    • Sunflower Plains
    • Lukewarm Ocean
    • Pale Garden

Chicken Variants

  • Added two new Chicken variants – Warm Chicken and Cold Chicken!
  • These have their own unique texture and geometry, but not a separate spawn egg
  • Chickens spawn in the same biomes as before, but will be a warm or cool variant if the biome is marked as warm or cool in the list above
  • Two new Egg items have been added for the Warm and Cold Chicken variants
    • Blue Egg – The Egg that is laid by and can hatch Cold Chicken variants
    • Brown Egg – The Egg that is laid by and can hatch Warm Chicken variants

Cow Variants

  • Added two new Cow variants – Warm Cow and Cold Cow!
  • These have their own unique texture and geometry, but not a separate spawn egg
  • Cows spawn in the same biomes as before, but will be a warm or cool variant if the biome is marked as warm or cool in the list above

Pig Variants

  • Added two new Pig variants – Warm Pig and Cold Pig!
  • These have their own unique texture and geometry, but not a separate spawn egg
  • Pigs spawn in the same biomes as before, but will be a warm or cool variant if the biome is marked as warm or cool in the list above

Sheep wool color in warm and cold biomes

  • Sheep have updated rules for which color of wool they have based on which biome they spawn in:
    • Temperate Biomes: (these colors are unchanged from current behavior)
      • Common sheep color is white
      • Uncommon sheep colors are black, gray, light gray and brown
      • There is a rare chance for a pink Sheep to spawn
    • Cold biomes:
      • Common Sheep color is black
      • Uncommon Sheep colors are white, gray, light gray, and brown
      • There is a rare chance for a pink Sheep to spawn
    • Warm Biomes:
      • Common Sheep color is brown
      • Uncommon Sheep colors are black, white, gray, and light gray
      • There is a rare chance for a pink Sheep to spawn

Spawn Eggs

  • Overhauled the visuals of each Spawn Egg to improve readability and accessibility

    • Each Spawn Egg now has their own unique visual which captures the personality and character of the mob it spawns
    • Each egg visual varies in shape to reflect the in-world size of the mob it spawns
      • For example, smaller mobs tend to have a smaller Spawn Egg

Updated Trades

Cartographer Trades

  • Cartographers now sell 7 new maps which each point to a different village or other structures in a different biome. These maps can help players who want to quickly find a specific location.
  • Cartographers from different village types will sell a different range of maps and colored banners.

Wandering Trader Trades

  • The Wandering Trader now has better prices, more trades and sells larger amounts of many items.
  • They will also now buy basic supplies from players, so it’s possible to get some emeralds by helping them prepare for their next journey even if you don’t feel like buying anything.
  • The Wandering Trader will offer to buy two items from this list:
    • Water Bottle
    • Water Bucket
    • Milk Bucket
    • Fermented Spider Eye
    • Baked Potatoes
    • Hay Bale
  • Wandering Traders now have a chance of selling these items (in addition to their previous trades):
    • Logs (Acacia, Birch, Dark Oak, Jungle, Oak, Spruce, Pale Oak, Mangrove or Cherry)
    • Enchanted Iron Pickaxe
    • Potion of Invisibility

Wolf Variant Sounds

  • Added 6 new Wolf audio variants with unique ambient, hurt, death, growl, whine, and pant sounds

    • Every Wolf will have a random audio variant assigned to it from the 6 new variants and the original one
    • The audio variant is not related to the texture variant

Experimental Features

Trade Rebalancing Experiment

  • Moved the Cartographer and Wandering Trader changes out of the experiment

Features and Bug Fixes

Achievements with Add-Ons

  • Enabled earning Achievements while playing in a world with Add-Ons applied.

Blocks

  • Placing a block in liquid, and then placing another block next to your first block in liquid will no longer replace your second placed block for a moment, causing you to fall into the liquid

  • Structure Blocks no longer briefly change textures when placed (MCPE-185531)

  • Sea Pickles can now be placed on any block with center support (MCPE-116152)

  • Barrier blocks will no longer prevent chunks rendering behind them (MCPE-153515)

  • Fixed a crash that would sometimes happen when entities with an excessively large hitbox entered liquid

  • Fixed blocks using the minecraft:destructible_by_mining component with item_specific_speeds defined flickering during their block breaking animation (MCPE-188401)

  • Fixed trigger rate of Redstone powered Droppers and Dispensers (MCPE-189895)

  • Warped and Crimson Fungi no longer z-fight (MCPE-190389)

Gameplay

  • Fixed a mismatch between server and client when continuously building that caused orientation sensitive blocks to sometimes change to the wrong block

  • Using Riptide while standing in shallow water will once again launch the player as if they weren’t standing in water. (MCPE-188795)

  • Players fall momentum is no longer reset after exiting and re-entering the world (MCPE-188490)

  • Fixed an issue where destroying and picking up a Shulker box would make it appear invisible in the inventory until world reload

  • Fixed a bug where using items with a use duration (fishing rods, food, potions, etc…) and changing slots would force your slot back to the original slot

  • Fixed an issue where attacking a mob while sprint jumping would remove all player momentum (MCPE-189501)

  • Fixed an issue where laggy players fighting would occasionally not be able to hit each other (MCPE-190552)

  • Fixed an issue where Player’s collision box would sometimes be incorrect after using a bed (MCPE-190604)

  • Bundles no longer become empty after being held by an Armor Stand (MCPE-190093)

General

  • Fixed a crash that would occur on Xbox if you pressed “Cancel” in the Xbox UI when converting a world or importing a world from Retail to Preview

  • In Server Authoritative movement, when Players receive a movement correction it will use the current Player speed instead of a generic one, this should give a better experience.

  • In Server Authoritative movement, when Players receive a downward movement correction it will now use gravity acceleration, this should give a better experience.

  • In Server Authoritative movement, the Player will not constantly bop up and down if flying state change during small loss of connection with the server.

  • Removing experimental files cold_taiga, cold_taiga_hills, and cold_taiga_mutated from behavior packs. These files were only loaded with the custom biomes experiment enabled, and this change does not remove the biomes themselves.

  • In Server Authoritative movement, when Player is corrected, the movement will not have easing anymore. This is a better feel, as can be seen with upward, repeating, Pistons

  • Fixed typos in music definitions and sound definitions that were causing the wrong music to play for soulsand valley, desert mutated, and jungle mutated biomes.

  • Fixed an issue where chunks weren’t saving properly on older worlds

  • Enabled Filter Profanity toggle on mobile platforms.

Graphics

  • Fire overlay will no longer animate while the game is paused (MCPE-188464)

  • Blocks will no longer play their animations while the game is paused (MCPE-188459)

  • Held items are no longer displayed incorrectly when the game is paused (MCPE-190218)

  • Hand position should remain the same while the game is paused (MCPE-190290)

Mobs

  • Foxes now take damage from lava, and not only fire (MCPE-56926)
  • In the 1.21.80.21 Preview changelog we mentioned that mobs related to MCPE-188731 will be unaffected in this release. We have made every effort to make sure of this, but there’s a possibility that these mobs may become invisible after the update. If this happens we believe the change will be reversible and the mobs will just be invisible and not lost completely – please keep us updated at bugs.mojang.com.

Realms

  • In Realms Stories, changed online indicator (green dot in corner of player image) to represent general online status rather than whether the user is playing in that specific Realm. In Members tab, added “Playing on Realm” status for users currently playing in that specific Realm. Added “Online members” filter that shows users playing on Realm.

  • Fixed Random Tick Speed and Respawn Radius settings resetting to default values (REALMS-11759)

  • Fixed “Reset Random Tick Speed” button not working when editing an existing world on Realms

  • Fixed ability to remove Realm members that are not friends of the Realm owner

  • Fixed ability to rejoin Realm with Hardcore world via invite link

Pause Feature

We are thrilled to include a highly requested feature: the ability to pause the game in single player. The feature will be rolled slowly to ensure stability. After two weeks, it will be available to everyone.

  • Pause when alone: you can pause when you are alone in a local world owned by yourself.
  • Un-pause when joined: your game will un-pause if someone joins you.
  • Join notification: a notification will inform you that someone else has joined and that your game has resumed. The notification includes the option to takes you right back to the game, perfect if you are deep in a menu.
    • Note: The game will NOT pause if you are playing on a Realm, server or when playing with a friend on your local server.

Sounds

User Interface

  • Bundle tooltip no longer flickers for players beyond the first when playing in split screen

  • Adjusted Minecoin purchase screen UI to not show stray pixels. Fixed overlapping issue on PS4.

  • Replacing items with the lock_in_inventory component with items from the creative inventory using touch input now fails gracefully and produces a warning message.

  • Align rideable entity inventory transparent background with other screens (MCPE-189224)

  • Fixed problem with moving items from creative inventory to player inventory on pocket ui. (MCPE-185361)

  • Fixed some typos and inaccuracies in the minecraft Encyclopedia (MCPE-186358)

  • Screen Safe Area Settings: Disables Horizontal and Vertical Screen Position sliders if the Safe area is set to 100%

  • Stops Screen Position from displaying -0.0 due to a rounding error.

  • Long splash texts on the start screen will break into two lines to be more readable.

  • The invite button on the pause screen is moved up a bit and now has an icon.

  • Scaled and moved the title logo to make room for the friends drawer button.

  • Added new loading tips for creative mode.

  • Hand bobbing no longer occurs while the game is paused (MCPE-188457)

  • Minecraft logo misaligned on progress screen.

  • Touch controls: Fixed a bug where a player could stay moving diagonally after opening a menu (MCPE-190308)

  • Keep Inventory is back to being a cheat on all difficulties. (BDS-19921)

  • The “Place” controller tooltip is no longer incorrectly hidden when being able to place additional Pink Petals, Wildflowers, or Leaf Litter. (MCPE-190225)

  • Changes have been made to the Multiplayer tab in create new world and edit world! Player permission icons have been updated to better signal the roles, and on PlayStation and Nintendo consoles now shows a message informing the player that they need to sign in to access multiplayer features. Below the message there’s a button that will take the player to respective console sign in flow.

  • Stacks are now correctly splitting across slots when moving cursor and holding the button to split stack

  • Fixed a potential crash that could occur when splitting stacks of items in the creative inventory

  • Encyclopedia now uses the correct term “Enchanting Table” rather than “Enchantment Table” (MCPE-190418)

  • Trying to craft a Bundle while holding a Bundle with a Bundle inside of it now correctly crafts a Bundle instead of only consuming ingredients (MCPE-190550)

  • Fixed an issue which prevented some users from accessing the Create New World screen in iOS Preview and PlayStation Preview

  • Touch controls: Camera perspective can now be changed from a HUD button. Enable this in the touch settings. Peeking over your shoulder has never been easier!

Player Permissions

  • The Player Permissions screen has been upgraded to the new Ore UI, bringing a fresh look and a more intuitive and user friendly experience. We’ve improved the visual design, introduced new icons for permission levels, and simplified the flow for easier navigation. Additionally, players now receive better feedback after each action, and error handling has been improved for a smoother experience. Let us know how you like it, at aka.ms/mcplayerpermissionscreenfeedback

Friends Drawer Improvements

  • Players can now also find the Friends Drawer in the Main Menu and Game Menu, in addition to the Play Screen, in the top right of the screen. We hope this will make it easier to connect and play with your friends! Let us know how you like it, at aka.ms/mcfriendsdrawerfeedback
  • Players can now also find the Friends Drawer in Create New World, Edit World and your profile, in addition to the Play Screen, Main Menu and Game Menu, in the top right of the screen. We hope this will make it easier to connect and play with your friends! Let us know how you like it, at aka.ms/mcfriendsdrawerfeedback

Vanilla Parity

  • Beacon rendering is no longer limited by the player’s vertical distance from it (MCPE-25228)

Biomes

  • Fixed an issue where Dark Forests were missing trees along their northern borders with other biomes

  • Updated the tree composition in Dark Forests to match Java Edition, increasing the number of Dark Oak Trees and reducing the prevalence of other tree types

Mobs

  • Donkeys now spawn in Savannas

  • Donkeys now spawn in Plains in groups of 1-3 instead of 2-6 (MCPE-118688)

  • Fixed Pufferfish attack and inflate logic (MCPE-149129) (MCPE-69522)

    • Pufferfish no longer only trigger inflate/deflate logic against monsters and players. Now triggers inflate/deflate logic against Axolotls, all non-aquatic mobs, and players
    • Pufferfish no longer only attack players and monsters. Now they attack Axolotls, all non-aquatic mobs, and players that aren’t in creative mode
    • Pufferfish no longer only poison players and monsters. Now they poison Axolotls, all non-aquatic mobs excluding undead monsters, and players that aren’t in creative mode
  • Fixed Iron Golem cracked texture not appearing at appropriate damage levels

  • Camels will naturally spawn in the Desert

Village Chest Bundles

  • Added a 33% chance of finding a Bundle in various Villager chests:
    • Cartographer
    • Tannery
    • Weaponsmith
    • Desert House
    • Plains House
    • Snowy House
    • Savanna House
    • Taiga House

Wandering Trader Trades

  • Wandering Traders’ buying trades can now be used twice before they lock instead of only once

Technical Updates

API

  • Unhandled rejected scripting promises in scripting now include callstacks when logged.

@minecraft/server 1.18.0

  • Moved CameraFixedBoomOptions from beta to stable

  • Moved LiquidType enum from beta to stable.

  • Moved liquid detection methods in Block from beta to stable.

  • Moved liquid detection methods in BlockPermutation from beta to stable.

  • Moved method Player.spawnParticle from beta to stable.

Biomes

Client Biome Components

  • Add minecraft:dry_foliage_color component to override color for dry_foliage tint method

@minecraft/server 1.18.0

  • Renamed system.scriptEvent to system.sendScriptEvent

  • Moved NamespaceNameErrorReason from beta to @minecraft/server 1.18.0

  • Moved system.sendScriptEvent from beta to @minecraft/server 1.18.0

  • Moved NamespaceNameError from beta to @minecraft/server 1.18.0

  • Released InputInfo.getButtonStateInputButton, and ButtonState to @minecraft/server 1.18.0

  • Released InputInfo.getMovementVector to @minecraft/server 1.18.0

  • Released PlayerButtonInputAfterEventAfterEvents.playerButtonInput and InputEventOptions to @minecraft/server 1.18.0

  • Several APIs have been given the Readonly permission, which allows them to now be called inside Before Event callbacks.

    • All methods for BlockVolume.
    • All methods for Vector.
  • Changed spawnEntity method on Dimension to now take a variant of either a string or EntityType.

  • Added placeFeature and placeFeatureRule APIs to the Dimension class

  • Added isValid property to the Camera class.

Biomes

  • Fix client_biome loading so grass_appearance and foliage_appearance settings are added if not specified when format_version is lower than 1.21.60 (MCPE-189816)

Blocks

  • water and lava no longer will turn into flowing_water or flowing_lava when neighbor updates happen. water and lava now will respond to queued ticks without needing to change into another block

  • “minecraft:material_instances” component has a new experimental boolean field “isotropic” for format version 1.21.70 and higher, this field controls rotating the face UVs randomly based on BlockPos

  • Empty Bell blocks no longer crash the game when moved by a sticky piston JIRA: (MCPE-188687)

  • Updated the /fill, /clear and /testforblock Commands

    • Fixed a bug where these commands would recognize IDs of some flattened blocks as block group names and affect all variants under those groups
  • Add dry_foliage tint method which uses the textures/colormap/dry_foliage.png color map

Commands

  • Fixed commands not executing when command is entered with leading spaces (MCPE-147815)

  • Moved the place feature and place featurerule subcommands out of the Upcoming Creator Features experiment

  • Removed set_movement_authority command.

Components

  • Added the ‘minecraft:replaceable’ component which determines if a new block can replace the existing block at a particular position. If the component is not added to a block it is not replaceable.

  • Multiple components that used effect durations can now be set to “infinite” including:

    • “minecraft:attack”: “effect_duration”
    • “minecraft:healable”: “duration” in the “effects” list
    • “minecraft:mob_effect”: “effect_time”
    • “minecraft:projectile”: “durationeasy”, “durationnormal”, and “durationhard” can now all use “infinite”
    • “minecraft:food”: “duration” in the “effects” list
    • “minecraft:spell_effects”: “duration” in the “add_effects” list
    • “minecraft:combat_regeneration”: “regeneration_duration”
  • Added the “minecraft:is_collidable” component

    • This component allows other mobs to have vertical and horizontal collisions with the component’s owner
      • For a collision to occur, both mobs must have a “minecraft:collision_box” component
      • This component can only be used on mobs and enables collisions exclusively between mobs
    • Please note that this type of collision is unreliable for moving mobs
      • It is recommended to use this component only in scenarios where the mob remains stationary
    • Collidable behavior is closely related to stackable behavior
      • While the “minecraft:is_collidable” component governs how other mobs interact with the component’s owner, the “minecraft:is_stackable” component describes how an entity interacts with others of its own kind
  • The “entity_sensor” component now has two additional fields:

    • “y_offset”, applies a vertical offset to the entity’s position when calculating distances to other entities
    • “find_players_only”, restricts the search to Players only, affecting all subsensors
  • Added the “minecraft:body_rotation_axis_aligned” component, that causes the entity’s body to automatically rotate to align with the nearest cardinal direction based on its current facing direction

    • Combining this with the “minecraft:body_rotation_blocked” component will cause the entity to align to the nearest cardinal direction and remain fixed in that orientation, regardless of future changes in its facing direction
  • Added validation for asset references in components

    • Content errors will log missing references for the following fields:
      • item references
      • block reference in item component in “minecraft:block_placer”
      • loot table reference in block component “minecraft:loot”
  • The “entity_sensor” component’s “find_players_only” field now functions correctly, properly restricting searches to Players only and affecting all subsensors

  • Added the “minecraft:input_air_controlled” component, that enables controlling flying rideables

    • Functions similarly to “minecraft:input_ground_controlled”, but instead of limiting acceleration to the XZ-plane, this component applies acceleration in the direction the player is looking in three dimensions
    • Supports adjustments to strafing and backward movement speeds, allowing entities to fly at equal speeds in all directions or move slower when strafing or reversing
    • This component is experimental and as such requires “use_beta_features” to be enabled
    • It may undergo significant changes or even be replaced as development progresses

Creator

  • ItemTag support in the match_tool loot table condition no longer requires enabling the “Upcoming Creator Features” experiment toggle

Data-driven Jigsaw Structures

  • Fixed placement of Jigsaw structures that contain blocks with minecraft:tick component.

Dedicated Server

  • Exposed two new parameters for dedicated server when in server-auth-with-rewind. These will make the server more strict on player positions. Look in server.properties for more information on what these do.

    • server-authoritative-movement-strict default to false and can be set to true. Will affect Player position acceptance
    • server-authoritative-dismount-strict default to false and can be set to true. Will affect Player position when dismounting
  • Exposed a new parameter for dedicated server. This will make the server more strict on entity interactions. Look in server.properties for more information on what these do.

    • server-authoritative-entity-interactions-strict default to false and can be set to true. Will affect Entity interaction acceptance
  • Removed server-authoritative-movement parameter. It will now always use server-auth-with-rewind.

Editor

We are excited to announce Editor v0.9! To learn more about Editor and its multiblock world editing capabilities, check out the documents HERE, or learn how to build an Editor Extension HERE

Feature Highlights in Editor v0.9

Realms Integration

You can now publish your Editor Project directly to Realms, making it simple to play or test your world on any device. Need to tweak something? You can also download your Realms world back into the Editor for further edits. Just make sure you’re signed in with an active Realms subscription.

Grid Repeat

Grid Repeat is a new mode within the Repeater Tool which allows you to effortlessly repeat a selection in the x, y, and z directions, making tasks like adding windows to a building or creating an entire city a breeze. The Grid Repeat feature includes both Uniform and Separate repeat types, allowing you to customize the number of instances repeated in all directions.

Updated Structure Management

We have updated the Structure feature to provide better management of your structures. You can now rename, delete, and duplicate structures with ease. Additionally, you can rename the file/unique name and change the namespace for more precise organization. Please note that project structures will be exported to the editor/structuredb subdirectory in the world folder.

Multiblock Workbench

We have updated the Workbench Tool to work with multiple blocks of the same type. Simply select the blocks you want to manipulate and then go to the Workbench Tool.

Block and Entity Inspector

Block and Entity Inspector allow you to view block states and entities and then customize specific properties. This is incredibly useful to fine tune details.

Full Editor Changelogs

  • Added Realms integration

    • Users can now publish their Editor project directly to Realms
    • Users can download their Realms world
    • NOTE: Users must be signed in and have an active Realms subscription. For Preview builds, they must have a Preview Realms first. This can be created in non-Editor mode of Bedrock on Preview builds.
  • Added better management of Structures:

    • Added the ability to rename a structure
    • Added the ability to delete a structure
    • Added the ability to duplicate a structure
    • Added the ability to rename the file/unique name
    • Added the ability to change the namespace
    • NOTE: Project structures will be exported to the editor/structuredb subdirectory in the world folder
  • Added the Grid Repeat feature to the Repeater tool, which includes both Uniform and Separate repeat types

  • Added visualization for the first layer added/removed in the extrude tool.

  • Added Terracotta to block picker

  • Added Workbench support for selections allowing for updated to all blocks of the same type in the selection.

  • Added cursor support for selecting invisible blocks when the Show Invisible Blocks setting is enabled

  • Added IPropertyPane.addProgressIndicator API function to display a spinner or a progress bar property item

  • Added ImageAnimationData API type to represent a sprite sheet animation for images

  • Added iconAnimation: ImageAnimationData property to IActionBarItemCreationParams API

  • Added IPropertyPane.addLink API function to create link buttons in panes.

  • Added system.isEditorWorld property into @minecraft/server in beta

  • Added Block Inspector tool which allows you to view block states and permutations of blocks

  • Added Entity Inspector tool which allows you to view and modify entity components

  • Added a new IRootPropertyPane.createModalOverlayPane API function, allowing the creation of IModalOverlayPane to display on top of the pane content. Each pane supports one active modal overlay at a time, but it can own multiple modals. Modal overlays can be managed through the root pane’s setActiveModalOverlay function or the overlay pane’s show and hide functions

  • Added IButtonPanePropertyItem API for customizing button layouts.

    • IPropertyPane.addButtonPane and IModalControlPane.addButtonPane API methods to create button pane items.
  • Removed End Gateway or Structure Block from block picker

  • Updated the mouse indicator for various tools to no longer linger after the app is suspended and resumed

  • Updated the maximum allowed line segments in Line Tool to 40 to address a crash.

  • Updated to minecraft/server 2.0.0-beta, see API section for more details on 2.0.0-beta.

    • registerEditorExtension can be called in Early Execution.
  • Updated the Line Tool: Left Click no longer clears the line if two points already exist. Left Click now behaves the same as Shift + Left Click and always adds points to the existing line.

  • Updated the Block Picker search text field to have UI focus when the modal opens

  • Updated various icons in editor UI for better resolution and functional clarity

  • Updated Flatten Tool to no longer stays active when changing to Crosshair Mode

  • Updated pyramid brush maximum height to 40 blocks

  • Updated the default flyspeed to 4.0 while using Editor.

  • Updated IPropertyPane.addTable API function to IPropertyPane.addDataTable

  • Updated IBlockListPropertyItem and rename ITablePropertyItem to IDataTablePropertyItem APIs

  • Fixed an assert encountered on client disconnect from dedicated server and re-entry into a world

    • Fixed block picker UI dialog persisting after a client disconnect from a dedicated server
  • Fixed a bug that filtered stain glass blocks from block picker

  • Fixed a bug that caused Project Through Water checkbox to be active for Keyboard only cursor control in panes

  • Fixed a bug that caused custom time settings to be disabled for Time of Day pane.

  • Fixed a bug that caused player positions limit to have wrong values in Navigation Panel.

  • Fixed a bug where releasing the scrollbar after dragging outside the dropdown menu closed it.

  • Fixed a bug that caused button layout and inner icon size to be incorrect

  • Fixed a render issue related to Banner, Conduit, Creeper Head, Decorated Pot, Dragon Head, Piglin Head, Player Head, Skeleton Skull, Wither Skeleton Skull, and Zombie Head thumbnails

  • Fixed an assert/crash due to custom block rendering components in creator packs or addons

  • Fixed Workbench functionality with block that use the minecraft:block_face and minecraft:vertical_half properties.

  • Fixed Shulker box textures in Block picker and lists

  • Fixed a bug that excluded some blocks from block picker list with partial text search

  • Fixed missing Air and Sugarcane block images

  • Fixed a bug that would sometimes cause the refresh button to crash Editor.

  • Fixed a bug that caused farms to be placed near unloaded areas

  • Fixed a bug that prevented slider to be visually updated for INumberPropertyItem.updateLimits API function

Entities

  • Fixed issue where No more entities assert failure occurred when flying through biomes during a storm

Entity Components

  • Added on_spawn trigger to spawn_chance on hit sub-component, triggered on the newly spawned entity with other set to the owning entity
  • Added particle_item_name map to particle_on_hit on hit sub-component, maps an item name to an actor filter to determine what the name of the item used in the particle should be. Falls back to the name of the entity itself as before.

Entity Event Responses

  • Added the “stop_movement” entity event response, which stops the entity’s movement

    • The “stop_vertical_movement” field specifies whether vertical movement should be stopped
    • The “stop_horizontal_movement” field specifies whether horizontal movement should be stopped
    • This response does not stop navigation or prevent future movement
      • If that’s the desired outcome, also remove the components responsible for that
  • Added the “set_home_position” entity event response, which sets the entity’s home position to its current position

    • For this to have any effect, the entity must already have a “minecraft:home” component

Entity Events

  • Added “first_valid” event type, it will evaluate every filter in order and execute the first valid one

Entity Filters

  • The “in_clouds” entity filter now succeeds when an entity’s bounding box intersects the cloud layer, rather than only when its bottom is within it

Gameplay

  • CommandBlock hover name now shown in GUI messages generated from commands (MCPE-190606)

General

  • Fixed issue that occurs when cancelling world resource pack download.

  • Fixed crash that occurs when initializing minecraft:decorated_pot renderer.

  • Server Authoritative movement is now turned on by default.

Goals

  • “minecraft:behavior.float_wander” AI goal will now restrict mobs to their home position if they have the “minecraft:home” component

  • Added “use_home_position_restriction” field to “minecraft:behavior.float_wander” AI goal to control whether mobs respect home position restrictions when selecting target positions

    • Defaults to false for entities with format version below 1.21.70, and true for 1.21.70 and later
    • When true, the mob will respect home position restrictions when selecting target positions

Jigsaw

  • Fixed world_surface type of heightmap_projection in minecraft:jigsaw to generate on top of water and leaf blocks.

  • Fixed gaps from appearing between data-driven jigsaw structure pieces.

JSON Events

  • The parameter “duration” in the “add_mob_effect” event can now be set to “infinite”

Mobs

  • Added maximum value of 100000000.0 and minimum value of -100000000.0 to “minecraft:collision_box” component

  • Added aquatic family-type for all aquatic mobs

  • Normal Minecart is no longer considered a mob

Network Protocol

  • Added ActorFlags::COLLIDABLE
  • Added ActorFlags::BODY_ROTATION_AXIS_ALIGNED
  • Added ActorFlags::WASD_AIR_CONTROLLED

Particles

  • Multiple controllers transitioning out of a state at the same time will now properly expire all intended particles instead of just the last one

Sounds

  • Added support for entity sound variants

    • Entity sounds now have a “variants” field which defines sound variants based on the runtime entity
    • Variants has a “key” field reading a Molang expression returning a string to select sound variant (eg: querying an enum entity property).
    • Variants has a “map” field which contains key-value pairs of a variant identifier and the sound events it overrides.
    • When playing a sound for an entity we first try to calculate their variant and see if that variant overrides the sound event, if not we play the sound form the base entity. If that fails we fall back to the existing logic of running from “defaults”. Example: Given a mob with the following property
"minecraft:emotional_state": { "type": "enum", "values": [ "neutral", "angry", "happy", "sad" ], "default": "neutral", "client_sync": true
}

Sound variants can be played by querying the property:

{ "entity_sounds": { "entities": { "test_mob": { "volume": 1.0, "pitch": 1.0, // The base sounds for various events "events": { "ambient": "mob.test_mob.ambient", "death": "mob.test_mob.death", "step": { "sound": "mob.test_mob.step", "volume": 0.8, "pitch": 1.0 }, "attack": "mob.test_mob.attack" }, "variants": { // Key returning the enum string for variants, can use any Molang expression resulting in a string "key": "query.property('minecraft:emotional_state')", "map": { // If a resulting variant key is not handled here then it will use the base sounds "neutral": { "volume": 1.0, "pitch": 1.0, "events": { // If an event is not handled in a variant then it will use the base sound "death": "mob.test_mob.death.netural" } }, "angry": { "volume": 1.0, "pitch": 1.0, "events": { // Variants can override different events than other variants "death": "mob.test_mob.death.angry", "ambient": "mob.test_mob.ambient.angry" } } } } } } } }
}
  • Sound effects found in animations and animation controllers can now include an optional “locator” field similar to particle effects allowing them to originate from the locator on the entity rather than the origin

Structures

  • Fixed mirroring and rotation of crafter blocks when part of a structure that is being placed:

Experimental Technical Updates

API

  • Added new script module @minecraft/diagnostics version 1.0.0-beta. This module is dedicated server only for now and allows script modules to connect their script packs to Sentry. This enables remote error tracking and monitoring for script packs.

@minecraft/server

  • Component minecraft:fluidContainer has been renamed to minecraft:fluid_container in V2.

  • World

    • Added getDifficulty(): Difficulty method to beta. This method gets the worlds current game difficulty.

    • Added setDifficulty(difficulty: Difficulty): void method to beta. This method sets the worlds current game difficulty.

  • BlockMapColorComponent scripting API is now read-only

  • BlockMapColorComponent scripting API fields color and tintMethod are now properties instead of methods

  • Fixed an issue where native constructors were not properly checking privileges when being called. Constructors now check privileges properly and produce correct errors when being used in Early Execution privilege.

  • Deprecated ItemUseOnBeforeEvent in @minecraft/server 2.0.0-beta. Use PlayerInteractWithBlockBeforeEvent instead.

  • Deprecated ItemUseOnAfterEvent in @minecraft/server 2.0.0-beta. Use PlayerInteractWithBlockAfterEvent instead.

  • BlockDestructionParticlesComponent API has been added to @minecraft/server 2.0.0-beta

  • EntityScaleComponent has been changed to read-only in version 2.0.0-beta

  • Fixed a bug where call methods on Player.inputInfoPlayer.inputPermissions, or Player.aimAssist on a player that left and rejoined the world would throw an error.

@minecraft/server-net

  • Updated the execution privilege of most APIs to allow them to be called in read-only contexts (“before” events)
  • Added new error InternalHttpRequestError
    • An error thrown when a platform-level HTTP error occurs. Information provided in this class may be useful for diagnostics purposes but will differ from platform to platform.
  • Added new error MalformedHttpRequestError
    • An error thrown when a malformed HTTP request is attempted to be sent.

@minecraft/server-ui

  • ActionFormData
    • Added method divider(): ActionFormData;. It adds a section divider into the form.
    • Added method header(text: minecraftserver.RawMessage): ActionFormData;. It adds a header into the form.
    • Added method label(text: minecraftserver.RawMessage): ActionFormData;. It adds a label into the form.
  • ModalFormData
    • Added method divider(): ModalFormData;. It adds a section divider into the form.
    • Added method header(text: minecraftserver.RawMessage): ModalFormData;. It adds a header into the form.
    • Added method label(text: minecraftserver.RawMessage): ModalFormData;. It adds a label into the form.

@minecraft/server 2.0.0-beta

The beta for @minecraft/server has been updated to 2.0.0-beta. This signifies that breaking changes have occurred, largely related to script execution timing. Version 1.X will continue to function as-is.

Visit our documentation portal for more information in the near future.

  • Added new privilege EarlyExecution

    • 2.0.0-beta and higher now executes with the early execution privilege, scripting below 2.0.0-beta will continue to execute without early execution
    • All after and before event signals subscribe and unsubscribe` methods can now be called in early execution
    • The following System methods can now be called in early execution
      • clearJob
      • clearRun
      • run
      • runInterval
      • runJob
      • runTimeout
      • waitTicks
    • BlockComponentRegistry method registerCustomComponent can now be called in early execution
    • ItemComponentRegistry method registerCustomComponent can now be called in early execution
  • Added startup property to SystemBeforeEvents

  • Added StartupEvent

  • Added StartupEventSignal

  • WorldAfterEvents renamed property worldInitialize to worldLoad

  • WorldBeforeEvents removed property worldInitialize

  • WorldInitializeAfterEvent renamed to WorldLoadAfterEvent

  • WorldInitializeAfterEventSignal renamed to WorldLoadAfterEventSignal

  • Removed WorldInitializeBeforeEvent

  • Removed WorldInitializeBeforeEventSignal

  • Removed Dimension.runCommandAsync as most commands did not actually run asynchronously. If you are looking to run a function asynchronously, please investigate using Jobs via System.runJob.

  • EntityComponent.getEntity method throws if the underlying entity is invalid (instead of return undefined previously).

  • EntityInventoryComponent.containerproperty throws if the underlying entity is invalid (instead of return undefined previously).

  • isValid methods on various classes have been changed to read only properties

  • getComponentsgetComponent and hasComponent now throw if the Entity is invalid

  • applyKnockback method now takes a VectorXZ parameter for the knockback horizontal force (which includes the strength/magnitude), as well as a vertical strength parameter. To convert from V1, you should normalize your previous direction vector and multiply it by the old horizontal strength value. Vertical strength is the same as before.

  • EffectType

    • getName method now always returns the minecraft: namespace prefix along with the name
  • Effect

    • typeId property now always returns the minecraft: namespace prefix along with the name
  • minecraft:air item has been removed (it is still a valid block)

  • Promises are now flushed along with after events and system tasks

  • system.waitTicks() now can accept an argument bounds of 0 minimum to run this tick

  • Added a GraphicsMode enum and Player.graphicsMode to query a player’s current graphics mode on the server.

  • Added system.isEditorWorld property into @minecraft/server in beta

  • BlockLocationIterator

    • Added isValid(): boolean method to beta. This method checks if the iterator as been invalidated by modifying the underlining block volume.
  • BlockMapColorComponent API has been added to beta

  • TintMethod enum has been added to beta

  • Early execution changes in version @minecraft/server 2.0.0-beta

    • The following RegistrationBuilder methods can now be called in early execution
      • batch
      • maxAttempts
      • maxTicks
      • padding
      • required
      • requiredSuccessfulAttempts
      • rotateTest
      • setupTicks
      • structureName
      • tag
    • register function can now be called in early execution
    • registerAsync function can now be called in early execution
  • Fixed a bug where the typeid property of the Effect class was being translated based on your language option.

  • Raised the limit for Lore Entry length from 50 to 1000 and the number of lines from 20 to 100 when using ItemStack.setLore

  • Added three new methods to Player . These Entity Overrides are only applied to the target Player. Changes are not applied until the next tick and will not apply to other players.

    • setPropertyOverrideForEntity: Overrides an Entity Property on the target Entity to the provided value. This property must be client synced.
    • removePropertyOverrideForEntity: Removes the override of the specified Entity Property on the target Entity.
    • clearPropertyOverridesForEntity: Removes all overrides of any Entity Properties on the target Entity.

API – Molang

  • Added query.graphics_mode_is_any to Molang which accepts any of the following parameters: simplefancydeferredraytraced. These parameters are all graphics modes that are available in the settings menu.

Blocks

  • The minecraft:map_color component underwent a schema change

    • It is now a JSON object with two fields “color” and “tint_method”.
    • “color” is a required string field expecting an HEX representation of the RGB, prefixed with a # character.
    • “tint_method” is a string field that multiplies the color with a predefined tint. Supported values are “none, “default_foliage”, “birch_foliage”, “evergreen_foliage”, “dry_foliage”, “grass” and “water”.
    • the old schema format is still supported for convenience. Examples:
      "minecraft:map_color": { "color": "#ABCDEF", "tint_method": "grass"
      }

      or

      "minecraft:map_color": { "color": "#ABCDEF"
      }

      or

      "minecraft:map_color": "#ABCDEF"
  • The minecraft:material_instances component supports an optional “tint_method” field in its instance definitions

    • “tint_method” is a string field that multiplies a face color with a tint computed with the biome the block is in. Supported values are “none, “default_foliage”, “birch_foliage”, “evergreen_foliage”, “dry_foliage”, “grass”, and “water”.
    • Held block-items are tinted as if they were in the “plains” biome. Example:
 "*": { "texture": "minimal", "render_method": "opaque", "tint_method": "water" }
  • Exposed the Block component minecraft:destruction_particles as a JSON object. This represents the particles used when the Block is destroyed

    • There is two fields for it:
    • “texture” is a required string field to set the texture used by the particles
    • “tint_method” is an optional string field that multiplies the texture color with a predefined tint. Default to “none”. Supported values are “none”, “default_foliage”, “birch_foliage”, “evergreen_foliage”, “dry_foliage”, “grass” and “water”.
    • Block format before 1.21.70 will be upgraded to have the component added using the texture from the “down” or “*” of the minecraft:material_instances component if present and “none” for tint_method. This was the old behavior.
    • Block format from 1.21.70 without the component will not be upgraded and uses the invalid texture
      Examples:
       "minecraft:destruction_particles": { "texture": "my_particles_texture", "tint_method": "grass" }

      or

      "minecraft:destruction_particles": { "texture": "my_particles_texture"
      }

Experimental

  • Removed the Experimental Third Person Cameras toggle and added an Experimental Creator Camera Features toggle for all future experimental cameras

General

  • Removed unused experimental json field peaks_factor from minecraft:mountain_parameters in the behavior pack biome file
Posted on Leave a comment

JAVA Edition: 1.21.5 Release Candidate 1

The next update is near and yesterday a new Release Candidate was available.  If everything goes smoothly you should be able to expect the official update soon.

Fixed bugs in 1.21.5 Release Candidate 1

  • MC-295383 – “Received missed or reordered chat message from server” string doesn’t make logical sense
  • MC-295412 – The lighting of the magma block is incorrect
  • MC-295416 – Beacon receives wrong shading from nearby blocks

Get the Release Candidate

Release Candidates are available for Minecraft: Java Edition. To install the Release Candidate, open the Minecraft Launcher and enable snapshots in the “Installations” tab.

Testing versions can corrupt your world, so please back up and/or run them in a different folder from your main worlds.