Bedrock Edition Preview 1.21.70.20

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

Bedrock Edition

Release date

January 30, 2025

Server version

1.21.70.201.21.70.21

Editor version

0.8.6

Build version

30719679

Internal version

Windows, Xbox: 1.21.7020.0
Android: 1.21.70.20

Version code

Android:
952107020 (armeabi-v7a, 34)
962107020 (x86, 34)
972107020 (arm64-v8a, 34)
982107020 (x86_64, 34)

Type

Preview

Preview for

1.21.70

Downloads

Server (1.21.70.20)
Windows
Linux
Server (1.21.70.21)
Windows
Linux

Protocol version

780

Beta 1.21.70.20 (ChromeOS, Android) or Preview 1.21.70.20 (Windows, iOS, iPadOS, Xbox, PlayStation) is the first beta/Preview version for Bedrock Edition 1.21.70, released on January 30, 2025,[1] which adds new cow variants, leaf litters, wildflowers, bushes, firefly bushes, and fixes bugs.

Changes

Mobs

Donkey

World generation

Dark Forest

  • 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.

Short Grass

  • Now generate slightly sparser in meadows.

Technical

API - Scripting

  • Unhandled rejected promises in scripting now include callstacks when logged.
@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.getButtonState, InputButton, and ButtonState to @minecraft/server 1.18.0.
  • Released InputInfo.getMovementVector to @minecraft/server 1.18.0.
  • Released PlayerButtonInputAfterEvent, AfterEvents.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.

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, 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"
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.

Components

  • 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

JSON Events

  • The parameter duration in the add_mob_effect event can now be set to infinite.

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"
                }
              }
            }
          }
        }
      }
    }
  }
}

Experimental

These additions and changes are accessible by enabling the "Beta APIs" and "Drop 1 2025" experimental toggles.

Additions

Blocks

Leaf litter

  • A new type of decorative block which can be found in forests, dark forests and wooded badlands.
  • Can have different amounts of leaves in one block space.
    • Up to four leaf litter pieces can be placed in the same block space like pink petals.
    • Placing a leaf litter into an already placed leaf litter block increases the amount of leaves.
  • Can be placed in four orientations.
  • Can be created by smelting any type of Leaves block.
  • Can be used as fuel for smelting.
  • Has unique block sounds.
Ingredients Smelting recipe
Any leaves block
Invicon Oak Leaves.png: Inventory sprite for Oak Leaves in Minecraft as shown in-game linking to Oak Leaves with description: Oak LeavesInvicon Spruce Leaves.png: Inventory sprite for Spruce Leaves in Minecraft as shown in-game linking to Spruce Leaves with description: Spruce LeavesInvicon Birch Leaves.png: Inventory sprite for Birch Leaves in Minecraft as shown in-game linking to Birch Leaves with description: Birch LeavesInvicon Acacia Leaves.png: Inventory sprite for Acacia Leaves in Minecraft as shown in-game linking to Acacia Leaves with description: Acacia LeavesInvicon Jungle Leaves.png: Inventory sprite for Jungle Leaves in Minecraft as shown in-game linking to Jungle Leaves with description: Jungle LeavesInvicon Dark Oak Leaves.png: Inventory sprite for Dark Oak Leaves in Minecraft as shown in-game linking to Dark Oak Leaves with description: Dark Oak LeavesInvicon Mangrove Leaves.png: Inventory sprite for Mangrove Leaves in Minecraft as shown in-game linking to Mangrove Leaves with description: Mangrove LeavesInvicon Cherry Leaves.png: Inventory sprite for Cherry Leaves in Minecraft as shown in-game linking to Cherry Leaves with description: Cherry LeavesInvicon Pale Oak Leaves.png: Inventory sprite for Pale Oak Leaves in Minecraft as shown in-game linking to Pale Oak Leaves with description: Pale Oak LeavesInvicon Azalea Leaves.png: Inventory sprite for Azalea Leaves in Minecraft as shown in-game linking to Azalea Leaves with description: Azalea LeavesInvicon Flowering Azalea Leaves.png: Inventory sprite for Flowering Azalea Leaves in Minecraft as shown in-game linking to Flowering Azalea Leaves with description: Flowering Azalea Leaves
Invicon Coal.png: Inventory sprite for Coal in Minecraft as shown in-game linking to Coal with description: CoalInvicon Charcoal.png: Inventory sprite for Charcoal in Minecraft as shown in-game linking to Charcoal with description: CharcoalInvicon Oak Log.png: Inventory sprite for Oak Log in Minecraft as shown in-game linking to Oak Log with description: LogInvicon Oak Planks.png: Inventory sprite for Oak Planks in Minecraft as shown in-game linking to Oak Planks with description: Overworld PlanksInvicon Lava Bucket.png: Inventory sprite for Lava Bucket in Minecraft as shown in-game linking to Lava Bucket with description: Lava BucketInvicon Block of Coal.png: Inventory sprite for Block of Coal in Minecraft as shown in-game linking to Block of Coal with description: Block of Coal

Invicon Leaf Litter.png: Inventory sprite for Leaf Litter in Minecraft as shown in-game linking to Leaf Litter with description: Leaf Litter

Wildflowers

  • A new type of flower which grow in birch forests, old growth birch forests and meadows.
  • Can have different amounts of flowers in one block space.
    • Up to four wildflowers can be placed in the same block space like pink petals.
    • Placing a wildflower into an already placed wildflowers block increases the amount of flowers.
    • Using bone meal on wildflowers will produce more Wildflowers.
  • Can be placed in four orientations.
  • Can be crafted into yellow dye.
Ingredients Crafting recipe
Wildflowers
Invicon Wildflowers.png: Inventory sprite for Wildflowers in Minecraft as shown in-game linking to Wildflowers with description: Wildflowers
Invicon Yellow Dye.png: Inventory sprite for Yellow Dye in Minecraft as shown in-game linking to Yellow Dye with description: Yellow Dye

Bush

Firefly bush

  • Generates in Swamps and near Rivers.
  • When it's dark, glowing firefly particles appear around the firefly bush, up to 5 blocks away.
  • Can be used in the Composter, with a 30% chance to add a layer.
  • Using bone meal on a firefly bush will spawn another firefly bush item.
  • Emits a light level of 2.
  • Can be instantly broken without any particular tool.

Mobs

Cow

Sounds

Deserts and Badlands

  • 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.

Technical

API - Scripting

@minecraft/server 2.0.0-beta
  • 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
  • getComponents, getComponent 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

API - Molang

  • Added query.graphics_mode_is_any to Molang which accepts any of the following parameters: simple, fancy, deferred, raytraced. These parameters are all graphics modes that are available in the settings menu.

Graphical

  • Added a new version (1.21.70) for the lighting JSON schema in the Deferred Technical Preview. This new version adds support for controlling the intensity of sky light, which affects both the contribution of legacy sky lighting as well as sky reflections. See updated documentation on the Learning Portal for more details.
    • This object snippet can be added to lighting/global.json under the minecraft:lighting_settings object to control the sky intensity
"sky": {
    "intensity": 1.0 // Float value between [0.1 - 1.0]
}
  • Improved the quality of screen space reflections, specifically cases where holes would appear in reflections at certain angles in the Deferred Technical Preview.

Fixes

26 issues fixed

From released versions before 1.21.70

  • MCPE-25228 – Beacon Beam disappears when moving 70 blocks up/down away from it.
  • MCPE-56926 – Foxes don't take lava damage
  • MCPE-116152 – Sea pickle cannot be placed on lightning rod
  • MCPE-118688 – Donkeys don't spawn in savanna biomes
  • MCPE-153515 – Barrier blocks cull chunk rendering
  • MCPE-185361 – Items can't be moved from creative inventory to player inventory
  • MCPE-185531 – Structure blocks' texture flickers when placed
  • MCPE-188457 – The player's hand still bobs if you hold an item while the game is paused
  • MCPE-189224 – Rideable Entity inventory transparent background is too dark
  • MCPE-189816client_biome files without foliage_appearance and grass_appearance components cause biomes to fall back to incorrect colors
  • MCPE-189889 – Water does not flow on Magma or Soul Sand

Other

  • 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.
  • Fixed a mismatch between server and client when continuously building that caused orientation sensitive blocks to sometimes change to the wrong block.
  • 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.
  • Fix "Reset Random Tick Speed" button not working when editing an existing world on Realms.
  • 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.
  • Fixed an issue where dark forests were missing trees along their northern borders with other biomes.
  • 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.
  • Fixed issue where No more entities assert failure occurred when flying through biomes during a storm.
  • Fixed world_surface type of heightmap_projection in minecraft:jigsaw to generate on top of water and leaf blocks.
  • Fixed a bug with water surface rendering that caused specular highlights to be much lower than they should have been in the Deferred Technical Preview.
  • Resolve crash when changing point light shadow settings under Deferred Graphical Settings.

1 issue fixed

From released versions before 1.21.70

  • REALMS-11759 – Unable to change Random Tick speed back to 1 after changing to a higher value.

References

  1. "Minecraft Beta & Preview - 1.21.70.20" – Minecraft Feedback, January 30, 2025.

Navigation