Skip to main content

Minecraft - 1.20.10 (Bedrock)

Updated Add-On Template Packs

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

Dedicated Server

  • Note for Linux users: Ubuntu 18.04 LTS (Bionic Beaver) will reach End of Standard Support in 2023. Accordingly, the Linux Minecraft Dedicated Server will also raise its minimum target Ubuntu version to 20.04 LTS (Focal Fossa) in a later 1.20 update (exact release to be determined). Minecraft server operators using Ubuntu are encouraged to prepare for this transition by updating their deployments to 20.04 LTS as soon as possible.
  • Fixed invalid entries in allowlist.json causing a crash (BDS-18133)

Stability and Performance

  • Invalid JSON objects within the entity component "minecraft:behavior.nearest_attackable_target" will no longer crash the game (MCPE-168129)
  • Fixed a crash that could occur when running the “go_and_give_items_to_noteblock” goal
  • Fixed a crash that could occur when attempting to change a mob’s scale while it was colliding with blocks (MCPE-170645)

Add-Ons and Script Engine

  • Added deprecation error message for the part_visibility component (the bone_visibility field in the geometry component should be used instead, see block documentation for more information)
  • Fixed an issue where adding a minecraft:peek component to a custom entity would cause the game to crash

Commands

  • /time query command will now return the correct day and time of day when the absolute time is negative
  • Executing the "inputpermission set" command will now output a message to the chat with the results (MCPE-168368)
  • Executing the "inputpermission set" command will now result in an error if it does not affect any players
  • Command positions will now use the current position/rotation when running mcfunctions via execute
  • Fixed issue where some execute commands stopped working on Realms (MCPE-169974
  • The "hasitem" target selector argument now counts items held with the cursor (MCPE-152002)
  • Commands will still work with "concrete", but "concrete" won't be suggested in the command prompt, rather the new names will
    • "concrete" block is now split into unique instances, namely "white_concrete", "orange_concrete", "magenta_concrete", "light_blue_concrete", "yellow_concrete", "lime_concrete", "pink_concrete", "gray_concrete", "light_gray_concrete", "cyan_concrete", "purple_concrete", "blue_concrete", "brown_concrete", "green_concrete", "red_concrete", and "black_concrete"
  • Java Parity: Block states in commands will use equals instead of colon in version 1.20.0 and later. For example using the setblock command: /setblock ~ ~ ~ oak_log["pillar_axis"="x"] (MCPE-168056)
  • Block states with equals don't require a space to show autocomplete options (MCPE-168056)

Components

  • Added a content error when minecraft:balloonable is used on minecraft:player to prevent issues as this component is not supported in this way (MCPE-164495)

Entities

  • Custom entities are no longer restricted to overriding Vanilla entities released before 1.20. All Vanilla entities can be used in the "identifier" or "runtime_identifier" field, including Camel and Sniffer

Blocks

  • Updated the "minecraft:geometry" block component to allow bone visibility to be defined with a Molang expression
  • Changed minecraft:block JSON schema so what was previously called "properties" is now called "states". This change takes effect for files where format_version is 1.20.10 or higher. Previous content is unaffected

Items

  • Released the minecraft:cooldown item component out of experimental in json formats 1.20.10 and higher

  • Released the minecraft:repairable item component out of experimental in json formats 1.20.10 and higher

  • Items with the "minecraft:block_placer" component will now place blocks with correct orientation

  • Released the "minecraft:max_stack_size" item component out of experimental in json formats 1.20.10 and higher

  • Custom items with "minecraft:block_placer" will no longer place certain blocks in the wrong location

  • Released the "minecraft:block_placer" item component out of experimental in json formats 1.20.10 and higher

  • Released the "minecraft:record" item component out of experimental in json formats 1.20.10 and higher

  • Released the "minecraft:can_destroy_in_creative" item component out of experimental in json formats 1.20.10 and higher

  • Released the "minecraft:hover_text_color" item component out of experimental in json formats 1.20.10 and higher

Experimental Features

Add-Ons and Script Engine

  • Camera Presets can now specify "listener":"player" to have the audio system use the player position for audio positioning
    • Added "example:example_player_listener" Camera Preset to demonstrate this option
  • Actually fixed the bug that caused player capes to stop flapping when moving forward but looking sideways in the query.cape_flap_amount by switching the rotation used from the player's looking rotation to the player's body rotation (MCPE-153446)
  • Observer blocks use state "minecraft:facing_direction" instead of "facing_direction". "minecraft:facing_direction" uses string values ("down", "up", "north", "south", "east", "west")

Script API

  • Dynamic properties can now optionally have default values
  • Increased Dynamic Property registration limits:
    • Actors: ~1KB -> 128KB
    • World: ~10KB -> 1MB
  • ScreenDisplay
    • Removed clearTitle()- Use setTitle with an empty string to clear the title
    • Updated fadeInSeconds, staySeconds, fadeOutSeconds to fadeInDuration, stayDuration, fadeOutDuration on TitleDisplayOptions (seconds to ticks)
    • Updated setTitle to reset the times per each new title
    • Added RawMessage support for setTitle, updateSubtitle, and setActionBar
  • Entity additions
    • Added read-only property isGliding - Returns whether the player is gliding with Elytra
    • Added read-only property isJumping - Returns whether the player is using the jump action
    • Added read-only property isFlying - Returns whether the player is flying (e.g. Creative or Spectator mode)
    • Added read-only property isSprinting - Returns whether the entity is sprinting
    • Added read-only property isSwimming - Returns whether the entity is swimming
    • Added read-only property isClimbing - Returns whether the entity is climbing (e.g. Player on a ladder or Spider on a wall)
    • Added read-only property isOnGround - Returns whether the entity is on the ground
    • Added read-only property isInWater - Returns whether the entity is in water
    • Added read-only property isFalling - Returns whether the entity is falling
    • Added read-only property fallDistance - Returns the current fall distance (Used for calculating fall damage)
    • Added function fly - Makes the player fly (e.g. Creative or Spectator mode)
    • Added function stopFlying - Makes the player stop flying (e.g. Creative or Spectator mode)
    • Added function glide - Makes the player glide with Elytra
    • Added function stopGliding - Makes the player stop gliding with Elytra
    • Added function swim - Makes the player swim
    • Added function stopSwimming - Makes the player stop swimming
  • Entity additions (effects)
    • Updated function addEffect(effectType: EffectType | string, duration: number, options?: EntityEffectOptions): void to return void and to throw if the effect does not exist or the parameters are out of bounds
    • Updated function getEffect(effectType: EffectType | string): Effect | undefined to throw if the effect does not exist
    • Updated function removeEffect(effectType: EffectType | string): boolean to throw if the effect does not exist
  • BlockEvents
    • Added events 'PressurePlatePushEvent', 'PressurePlatePopEvent', 'TargetBlockHitEvent', and 'TripWireTripEvent'
  • ContainerSlot
    • Removed function clone - Please use function getItem instead
  • EntityHealableComponent
    • Removed filters: FilterGroup property
  • EntityAttributeComponent
    • Added effectiveMin: number property. Returns the minimum possible value for the component
    • Added effectiveMax: number property. Return the maximum possible value for the component
    • Renamed value property to defaultValue
    • Renamed current property to currentValue
    • Renamed setCurrent method to setCurrentValue
  • Added EntityHealthChangedAfterEvent. It is triggered when any health change happens for an Entity
  • System
    • Replaced system.events with system.beforeEvents and system.afterEvents
    • Renamed event beforeWatchdogTerminate to watchdogTerminate and moved it to system.beforeEvents
    • Moved scriptEventReceive to system.afterEvents
  • MessageReceiveAfterEvent
    • Removed property sourceType
  • ScriptEventSource
    • Replaced enum MessageSourceType with a new enum ScriptEventSource
  • ScriptEventCommandMessageAfterEvent
    • Changed property sourceType from MessageSourceType to ScriptEventSource
    • Increased maximum message length from 256 to 2048 characters
  • Dynamic Property identifiers are now limited to 1024 characters
  • Removed MinecraftEffectTypes defined in @minecraft/server. See @minecraft/vanilla-data NPM package for an equivalent
  • Moved several APIs to stable 1.30:
    • Moving tryTeleport(location: Vector3, duration: number, options: ScriptTeleportOptions) to 1.3.0
    • Moving teleport(location: Vector3, options: ScriptTeleportOptions) to 1.3.0
    • Moved function getComponent to 1.3.0
    • Moved world event PlayerJoinAfterEvent to 1.3.0
    • Moved world event PlayerLeaveAfterEvent to 1.3.0
    • Moved world event PlayerSpawnAfterEvent to 1.3.0
    • Moved EntityComponent EntityHealableComponent to 1.3.0
    • Moved EntityComponent EntityHealthComponent to 1.3.0
    • Moved class FeedItem to 1.3.0
    • Moved class FeedItemEffect to 1.3.0
    • Moving addEffect(effectType: string | EffectType, duration: number, options: EntityEffectOptions) to 1.3.0
    • Moved getEffect(effectType: string | EffectType) to 1.3.0
    • Moved getEffects() to 1.3.0
    • Moved removeEffect(effectType: string | EffectType) to 1.3.0
    • AfterEvents
      • Moving ButtonPushEvent to 1.3.0
      • Moving LeverActivateEvent to 1.3.0
    • Moved function spawnEntity to 1.3.0
    • Moved function spawnItem to 1.3.0
  • Spawn Point Updates:
    • Removed function clearSpawn
    • Removed property spawnDimension
    • Added function getSpawnPoint(): DimensionLocation | undefined - Returns the player's spawn point
    • Added function setSpawnPoint(spawnPoint?: DimensionLocation): void - Sets the player's spawn point, or clears it if spawnPoint is undefined
    • Renamed function getDefaultSpawnPosition to getDefaultSpawnLocation
    • Renamed function setDefaultSpawn to setDefaultSpawnLocation
  • DimensionLocation
    • Added new interface DimensionLocation - Represents a location in a dimension
  • Added hasParticipant function to ScoreboardObjective.
  • The following functions in ScoreboardObjective can now accept Entity or string types as participants:
    • getScore
    • setScore
    • removeParticipant
  • Removed getScoresetScore from ScoreboardIdentity and Scoreboard
  • Removed the removeFromObjective function from ScoreboardIdentity
  • Fixed bug where scoreboard values would not be updated on the client when updated from script
  • Raycasting
    • Changed function Dimension.getBlockFromRay
      • Changed return type from Block to BlockRaycastHit | undefined
    • Changed function Dimension.getEntitiesFromRay
      • Changed return type from Entity[] to EntityRaycastHit[]
    • Changed function Entity.getBlockFromViewDirection
      • Changed return type from Block to BlockRaycastHit | undefined
    • Changed function Entity.getEntitiesFromViewDirection
      • Changed return type from Entity[] to EntityRaycastHit[]
    • Added interface BlockRaycastHit
    • Added interface EntityRaycastHit
  • Renamed leverActivate after event to leverAction
    • Removed class EntityHitAfterEvent.
    • Added class EntityHitBlockAfterEvent
    • Added class EntityHitEntityAfterEvent
    • Class WorldAfterEvents
      • Removed property entityHit
      • Added property entityHitBlock
      • Added property entityHitEntity
  • Added helper function isValid() to several classes in order to check if the object is valid. This can safely be used on any handle to a native object before accessing or using the object, to ensure the underlying object still exists and is valid to use
    • Block (checks the block is a valid position in bounds and the containing chunk is loaded & ticking)
    • Container (checks the relevent container inventory exists and is valid)
    • Effect (checks the owning entity is valid and the effect exists on that entity)
    • ScreenDisplay (checks the owning player is valid)
    • ScoreboardObjective (checks the objective entry exists and is attached to a valid scoreboard)
    • Entity (checks that the entity exists in the world. Will return true if the entity is dead)
      • Player
      • SimulatedPlayer (Note simulated players do not automatically get removed from the world, so isValid will return true long after they are dead)
    • ContainerSlot (checks the item context is valid: Container exists in the world, such as the owning entity, and the slot is within the container bounds)
      • Already existed as a read-only property, changed to a method for consistency
  • Component
    • EntityAttributeComponent (checks the owning entity is valid and the attribute exists on the entity)
    • BlockLiquidContainerComponent (checks block exists and is a valid cauldron type)
      • Added read only method isValidLiquid which checks if the liquid in the cauldron matches the component in question (EG. BlockLavaContainerComponent checks for lava liquid)
    • EntityComponent (checks the owning entity exists)
    • ItemComponent (checks the owning item exists)
  • World
    • Renamed getTime to getTimeOfDay
    • Renamed setTime to setTimeOfDay
    • setTimeOfDay now accepts a TimeOfDay enum as an argument
    • The timeOfDay argument for setTime must now be within 0-23999 (inclusive)
    • Added getDay function
  • Updated the following enums' values to be PascalCase instead of camelCase:
    • ClipboardMirrorAxis
    • ClipboardRotation
    • HttpRequestMethod
    • FormCancelationReason
    • Direction
    • DisplaySlotId
    • EntityLifetimeState
    • FluidType
    • ObjectiveSortOrder
    • ScoreboardIdentityType
    • ScriptEventSource
    • SignSide
    • WatchdogTerminateReason
    • WeatherType

Camera

  • Changed camera command fade color to take integer values from 0 to 255 rather than 0.0 to 1.0 fractional values
  • Camera fade command now enforces fade duration limits; fade in, hold, and fade out must be between 0 and 10 seconds
  • Ensuring camera pitch can only be between -90 and 90 degrees when using the /camera command
  • Camera preset JSON now supports an optional bool 'player_effects' value which causes game rendering to use player effect state (for example night vision) when this preset is active. Added the "example:example_player_effects" preset to demonstrate this
  • Camera command can now take a 'facing' option instead of a 'rot' option with a target entity or position specified
  • Fixed custom cameras to not use the 'inside block' effect when player head is inside a block (MCPE-170206)
  • Limit free cam JSON to not pitch camera beyond plus or minus 90 degrees
  • Fixed /camerashake command to shake camera without also shaking player
  • Rendering of experimental minecraft:free camera no longer affected by player state like night vision

Items

  • Items in format version 1.20.10 and above with the ”minecraft:throwable component will trigger Item Use events when thrown
  • Custom items with "minecraft:block_placer" will no longer place certain blocks in the wrong location
  • Changed "minecraft:shooter" to only consume ammo when charging the item if "charge_on_draw" is set "true"
  • Items with the "minecraft:block_placer" component will now place blocks with correct orientation
  • Deprecated "minecraft:render_offsets" component in json formats 1.20.10 and higher
  • Changed charging action behavior in "minecraft:shooter" to match Vanilla crossbow
  • Changed shooting behavior for a charged "minecraft:shooter" with an empty inventory/offhand to successfully shoot the charged ammunition
  • Released the "minecraft:shooter" item component out of experimental in json formats 1.20.10 and higher
  • Released the "minecraft:throwable" item component out of experimental in json formats 1.20.10 and higher
  • Released the "minecraft:projectile" item component out of experimental in json formats 1.20.10 and higher
  • Released the "minecraft:can_destroy_in_creative" item component out of experimental in json formats 1.20.10 and higher
  • Released the "minecraft:hover_text_color" item component out of experimental in json formats 1.20.10 and higher