Bedrock Edition Preview 1.21.90.20

Preview 1.21.90.20
Bedrock 1.21.90.20 PatchNotes.jpeg: Infobox image for Preview 1.21.90.20 the version in Minecraft
Bedrock 1.21.90.20.png: Infobox image for Preview 1.21.90.20 the version in Minecraft
Edition

Bedrock Edition

Release date

April 22, 2025

Server version

1.21.90.20

Editor version

0.9.6

Build version

32724063

Internal version

Windows, Xbox: 1.21.9020.0
Android: 1.21.90.20

Version code

Android:
952109020 (armeabi-v7a, 34)
962109020 (x86, 34)
972109020 (arm64-v8a, 34)
982109020 (x86_64, 34)

Type

Preview

Preview for

1.21.90

Downloads

Server
Windows
Linux

Protocol version

806

Beta 1.21.90.20 (ChromeOS, Android) or Preview 1.21.90.20 (Windows, iOS, iPadOS, Xbox, PlayStation) is the first beta/Preview version for Bedrock Edition 1.21.90, released on April 22, 2025,[1] which improves lead functionality and makes Vibrant Visuals the default graphics mode on supported devices.

Changes

Blocks

Dried Ghast

  • The rarity is now common, matching its ingredients.
  • Has been moved from experimental features and is now available during normal gameplay.

Items

Lead

  • Using a firework rocket to boost while flying with an elytra now causes leashed mobs to unleash.
  • Entities can now be leashed to a pre-existing leash knot by interacting with it.
  • Players can retrieve entities tied to a leash knot by interacting with it.
  • Shears can now be used to remove leash knots.
  • Any leashable entity can now be leashed to any other leashable entity.
    • To leash an entity to another entity, the player must:
      • Have the entity already leashed to themselves.
      • Sneak and interact with the target entity while holding the lead.
    • Leashed entities can now be "stolen" by leashing them again, transferring ownership to the player.
    • If re-leashing an entity would result in immediate leash snapping due to distance, the re-leashing cannot be done.
    • To prevent erratic behavior when leashed to each other, llamas that are leashed no longer attempt to form caravans.
    • A leashed entity cannot be leashed to itself.
    • Baby mobs can only be leashed one way - to another entity; they cannot have other mobs leashed to them.
  • When leashed to a happy ghast, horses, camels, donkeys, mules, boats, chest boats, and sniffers now adjust their position gradually over time, aligning smoothly with their leash holder when suspended mid-air.
  • In all other cases, entities align to the direction they are being pulled and no longer behave erratically when suspended mid-air.
  • Mid-air friction now applies to Boats just like any other entity, meaning they can no longer orbit the player or behave excessively bouncily.
  • The distance at which leads break has been increased to 12 blocks, except for the happy ghast, which has a break distance of 16 blocks.
  • When the lead is pulled, leashed objects will now orient themselves towards the player who has the lead.
  • The distance between centers of entities bounding boxes is used to determine the distance between two leashed entities.
  • Boats and large leashable mobs that cannot fit in a boat (horses, donkeys, mules, camels, and sniffers) when leashed to a happy ghast are rendered with four leashes instead of one.
    • In this configuration, the happy ghast also features a rope layer wrapping around it.
  • Shears can now be used on leashed entities to unleash them, removing both incoming and outgoing leash connections.
  • Players cannot cut other players' leashes.
  • Dispensers can now use shears to unleash leashed entities.

Harness

  • Has been moved from experimental features and is now available during normal gameplay.

Mobs

Happy Ghast

  • The happy ghast now turns more smoothly.
  • Harness goggles will now always be down as long as the harnessed Happy Ghast has at least one mounted player.
  • Has been moved from experimental features and is now available during normal gameplay.

General

Graphical

  • Made Vibrant Visuals the default graphics mode for supported devices.
  • Added the ability to data-drive some of the Vibrant Visuals / Deferred Graphics related settings per biome. Creators can provide multiple versions of atmospherics, color grading, lighting and/or water configurations as long as each has a unique identifier and file name. The reserved JSON names for each group of settings (e.g., lighting/global.json) will continue to function as before. Creators can utilize the minecraft:atmosphere_identifier, minecraft:color_grading_identifier, minecraft:lighting_identifier, and minecraft:water_identifier in Client Biome JSONs to connect particular rendering settings to a given biome. Note that certain parameters, such as tone mapping operators, caustics and wave simulation on/off cannot be customized per biome at this time. Parameters will be spatially blended as players move between biomes.
  • Increased back-scattering of light underwater in Vibrant Visuals.
  • Cloud shadows no longer pop in and out of view when looking around using Vibrant Visuals on Android devices.
  • Painting now renders with correct PBR properties, shadows and illumination when using Vibrant Visuals.
  • Added MERS texture support for signs in Vibrant Visuals.
  • Added new texture assets for a variety of trims, particles, spawn eggs, water and the dark oak boat in Vibrant Visuals.
  • Updated the appearance of metals for a variety of block textures in Vibrant Visuals.
  • Updated the cave vines, chorus flower, pumpkin, fire fly bush and a variety of other plant textures in Vibrant Visuals.
  • Updated the bee, dolphin, ghast, pig saddle and strider textures in Vibrant Visuals.

Technical

API

  • @minecraft/server-ui 2.0.0 is now released, 2.1.0-beta is the new beta version for @minecraft/server-ui.
  • Added integer overflow detection in ScoreboardObjective.addScore. Original value will be retained when overflow is detected.
  • NamespaceNameError now has better error information and the name property value will now be set to NamespaceNameError.
  • BlockComponentPlayerDestroyEvent renamed to BlockComponentPlayerBreakEvent.
  • PlayerPlaceBlockBeforeEvent
    • permutationBeingPlaced renamed to permutationToPlace.
  • BlockCustomComponent
    • onPlayerDestroy renamed to onPlayerBreak.
  • Added lookAt method on Entity.
  • Added customComponentParameters: CustomComponentParameters to ItemCustomComponentInstance.
  • Added customComponentParameters: CustomComponentParameters to BlockCustomComponentInstance.
  • Custom components V2 now support assigning string, array, object, bool, or number.
  • GameMode enum member names changed:
    • survival renamed to Survival.
    • creative renamed to Creative.
    • adventure renamed to Adventure.
    • spectator renamed to Spectator.

Blocks

  • Added a parameter to the culling rules schema to disable culling against full and opaque blocks.
    • condition field is now optional.
    • removed default as a value for condition field in the culling rules schema.
    • added new optional cull_against_full_and_opaque boolean field in the culling rules schema.
      • if not specified, it will be set to true.
      • if set to false culling against full and opaque blocks will not be considered.
  • When custom components v2 experiment is enabled, custom components can be assigned string, array, object, bool, or number:
"components": {  
    "example_namespace:example_component": "foo",    "example_namespace:example_component2": 4,    "example_namespace:example_component3": [        "hello",        "world"    ],    "example_namespace:example_component4": true,    "example_namespace:example_component5": {        "stuff": 4    },}
  • Custom components v2 experiment no longer required to use custom components v2.
  • Custom components v2 is available in JSON versions 1.21.90 and higher
  • minecraft:custom_components deprecated in 1.21.90.
  • The minecraft:material_instances component will no longer produce a content error if the * material is missing.

Commands

  • Added integer overflow detection in /scoreboard players operation for +=, -=, *=, /= and %=. Original value will be retained when overflow is detected.

Components

  • Added the minecraft:remove_in_peaceful component:
    • Determines whether an entity should despawn on "Peaceful" difficulty
  • Content warnings will log missing texture references for minecraft:material_instances block component.
  • Added the minecraft:leashable_to component:
    • Allows players to leash entities to the owner entity, retrieve those already leashed, or free them using shears.
    • Players can leash entities to the owner entity by sneaking and interacting while having entities leashed to themselves.
    • The can_retrieve_from field determines whether players can retrieve entities leashed to the owner entity.
  • Added new fields to the minecraft:leashable component:
    • can_be_cut: Determines whether players can cut both incoming and outgoing leashes by using shears on the entity.
    • spring_type: A presets subfield that defines the type of spring-like force pulling the entity toward its leash holder.
      • Available values:
        • bouncy: Simulates a highly elastic spring that never reaches equilibrium if the leashed entity is suspended mid-air.
        • dampened: Simulates a dampened spring attached to the front of the leashed entity’s collision that reaches equilibrium if the entity is suspended mid-air and aligns with its movement direction.
        • quad_dampened: Simulates four dampened springs connected to the center of each side of the entity's collision that reaches equilibrium if the entity is suspended mid-air and gradually aligns with the leash holder over time.
    • rotation_adjustment: A presets subfield that adjusts the rotation at which the entity reaches equilibrium.

Entity Components

  • Added minecraft:body_rotation_always_follows_head entity component:
    • Ensures the entity's body is always aligned with the head.
    • Does not override the minecraft:body_rotation_blocked component.

Experiments

  • Custom Components v2 experiment removed. Custom Components v2 is enabled when using @minecraft/server version 2.0.0 and above.

Items

  • When using Custom Components v2, custom components can be assigned string, array, object, bool, or number:
"components": {  
    "example_namespace:example_component": "foo",    "example_namespace:example_component2": 4,    "example_namespace:example_component3": [        "hello",        "world"    ],    "example_namespace:example_component4": true,    "example_namespace:example_component5": {        "stuff": 4    },}
  • Custom components v2 experiment no longer required to use custom components v2.
  • Custom components v2 is available in JSON versions 1.21.90 and higher
  • minecraft:custom_components deprecated in 1.21.90.

Network Protocol

  • Added ActorFlags::BODY_ROTATION_ALWAYS_FOLLOWS_HEAD.

Experimental

These additions and changes are accessible by enabling the "Beta APIs" and "Locator Bar" experimental toggles.

Additions

Technical

API

@minecraft/server 2.1.0-beta
  • Added class PlayerHotbarSelectedSlotChangeAfterEvent. This will be triggered every time the hotbar slot changes.
  • Added enum PlayerInventoryType.
  • Added class PlayerInventoryItemChangeAfterEvent. This will be triggered every time an item changes in the player's inventory. This includes the 27 inventory slots and 9 for hotbar.
  • Added stopSound and stopAllSounds to Dimension and Player.
@minecraft/debug-utilities 1.0.0-beta
  • Added new Debug Drawing feature:
    • Added new classes: DebugArrow, DebugBox, DebugCircle, DebugDrawer, DebugLine, DebugShape, DebugSphere, DebugText.
    • Added new global object for accessing and using this new feature: debugDrawer: DebugDrawer.

Changes

General

UI

  • The jump and dash bars no longer take precedence over the locator bar while inactive in Creative Mode.
  • The interaction button in Creative Mode is now moved up for Touch devices so that it no longer covers the locator bar.
  • Player dots on the locator bar now show correctly while using split-screen.
  • The item name tooltip is no longer cut off while the locator bar is enabled in Creative Mode.
  • Player dots on the locator bar now show correctly in third person view while using split-screen.

Technical

API

  • Custom command registration will create an alias from the command name without the namespace.
    • If the name has already been claimed, then the alias will not be created and a content log warning will appear.
  • Removed unused classes: EntityIterator, EntityTypeIterator, FilterGroup, and PlayerIterator.
  • Updated class Container:
    • reverseFind has been renamed to findLast.
    • contains now returns undefined if it fails to find the item.
    • firstEmptySlot now returns undefined if it fails to find an empty slot.
    • firstItem now returns undefined if it fails to find the item.
    • find now returns undefined if it fails to find the item.
    • reverseFindnow returns undefined if it fails to find the item.

Fixes

28 issues fixed

From released versions before 1.21.90

  • MCPE-79331 – Text Background Opacity doesn't work for most text
  • MCPE-80066 – Crimson and warped roots can be lit on fire and burn
  • MCPE-88837 – Piglin brutes do not despawn in Peaceful mode
  • MCPE-181002 – Trident isn't grouped next to tools/weapons in the creative tab
  • MCPE-184566/playsound leaks across dimensions
  • MCPE-187171 – Bundle tootip was overlaps with the item tooltip
  • MCPE-189370 – Pressing up on the left thumbstick or D-pad while in the Graphics Mode dropdown menu takes the user to the top of the Video Settings menu
  • MCPE-190647 – Item breathing animation is not smooth when a world's Days Played count is high
  • MCPE-191029 – Block breaking animations do not stop after pausing the game
  • MCPE-194367 – The top layer of the Snowy Kingdom Preset uses full snow blocks instead of snow layers
  • MCPE-199213 – New items added in 1.21.80.25 preview have extra spaces in their names
  • MCPE-201851 – Happy ghast can be pushed too easily
  • MCPE-212378 – Baby Happy Ghast does not grow up naturally

Other

  • Fixed a bug where directional lighting cut out 8 blocks under the water surface while using Vibrant Visuals.
  • Non-waterlogged Dried Ghast blocks now only play ambient sounds when on top of a Soul Sand or a Soul Soil block.
  • Fixed issue where jungle leaves did not become transparent when setting all leaf types to be transparent.
  • Fixed crash that would sometimes occur when using command blocks.
  • Players mounted on the Happy Ghast no longer appear invisible to other players when the Happy Ghast is immobile.
  • Players mounted on the Happy Ghast no longer have their hitbox displaced when the Happy Ghast is immobile.
  • Happy Ghast no longer becomes a platform when a Player is standing next to it.
  • Fixed bug where piloted Happy Ghast could be moved while non-riding players were standing on it.
  • Fixed a bug where Happy Ghast would keep looking at you after no longer being tempted.
  • Bundle UI now correctly disappears when switching Inventory tabs with controller input.
  • Tapping on the Bundles Tooltip on Touch devices no longer interacts with the UI behind it.
  • Fixed an issue where only changing the access of PlayStation friends to your world would not be saved when exiting the menu.
  • Fixed incorrect warnings for using valid older block ids with minecraft:block_placer component.
  • Fixed query.health in resource packs to return 0 for the Wither once it has died.
  • Fixed the Nether having overworld fog in Vibrant Visuals.

References

  1. "Minecraft Beta & Preview - 1.21.90.20" – Minecraft Feedback, April 22, 2025.

Navigation