Bedrock Edition Preview 1.21.70.20


| Edition | ||||||
|---|---|---|---|---|---|---|
| Release date |
January 30, 2025 | |||||
| Server version | ||||||
| Editor version | ||||||
| Build version |
30719679 | |||||
| Internal version |
Windows, Xbox: 1.21.7020.0 | |||||
| Version code |
Android: | |||||
| Type |
Preview | |||||
| Preview for | ||||||
| Downloads |
Server (1.21.70.20) | |||||
| Protocol version |
780 | |||||
| ||||||
{
"title": "Preview 1.21.70.20",
"images": [
"Bedrock 1.21.70.20 PatchNotes.jpeg",
"Bedrock 1.21.70.20.png"
],
"rows": [
{
"field": "''(link to Bedrock Edition article, displayed as Bedrock Edition)''",
"label": "(link to Edition article, displayed as Edition)"
},
{
"field": "January 30, 2025",
"label": "Release date"
},
{
"field": "(link to Bedrock Dedicated Server 1.21.70.20 article, displayed as 1.21.70.20)–(link to Bedrock Dedicated Server 1.21.70.21 article, displayed as 1.21.70.21)",
"label": "Server version"
},
{
"field": "(link to Bedrock Editor 0.8.6 article, displayed as 0.8.6)",
"label": "(link to Bedrock Editor article, displayed as Editor) version"
},
{
"field": "30719679",
"label": "Build version"
},
{
"field": "'''Windows, Xbox''': 1.21.7020.0<br>'''Android''': 1.21.70.20",
"label": "Internal version"
},
{
"field": "<small>'''Android''':<br />\n952107020 (armeabi-v7a, 34)<br />\n962107020 (x86, 34)<br />\n972107020 (arm64-v8a, 34)<br />\n982107020 (x86_64, 34)</small>",
"label": "Version code"
},
{
"field": "Preview",
"label": "(link to Version types article, displayed as Type)"
},
{
"field": "(link to Bedrock Edition 1.21.70 article, displayed as 1.21.70)",
"label": "Preview for"
},
{
"field": "'''Server (1.21.70.20)'''<br>[https://www.minecraft.net/bedrockdedicatedserver/bin-win-preview/bedrock-server-1.21.70.20.zip Windows]<br>[https://www.minecraft.net/bedrockdedicatedserver/bin-linux-preview/bedrock-server-1.21.70.20.zip Linux]<br>\n'''Server (1.21.70.21)'''<br>[https://www.minecraft.net/bedrockdedicatedserver/bin-win-preview/bedrock-server-1.21.70.21.zip Windows]<br>[https://www.minecraft.net/bedrockdedicatedserver/bin-linux-preview/bedrock-server-1.21.70.21.zip Linux]<br>",
"label": "Downloads"
},
{
"field": "780",
"label": "(link to Protocol version article, displayed as Protocol version)"
}
],
"invimages": [],
"footer": "<table style=\"margin: auto; word-break: break-word;\">\n<tr style=\"background: inherit;\">\n<td style=\"padding: 0.4em\" rowspan=\"2\">[[Bedrock Edition 1.21.62|<span style=\"margin-right:-0.35em\">◄</span>◄ 1.21.62]]</td>\n<td style=\"padding: 0.4em\">'''[[Bedrock Edition 1.21.70|1.21.70]]'''</td>\n<td style=\"padding: 0.4em\" >[[Bedrock Edition 1.21.71| 1.21.71 <span style=\"margin-right:-0.35em\">►</span>►]]</td>\n</tr>\n<tr style=\"background: inherit;\">\n\n<td style=\"padding: 0.4em\">''' Preview 1.21.70.20'''</td>\n<td style=\"padding: 0.4em\">\n[[Bedrock Edition Preview 1.21.70.22| Preview 1.21.70.22 ►]]\n</td>\n</tr>\n</table>"
}
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
- Donkeys now spawn in savannas.
World generation
- 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.
- 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.scriptEventtosystem.sendScriptEvent. - Moved
NamespaceNameErrorReasonfrombetato@minecraft/server 1.18.0. - Moved
system.sendScriptEventfrombetato@minecraft/server 1.18.0. - Moved
NamespaceNameErrorfrombetato@minecraft/server 1.18.0. - Released
InputInfo.getButtonState,InputButton, andButtonStateto@minecraft/server 1.18.0. - Released
InputInfo.getMovementVectorto@minecraft/server 1.18.0. - Released
PlayerButtonInputAfterEvent,AfterEvents.playerButtonInputandInputEventOptionsto@minecraft/server 1.18.0. - Several APIs have been given the
Readonlypermission, which allows them to now be called inside Before Event callbacks.- All methods for
BlockVolume. - All methods for
Vector.
- All methods for
- Changed
spawnEntitymethod onDimensionto now take a variant of either a string orEntityType. - Added
placeFeatureandplaceFeatureRuleAPIs to theDimensionclass. - Added
isValidproperty to theCameraclass.
Blocks
- The
minecraft:map_colorcomponent underwent a schema change: - It is now a JSON object with two fields
colorandtint_method. coloris a required string field expecting an HEX representation of the RGB, prefixed with a # character.tint_methodis a string field that multiplies the color with a predefined tint. Supported values arenone,default_foliage,birch_foliage,evergreen_foliage,grassandwater.- 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:replaceablecomponent 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
infiniteincluding:minecraft:attack:effect_durationminecraft:healable:durationin theeffectslistminecraft:mob_effect:effect_timeminecraft:projectile:durationeasy,durationnormal, anddurationhardcan now all useinfiniteminecraft:food:durationin theeffectslistminecraft:spell_effects:durationin theadd_effectslistminecraft:combat_regeneration:regeneration_duration
JSON Events
- The parameter
durationin theadd_mob_effectevent can now be set toinfinite.
Sounds
- Added support for entity sound variants:
- Entity sounds now have a
variantsfield which defines sound variants based on the runtime entity variantshas akeyfield reading a Molang expression returning a string to select sound variant (eg: querying an enum entity property).variantshas amapfield 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.
- Entity sounds now have a
- 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
- 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 |
- 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 |
- Generates in the following biomes:
- They are tinted by the grass color of the biome they are placed in.
- Can be used in the Composter, with a 30% chance to add a layer.
- Using bone meal on a bush will generate a neighboring bush next to it if possible.
- Can be instantly broken without any particular tool.
- 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
- Nose now extrudes from model.
- New cow variants have been added.
Temperate Cow: The pre-existing cow variant.
- Spawns by default where the cold and warm cow variants do not spawn.
Cold Cow: A variant that spawns in the following biomes:
Warm Cow: A variant that spawns in the following biomes:
- When bred by a player, a baby cow variant will not be chosen by the current biome, but instead randomly selected from one of the parents' variants.
Sounds
- 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.ambientcan be played in any biome.block.sand.ambient.attachedonly 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
EarlyExecution2.0.0-betaand higher now executes with the early execution privilege, scripting below2.0.0-betawill continue to execute without early execution- All after and before event signals
subscribeandunsubscribemethods can now be called in early execution - The following
Systemmethods can now be called in early executionclearJobclearRunrunrunIntervalrunJobrunTimeoutwaitTicks
BlockComponentRegistrymethodregisterCustomComponentcan now be called in early executionItemComponentRegistrymethodregisterCustomComponentcan now be called in early execution
- Added
startupproperty toSystemBeforeEvents - Added
StartupEvent - Added
StartupEventSignal WorldAfterEventsrenamed propertyworldInitializetoworldLoadWorldBeforeEventsremoved propertyworldInitializeWorldInitializeAfterEventrenamed toWorldLoadAfterEventWorldInitializeAfterEventSignalrenamed toWorldLoadAfterEventSignal- Removed
WorldInitializeBeforeEvent - Removed
WorldInitializeBeforeEventSignal - Removed
Dimension.runCommandAsyncas most commands did not actually run asynchronously. If you are looking to run a function asynchronously, please investigate using Jobs viaSystem.runJob. EntityComponent.getEntitymethod throws if the underlying entity is invalid (instead of return undefined previously).EntityInventoryComponent.containerpropertythrows if the underlying entity is invalid (instead of return undefined previously).isValidmethods on various classes have been changed to read only propertiesgetComponents,getComponentandhasComponentnow throw if the Entity is invalidapplyKnockbackmethod 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.EffectTypegetNamemethod now always returns theminecraft:namespace prefix along with the name
EffecttypeIdproperty now always returns theminecraft:namespace prefix along with the name
minecraft:airitem 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
GraphicsModeenum andPlayer.graphicsModeto query a player's current graphics mode on the server. - Added
system.isEditorWorldproperty into@minecraft/serverinbeta BlockLocationIterator- Added
isValid(): booleanmethod tobeta. This method checks if the iterator as been invalidated by modifying the underlining block volume.
- Added
BlockMapColorComponentAPI has been added tobetaTintMethodenum has been added tobeta- Early execution changes in version
@minecraft/server 2.0.0-beta- The following
RegistrationBuildermethods can now be called in early execution:batchmaxAttemptsmaxTickspaddingrequiredrequiredSuccessfulAttemptsrotateTestsetupTicksstructureNametag
registerfunction can now be called in early executionregisterAsyncfunction can now be called in early execution
- The following
API - Molang
- Added
query.graphics_mode_is_anyto 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.jsonunder theminecraft:lighting_settingsobject to control the sky intensity
- This object snippet can be added to
"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
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-189816 –
client_biomefiles withoutfoliage_appearanceandgrass_appearancecomponents 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_inventorycomponent 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.
waterandlavano longer will turn intoflowing_waterorflowing_lavawhen neighbor updates happen.waterandlavanow will respond to queued ticks without needing to change into another block.- Fixed issue where
No more entitiesassert failure occurred when flying through biomes during a storm. - Fixed
world_surfacetype ofheightmap_projectioninminecraft:jigsawto 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.
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
- ↑ "Minecraft Beta & Preview - 1.21.70.20" – Minecraft Feedback, January 30, 2025.