Skip to main content

Minecraft Beta & Preview - 1.20.0.20

Editor

  • Removed additional deprecated blocks and updated to sort blocks alphabetically
  • Fixed Molang animation pausing in Editor for Guardian mobs
  • Fixed Editor player dying in Tool Mode
  • Fixed disabled command execution for /execute and command block
  • Closed emoting and achievement loopholes in Editor

Commands

  • When typing a slash command, auto-complete no longer suggests block-states that are already part of the typed command (MCPE-168055)
  • Improved performance when preparing commands, most noticeable when opening the command window for the first time in a world, but also when loading Command Blocks for old command versions
  • Commands will still work with "carpet", but only new carpet name will be suggested in the command prompt
    • "carpet" block is now split into unique variants of 16 colors, namely "white_carpet", "orange_carpet", "magenta_carpet", "light_blue_carpet", "yellow_carpet", "lime_carpet", "pink_carpet", "gray_carpet", "light_gray_carpet", "cyan_carpet", "purple_carpet", "blue_carpet", "brown_carpet", "green_carpet", "red_carpet", "black_carpet"
  • Commands will still work with "log", but "log" won't be suggested in the command prompt, rather the new names will
    • "log" was split into unique instances, namely "oak_log", "spruce_log", "birch_log" and "jungle_log"
    • "log2" was split into unique instances, namely "acacia_log" and "dark_oak_log"
  • Commands will still work with "coral", but "coral" won't be suggested in the command prompt, rather the new names will
    • "coral" was split into unique instances, namely "tube_coral", "brain_coral", "bubble_coral", "fire_coral", "horn_coral", "dead_tube_coral", "dead_brain_coral", "dead_bubble_coral", "dead_fire_coral" and "dead_horn_coral"

Add-Ons

  • Fixed a bug that caused player capes to stop flapping when moving forward but looking sideways in the cape_flap_amount by switching the rotation used from the player's looking rotation to the player's body rotation (MCPE-153446)

General

  • Custom items using JSON formats 1.16.100 and formats past 1.17.0 can be loaded without the Holiday Creator Feature toggle if there are no Holiday components used
  • The minecraft:friction component is no longer ignored when calculating ground friction

Items

  • Any item use, like using a Brush or Spyglass or eating an Apple now send item interact events that cause vibrations picked up by Sculk Sensors and Wardens
  • Items with the Entity Placer item component will now successfully create the actor on air blocks if the "dispense_on" field is empty
  • Items with the Entity Placer item component can now be used on a Mob Spawner to change the Spawner's actor spawn type. The item must have a format version of at least 1.19.80
  • Removed the non-functional 'on_repaired' parameter from the 'minecraft:repairable' item component

Molang

  • Fixed a crash affecting some Marketplace packs preventing them from loading
    • There is now a limit on the amount of nested sub-expressions each Molang expression can have

Experimental Features

Add-Ons and Script Engine

  • Added experimental support for BlockTraits in block JSON. BlockTraits are a shortcut for creators to add Vanilla BlockStates and setter functions to data-driven blocks
    • Can parse PlacementDirection ("minecraft:placement_direction") BlockTrait (adds the "minecraft:cardinal_direction" BlockState and onPlayerPlace setter function)
    • Can access the "minecraft:cardinal_direction" state on blocks that apply the "placement_direction" trait in block_property Molang queries and set_block_property EventResponses
    • Note: Use of BlockTraits in JSON is currently behind the "Upcoming Creator Features" toggle

Script API

  • System Events
    • Further separation of events into distinct before* and after* handling, with some restrictions on the execution of state updates in a before event:
    • All before events moved from events into world.beforeEvents property. The "before" prefix has been removed. Functions that alter world state are prohibited in before event callbacks. Read-only methods and properties are allowed. Set methods are limited to the event object itself. Any use of restricted methods and properties will throw an exception.
    • For example, events.beforeWatchdogTerminate is now considered a "before" event. Functions that alter world state are prohibited in before event callbacks. Read-only methods and properties are allowed. Set methods are limited to the event object itself. Any use of restricted methods and properties will throw an exception
    • For example, events.scriptEventReceived is now considered an "after" event. After event callbacks are executed in a deferred manner. Using /scriptEvent something will queue script to execute at a later point
  • Renamed Scripting Events
    • Before Events renamed to *BeforeEvent and event signals renamed to *BeforeEventSignal
      • Example: BeforeItemUseEvent renamed to ItemUseBeforeEvent and BeforeItemUseEventSignal renamed to ItemUseBeforeEventSignal
    • Other events renamed to *AfterEvent and event signals renamed to *AfterEventSignal
      • Example: WeatherChangedEvent renamed to WeatherChangedAfterEvent and WeatherChangedEventSignal renamed to WeatherChangedAfterEventSignal
    • chat event renamed to chatSend
      • events.beforeChat renamed to world.events.beforeChatSend
      • events.chat renamed to world.events.chatSend
      • BeforeChatEvent renamed to ChatSendBeforeEvent
      • BeforeChatEventSignal renamed to ChatSendBeforeEventSignal
      • ChatEvent renamed to ChatSendAfterEvent
      • ChatEventSignal renamed to ChatSendAfterEventSignal
    • Fixed a bug where resolve() would fail to resolve custom block properties
    • Renamed scoreboard to Entity.scoreboardIdentity
    • Item Events
      • The ItemStartUseOnEvent now only fires for the first block that is interacted with when performing a build action
      • The ItemUseOnEvent now only fires if the item is successfully used on a block
      • ItemUseOnEvent property blockLocation: Vec3 has been changed to block: Block
      • ItemStartUseOnEvent property blockLocation: Vec3 has been changed to block: Block
      • ItemStopUseOnEvent property blockLocation: Vec3 has been changed to block: Block
      • ProjectileHitEvent property faceLocation: Vec2 has been changed to faceLocation: Vec3 - This position is relative to the bottom north-west corner of the block
      • ItemUseOnEvent property faceLocation: Vec2 has been changed to faceLocation: Vec3 - This position is relative to the bottom north-west corner of the block
    • Entity
      • Added interface teleportOptions {dimension?: Dimension, rotation?: Vector2, keepVelocity?: boolean, facingLocation?: Vector3, checkForBlocks?: boolean}
      • Added interface Vector2 {x: number, y: number}
      • Added function tryTeleport(location: Vector3, teleportOptions?: teleportOptions) : boolean - Attempts to teleport the entity and returns false if the entity is unable to teleport safely (blocks surrounding teleport location or unloaded chunk)
      • Changed function teleport to teleport(location: Vector3, teleportOptions?: teleportOptions) : void - Teleports an entity
    • Changed function setRotation to setRotation(rotation: Vector2) : void - Sets the entity's rotation
    • Changed function getRotation to getRotation() : Vector2 - Gets the entity's rotation
    • Updated function addTag(tag: string): boolean - The tag must be less than 256 characters
    • Updated method kill to return boolean instead of void. If return value is true, entity can be killed, otherwise false
    • Added interface EntityApplyDamageOptions. Additional options about the source of damage to use as input in applyDamage
    • Added interface EntityApplyDamageByProjectileOptions. Additional options about the source of damage to use as input in applyDamage in case of projectile damage
      • Updated method applyDamage. Renamed parameter source to options. Parameter type also changed from EntityDamageSource to EntityApplyDamageOptions | EntityApplyDamageByProjectileOptions
    • SimulatedPlayer
      • Changed function getHeadRotation to getHeadRotation() : Vector2 - Gets the simulated players head rotation
    • TitleDisplayOptions will now accept floating point values
    • Added new WorldSoundOptions and PlayerSoundOptions interface types for use with the playSound and player.playSound respectively
      • playSound now requires a location argument
      • When calling playMusic and queueMusic, an error will now be thrown if volume is less than 0.0
      • When calling playMusic and queueMusic, an error will now be thrown if fade is less than 0.0
      • When calling playSound, an error will now be thrown if pitch is less than 0.01
      • When calling playSound, an error will now be thrown if volume is less than 0.0
      • When calling playSound, an error will now be thrown if pitch is less than 0.01
      • When calling playSound, an error will now be thrown if volume is less than 0.0
    • Removed "dye_powder" item component
    • Entity objects now persist across dimension changes and chunk reloading. This means that if you have a reference to an invalid Entity, it will become usable once the Entity has been transferred or reloaded. You can check whether an Entity is loaded or unloaded by reading its lifetimeState property
    • Added read-only property lifetimeState - Returns the lifetime state of the Entity. Valid values include "loaded" and unloaded"
    • ItemDefinitionTriggeredEvent
      • Renamed property item to itemStack
    • ItemStartUseOnEvent
      • Renamed property item to itemStack
      • Replaced function getBlockLocation with read-only property blockLocation: Vector3
      • Removed function getBuildBlockLocation
    • ItemStopUseOnEvent
      • Renamed property item to itemStack
      • Replaced function getBlockLocation with read-only property blockLocation: Vector3
    • ItemUseEvent
      • Renamed property item to itemStack
    • ItemUseOnEvent
      • Renamed property item to itemStack
      • Replaced function getBlockLocation with read-only property blockLocation: Vector3
      • Replaced properties faceLocationX and faceLocation with read-only property faceLocation: Vector2
    • BlockHitInformation
      • Replaced properties faceLocationX and faceLocation with read-only property faceLocation: Vector2