Skip to main content

Minecraft - 1.20.60 (Bedrock)

Updated Add-On Template Packs

  • Updated Add-On templates for 1.20.60 with new resources, behaviors, and documentation are available to download at aka.ms/MCAddonPacks

General

  • Decorated Pots now support the use of loot tables
  • Renamed _json_to water_splash_manual.json in resource_packs\vanilla\particles (MCPE-176784)
  • Require block_id for each block in the StartGamePacket blockProperties
  • Send "material" for vanilla data-driven blocks in the StartGamePacket blockProperties. "block_id" is also moved to the "vanilla_block_data" object
  • Containers being cloned over no longer keep their container screens open and no longer cause crashes
  • Changing the brightness_gamma value for blocks now darkens the block correctly (MCPE-167836)
  • Added a "drop_item_slot" field to the "interact" component, which allows to specify an inventory slot to remove and drop items from
  • "behavior.breed" now interrupts navigation on stop for content using engine version 1.20.60 or higher
  • Updated listed values for the Vanilla "orientation" block state in documentation to no longer be boolean values

Commands

  • /me/say/title/tell
    • Reduced max length for output message to 512 characters
  • /kill
    • Reduced max length for reason message to 512 characters

Add-Ons and Script Engine

  • Added a _Project Through Liquid_property to the 3D Block Cursor
  • Added a CursorPropertiesChangeAfterEvent to notify Editor script when the cursor properties are changed
  • Wandering Traders can now correctly display custom entity spawn eggs in their trade menus (MCPE-170184)
  • The "minecraft:geometry.full_block" identifier for the "minecraft:geometry" block component has been added
    • The "minecraft:geometry.full_block" identifier provides a centered 1x1x1 cube geometry
    • When combined with a material_instances component with "render_layer": "opaque", it enables rendering-only capabilities previously included in the "minecraft:unit_cube" component including:
      • Occludes both vanilla and custom neighboring full blocks
      • Culls faces that neighbor vanilla and custom neighboring full blocks to improve rendering performance
    • Added content error logging to help creators identify content that hits or exceeds the state bit/permutation count per block (MCPE-177045)

Biomes

  • Biome JSON files no longer support inheriting fields from other Biome JSON files. If this affects any content those files should be updated by manually copying the desired JSON text
  • Biome tags in JSON files are now specified under a "minecraft:tags" component, in a "tags" array, rather than as loose JSON objects, for files with a format_version of 1.20.60 or higher

Blocks

  • Added the ability for data-driven blocks to remove faces in the geometry when abutting a full and opaque block. A new field has been added to the Block Geometry Component, which references a new Culling .json file (found in the resource pack block_culling directory) that sets up culling rules for the tessellated geometry

Items

  • Unrecognized fields in component item JSON will now give a warning to the content log in format versions 1.20.60 and higher

Components

  • The "entity_sensor" component now supports multiple "subsensors":
  • "event", "require_all", "minimum_count", "maximum_count", "range" and "event_filter" are now individually configurable fields of each subsensor
  • Subsensors also have a new "cooldown" field, which defines how often each subsensor should sense for entities
  • All these changes require a "format_version" of 1.20.60 or higher
  • The "interact" component now supports the additional "entity_act" value for the "vibration" field

Entity Components

  • Entity event response run_command has been renamed to queue_command and has been released out of experimental. Commands run via queue_command may be deferred until the next tick. If the entity is removed before the command is run, the command will not execute. Content using run_command under experimental will still work for now but the experimental feature is now considered deprecated
  • Added an "interact_filters" field to the "ageable" component, which allows to specify conditions on when the actor can be fed
  • "behavior.follow_parent" now interrupts navigation on stop for content using engine version 1.20.60 or higher

Entity Filters

  • Added new entity filter "is_panicking", which checks if the entity is executing "behavior.panic"
  • Added new entity filter "is_sprinting", which checks if the entity is sprinting

Entity Event Responses

  • Added the "emit_vibration" entity event response, which allows the entity to emit a vibration having the entity itself as its source
    • The "vibration" field allows to specify the vibration to be emitted
    • The allowed values are "shear", "entity_act", and "entity_interact"

Molang

  • Improved the context of content logs when an evaluated Molang expressions results in an error
  • Released Molang queries from experimental
    • is_cooldown_type
    • cooldown_time
    • cooldown_time_remaining
    • relative_block_has_any_tag
    • relative_block_has_all_tags
    • block_neighbor_has_any_tag
    • block_neighbor_has_all_tags
    • block_has_any_tag
    • block_has_all_tags
    • bone_orientation_trs
    • bone_orientation_matrix
  • Added content errors that state _remaining_durability_and query.max_durability are only to be used with Item contexts

Script API

  • Added Biome Registry biome names and StructureFeatureType enum to vanilla metadata generation

  • Made the display name parameter optional in Scoreboard addObjective

  • Released DataDrivenEntityTriggerAfterEvent from beta to 1.8.0

  • Released DataDrivenEntityTriggerAfterEventSignal from beta to 1.8.0

  • Released DataDrivenEntityTriggerAfterEventSignalOptions from beta to 1.8.0

  • Released DefinitionModifier from beta to 1.8.0

  • Released dataDrivenEntityTrigger from beta to 1.8.0

  • Moved _EffectAddBeforeEvent_from beta to 1.8.0

  • Moved _EffectAddAfterEvent_from beta to 1.8.0

  • Moved _EffectAddAfterEvent_from beta to 1.8.0

  • _M_oved _getTags_from beta to 1.8.0

  • Moved _hasTag_from beta to 1.8.0

  • RGBA interface now inherits from RGB

  • Changed _itemStack_in ItemReleaseUseAfterEvent to be optional

  • Released DataDrivenEntityTriggerAfterEvent from beta to 1.8.0

  • Released DataDrivenEntityTriggerAfterEventSignal from beta to 1.8.0

  • Released DataDrivenEntityTriggerAfterEventSignalOptions from beta to 1.8.0

  • Released DefinitionModifier from beta to 1.8.0

  • Released dataDrivenEntityTriggerEvent from beta to 1.8.0

  • Improved error messages for "Unsupported or out of bounds value." errors to include the bounds

  • Types

    • Moved _BlockType_from beta to 1.8.0
    • Moved _FluidType_from beta to 1.8.0
  • Changed "Unsupported or out of bounds value.." errors to use ArgumentOutOfBoundsError Error type

  • setWeather method argument duration now uses ArgumentOutOfBoundsError Error type

Experimental Features

Commands

  • The health bar of mounted rideable mobs is now properly displayed (MCPE-177696)
  • Execute command now fails when comparing unloaded blocks (MCPE-177195)
  • Added a new command that will hide and reset HUD elements visibility
    • /hud hide <hud element>
    • /hud reset <hud element>
    • The HUD elements available are:
      • paperdoll
      • armor
      • tooltips
      • touch_controls
      • crosshair
      • hotbar
      • health
      • progress_bar
      • hunger
      • air_bubbles
      • horse_health
      • all
    • To use the command, turn on the Upcoming Creator Features toggle

Script API

  • PlayerPlaceBlockBeforeEvent
    • Removed _itemStack: ItemStack_from event
    • Added _readonly permutationBeingPlaced: BlockPermutation_to event
    • Updating _createExplosion(location: Vector3, radius: number, explosionOptions?: ExplosionOptions)_to return a boolean. True if the explosion is successful and false if the explosion is unsuccessful or is cancelled
  • Class Player
  • Added method spawnParticle(effectName: string, location: Vector3, molangVariables?: MolangVariableMap): void;
  • Fixed a bug where the world would sometimes fail to properly shut down and disconnect clients during an unrecoverable script watchdog error
  • Updated SimulatedPlayer so it can continuously build
  • Updated SimulatedPlayer so it can Move and look in different directions
  • ChatSendAfter & ChatSendBeforeEvent
    • Changed message and sender to read-only properties
    • Removed setTargetsgetTargets, _sendToTargets_and replaced with an optional player list property targets
  • Class ItemDurabilityComponent
    • Renamed unbreaking to unbreakingEnchantmentLevel
    • Renamed getDamageRange to getDamageChanceRange
  • EntityTypes
    • Changed _getAll_return type from EntityTypeIterator to EntityType[]
  • EntityEquippableComponent
    • Fixed an issue where functions getEquipment and getEquipmentSlot could not be called within "before" event handlers
  • Fixed a bug where an ItemStack could not be stacked after clearing its lore
  • Added method eatItem(itemStack: ItemStack): void;
  • BlockSignComponent
    • Changed signature of function _setWaxed_to setWaxed(waxed: boolean)
    • Removed event/property pistonActivate
  • Added enum BlockPistonState export enum BlockPistonState { Expanded = "Expanded", Expanding = "Expanding", Retracted = "Retracted", Retracting = "Retracting" }
  • Class BlockPistonComponent
    • Removed property isExpanded
    • Removed property isExpanding
    • Removed property isRetracted
    • Removed property isRetracting
    • Added property readonly state: BlockPistonState
    • Changed function _getAttachedBlocks_to return type Block[]
    • Added function getAttachedBlocksLocations(): Vector3[]
  • Removed class PistonActivateBeforeEvent
  • Removed class PistonActivateBeforeEventSignal
  • Moved _NavigationResult_from @minecraft/server to @minecraft/server-gametest
  • Updated function addEffect to return the added effect (or undefined if it failed)
    • This change is in beta and does not affect the currently released versions of this function
  • Added item dynamic properties
    • Added function clearDynamicProperties(): void - Removes all dynamic properties from the item stack
    • Added function getDynamicProperty(identifier: string): boolean | number | string | Vector3 | undefined - Returns the value of the dynamic property with the given identifier if it exists, otherwise returns undefined
    • Added function getDynamicPropertyIds(): string[] - Returns an array of all dynamic property identifiers on the item stack
    • Added function getDynamicPropertyTotalByteCount(): number - Returns the total byte count of all dynamic properties on the item stack
    • Added function setDynamicProperty(identifier: string, value?: boolean | number | string | Vector3): void - Sets the value of the dynamic property with the given identifier. If the value is undefined, the dynamic property will be removed
    • Added function clearDynamicProperties(): void - Removes all dynamic properties from the item stack
    • Added function getDynamicProperty(identifier: string): boolean | number | string | Vector3 | undefined - Returns the value of the dynamic property with the given identifier if it exists, otherwise returns undefined
    • Added function getDynamicPropertyIds(): string[] - Returns an array of all dynamic property identifiers on the item stack
    • Added function getDynamicPropertyTotalByteCount(): number - Returns the total byte count of all dynamic properties on the item stack
    • Added function setDynamicProperty(identifier: string, value?: boolean | number | string | Vector3): void - Sets the value of the dynamic property with the given identifier. If the value is undefined, the dynamic property will be removed
  • Added class EntityProjectileComponent. This component is used to shoot a projectile entity and modify its properties
  • Added interface ProjectileShootOptions. This interface is used with function _shoot_to optionally modify the accuracy of the projectile when shot
  • PropertyOutOfBoundsError
    • Added a new PropertyOutOfBoundsError that throws when a property that is bounded is set out of bounds
  • ContainerSlot APIs now throw an InvalidContainerSlotError if the container slot is invalid, or if a property is set on an empty slot
  • Property typeId no longer returns undefined for empty slots, but instead throws an InvalidContainerSlotError
  • Added function hasItem - Returns whether the slot contains an item
  • Added function getCanPlaceOn - Returns an array of block identifiers that the item can be placed on
  • Added function getCanDestroy - Returns an array of block identifiers that the item can destroy when used
  • runJob() and system.clearJob()
    • Added runJob and clearJob for optimizing long running tasks using JavaScript generators. runJob takes a generator function and returns a jobId. See documentation for usage examples
  • @minecraft/server.BlockPermutation
    • Moved getState and withStates APIs from beta to stable

Scripting

  • Fixed issue where ActionFormData buttons could not be clicked if there were more than 255 buttons in the form
  • The "minecraft:unit_cube" block component has been deprecated. Using it in content marked 1.20.60 and beyond will provide a content error
    • Using content marked prior to 1.20.60 will have their "minecraft:unit_cube" block component upgraded to a "minecraft:geometry" block component with a "minecraft:geometry.full_block" identifier, but will maintain backwards compatibility with all behaviors
  • Added _ScriptBiomeTypes_and ScriptBiomeType to allow Scripting API to enumerate the BiomeRegistry
  • Added a _findClosestBiome_function to Dimension to find the closest biome of a specified type, to a given position in the world
  • The block component "minecraft:random_ticking" is now functional again

Molang

  • Changed cooldown query slot IDs to be required for container slots with more than one index, logging content errors if not provided
    • cooldown_time(slotName,slotId)
    • cooldown_time_remaining(slotName,slotId)
    • is_cooldown_type(cooldownName,slotName,slotId)