Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Minecraft Bedrock has been updated to 1.26.40. This release introduces stricter entity JSON validation, releases the minecraft:multi_block trait and minecraft:instrument_sound block component from experimental, and adds new controls for entity pushing, knockback, and projectile damage. Pack files are now compressed and archived, and duplicate raw files have been removed to improve performance. It also ships @minecraft/server v2.9.0, with beta releases of @minecraft/server v2.10.0 and @minecraft/server-ui v2.2.0. Editor gains glTF and GLB mesh support, real-time biome chunk synchronization, timeline tools, and improved transaction APIs. Dedicated Server creators can now run pack optimization from the command line. Experimental Drop 3 content includes the Dappled Forest biome, Abandoned Camps, Poplar trees, Cushions, Straw Beds, and Wool Stairs and Slabs.
The following features do not require experimental toggles unless otherwise specified. Experimental items are grouped under the Experimental Technical Updates section at the bottom of this document.
Packaging
Pack files are now compressed and stored in archives. The duplicate raw files previously included in the behavior_pack and resource_pack folders have been removed to improve performance.
Entity JSON validation
Entity definitions that use format_version 1.26.40 or later now fail to load when invalid data is supplied to several components and AI goals. Validate affected content before increasing its format version.
The following actor components now use stricter schemas:
minecraft:cannot_be_attackedminecraft:floats_in_liquidminecraft:ignore_cannot_be_attackedminecraft:wants_jockeyminecraft:on_deathminecraft:on_friendly_angerminecraft:on_hurtminecraft:on_hurt_by_playerminecraft:on_igniteminecraft:on_start_landingminecraft:on_start_takeoffminecraft:on_target_acquiredminecraft:on_target_escapeminecraft:on_wake_with_owner
The following AI components now use stricter schemas:
minecraft:annotation.open_doorminecraft:bucketableminecraft:hideminecraft:jump.dynamicminecraft:jump.staticminecraft:managed_wandering_traderminecraft:persistentminecraft:trade_resupplyminecraft:trust
The following AI goals now use stricter schemas:
minecraft:behavior.charge_held_itemminecraft:behavior.drink_potionminecraft:behavior.eat_blockminecraft:behavior.knockback_roarminecraft:behavior.leap_at_targetminecraft:behavior.move_to_blockminecraft:behavior.napminecraft:behavior.ranged_attackminecraft:behavior.silverfish_merge_with_stoneminecraft:behavior.silverfish_wake_up_friendsminecraft:behavior.snackingminecraft:behavior.squid_diveminecraft:behavior.squid_fleeminecraft:behavior.squid_idleminecraft:behavior.squid_move_away_from_groundminecraft:behavior.squid_out_of_waterminecraft:behavior.stalk_and_pounce_on_targetminecraft:behavior.summon_entity
The following fields have specific migration requirements for format_version 1.26.40 and later:
minecraft:behavior.beg.look_timemust be an object containingminandmaxvalues.minecraft:behavior.float_wander.float_durationmust be an object containingminandmaxvalues.minecraft:behavior.ranged_attack.attack_intervalnow accepts a float range and replacesattack_interval_minandattack_interval_max.
The on_kill event is now mapped correctly for the following goals in entity definitions that use format_version 1.26.40 or later:
minecraft:behavior.delayed_attackminecraft:behavior.melee_attackminecraft:behavior.melee_box_attackminecraft:behavior.stomp_attackminecraft:behavior.use_kinetic_weapon
Previously, on_kill was incorrectly mapped to on_attack and didn't fire when the entity killed its target.
Entity components
Pushable by entity
Added the require_collision_overlap field to presets in minecraft:pushable_by_entity. This field controls whether two entity collision boxes must overlap before pushing occurs.
- Defaults to
trueforformat_version1.26.40 and later. - Defaults to
falsefor earlier format versions to preserve existing behavior.
Apply knockback rules
The minecraft:apply_knockback_rules component is no longer in beta. The component has the following changes:
- Renamed
scale_previous_velocitytoslowdown_scale. horizontal_poweris no longer scaled internally by0.4. Similar horizontal and vertical power values now produce similar knockback on both axes.- Deprecated
horizontal_hit_angle_scale,vertical_hit_angle_scale, andvertical_position_angle_scale. - Added
knockback_modeto control the direction of applied knockback:relative_horizontal— applies horizontal knockback from the attacker toward the target. This value is the default.hit_direction— applies knockback based on the hit direction and point of impact.
Creators using existing horizontal_power values should retest their entities because the internal scaling behavior has changed.
Projectile impact damage
The impact_damage subcomponent of minecraft:projectile has the following changes:
- Added
ceil_pre_critical_damage. Whentrue, damage is rounded up before applying the critical-hit multiplier. power_multipliernow applies independently of difficulty randomization, allowing projectile velocity to scale damage directly.- The default value of
power_multiplierchanged from2to0so that content that doesn't specify either damage field remains unchanged. - Replaced
semi_random_diff_damagewithdifficulty_randomization. Accepted values are:none— ignores world difficulty. This value is the default.additive— adds a difficulty-driven value to base damage and matches the previous behavior ofsemi_random_diff_damage: true.multiplicative— adds a difficulty-driven value topower_multiplierbefore velocity scaling is applied.
Content authored against earlier format versions is upgraded when loaded in 1.26.40 or later to preserve its existing behavior.
Projectile bounce behavior
The should_bounce field in minecraft:projectile is now an enum instead of a Boolean. Accepted values are:
no— the projectile never bounces. This value is the default.if_invulnerable— the projectile bounces when its target is invulnerable to the damage source, such as a player in Creative mode or a player blocking with a shield.if_no_damage_dealt— the projectile bounces whenever no damage is dealt, including because of a damage sensor or invulnerability frames.
Earlier content is upgraded automatically: true becomes if_invulnerable, and false becomes no.
Cursor targeting
Added the minecraft:not_pickable_from_inside entity component. When present, an entity can't be targeted by a cursor hit test while the viewer's point of view is inside the entity's collision box. This component can prevent large or invulnerable entities from blocking interaction with nearby entities and blocks.
Blocks
Multi-block trait
The minecraft:multi_block trait has been released from experimental. Horizontal values for its direction field still require the Upcoming Creator Features experiment.
Added the minecraft:multi_block_feature biome decoration feature. This feature places blocks that are defined with the minecraft:multi_block trait.
The following related fixes are included:
/fillnow places blocks that useminecraft:multi_blockcorrectly.minecraft:sixteen_way_rotationcommand suggestions now display values from0through15.- Sixteen-way placement rotation now uses the same orientation as the existing cardinal- and facing-direction traits.
Rotation
N-way rotation on minecraft:geometry no longer requires the Upcoming Creator Features experiment. The minecraft:sixteen_way_rotation state on the minecraft:placement_direction trait also no longer requires the experiment.
Instrument sound
The minecraft:instrument_sound block component has been released from experimental. Scripts can access its corresponding component API under beta, as described in Experimental Technical Updates.
Item display transforms
Added shelf as an item_display_transforms offset in geometry JSON. It controls item positioning inside a Shelf block. For content authored before 1.26.40, a fixed transform is copied to shelf. Starting with 1.26.40, creators can define fixed for Item Frames and shelf for Shelf blocks independently.
Voxel-shape culling
Vanilla blocks with definitions in the shapes folder now use voxel-shape culling without requiring the Voxel Shapes experiment. Custom blocks that use voxel shapes can therefore cull against any Vanilla block that has a voxel shape.
Fence and stair states
Vanilla fences now expose connection states that creators can inspect:
minecraft:connection_northminecraft:connection_eastminecraft:connection_southminecraft:connection_west
In 1.26.40 and later worlds, fence connection changes send server-side block updates to adjacent blocks. Existing worlds retain the previous behavior.
Vanilla stairs now expose minecraft:corner, with the values none, inner_left, inner_right, outer_left, and outer_right. In worlds with a base game version of 1.26.40 or later, stair corner changes trigger neighboring block updates. Existing worlds retain client-only updates.
Block fixes
- Fixed custom blocks with
minecraft:tickticking more often than expected when placed from a structure containing saved tick data. - Improved brightness sampling consistency between custom and Vanilla blocks.
- Jigsaw block replacement now writes a content log message when it encounters an invalid
final_state.
Crafting
The addition field in minecraft:recipe_smithing_transform now accepts items tagged with minecraft:transform_materials.
Vanilla furnace recipes now define explicit priority values. Creators can use recipe priorities to determine which recipe is selected when multiple furnace recipes match the same input.
Items
Item definitions using format_version 1.26.30 or later must contain at least one entry in minecraft:item.components. Definitions with an empty components object now fail to register and produce a content error instead of falling back to legacy item parsing.
Custom resource-pack item definitions now reliably override Vanilla definitions in the following cases:
- A custom definition using an older
format_versionoverrides a Vanilla item usingformat_version1.16 or later. - A custom definition using a flattened identifier, such as
minecraft:enchanted_golden_apple, overrides a Vanilla definition that uses its legacy identifier.
The minecraft:shooter component can now shoot when no ammunition is defined.
Features and content validation
The content log now reports an error when multiple feature definitions in the same behavior pack use the same identifier.
Generated Minecraft JSON Schema files now use a more granular layout instead of generating one self-contained schema for every registered type. This reduces duplicated schema content for external tools. Generated SharedTypes schemas also include binary-protocol metadata such as ordinal index, control value type, underlying type, and serialization options.
Graphical and resource packs
- Fixed component-rendered custom blocks not displaying emissive and MER effects when held, dropped, or displayed in Item Frames or Shelves with Vibrant Visuals enabled.
- Fixed corrupted actor visuals when Vibrant Visuals was used with PBR resource packs containing actor height maps.
- Fixed high-resolution resource-pack textures appearing blurred when Texture Streaming was enabled.
- Fixed custom dimension fog color not matching time-of-day brightness.
- Fixed custom blocks rendering a solid face through textures when a model face used a UV size of zero.
- Fixed texture bleeding on custom blocks that used automatic block-face UV assignment with undersized textures.
- Particles can now use textures from the
fontfolder without producing an incorrect content log error. - Small geometry using
item_display_transforms>gui>fit_to_frame: falseis centered correctly forformat_version1.21.130 and later.
Commands
- Non-operator players can use player names as command targets where permitted, such as with
/tell. - Non-operator players can expand self selectors where permitted.
/cloneno longer clones partial beds. Both parts must be inside the clone volume./fillnow supports blocks that useminecraft:multi_block.
Dedicated Server
- Fixed
content-log-file-enabled=truenot creating a content log file. - Added command-line options that run Bedrock Dedicated Server in pack optimization mode. Creators can use this mode to optimize packs for testing and distribution inside or outside Marketplace.
- Fixed some player connection issues by allowing game servers to attempt self-repair.
- Added an NBT nesting limit of 512 entries for list and compound tags. This prevents crashes caused by excessively nested NBT data.
Scripting API
Released @minecraft/server v2.9.0
This release ships @minecraft/server v2.9.0 with the following promotions from beta to stable:
Block.getPartsBiomeSearchOptionsDimension.calculateClosestBiomeFromSeed, renamed fromDimension.findClosestBiomePlayerStartBreakingBlockAfterEventandPlayerStartBreakingBlockAfterEventSignalPlayerCancelBreakingBlockAfterEventandPlayerCancelBreakingBlockAfterEventSignalPlayerBreakingBlockEventOptionsLootItem.conditionsSoundInstance.stop
SoundInstance is also available in @minecraft/server v1.2.0. Player.playSound returns a SoundInstance in v1.2.0, and Dimension.playSound returns one in v1.11.0.
The following API changes and fixes are also included:
- Added
EffectTypes.getAll()to return all registered effect types. It can't be called in restricted-execution mode. - Moved
Player.nameplateDepthTestedandPlayer.nameplateRenderDistancefrom beta to v2.8.0. - Fixed
Dimension.fillBlockswhen called with a block filter. - Improved
Dimension.fillBlocksperformance when using aBlockVolume. - Fixed
LootItemreturning incorrectNamevalues for custom items and blocks. - Fixed hopper minecarts not firing
EntityItemPickupAfterEventandEntityItemPickupBeforeEventfor items above the cart. - Fixed invulnerability timer bypass when a before-hurt event reduced damage below the source amount.
Editor
Custom Mesh Tool
- Added support for glTF and GLB files.
- Added a Scale By axis selector and a Change Mesh button.
- Imported meshes remain loaded after placement or cancellation, allowing repeated placement without reimporting the file.
Biomes and dimensions
- Added real-time chunk synchronization to the Biome Data Assignment Tool.
- Fixed allowed biome tags being combined with logical AND. A biome now qualifies when it has any allowed tag.
- The Dimensions Tool returns players to their last-known location in a dimension, or to the origin on their first visit.
- World locations are stored per dimension and shared across clients.
- The dimension menu now marks the player's current dimension.
Vibrant Visuals
- The resource-pack generation button now exports edited Vibrant Visuals configurations and provides a link to the generated folder.
- Fixed timeline scrubbing not previewing Vibrant Visuals color and value keyframes across the day/night cycle.
- Fixed sliders remaining interactive when their associated Enabled option was turned off.
Cinematic and timeline tools
- Added a timeline player component with a scrubbable timeline and playback controls for time-based previews.
- Added a Timeline panel to the Cinematic Tool for editing camera-path keyframes.
- Renamed Control Points to Keyframes in the Cinematic Tool.
- Added a timeline drag handle for changing cinematic duration.
Transactions
Transaction processing has been updated to support long-running Editor operations:
TransactionManager.undoandTransactionManager.redoare now processed over time.- Transaction recording and management moved from
TransactionManagertoPendingTransaction. - Create transactions with
TransactionManager.createPendingTransaction, then finalize staged changes withPendingTransaction.submitorPendingTransaction.discard. - Added pending transaction support to
ClipboardItem.writeToWorldand Brush Shape Manager APIs.
Creators with Editor scripts that use the previous transaction handlers should migrate to PendingTransaction.
Other Editor improvements
- Added Structures to the View menu, Keyboard Settings to the File menu, and Biome Data Assignment to the World menu.
- Added the Dimensions Panel to the Dimensions submenu.
- Added pagination and selector menus for tabs. The mouse wheel can move between pages on the tool rail, action bar, and floating-window tabs.
- Added scrolling for menu bars and context menus that exceed the available window size.
- Added a bounding-box highlight to the selected block in Block Inspector.
- Added Pale Oak, Dark Oak, Nether Brick, and Mangrove fence options to the Farm Generator.
- Copying a double chest with Paste Preview or the Structure Tool now preserves it as one double chest.
- Updating a structure from the clipboard now requires confirmation before overwriting it.
Experimental Technical Updates
The features in this section are experimental or beta and might change in future releases.
Drop 3 experimental features
This release adds experimental world-generation content, blocks, and items that creators can use when testing worlds and packs:
- Dappled Forest — a new forest biome that generates near cold biomes. It includes Poplar trees, fallen Poplar trees, Shelf Mushrooms, Red Shrubs, Leaf Litter, and biome-specific ambient sounds.
- Abandoned Camp — a new structure with variants designed for the biome where it generates. Camps can contain Chests, Barrels, Straw Beds, and biome-specific structure pieces, and they use procedural trees.
- Poplar wood set — Poplar trees have Red, Orange, and Yellow leaf variants, matching falling-leaf particles, Poplar Saplings, and a new family of Poplar wood blocks.
- Red Shrub and Shelf Mushroom — new decorative plants for the Dappled Forest. Shelf Mushrooms have small and large forms and can be grown with Bone Meal.
- Wool Stairs and Wool Slabs — new stair and slab blocks in all 16 wool colors.
- Cushions — placeable, sittable items in 16 colors. Cushions align to the placement grid, require a supporting surface, and have no collision.
- Straw Beds — single-use beds crafted from Hay Bales. They skip the night without setting a player's spawn point.
Note
Cushions don't currently generate in Abandoned Camps, but are available in the Creative inventory while the experiment is enabled.
Add-On upgrader
The experimental JSON document upgrader now reports configuration parsing failures and upgrade-aborting errors in its error log. Files outside a pack are ignored instead of causing the upgrade to fail.
Beta @minecraft/server v2.10.0
Added @minecraft/server v2.10.0-beta. Key additions include:
EntityStartSneakingAfterEventandEntityStopSneakingAfterEvent, with their signal classes.EntityTamedBeforeEvent,EntityTamedAfterEvent, their signal classes,EntityTamedEventFilter,WorldBeforeEvents.entityTamed, andWorldAfterEvents.entityTamed.Camera.addShake,Camera.stopShaking,CameraShakeOptions, andCameraShakeType.Dimension.cloneBlocks, withCloneModevaluesCopy,ForceCopy, andMove.BlockVolumeBase.getClosestandBlockVolumeBase.getFarthest.BlockQueryOptionsforDimension.getBlocks, including closest, farthest, and location options.CompoundBlockVolumeand its supporting action and position-relativity enums.PrimitiveShapesManager.getShapesandPrimitiveShapeQueryOptions.Player.getSplitScreenSlot. TheplayfabIdproperty onPlayerwas renamed topersistentId.SystemBeforeEvents.watchdogTerminateand the related event, signal, and reason types.TextPrimitive.lineGapHeight.
Beta sound APIs
The beta APIs provide additional control over tracked sounds:
- Added
SoundInstance.setVolume,setPitch,fade, andseekTo. - Added
loopCounttoPlayerSoundOptionsandWorldSoundOptions. A value of-1loops indefinitely while a reference to theSoundInstanceis retained. - Added
soundEventId,recipient,durationInfo, andidtoSoundInstance. - Added
SoundDurationInfoand playback-position tracking. Playback position respects calls toseekTo,pause, andresume. - Added
WorldAfterEvents.soundCompleted, which identifies the completed sound by itsSoundInstance.id. - Added
SoundDefinition,SoundDefinitionDurationInfo,SoundDefinitionFilter, andSoundDefinitionRegistry. - Added
World.soundDefinitionRegistry.Player.playSoundcan accept aSoundDefinitioninstead of a string identifier.
Behavior packs can declare server-side sounds in sounds/sound_definitions.json with the experimental minecraft:server_sound_definitions payload. Definitions can provide duration tracking, music metadata, and custom tags that scripts can query and filter.
Beta @minecraft/server-ui v2.2.0
@minecraft/server-ui v2.2.0-beta has a peer dependency on @minecraft/server v2.10.0-beta and includes the following additions:
- Added
CustomForm.imagefor displaying an image in a custom form. - Added
ImageOptions.onClickandImageOptions.tooltip. - Added
MessageBox.button1WithOptionsandMessageBox.button2WithOptionsfor button images and tooltips. - Fixed custom-form images not being centered.
- Fixed
ModalFormDataandMessageFormDatanot being shown directly after aCustomFormorMessageBox.
Beta server administration
The beta @minecraft/server-admin module adds the following allow-list APIs:
AllowList.clearAllowList.entriesAllowListEntry, with optionalnameandxuidpropertiesAllowList.add,remove, andcontainsnow accept aPlayerorAllowListEntryinstead of a stringAsyncPlayerJoinBeforeEvent.splitScreenSlot
Block dynamic properties and loot
Added the experimental carry_over_block_entity_data loot function. When dynamic_properties is true, dynamic properties on a block entity are copied to the resulting item stack. This functionality requires the Upcoming Creator Features experiment.
The related beta APIs include CarryOverBlockEntityDataFunction and ItemBlockDynamicPropertiesComponent, which provides get, set, and totalByteCount functionality.
Block dynamic-property storage also has the following experimental changes:
- Each pack receives its own 1 KB block dynamic-property limit instead of sharing a global limit.
- Properties are grouped by manifest UUID instead of module UUID.
- Block-entity properties use readable NBT serialization.
Caution
The storage format changed. Existing saved block dynamic properties are lost when moving to this experimental implementation.
Experimental multi-block directions
Added y_rotation_offset support to the minecraft:sixteen_way_rotation placement-direction trait.
The minecraft:multi_block trait supports the experimental horizontal directions north, south, east, and west when Upcoming Creator Features is enabled. Horizontal multi-blocks that cross into an unloaded chunk delay placement until both chunks load, and pending placements are saved to level storage.
Blocks using minecraft:multi_block have the following restrictions:
- They can't also define
minecraft:connection,minecraft:placement_position, orminecraft:block_entity. - If
minecraft:placement_directionis present, onlyminecraft:cardinal_directioncan be enabled. - Their
minecraft:geometrycomponent can't definen_way_visual_rotation.
Experimental block sound component
Added minecraft:sound for assigning sounds to a custom block and its permutations. It requires format_version 1.26.20 or later and the Upcoming Creator Features experiment. Values in blocks.json override values supplied by this component, including values in permutations.
The beta scripting API for minecraft:instrument_sound provides methods to get and play the instrument assigned to a block face. The component can be retrieved from custom and Vanilla blocks; blocks without an explicit component return the default sounds.
Voxel Shapes
With the Voxel Shapes experiment enabled, custom blocks can cull hidden faces against new occlusion shapes for one-arm through four-arm wall connections and full wall connections.
RenderDragon Features for Creators
The Point Light Shadow Quality setting has been merged into Point Light Quality. These settings are available only when the RenderDragon Features for Creators experiment is enabled for Vibrant Visuals.