Minecraft: Java Edition cover

Minecraft: Java Edition

Minecraft: Java Edition - 1.19.4 CHANGESTECHNICAL CHANGESEXPERIMENTAL FEATURESFIXED BUGS IN 1.19.4GET THE RELEASE

The update_1_20 experiment has also been updated with a first look at the Sniffer, Archaeology, Armor Trims and Cherry Grove features.

CHANGES

  • Updated Horse Breeding
  • Jukeboxes have changed to be at parity with Bedrock
  • Interacting with armor or elytra items in-hand will now swap them with equipped gear
  • The camera tilt when hurt is now based on the direction of incoming damage
  • Potions colors have been adjusted to make different types of potions more distinguishable
  • Potions no longer have an enchantment glint due to it obscuring the color of the potion contents
  • Enchantment glint on items and armor is now more subtle
  • Armor Stands now preserve custom names when placed and broken
  • Vexes now use a separate charging animation when empty-handed
  • Tweaks to recipe unlocking to make discovering vital crafting recipes easier for new players
  • Updated the Create New World screen
  • New accessibility options and improvements
  • Updated the Realms screen to be more in line with the Singleplayer and Multiplayer screens
  • Added a notification system for Realms to tell you about important information about your Realm
  • Added "Credits & Attribution" button in the Options menu

HORSES, DONKEYS AND LLAMAS

The speed, jump height and health of a baby is now a variation of the average of the parents' attributes, rather than being biased towards the average possible value.

This change makes horse breeding a viable way of getting great horses, if a player starts with good parents and puts in enough time and Golden Carrots.

JUKEBOX

  • Emits a note particle above it while playing a music disc
  • While playing a music disc, it will emit a redstone signal of 15
  • Droppers and hoppers can now interact with it

CREATIVE MENU

  • Added painting variants to the creative menu
  • Paintings with a pre-defined variant will now display the author and title in the item description when hovered over

RECIPE UNLOCKING

  • The Crafting Table recipe is unlocked immediately on creating a new world
  • The Crossbow recipe is no longer unlocked by sticks
  • The Soul Campfire recipe is no longer unlocked by sticks

UPDATED CREATE NEW WORLD SCREEN

  • The screen is now organized into three tabs
    • The Game-Tab allows to set the world name, Gamemode, Difficulty and whether to allow cheats
    • The World-Tab allows to set the World-Type and Seed, and to toggle the generation of structures and the bonus chest
    • The More-Tab provides access to the Game Rules and DataPack Selection Screen
  • Tabs can be switched with the keyboard by pressing Ctrl+Tab and Ctrl+Shift+Tab
  • Specific tabs can also be navigated to by pressing Ctrl+Tab Number
    • For example, Ctrl+2 navigates to the second tab
  • Removed the Import Settings button and the corresponding Export Settings button in the Edit World Screen
  • Added a screen to easily enable/disable experimental features
    • The screen can always be found under the More-tab
    • In snapshots, a shortcut button can be found under the Game-tab

ACCESSIBILITY

  • Added an accessibility onboarding screen for players launching the game for the first time
  • Auto-Jump is now off by default
  • Added arrow key navigation
  • Added high contrast resource pack
  • The resource pack screen is now keyboard-navigatable
  • Changed how tooltips in the menu UI are positioned so buttons are still readable
  • Added a tooltip in the key binds screen that specifies which key binds are conflicting
  • Added a "Damage Tilt" accessibility option that controls the amount the camera shakes when being hurt
  • Added two new options in the accessibility menu for adjusting the speed and transparency of enchantment glints
  • Added a "Notification Time" accessibility option that changes how long notifications such as unlocked recipes, advancements, subtitles and selected item names are visible for

ARROW KEY NAVIGATION

  • Menu screens can now be navigated by using the arrow keys
  • When navigating with arrow keys, sliders need to be activated by pressing Enter or Space to start changing the value

HIGH CONTRAST RESOURCE PACK

  • Added a built-in resource pack that enhances the contrast of UI elements
  • Added a new option in the Accessibility menu that enables the high contrast resource pack
  • This only affects the menu UIs for now, but we’ll be looking to bring this to gameplay UIs in the future as well

TECHNICAL CHANGES

  • The data pack version is now 12
  • The resource pack version is now 13
  • Added a group of entities to display items, blocks and text
  • Added entities to detect interactions and attacks
  • Added data-driven damage types
  • Added a damage command for applying damage to entities
  • Added ride command to mount and dismount entities
  • The clone command now supports cloning to and from different dimensions
  • A new string source is now available for the data modify command
  • New execute sub-commands: if dimension, if loaded, on, positioned over, summon
  • Added a new type of atlas configuration source: paletted_permutations
  • Pressing F3+S will now dump contents of dynamic textures (like atlases, maps, etc.) to screenshots/debug/
  • Added fallback fields to translate text components
  • Out-of-bound arguments in translate formats are no longer silently ignored
  • Added the following game events:
    • entity_dismount with a vibration frequency of 6
    • entity_mount with a vibration frequency of 7
  • Changed the following game events:
    • item_interact_finish now has a vibration frequency of 2 instead of 14
  • Removed heldItemTooltips option from options.txt
  • Added a network protocol feature for forcing bundle of packets to be processed within same client tick
  • Added --pidFile argument to dedicated server command line for printing process id to file
  • The vanilla resource pack en_us language file is now sorted alphanumerically by key
  • Added show_notification field to recipes
    • Accepts a boolean which determines if a notification is shown when unlocking this recipe
    • defaults to true if isn't specified
  • A new recipe type smithing_transform has been added for the updated Netherite Upgrade recipe
  • A new recipe type smithing_trim has been added for the new Armor Trim recipe
  • A new recipe type crafting_decorated_pot has been added for the new Decorated Pot recipe
  • New registries trim_pattern and trim_material have been added for the armor trim system
  • Smithing table has temporarily two menu types
    • Old menu without Smithing Template slot has been renamed to legacy_smithing
      • Will be removed when Armor Trim feature stops being an experimental feature
    • New menu with Smithing Template slot was added called smithing
  • Added new flag (value 128) to HideFlags NBT field for hiding armor trim item tooltips

RESOURCE PACK FORMAT

  • The enchantment glint now has two separate texture files: enchanted_glint_entity.png and enchanted_glint_item.png
  • The texture format used to dynamically scale buttons and sliders has been updated to always include fixed 20px borders on the left and right
  • Slider textures are now defined in a separate slider.png file
  • The Create New World screen now uses a separate light_dirt_background.png for its background, unlike other screens

COMMANDS

CLONE

The clone command now supports specifying the source and target dimensions.

New syntax:

clone [from <sourceDimension>] <begin> <end> [to <targetDimension>] <destination> ...

Parameters:

  • sourceDimension: id of dimension to clone from
  • targetDimension: id of dimension to clone to

DAMAGE

New command to apply damage to entities.

Syntax:

  • damage <target> <amount> [<damageType>] [at <location>]
  • damage <target> <amount> [<damageType>] [by <entity>] [from <cause>]

Parameters:

  • target: The entity to damage
  • amount: Amount of damage to inflict
  • damageType: The type of damage to inflict
    • This determines how the damage affects the entity as well as which death message is displayed
  • entity: The entity inflicting the damage
  • cause: The cause of the damage, in the case of indirect damage
    • Example: When shot by an Arrow, the entity is the Arrow projectile while cause might be a Skeleton
  • location: The location the damage originated at (when no entity caused the damage)
    • For instance, location might represent the location of a Bed exploding in the Nether

DATA

New source available:

  • string <entity|block|storage> [path] [start] [end] - reads a value as text, resulting in a string value

New arguments:

  • start: Index of first character to include at the start of the string
  • end: Index of the first character to exclude at the end of the string

EFFECT

  • infinite is now a valid option for effect durations
    • Infinite effect durations show up as "∞" in the player inventory view

EXECUTE

EXECUTE IF|UNLESS

New conditions available for the execute if|unless sub-command:

  • execute if|unless loaded <pos> - checks if the position given is fully loaded (in regard to both blocks and entities)
  • execute if|unless dimension <dimension> - checks if the execution is in a matching dimension

Parameters:

  • pos: Block position to check
  • dimension: A dimension id

EXECUTE ON

New execute sub-command for selecting entities based on relation to the current executing entity:

  • execute on <relation>

Relations:

  • vehicle - the entity that the executing entity is riding
  • passengers - all entities directly riding the executing entity (no sub-passengers)
  • controller - the entity that is controlling the executing entity (for example: first passenger in a boat)
  • owner - the owner of the executing entity, if it is a tameable animal (like cats, wolves or parrots)
  • leasher - the entity leading the executing entity with a leash (might be a leash knot in case of being attached to a fence)
  • target - the attack target for the executing entity
  • attacker - the last entity that damaged the executing entity in the previous 5 seconds
  • origin:
    • shooter, if the executing entity is a projectile (like Arrow, Fireball, Trident, Firework, Thrown Potion, etc.)
    • thrower, if the executing entity is an item
    • source of effect, if the executing entity is an Area Effect Cloud
    • igniter, if the executing entity is a Primed TNT
    • summoner, if the executing entity is Evoker Fangs or a Vex

If the relation is not applicable to the executing entity or there are no entities matching it, the selector returns zero elements.

EXECUTE POSITIONED OVER

New execute sub-command for finding positions on top of a heightmap. Changes the height of the execution position to be on top of the given heightmap.

Syntax:

  • execute positioned over <heightmap>
Heightmaps

A heightmap records the highest position in a column of blocks according to some criteria. Available options:

  • world_surface: Any non-air block
  • motion_blocking: Any motion blocking material (e.g. ignores flowers and grass)
  • motion_blocking_no_leaves: Any non-leaf motion blocking material
  • ocean_floor: Any non-fluid motion blocking material

EXECUTE SUMMON

New execute sub-command for summoning a new entity and binding the context (@s) to it. Meant to simplify entity setup and reduce the need for raw NBT editing.

Syntax:

  • execute summon <entity id>

FILLBIOME

  • The amount of network data transmitted when using the fillbiome command has been optimized

TITLE

  • All time arguments to title times are now time durations and work with t, s and d suffixes

WEATHER

  • The duration of the weather change now matches the game's regular weather cycle if not specified
  • The duration parameter is now a time duration in ticks and works with t, s and d suffixes
    • To retain existing functionality, you need to add an s suffix to pre-existing commands

RIDE

New command to allow entities to start or stop riding other entities.

Syntax:

  • ride <target> mount <vehicle>
    • Makes a single target mount a single vehicle
    • The command will fail if:
      • vehicle is a player
      • target is already riding a vehicle
      • target and vehicle are the same entity
      • vehicle is already a passenger (direct or indirect) of target
  • ride <target> dismount
    • Dismounts target from any vehicle it is riding
    • Fails if target is not riding anything

DAMAGE TYPES

Damage Types are a new registry that can be extended through data packs. A Damage Type determines how damage is handledby the game. This includes which attributes the damage has as well as which death message is used when an entity diesdue to that type of damage.

Example:

{ "exhaustion": 0.1, "message_id": "arrow", "scaling": "when_caused_by_living_non_player" }

Fields:

  • message_id: The message id used for deaths caused by this damage type
    • Will be combined with other string fragments to form a translation key
  • exhaustion: The amount of hunger exhaustion caused by this damage type
  • scaling: Whether this damage type scales with difficulty levels. Possible values:
    • never: Damage is always the same
    • always: Damage always scales with difficulty
    • when_caused_by_living_non_player: Damage scales with difficulty if it was caused by a living entity who is not a player
  • effects: Optional field controlling how damage manifests when inflicted on players. Possible values:
    • hurt (default): the default hurt sound
    • thorns: Thorns hurt sound
    • drowning: Drowning sound
    • burning: A single tick of burning sound
    • poking: Berry bush poke sound
    • freezing: Freeze tick sound
  • death_message_type: Optional field that controls if special death message variants are used. Possible values:
    • default (default): No special death message logic is applied
    • fall_variants: Show a variant of fall damage death instead of a regular death message, e.g. death.fell.assist.item
    • intentional_game_design: Show the intentional game design message instead of a regular death message

Damage type tags control many aspects of how damage from different sources are interpreted.

PREDICATES

DAMAGE TYPE PREDICATES

The following fields have been removed from damage type predicates: is_projectile, is_explosion, bypasses_armor,bypasses_invulnerability, bypasses_magic, is_fire, is_magic, is_lightning.

A new tags array has been added, with the predicate matching if all entries match. Each entry has two fields:

  • id: The ID of a damage type tag
  • expected: Whether the damage is expected to have or not have the tag for the predicate to match

GAME RULES

  • Added commandModificationBlockLimit, controlling the maximum number of blocks changed in one execution of clone, fill and fillbiome
  • Added doVinesSpread game rule, determining if vines will spread to nearby blocks
    • Defaults to true

TEXT COMPONENTS

Added an optional fallback field to translate text components.

  • The new field is a string that will be used in place of translation if it is missing
  • If fallback is missing, the old behavior (i.e. using the key itself as the translation) is preserved

DISPLAY ENTITIES

Three new entities have been added for flexible display of items, blocks and text

  • Those entities, similarily to marker, don't tick and have no collisions or physics
  • Models render at entity position, with normal rotation around X and Y axis (so it can be controlled by teleport commands), but also with additional arbitrary model transform

COMMON DATA TYPES

Tag contents for display entities include some new data types with a complex structure. Any form can be used for modifying data, but only one form is used for saving.

TRANSFORMATIONS

Arbitrary affine transform.

  • Matrix form: array of 16 numbers, describing row-major matrix
  • Decomposed form (used for saving): object with following fields:
    • translation - 3d vector
    • left_rotation, right_rotation - rotation
    • scale - 3d vector
    • Transforms are composed in order translation, left_rotation, scale, right_rotation

ROTATIONS

  • Quaternion form (used for saving): array of 4 numbers, describing components (x, y, z, w)
  • Axis-angle form: object with following fields:
    • axis - unit 3d vector
    • angle - in radians

INTERPOLATION

Some properties of display entities can be interpolated. That means that clients will see gradual changes over time instead of instantaneous jumps.

Display entities keep track of current and previous values of interpolated values:

  • All properties marked as "interpolated" are part of a single interpolation set
  • Any update to interpolated property will cause all values of interpolation set to be saved as "current"
    • Data command executions that do not change value of property (even if it's present in NBT) do not count as updates
    • Updates are synchronized to clients at most once per tick, so multiple updates within command will still count as a single update
  • The last values generated before an update are saved as "previous"
  • If interpolation is enabled, the entity will transition between "previous" and "current" values over interpolation_duration ticks
  • Interpolation can be started by writing to the start_interpolation field (this field is not normally present in NBT)
    • The value in this field is a delay in ticks between client receiving the update and interpolation start
    • A value of 0 ticks means that interpolation will start in next client tick after receiving the update
    • Positive values increase this delay further
  • Interpolation will end (entity fully in "current" state) in start_interpolation + interpolation_duration ticks after receiving the update
  • The interpolation target can be updated without setting start_interpolation, but it will still behave as if it was started at the moment of the last update to start_interpolation
    • That means that if the value is updated, but more than interpolation_duration ticks have passed since last start_interpolation update, the entity will immediately jump to new values

COMMON PROPERTIES

All display entity types have the following fields:

  • transformation - the transformation applied to model (after normal entity orientation). Defaults to identity. Interpolated
  • billboard - option to control if entity should pivot to face player when rendered:
    • fixed - no rotation (default)
    • vertical - entity can pivot around its vertical axis
    • horizontal - entity can pivot around its horizontal axis
    • center - entity can pivot around its center point
  • brightness - if present, overrides light values used for rendering. Omitted by default (which means rendering uses values from entity position). Object has two fields:
    • sky - value of skylight, 0..15
    • block - value of block light, 0..15
  • view_range - maximum view range of this entity. Actual distance depends on client-side render distance and entity distance scalling. Default value 1.0 (roughly the same as fireball)
  • shadow_radius - size of shadow. Defaults to 0 (no shadow). Interpolated
  • shadow_strength - strength of the shadow. Controls the opacity of the shadow as a function of distance to block below. Defaults to 1. Interpolated
  • width, height - describe size of culling bounding box
    • Bounding box spans vertically y to y+height and horizontally width/2 in all directions from entity position
    • If either field is set to 0, culling is disabled
    • Both default to 0
  • glow_color_override - override glow border color. Defaults to -1 (use team color). Alpha component is ignored

ITEM_DISPLAY

Displays a single item stack.

  • Stack can be changed with commands by setting slot container.0

Fields:

  • item - item stack to display. Same format as in inventory (example: {id: "minecraft:dirt", Count: 1})
  • item_display - describes item model transform applied to item (as defined in display section in model JSON)
    • Values: none (default), thirdperson_lefthand, thirdperson_righthand, firstperson_lefthand, firstperson_righthand, head, gui, ground, fixed

BLOCK_DISPLAY

Displays a block state.

  • Does not display all block entities, even if they would normally be created on block placement (like chests)

Fields:

  • block_state - block state to display. Same format as item held by endermen (example {Name:"minecraft:dirt"})

TEXT_DISPLAY

Displays a text component.

Fields:

  • text - text to display. Components are resolved with the context of the display entity
  • line_width - line width used to split lines (note: new lines can be also added with \n characters). Defaults to 200
  • text_opacity - opacity (alpha component) of rendered text. Defaults to 255. Interpolated
  • background - color of background. Includes alpha channel. Defaults to 0x40000000. Interpolated
  • default_background - if true, rendering uses default text background color (same as in chat). Defaults to false
  • shadow - whether the text should be displayed with a shadow. Defaults to false
  • see_through - whether the text should be visible through blocks. Defaults to false
  • alignment - how the text should be aligned
    • Values: center (default), left, right

Note: text display backgrounds uses new shader types rendertype_text_background and rendertype_text_background_see_through.

INTERACTION ENTITIES

A new type of entity that records attacks ("left clicks") and interactions ("right clicks"). Interactions are invisible and of a custom size.

Fields:

  • width: Width of the entity's bounding box (default 1)
  • height: Height of the entity's bounding box (default 1)
  • attack: Records the last attack action on the entity
  • interaction: Records the last interaction action on the entity
  • response: Boolean specifying if interacting should trigger a response (arm swing, sound effects, etc - default false)

ACTION FORMAT

When an action is stored, it always has two fields:

  • player: The UUID (in standard integer array format) of the player performing the action
  • timestamp: The timestamp of the game tick when the event happened (stored as a long)

ADVANCEMENT TRIGGERS

  • Interacting with an Interaction entity triggers player_interacted_with_entity
  • Attacking an Interaction entity triggers player_hurt_entity

EXECUTE ON WITH INTERACTIONS

The Interaction entity targets the player who last interacted with it. That makes the following possible:

  • execute on attacker: execute as the last player who attacked the entity
  • execute on target: execute as the last player who interacted with the entity

TAGS

BLOCK BEHAVIOR

  • Fire burns out faster in certain biomes, and this is now controlled by the increased_fire_burnout biome tag

MOB SPAWNING

  • The only_allows_snow_and_gold_rabbits biome tag has been renamed to spawns_gold_rabbits to match its behavior
  • White Rabbit variants are now controlled by the spawns_white_rabbits biome tag
  • Fox variants are now controlled by the spawns_snow_foxes biome tag

MOB BEHAVIOR

  • Snow Golems melting in warm biomes is now controlled by the snow_golem_melts biome tag
  • Only mobs in the dismounts_underwater entity tag will now force the rider to dismount when underwater

NETWORK PROTOCOL

  • Clients now reset their Secure Chat session state when receiving the login packet

PACKET BUNDLES

  • Added new delimiter packet to clientbound game protocol
  • All packets between two delimiters are guaranteed to be processed within same tick
  • For security reasons this feature is not supported in the serverbound direction

PALETTED PERMUTATIONS

  • paletted_permutations is a new type of atlas configuration source used to dynamically generate new textures in memory based on a set of color palettes
  • Color palettes allow you to swap out the colors of a texture without having to supply all files for the variants of a texture in a resource pack
  • This is useful for things like armor trims, where you want to be able to change the color of parts of the armor without having to create a new texture for each color
  • The paletted_permutations source has a set of required parameters:
    • textures A list of namespaced locations of base textures
      • These textures will be used to generate variants of them that have been modified by color palettes
    • palette_key A namespaced location of a color palette key file
      • A color palette key is used to define the set of key pixel colors we want to swap out with the color palettes defined below
    • permutations A map of permutations from suffix to a namespaced location of a color palette file
      • The suffix is appended at the beginning to the resource location of the output variant textures, with a _ character separating the suffix and the base texture name
      • The color palette is a texture file with a set of pixels that are used for replacing pixels that match the color palette key in each base texture
      • The number of pixels in each color palette must be the same as that of the palette_key defined for this source
      • Key matching is done by comparing the RGB values of each pixel in the palette_key to the RGB values of each pixel in the color palette
      • The alpha channel is ignored for key matching, but in the resulting texture the alpha channel is multiplied with the color palette's alpha channel
      • Pixels that do not match the palette_key are copied over to the resulting texture as-is
  • After defining a paletted_permutations source, you can then reference those namespaced output textures in other resources in your resource pack

For example, if you have the following paletted_permutations source:

{ "type": "paletted_permutations", "textures": [ "minecraft:item/leather_helmet", "minecraft:item/leather_chestplate", "minecraft:item/leather_leggings", "minecraft:item/leather_boots" ], "palette_key": "minecraft:colormap/color_palettes/leather_armor_color_key", "permutations": { "red": "minecraft:colormap/color_palettes/red", "green": "minecraft:colormap/color_palettes/green", "blue": "minecraft:colormap/color_palettes/blue" } }

You can then reference the resulting textures in other resources like this:

{ "textures": { "layer0": "minecraft:item/leather_helmet_red", "layer1": "minecraft:item/leather_chestplate_green", "layer2": "minecraft:item/leather_boots_blue" } }

TRIM PATTERNS & MATERIALS

  • Trim patterns and materials for armor are defined by the server through the trim_pattern and trim_material registry respectively
    • As a result, new trim patterns and materials can be added via data packs
  • These are synchronized to clients when they join the server
    • However, clients must have an accompanying resource pack to see those registered trim patterns and materials
    • The paths to these textures are inferred based on the filename of the pattern json, and will try to find the textures within the same namespace as the trim pattern's name field
  • The following data is defined by a trim pattern:
    • asset_id which is a namespaced id used to infer texture locations and localization
    • template_item which is the id of the smithing template item used to apply the trim pattern
    • description which is a text component used for displaying the pattern name of an armor trim when hovering an armor itemstack
  • The following data is defined by a trim material:
    • asset_name which is a string used as a suffix for armor trim texture locations
    • ingredient which is the id of the ingredient item used to apply the trim material
    • item_model_index which is a float which defines the item model override each armor item model should target to change their visuals for this material
    • override_armor_materials which is an optional map of armor material to overridden color palette
      • Map key is the armor material that this trim material wants to override with a different color palette
      • Map value is the name of the color palette that will be used when this trim material is applied to an armor piece with the corresponding armor material
    • description which is a text component used for displaying the material name of an armor trim when hovering an armor item stack
      • The style defined in this description is applied to the armor trim pattern description as well

EXPERIMENTAL FEATURES

The following changes only apply when one or more Experiments is turned on, either by activating the corresponding experimental data pack or by turning it on in the Experiments screen while creating the world.

  • Added Smithing Template items
  • Redesigned the Smithing Table
  • Changed how Netherite equipment is crafted
  • Added a new armor trimming system to visually customize your armor
  • Added Sniffer mob and Torchflowers
  • Added the Cherry Grove biome
  • Added Archaeology
  • Mob Heads can now be placed on top of Note Blocks without sneaking

SMITHING TEMPLATES

  • Smithing Tables have been redesigned into a workstation for physical equipment upgrades and modifications
  • Alongside slots for combining a piece of equipment and materials, there is now a required slot for an item type called Smithing Templates
  • Smithing Templates define what type of upgrade you will be making to equipment
    • It specifies both what type of items you can upgrade, and which ingredients are valid to customize the upgrade
    • There are currently two categories of Smithing Templates: Armor Trim and Netherite Upgrade
  • Smithing Templates are consumed when used to upgrade an item in the Smithing Table
  • You can craft a copy of a Smithing Template in the Crafting Table with 7 diamonds + 1 block of material that the template is made out of + 1 smithing template, which will output 2 of the same Smithing Template

NETHERITE EQUIPMENT

  • Netherite equipment crafting now also requires a Netherite Upgrade Smithing Template
  • Netherite Upgrade Smithing Templates can be found randomly in all Bastion Remnant chests, and there is a guarantee of 2 in every Treasure Room Bastion Remnant
  • This change was made for a variety of reasons:
    • Increase the time players utilize Diamond equipment before Netherite
    • Make Netherite equipment a more significant achievement in the game's progression
    • Adapt Netherite more naturally into the new Smithing Table crafting system

ARMOR TRIMS

  • You can now visually customize your armor with a variety of unique trims at the Smithing Table
  • Armor trims are purely visual with no gameplay benefits, and can only be applied to Helmets, Chestplates, Leggings and Boots
    • All trim patterns are visually the same on an armor's item icon, but the color will still change based on the trim material
    • To check which trim pattern a piece of armor has, you can hover over it in the inventory
  • Armor Trim Smithing Templates can be found all throughout the world, and each of the following structures contain their own unique Smithing Template:
    • Pillager Outpost: Sentry Armor Trim
    • Desert Pyramid: Dune Armor Trim
    • Shipwreck: Coast Armor Trim
    • Jungle Temple: Wild Armor Trim
    • Ocean Monument: Tide Armor Trim
    • Ancient City: Ward Armor Trim
    • Woodland Mansion: Vex Armor Trim
    • Nether Fortress: Rib Armor Trim
    • Bastion Remnant: Snout Armor Trim
    • Stronghold: Eye Armor Trim
    • End City: Spire Armor Trim
  • Smithing Templates are found in chests in their respective structure
    • The Ocean Monument has no chests, Elder Guardians sometimes instead drop a Smithing Template upon death
  • Some Armor Trim Smithing Templates are rarer than others, so be on the lookout for them to impress your friends!
  • An armor trim has two properties: a pattern and a material
    • The pattern is defined by the Smithing Template used to apply the trim, and represents the visual pattern of the trim
    • The material is defined by what ingredient you used to apply the trim, and represents the color of the trim
  • The viable ingredients you can use to define the color of your armor trim are the following:
    • Iron, Copper, Gold, Lapis, Emerald, Diamond, Netherite, Redstone, Amethyst, Quartz

SNIFFER

  • The Sniffer is the mob vote winner of Minecraft Live 2022
  • Sniffers cannot be tempted or tamed
  • Sniffers are passive, friendly mobs
  • Sniffers sniff the air and occasionally dig for seeds, which produces a Torchflower Seed
  • Sniffers can be bred by feeding them Torchflower Seeds
  • The Sniffer is currently only available as a Spawn Egg in the creative inventory

TORCHFLOWERS

  • The Torchflower seed can be planted on farmland and grows into a flower
  • The seed can be used to breed two Sniffers
  • The full-grown flower can be harvested and replanted but can also be crafted into a dye

CHERRY GROVES

  • Added a new Cherry Grove biome, with pretty cherry blossom trees
    • The biome can be found in the mountains, in similar places as Meadows
  • Added a new Cherry wood set, with all the corresponding wooden things you can make from it
  • Cherry Leaves have pink particles falling underneath
  • Added a new Pink Petals block with lots of pink flowers on the ground
    • Each pink petal block can contain up to 4 petals
    • Using bone meal on it increases the number of petals
    • Placing a petal on a block increases the number of petals
    • Mining the block gives you the number of petals in the block

ARCHAEOLOGY

THE BRUSH

  • The brush is a craftable item you can use to brush things

SUSPICIOUS SAND

  • Can be found in Desert Temples and Desert Wells
  • This fragile block is hard to spot and easy to destroy, so be careful!
  • Brushing the Suspicious Sand with a Brush will extract objects that were buried long ago

POTTERY SHARDS

  • Pottery Shards have pictures on them
  • They cannot be crafted and are only found by brushing Suspicious Sand

DECORATED POTS

  • Crafting four Pottery Shards together will create a Decorated Pot with a picture on each side
  • Brick items can be used instead of Pottery Shards in the Decorated Pot recipe
    • The sides that were made from Brick items will not have pictures
  • Smash a Decorated Pot with any block-breaking tool to break it apart and get the Pottery Shards back
    • Hitting the pot with bare hands, silk touch tools, or any other item, will drop an intact pot instead

FIXED BUGS IN 1.19.4

Around 150 bugs were fixed in this release. View the list on the issue tracker.

GET THE RELEASE

To install the Release, open up the Minecraft Launcher and click play! Make sure your Launcher is set to the "Latest Release” option.

Cross-platform server jar:

Report bugs here:

Want to give feedback?

Minecraft - 1.19.70 (Bedrock)

The latest Minecraft update has arrived! This release brings several quality of life improvements to the game, changes to horse breeding, plus early versions of Archaeology and the Sniffer as new experimental features from the upcoming 1.20 update. Let’s see what’s inside!

  • Fixed multiple crashes that could occur during gameplay
  • When breeding horses, the baby horse now has a chance of being better than its parents in speed, jump strength, and health
  • Improvements to player emotes
  • Take an early look at archaeology and the sniffer mob with experimental features
  • Fixes to over 30 community-reported issues

NOTE: There is a delay with the update on Nintendo Switch and the update will be available soon.

Please continue to upvote and report any new bugs at bugs.mojang.com and leave us your feedback at feedback.minecraft.net.

Changes:

Player Emotes

Several improvements have come to the emote system in Bedrock Edition!

  • Emote usage now appears in chat
  • The emote wheel now has four slots with an improved interface
  • Quick emoting with new hotkeys
  • Easier sorting of emotes
  • Creating a new character now automatically applies four default emotes

Check out the New Emote Features for Bedrock Edition article for more details.

Vanilla Parity:

Improvements have been made with vanilla parity to align with Java Edition, especially with horse breeding, mobs, and blocks.

Gameplay

  • Fixed an issue where night could not be skipped if one or more players were on the death screen
  • Eating and drinking animations are now always centered, regardless of screen aspect ratio

Mobs

  • Breeding horses can now produce random variants (MCPE-129071)
  • When breeding horses, the baby Horse now has a chance of being better than its parents in speed, jump strength, and health. This change is intended to make Horse breeding a viable way of getting great Horses, if a player starts with good parents and puts in enough time and Golden Carrots
  • Horses cannot be pushed over Fences covered by Carpets anymore (MCPE-164717)
  • Ghasts’ sound volume will now fade the further they are from the player (MCPE-35222)
  • Villagers will now emit anger particles when hit by a player outside of a village
  • Fixed a bug where Zombified Piglins would spawn in the Nether in light levels above 11
  • Minecarts can now eject mobs into liquid blocks (MCPE-120078)
  • Witches will now drink a Fire Resistance Potion when standing on a Campfire

Blocks

  • Bells that are connected to multiple blocks no longer drop when one block is broken
  • Note Block sound attenuation over a distance is now linear (MCPE-164935)
  • Impact sounds of projectiles on Amethyst blocks and clusters are now audible
  • Dead Bush will now drop Sticks when broken with any tool except Shears, even those with the Silk Touch enchantment. Vines will drop nothing in the same situation (MCPE-163246)

Experimental Features:

The Sniffer and Archaeology are now available for testing that are coming to Minecraft 1.20, now known as Trails & Tales! The sniffer and archeology are two experimental features that you can try out in this release.

As these features are still incomplete, in development, and considered a work in progress, be sure to backup your worlds before enabling experimental features. The features can be enabled by turning on the “Next Major Update” toggle in world settings.

Archaeology

  • Added the Brush item
  • Added the Decorated Pot block
  • Added four Pottery Shards (Arms Up, Skull, Prize, and Archer)
  • Added the Suspicious Sand block
  • Added Suspicious Sand to the Desert Temple
  • Added Suspicious Sand to the Desert Well

Brush

  • The Brush is a craftable item you can use to brush things

Pottery Shards and Decorated Pots

  • Pottery Shards have pictures on them. They cannot be crafted and must be found in the world. Hint: you will need a Brush! By crafting four of these together you can create a Decorated Pot with a picture on each side.
  • You can also use Brick items instead of Pottery Shards in the crafting recipe. The sides that were made from Brick items will not have pictures.
  • Smash a Decorated Pot with any block-breaking tool to break it apart and get the Pottery Shards back! Or hit it with your fist to pick up the pot without breaking it.

Suspicious Sand

  • Desert Temples and Desert Wells now contain Suspicious Sand. This fragile block is hard to spot and easy to destroy, so be careful!
  • If you manage to find the Suspicious Sand and brush it with your Brush, you will extract objects that were buried long ago.
  • We're giving you an early look at these Archaeology features. We want to spend more time developing them. Please let us know where you think we can improve or expand!

Sniffer

  • The Sniffer is the mob vote winner of Minecraft Live 2022 and the first [HS1] extinct mob brought to life and added to the game
  • Sniffers cannot be tempted or tamed
  • Sniffers are passive friendly mobs
  • Sniffer sniffs in the air and occasionally dig for seeds

Torchflower

  • The Torchflower seed can be planted on farmland and grows into a flower
  • The seed can be used to breed two Sniffers
  • The full-grown flower can be harvested and replanted but can also be crafted into a dye

Fixes:

Stability and Performance

  • Fixed an issue where simultaneously pressing the "Mine" and "Place" button on any input device while targeting a Structure Block could cause the game to crash (MCPE-155689)
  • Fixed a crash on Nintendo Switch when attempting to log in while set to local network mode
  • Fixed a crash that could occur when entering a 1.7.1.0 world in 1.8 or above (MCPE-165564)

Gameplay

  • The player's crosshair now properly mines/interacts with items in front of them while swimming/gliding, rather than 1 block above their position (MCPE-57257)
  • Players no longer take rapid damage when touching damaging blocks (MCPE-165347)
  • Projectiles shot while swimming/gliding no longer spawn from above the player's position (MCPE-31896)
  • Items dropped while swimming/gliding, manually or on death, no longer spawn from above the player's position (MCPE-31896)

Mobs

  • Fixed a bug where an Allay holding a Lead wasn't able to be leashed unless the player held a full stack of 64 Leads in hand
  • Parrots will no longer shake while on a player riding a Horse that is turning mid-jump
  • Fixed a bug causing global entities (e.g. Ender Dragon and projectiles) to stop rendering when out of normal entity render distance (MCPE-161136)

Blocks

  • Sounds from all Button types and Lever are now controlled by "Blocks" slider in Audio Settings (MCPE-166420)
  • Redstone source can now power a single block from different sides at the same time (MCPE-163651)
  • Destroying Mangrove Log or Mangrove Wood now properly cause leaves to decay
  • End Crystals occupying the same space as a block will no longer cause that block to disappear
  • Players are now able to place top Slabs in blocks that are only partially blocked by an entity (MCPE-155016)
  • Players can no longer see through partial blocks when sneaking or riding in third person (MCPE-156273)
  • Composter now always consumes an item when becoming full (MCPE-162020)
  • Importing experimental blocks into a non-experimental world using the Structure Block will now correctly place unknown blocks, which are not interactable
  • Error messages about building outside the world height limits no longer appear when simply interacting with blocks at the world height limits from certain angles (MCPE-152935)
  • Fixed a bug where Observers would not detect changes due to corrupted data (MCPE-150506)
  • Hoppers now pull in items from above them through all blocks that have a lower height than a full block (MCPE-55824)

Items

  • Crossbows now shake while charging arrows (MCPE-152952)
  • Spawn eggs for Snow Golem, Wither, and Trader Llama now appear correctly in the inventory and hotbar
  • Written Books can now be moved in the inventory even when the player has identical Written Books

Touch Controls

  • Updated the How to Play screen with information on new touch controls
  • Changing input modes from Gamepad to Touch while an item is selected will return the selected to the inventory or drop it
  • Fixed an issue on the Furnace screen where double-tapping the output window caused other slots to become unselectable (MCPE-164589)
  • Fixed a bug where stack splitting was automatically initiated on the first slot when opening a small Chest
  • Allowed left and right D-pad buttons to keep input when the forward button is pressed (MCPE-155199)
  • Added the leave Boat button when the player falls from a height within in the Boat (MCPE-158489)
  • Fixed an issue that prevented players from removing equipped armor by tapping on an item or block in the Creative inventory (MCPE-165790)
  • Tweaked the keyboard interaction on Android devices for text input fields

User Interface

  • Fixed an issue where the "Mine" tooltip was appearing when targeting a block with a Trident in Creative game mode (MCPE-44846)
  • Navigating right with controller left stick on the Marketplace sidebar now collapses it
  • Added a new 'Marketplace' icon to the Marketplace screen sidebar
  • Ocean Explorer, Woodland Explorer, and Treasure Maps now show the proper icon in the inventory (MCPE-163464)
  • Fixed a bug where mouse scrolling on the Friend Options dropdown would not scroll the dropdown contents
  • Resolved an issue where graphical elements of the Sign-In/Sign-Up screen could extend beyond the bounds of the dialog container
  • When starting a new world in Pocket UI, removed the "Press Open Chat to open chat" message for players with text-to-speech turned off
  • Double-clicking on the Furnace output slot will no longer drop the item (MCPE-165079)
  • Fixed a bug where moving the player or camera with a controller while text-to-speech for UI was turned on would cause the narrator to say "X of Y"
  • Fixed a bug where the Edit World screen couldn't be opened for a world if the corresponding world directory had a space in it (MCPE-166763)
  • The loading screen no longer flickers when entering the Nether in immersive VR mode
  • The swap item animation now plays when switching hotbar items of the same type with the same durability

Spectator Mode

  • Phasing through blocks in third person view no longer makes the camera zoom in and out towards the player’s head (MCPE-160467)
  • End Gateways can no longer be used in Spectator Mode (MCPE-165689)

Realms

  • Added a Sign In button on the Realms screen if player is not yet signed in
  • Fixed the issue that the "Find Friends" button and the "Close Realm" buttons would be autofocused when the "Members" or "Subscription" tab was clicked
  • Fixed a bug where players were not able to create another world on Realms if the first Create World on Realms attempt was interrupted
  • Fixed a bug where players could see duplicate applied packs with unknown titles the first time they entered the Realms settings screen
  • Resetting a Realms World now correctly updates the World settings
  • Removed the Close button in the Play on Realm popup dialog when using controllers
  • Updated the reset/replace world confirmation text to make it clearer what each function does
  • Fixed the world list not updating with a new Realm immediately after accepting an invite
  • In Realms Settings->Members, the dropdown '...' menu can now be open/closed with the Enter key and navigated with arrow keys

Technical Updates:

Updated Add-On Template Packs

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

General

  • Behavior packs with scripts can now be removed from worlds
  • Item loot table conditions are no longer ignored in-game when used inside functions (MCPE-164582)
  • Carrots now display the proper name in item tooltips when used in can_place_on and can_destroy item components (MCPE-160838)
  • In JSON formats 1.19.70 and later, blocks fail to load if the "condition" field in Block Permutations is not a valid Molang string
  • Crafting Table component no longer appends "tile." when defaulting to use block name for crafting table label

Wool Blocks

Wool has been flattened into separate blocks, namely:

  • white_wool
  • orange_wool
  • magenta_wool
  • light_blue_wool
  • yellow_wool
  • lime_wool
  • pink_wool
  • gray_wool
  • light_gray_wool
  • cyan_wool
  • purple_wool
  • blue_wool
  • brown_wool
  • green_wool
  • red_wool
  • black_wool

Commands, recipes, loot tables, etc. will still work with wool and an aux value or color state, but wool will not be suggested in the command prompt. Instead, the new wool block names will.

Commands

  • Fixed a crash with deferred command execution when the executing actor is removed before execution (MCPE-165374)
  • Summon command no longer causes some entities to be spawned in at an angle
  • Removed support for field "data" in commands /clone, /execute, /fill, /setblock and /testforblock beyond version 1.19.70, eg. /setblock ~ ~ ~ minecraft:wool 1 will only have its equivalent /setblock ~ ~ ~ minecraft:wool ["color":"orange"] supported
    • Here are some additional examples[JW1] [JW2] [JW3] :
      • /setblock ~~~ green_wool [] [] is equivalent to the old 0
      • /setblock ~~~ wood ["wood_type": "oak"]
      • /setblock ~~~ coral ["dead_bit" : true , "coral_color" : "blue" ]
      • /setblock ~~~ coral_fan ["coral_fan_direction" : 1, "coral_color" : "pink"]
      • /setblock ~~~ wool ["color": "blue"]
      • /fill ~ ~ ~ ~5 ~5 ~5 gold_block [] replace air
    • More information about commands can be found at learn.microsoft.com/minecraft/creator/commands
  • Volume arguments no longer floor the selector's position (MCPE-162237)
  • Selecting targets by volume will now select all entities whose hitbox collides with the volume box. This is versioned for 1.19.70 and later (MCPE-162237)
    • Previous behavior works as expected on versions less than 1.19.70
  • Volume arguments for selectors (dx, dy, dz) now support float values (MCPE-163863)
  • Replaceitem and loot replace block commands no longer place items in Cauldrons (MCPE-129472)
  • Rotation in the teleport command is now relative to the executor of the command instead of the target. Old usage of rotations in commands will stay relative to the target mob for backwards compatibility

Entity Properties

  • Fixed an issue where Entity Property value changes could be discarded if done by events fired as part of removal of active behaviors caused by other events

Mobs

  • Witch potion drinking and ranged attack behaviour is now defined in its .json file
  • The game will no longer create a content error when Bee spawn eggs are used on a Mob Spawner

GameTest Framework (Experimental)

  • Test
    • Added optional searchDistance parameter to assertEntityPresent(entityTypeIdentifier: string, blockLocation: BlockLocation, searchDistance?: number, isPresent?: boolean)
    • Added assertEntityInstancePresentInArea(entity: Entity, isPresent?: boolean) to check if an entity instance is present in the test area
    • Made the searchDistance parameter optional in assertItemEntityPresent

API (Experimental)

  • IMPORTANT BREAKING CHANGE: The classes Location and BlockLocation no longer exist in the beta script API. All usages of these classes have been changed to use the Vector3 interface (that is, { x: 1, y: 2, z: 3} objects)
  • Also, note that several changes were made to properties and get/set methods across objects (listed below) to make them more consistent in calling structure
    • World Events
    • Added event entityDie - It is fired when an entity dies
    • Modified projectileHit to be a readOnly property on the Events class
  • Player
    • Added method getSpawnPosition - Gets the spawnPoint position
    • Added property spawnDimension - Gets the spawnPoint dimension
    • Added method setSpawn(spawnPosition : Vec3, spawnDimension : Dimension) i Sets spawnPoint with a position and dimension
    • Added method clearSpawn - Sets the spawnPoint position and dimension to undefined
    • Renamed function tell to sendMessage
  • World
    • Renamed function say to sendMessage
    • Added method 'getDefaultSpawnPosition' - Gets the spawnPoint position
    • Added method 'setDefaultSpawn'(spawnPosition : Vec3) - Sets the spawnPoint position within 'overworld' dimension
  • BeforeChatEvent
    • Added function getTargets(): Player[] - Gets chat Player targets
    • Added function setTargets(players: Player[]) - Sets chat Player targets
    • Removed property targets
  • BeforeDataDrivenEntityTriggerEvent
    • Added function getModifiers(): DefinitionModifier[] - Gets entity definition modifiers
    • Added function setModifiers(modifiers: DefinitionModifier[]) - Sets entity definition modifiers
    • Removed property modifiers
  • BoolBlockProperty
    • Added function getValidValues(): boolean[] - Gets all valid boolean values for the BoolBlockProperty
    • Removed property validValues
  • Converted BlockHitInformation to an interface
  • ChatEvent
    • Added function getTargets(): Player[] - Gets chat Player targets
    • Removed property targets
  • Converted Color to an interface
  • DataDrivenEntityTriggerEvent
    • Added function getModifiers(): DefinitionModifier[] - Gets Entity definition modifiers
    • Removed property modifiers
  • DefinitionModifier
    • Added function getComponentGroupsToAdd(): string[] - Gets component groups that will be added with the DefinitionModifier
    • Added function setComponentGroupsToAdd(newGroups: string[]): void - Sets component groups that will be added with the DefinitionModifier
    • Added function getComponentGroupsToRemove(): string[] - Gets component groups that will be removed with the DefinitionModifier
    • Added function setComponentGroupsToRemove(removedGroups: string[]): void - Sets component groups that will be removed with the DefinitionModifier
    • Added function getTriggers(): Trigger[] - Gets event triggers of the DefinitionModifier
    • Added function setTriggers(newTriggers: Trigger[]): void - Sets event triggers of the DefinitionModifier
    • Removed property componentGroupsToAdd
    • Removed property componentGroupsToRemove
    • Removed property triggers
  • DirectionBlockProperty
    • Added function getValidValues(): Direction[] - Gets all valid direction enum values for the DirectionBlockProperty
    • Removed property validValues
  • Entity
    • Added function getViewDirection(): Vector3 - Gets view direction of the Entity
    • Added function getRotation(): XYRotation - Gets rotation of the Entity
    • Added function getVelocity(): Vector - Gets velocity of the Entity
    • Removed property viewDirection
    • Removed property rotation
    • Removed property velocity
  • Added function playAnimation(animationName: string, options?: PlayAnimationOptions)
    • Plays the specified animation for an entityReplaced general setVelocity call with methods to apply impulses to entities:
  • Added function clearVelocity(): void - Sets the current velocity of the Entity to zero
  • Added function applyImpulse(vector: Vector3): void - Applies impulse vector to the current velocity of the Entity
  • Added function applyKnockback(directionX: number, directionZ: number, horizontalStrength: number, verticalStrength: number): void - Applies knockback to the Entity in specified direction based on vertical and horizontal strength
  • Removed function setVelocity
  • EntityAgeableComponent
    • Added function getDropItems(): string[] - Gets items that drop when entity grows
    • Added function getFeedItems(): EntityDefinitionFeedItem[] - Gets items that can be fed to the entity
    • Removed property dropItems
    • Removed property feedItems
  • EntityBreathableComponent
    • Added function getBreatheBlocks(): BlockPermutation[] - Gets blocks entity can breathe in
    • Added function getNonBreatheBlocks(): BlockPermutation[] - Gets blocks entity can't breathe in
    • Removed property breatheBlocks
    • Removed property nonBreatheBlocks
  • EntityHealableComponent
    • Added function getFeedItems(): FeedItem[] - Gets healing items for the EntityHealableComponent
    • Removed property items
  • Converted EntityHitInformation to an interface
  • EntityRideableComponent
    • Added function getFamilyTypes(): string[] - Gets supported rider entity types
    • Added function getSeats(): Seat[] - Gets rider information for each seat
    • Removed property familyTypes
    • Removed property seats
  • EntityTameableComponent
    • Added function getTameItems(): string[] - Gets tame items of the EntityTameableComponent
    • Removed property tameItems
  • FeedItem
    • Added function getEffects(): FeedItemEffect[] - Gets effect of the FeedItem
    • Removed property effects
  • IntBlockProperty
    • Added function getValidValues(): number[] - Gets all valid integer values for the IntBlockProperty
    • Removed property validValues
  • ItemDurabilityComponent
    • Added function getDamageRange(): NumberRange - Gets the range of numbers that describes the chance of the item losing durability
    • Removed property damageRange
  • Converted NumberRange to an interface
  • ProjectileHitEvent
    • Added function getBlockHit(): BlockHitInformation - Gets block hit information from the ProjectileHitEvent
    • Added function getEntityHit(): EntityHitInformation - Gets entity hit information from the ProjectileHitEvent
    • Removed property blockHit
    • Removed property entityHit
  • StringBlockProperty
    • Added function getValidValues(): string[] - Gets all valid string values for the StringBlockProperty
    • Removed property validValues
  • ItemStack
    • ItemStack can now be constructed using a string identifier
    • Removed constructor parameter data
    • Removed property data
    • Removed function clearLore - To clear lore, call setLore with an empty array or undefined
    • Setting nameTag to an empty string will now clear the name tag
    • Setting nameTag to a string longer than 255 characters will now result in an exception
    • Setting amount greater than the maximum stack size will now clamp the value to the maximum stack size
    • Setting amount to a value less than 1 will now result in an exception
    • Item lore can now be cleared by calling setLore(undefined) or setLore([])
    • Fixed a bug where calling function ItemStack.getComponent or ItemStack.getComponents would fail on ItemStacks returned from EntityItemComponent.itemStack
    • Added read-only property getMaxAmount: number - Returns the maximum stack size for the item
    • Added read-only property isStackable: bool - Returns whether the item is stackable
    • Added function isStackableWith(itemStack: ItemStack): bool - Returns whether the item can be stacked with the given item
    • Added read-only property type: ItemType - Returns the type of the item
    • Added function clone(): ItemStack - Returns a copy of the item stack
    • Added property keepOnDeath: bool - Sets whether the item is kept on death
    • Added property lockMode: ItemLockMode - Sets whether the item can be moved or dropped
    • Added function setCanPlaceOn(blockIdentifiers?: string[]) - Sets which blocks the item can be placed on
    • Added function setCanDestroy(blockIdentifiers?: string[]) - Sets which blocks this item can destroy
  • ContainerSlot
    • Removed function clearItem - To clear the item, call setItem with undefined
    • Removed function clearLore - To clear lore, call setLore with an empty array or undefined

General changes to more consistently use methods when working with simple data-only objects vs. properties:

  • BeforeExplosionEvent
    • Added function getImpactedBlocks(): Vector3[] - Gets the blocks locations that are impacted the by the explosion
    • Added function setImpactedBlocks(blocks: Vector3[]): void - Sets the blocks locations that are impacted the by the explosion
    • Removed property impactedBlocks
  • BeforeItemUseOnEvent
    • Added function getBlockLocation(): Vector3 - Gets the location of the block being impacted
    • Removed property blockLocation
  • BlockInventoryComponent
    • Removed property location
  • BlockLavaContainerComponent
    • Removed property location
  • BlockPistonComponent
    • Added function getAttachedBlocks(): Vector3[] - Gets the blocks locations that are impacted by the activation of this piston
    • Removed property attachedBlocks
    • Removed property location
  • BlockPotionContainerComponent
    • Removed property location
  • BlockRecordPlayerComponent
    • Removed property location
  • BlockSignComponent
    • Removed property location
  • BlockSnowContainerComponent
    • Removed property location
  • BlockWaterContainerComponent
    • Removed property location
    • Added function getHeadLocation(): Vector3 - Gets the head location of the Entity
    • Removed property headLocation
  • ExplosionEvent
    • Added function getImpactedBlocks(): Vector3[] - Gets the blocks locations that are impacted the by the explosion
    • Removed property impactedBlocks
  • ItemStartUseOnEvent
    • Added function getBlockLocation(): Vector3 - Gets the location of the block being impacted
    • Added function getBuildBlockLocation(): Vector3 - Gets the location of the resulting build block
    • Removed property blockLocation
    • Removed property buildBlockLocation
  • ItemStopUseOnEvent
    • Added function getBlockLocation(): Vector3 - Gets the location of the block being impacted
    • Removed property blockLocation
  • ItemUseOnEvent
    • Added function getBlockLocation(): Vector3 - Gets the location of the block being impacted
    • Removed property blockLocation
  • NavigationResult
    • Added function getPath(): Vector3[] - Gets the locations of the blocks that comprise the navigation route
    • Removed property path
  • Player
    • Added function getHeadLocation(): Vector3 - Gets the head location of the Player
    • Removed property headLocation
  • Block
    • Added function isAir - Returns if the block is an air block (i.e. empty space)
    • Added function isLiquid - Returns if the block is a liquid (e.g., a water block and a lava black are liquid, while an air block and a stone block are not)
    • Added function isSolid - Returns if the block is solid (e.g., a cobblestone block and a diamond block are solid, while a ladder block and a fence block are not)
    • The following blocks now have an inventory component:
      • Barrel
      • Beacon
      • Blast Furnace
      • Brewing Stand
      • Dispenser
      • Dropper
      • Furnace
      • Hopper
      • Jukebox
      • Lectern
      • Smoker

BlockPermutation

BlockPermutation has been significantly refactored! Every BlockPermutation now share a unique JavaScript handle so exact equality (===) will work for permutations that share exactly the same state values. We've also added utility methods that make interacting with permutations easier, which includes the removal of the XBlockProperty classes and now directly return properties (boolean | number | string) or a while collection of properties ( Record<string, boolean | number | string>)

  • Added method matches(blockName: string, properties?: BlockProperties): boolean which is used to match a block with optional states against a BlockPermutation
  • Added method withProperty(name: string, value: boolean | number | string): BlockPermutation; which returns a new block permutation with a given property set to a specific value. Throws if the provided data cannot be resolved as a valid block permutation
  • Added function static resolve(blockName: string, properties?: BlockProperties): BlockPermutation which resolve a BlockPermutation from a block name and optional states. Throws if the provided data cannot be resolved as a valid block permutation
  • Updated methods getProperty and getAllProperties to return values directly instead of wrapped into class objects. Example code:

Before:

const blockPermutation = MinecraftBlockTypes.stoneSlab.createDefaultBlockPermutation(); blockPermutation.getProperty(MinecraftBlockProperties.stoneSlabType).value = 'stone_brick'; blockPermutation.getProperty(MinecraftBlockProperties.topSlotBit).value = true;

Now:

const blockPermutation = BlockPermutation.resolve('minecraft:stone_slab', { stone_slab_type: 'stone_brick', top_slot_bit: true, });

BlockProperties

  • Added new class to expose BlockPropertyType

BlockPropertyType

  • Added new class to track "definitional" data about block properties. This is how you can find which values are valid for each block property

Data-Driven Custom Blocks

  • Released block properties and permutations out of experimental in JSON formats 1.19.70 and higher
  • Added a content warning when loading world with more than 65536 custom block permutations. Custom block permutation counts are logged in debug log

Minecraft - 1.19.70 (Bedrock)

The latest Minecraft update has arrived! This release brings several quality of life improvements to the game, changes to horse breeding, plus early versions of Archaeology and the Sniffer as new experimental features from the upcoming 1.20 update. Let’s see what’s inside!

  • Fixed multiple crashes that could occur during gameplay
  • When breeding horses, the baby horse now has a chance of being better than its parents in speed, jump strength, and health
  • Improvements to player emotes
  • Take an early look at archaeology and the sniffer mob with experimental features
  • Fixes to over 30 community-reported issues

Please continue to upvote and report any new bugs at bugs.mojang.com and leave us your feedback at feedback.minecraft.net.

Changes:

Player Emotes

Several improvements have come to the emote system in Bedrock Edition!

  • Emote usage now appears in chat
  • The emote wheel now has four slots with an improved interface
  • Quick emoting with new hotkeys
  • Easier sorting of emotes
  • Creating a new character now automatically applies four default emotes

Check out the New Emote Features for Bedrock Edition article for more details.

Vanilla Parity:

Improvements have been made with vanilla parity to align with Java Edition, especially with horse breeding, mobs, and blocks.

Gameplay

  • Fixed an issue where night could not be skipped if one or more players were on the death screen
  • Eating and drinking animations are now always centered, regardless of screen aspect ratio

Mobs

  • Breeding horses can now produce random variants (MCPE-129071)
  • When breeding horses, the baby Horse now has a chance of being better than its parents in speed, jump strength, and health. This change is intended to make Horse breeding a viable way of getting great Horses, if a player starts with good parents and puts in enough time and Golden Carrots
  • Horses cannot be pushed over Fences covered by Carpets anymore (MCPE-164717)
  • Ghasts’ sound volume will now fade the further they are from the player (MCPE-35222)
  • Villagers will now emit anger particles when hit by a player outside of a village
  • Fixed a bug where Zombified Piglins would spawn in the Nether in light levels above 11
  • Minecarts can now eject mobs into liquid blocks (MCPE-120078)
  • Witches will now drink a Fire Resistance Potion when standing on a Campfire

Blocks

  • Bells that are connected to multiple blocks no longer drop when one block is broken
  • Note Block sound attenuation over a distance is now linear (MCPE-164935)
  • Impact sounds of projectiles on Amethyst blocks and clusters are now audible
  • Dead Bush will now drop Sticks when broken with any tool except Shears, even those with the Silk Touch enchantment. Vines will drop nothing in the same situation (MCPE-163246)

Experimental Features:

The Sniffer and Archaeology are now available for testing that are coming to Minecraft 1.20, now known as Trails & Tales! The sniffer and archeology are two experimental features that you can try out in this release.

As these features are still incomplete, in development, and considered a work in progress, be sure to backup your worlds before enabling experimental features. The features can be enabled by turning on the “Next Major Update” toggle in world settings.

Archaeology

  • Added the Brush item
  • Added the Decorated Pot block
  • Added four Pottery Shards (Arms Up, Skull, Prize, and Archer)
  • Added the Suspicious Sand block
  • Added Suspicious Sand to the Desert Temple
  • Added Suspicious Sand to the Desert Well

Brush

  • The Brush is a craftable item you can use to brush things

Pottery Shards and Decorated Pots

  • Pottery Shards have pictures on them. They cannot be crafted and must be found in the world. Hint: you will need a Brush! By crafting four of these together you can create a Decorated Pot with a picture on each side.
  • You can also use Brick items instead of Pottery Shards in the crafting recipe. The sides that were made from Brick items will not have pictures.
  • Smash a Decorated Pot with any block-breaking tool to break it apart and get the Pottery Shards back! Or hit it with your fist to pick up the pot without breaking it.

Suspicious Sand

  • Desert Temples and Desert Wells now contain Suspicious Sand. This fragile block is hard to spot and easy to destroy, so be careful!
  • If you manage to find the Suspicious Sand and brush it with your Brush, you will extract objects that were buried long ago.
  • We're giving you an early look at these Archaeology features. We want to spend more time developing them. Please let us know where you think we can improve or expand!

Sniffer

  • The Sniffer is the mob vote winner of Minecraft Live 2022 and the first [HS1] extinct mob brought to life and added to the game
  • Sniffers cannot be tempted or tamed
  • Sniffers are passive friendly mobs
  • Sniffer sniffs in the air and occasionally dig for seeds

Torchflower

  • The Torchflower seed can be planted on farmland and grows into a flower
  • The seed can be used to breed two Sniffers
  • The full-grown flower can be harvested and replanted but can also be crafted into a dye

Fixes:

Stability and Performance

  • Fixed an issue where simultaneously pressing the "Mine" and "Place" button on any input device while targeting a Structure Block could cause the game to crash (MCPE-155689)
  • Fixed a crash on Nintendo Switch when attempting to log in while set to local network mode
  • Fixed a crash that could occur when entering a 1.7.1.0 world in 1.8 or above (MCPE-165564)

Gameplay

  • The player's crosshair now properly mines/interacts with items in front of them while swimming/gliding, rather than 1 block above their position (MCPE-57257)
  • Players no longer take rapid damage when touching damaging blocks (MCPE-165347)
  • Projectiles shot while swimming/gliding no longer spawn from above the player's position (MCPE-31896)
  • Items dropped while swimming/gliding, manually or on death, no longer spawn from above the player's position (MCPE-31896)

Mobs

  • Fixed a bug where an Allay holding a Lead wasn't able to be leashed unless the player held a full stack of 64 Leads in hand
  • Parrots will no longer shake while on a player riding a Horse that is turning mid-jump
  • Fixed a bug causing global entities (e.g. Ender Dragon and projectiles) to stop rendering when out of normal entity render distance (MCPE-161136)

Blocks

  • Sounds from all Button types and Lever are now controlled by "Blocks" slider in Audio Settings (MCPE-166420)
  • Redstone source can now power a single block from different sides at the same time (MCPE-163651)
  • Destroying Mangrove Log or Mangrove Wood now properly cause leaves to decay
  • End Crystals occupying the same space as a block will no longer cause that block to disappear
  • Players are now able to place top Slabs in blocks that are only partially blocked by an entity (MCPE-155016)
  • Players can no longer see through partial blocks when sneaking or riding in third person (MCPE-156273)
  • Composter now always consumes an item when becoming full (MCPE-162020)
  • Importing experimental blocks into a non-experimental world using the Structure Block will now correctly place unknown blocks, which are not interactable
  • Error messages about building outside the world height limits no longer appear when simply interacting with blocks at the world height limits from certain angles (MCPE-152935)
  • Fixed a bug where Observers would not detect changes due to corrupted data (MCPE-150506)
  • Hoppers now pull in items from above them through all blocks that have a lower height than a full block (MCPE-55824)

Items

  • Crossbows now shake while charging arrows (MCPE-152952)
  • Spawn eggs for Snow Golem, Wither, and Trader Llama now appear correctly in the inventory and hotbar
  • Written Books can now be moved in the inventory even when the player has identical Written Books

Touch Controls

  • Updated the How to Play screen with information on new touch controls
  • Changing input modes from Gamepad to Touch while an item is selected will return the selected to the inventory or drop it
  • Fixed an issue on the Furnace screen where double-tapping the output window caused other slots to become unselectable (MCPE-164589)
  • Fixed a bug where stack splitting was automatically initiated on the first slot when opening a small Chest
  • Allowed left and right D-pad buttons to keep input when the forward button is pressed (MCPE-155199)
  • Added the leave Boat button when the player falls from a height within in the Boat (MCPE-158489)
  • Fixed an issue that prevented players from removing equipped armor by tapping on an item or block in the Creative inventory (MCPE-165790)
  • Tweaked the keyboard interaction on Android devices for text input fields

User Interface

  • Fixed an issue where the "Mine" tooltip was appearing when targeting a block with a Trident in Creative game mode (MCPE-44846)
  • Navigating right with controller left stick on the Marketplace sidebar now collapses it
  • Added a new 'Marketplace' icon to the Marketplace screen sidebar
  • Ocean Explorer, Woodland Explorer, and Treasure Maps now show the proper icon in the inventory (MCPE-163464)
  • Fixed a bug where mouse scrolling on the Friend Options dropdown would not scroll the dropdown contents
  • Resolved an issue where graphical elements of the Sign-In/Sign-Up screen could extend beyond the bounds of the dialog container
  • When starting a new world in Pocket UI, removed the "Press Open Chat to open chat" message for players with text-to-speech turned off
  • Double-clicking on the Furnace output slot will no longer drop the item (MCPE-165079)
  • Fixed a bug where moving the player or camera with a controller while text-to-speech for UI was turned on would cause the narrator to say "X of Y"
  • Fixed a bug where the Edit World screen couldn't be opened for a world if the corresponding world directory had a space in it (MCPE-166763)
  • The loading screen no longer flickers when entering the Nether in immersive VR mode
  • The swap item animation now plays when switching hotbar items of the same type with the same durability

Spectator Mode

  • Phasing through blocks in third person view no longer makes the camera zoom in and out towards the player’s head (MCPE-160467)
  • End Gateways can no longer be used in Spectator Mode (MCPE-165689)

Realms

  • Added a Sign In button on the Realms screen if player is not yet signed in
  • Fixed the issue that the "Find Friends" button and the "Close Realm" buttons would be autofocused when the "Members" or "Subscription" tab was clicked
  • Fixed a bug where players were not able to create another world on Realms if the first Create World on Realms attempt was interrupted
  • Fixed a bug where players could see duplicate applied packs with unknown titles the first time they entered the Realms settings screen
  • Resetting a Realms World now correctly updates the World settings
  • Removed the Close button in the Play on Realm popup dialog when using controllers
  • Updated the reset/replace world confirmation text to make it clearer what each function does
  • Fixed the world list not updating with a new Realm immediately after accepting an invite
  • In Realms Settings->Members, the dropdown '...' menu can now be open/closed with the Enter key and navigated with arrow keys

Technical Updates:

Updated Add-On Template Packs

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

General

  • Behavior packs with scripts can now be removed from worlds
  • Item loot table conditions are no longer ignored in-game when used inside functions (MCPE-164582)
  • Carrots now display the proper name in item tooltips when used in can_place_on and can_destroy item components (MCPE-160838)
  • In JSON formats 1.19.70 and later, blocks fail to load if the "condition" field in Block Permutations is not a valid Molang string
  • Crafting Table component no longer appends "tile." when defaulting to use block name for crafting table label

Wool Blocks

Wool has been flattened into separate blocks, namely:

  • white_wool
  • orange_wool
  • magenta_wool
  • light_blue_wool
  • yellow_wool
  • lime_wool
  • pink_wool
  • gray_wool
  • light_gray_wool
  • cyan_wool
  • purple_wool
  • blue_wool
  • brown_wool
  • green_wool
  • red_wool
  • black_wool

Commands, recipes, loot tables, etc. will still work with wool and an aux value or color state, but wool will not be suggested in the command prompt. Instead, the new wool block names will.

Commands

  • Fixed a crash with deferred command execution when the executing actor is removed before execution (MCPE-165374)
  • Summon command no longer causes some entities to be spawned in at an angle
  • Removed support for field "data" in commands /clone, /execute, /fill, /setblock and /testforblock beyond version 1.19.70, eg. /setblock ~ ~ ~ minecraft:wool 1 will only have its equivalent /setblock ~ ~ ~ minecraft:wool ["color":"orange"] supported
    • Here are some additional examples[JW1] [JW2] [JW3] :
      • /setblock ~~~ green_wool [] [] is equivalent to the old 0
      • /setblock ~~~ wood ["wood_type": "oak"]
      • /setblock ~~~ coral ["dead_bit" : true , "coral_color" : "blue" ]
      • /setblock ~~~ coral_fan ["coral_fan_direction" : 1, "coral_color" : "pink"]
      • /setblock ~~~ wool ["color": "blue"]
      • /fill ~ ~ ~ ~5 ~5 ~5 gold_block [] replace air
    • More information about commands can be found at learn.microsoft.com/minecraft/creator/commands
  • Volume arguments no longer floor the selector's position (MCPE-162237)
  • Selecting targets by volume will now select all entities whose hitbox collides with the volume box. This is versioned for 1.19.70 and later (MCPE-162237)
    • Previous behavior works as expected on versions less than 1.19.70
  • Volume arguments for selectors (dx, dy, dz) now support float values (MCPE-163863)
  • Replaceitem and loot replace block commands no longer place items in Cauldrons (MCPE-129472)
  • Rotation in the teleport command is now relative to the executor of the command instead of the target. Old usage of rotations in commands will stay relative to the target mob for backwards compatibility

Entity Properties

  • Fixed an issue where Entity Property value changes could be discarded if done by events fired as part of removal of active behaviors caused by other events

Mobs

  • Witch potion drinking and ranged attack behaviour is now defined in its .json file
  • The game will no longer create a content error when Bee spawn eggs are used on a Mob Spawner

GameTest Framework (Experimental)

  • Test
    • Added optional searchDistance parameter to assertEntityPresent(entityTypeIdentifier: string, blockLocation: BlockLocation, searchDistance?: number, isPresent?: boolean)
    • Added assertEntityInstancePresentInArea(entity: Entity, isPresent?: boolean) to check if an entity instance is present in the test area
    • Made the searchDistance parameter optional in assertItemEntityPresent

API (Experimental)

  • IMPORTANT BREAKING CHANGE: The classes Location and BlockLocation no longer exist in the beta script API. All usages of these classes have been changed to use the Vector3 interface (that is, { x: 1, y: 2, z: 3} objects)
  • Also, note that several changes were made to properties and get/set methods across objects (listed below) to make them more consistent in calling structure
    • World Events
    • Added event entityDie - It is fired when an entity dies
    • Modified projectileHit to be a readOnly property on the Events class
  • Player
    • Added method getSpawnPosition - Gets the spawnPoint position
    • Added property spawnDimension - Gets the spawnPoint dimension
    • Added method setSpawn(spawnPosition : Vec3, spawnDimension : Dimension) i Sets spawnPoint with a position and dimension
    • Added method clearSpawn - Sets the spawnPoint position and dimension to undefined
    • Renamed function tell to sendMessage
  • World
    • Renamed function say to sendMessage
    • Added method 'getDefaultSpawnPosition' - Gets the spawnPoint position
    • Added method 'setDefaultSpawn'(spawnPosition : Vec3) - Sets the spawnPoint position within 'overworld' dimension
  • BeforeChatEvent
    • Added function getTargets(): Player[] - Gets chat Player targets
    • Added function setTargets(players: Player[]) - Sets chat Player targets
    • Removed property targets
  • BeforeDataDrivenEntityTriggerEvent
    • Added function getModifiers(): DefinitionModifier[] - Gets entity definition modifiers
    • Added function setModifiers(modifiers: DefinitionModifier[]) - Sets entity definition modifiers
    • Removed property modifiers
  • BoolBlockProperty
    • Added function getValidValues(): boolean[] - Gets all valid boolean values for the BoolBlockProperty
    • Removed property validValues
  • Converted BlockHitInformation to an interface
  • ChatEvent
    • Added function getTargets(): Player[] - Gets chat Player targets
    • Removed property targets
  • Converted Color to an interface
  • DataDrivenEntityTriggerEvent
    • Added function getModifiers(): DefinitionModifier[] - Gets Entity definition modifiers
    • Removed property modifiers
  • DefinitionModifier
    • Added function getComponentGroupsToAdd(): string[] - Gets component groups that will be added with the DefinitionModifier
    • Added function setComponentGroupsToAdd(newGroups: string[]): void - Sets component groups that will be added with the DefinitionModifier
    • Added function getComponentGroupsToRemove(): string[] - Gets component groups that will be removed with the DefinitionModifier
    • Added function setComponentGroupsToRemove(removedGroups: string[]): void - Sets component groups that will be removed with the DefinitionModifier
    • Added function getTriggers(): Trigger[] - Gets event triggers of the DefinitionModifier
    • Added function setTriggers(newTriggers: Trigger[]): void - Sets event triggers of the DefinitionModifier
    • Removed property componentGroupsToAdd
    • Removed property componentGroupsToRemove
    • Removed property triggers
  • DirectionBlockProperty
    • Added function getValidValues(): Direction[] - Gets all valid direction enum values for the DirectionBlockProperty
    • Removed property validValues
  • Entity
    • Added function getViewDirection(): Vector3 - Gets view direction of the Entity
    • Added function getRotation(): XYRotation - Gets rotation of the Entity
    • Added function getVelocity(): Vector - Gets velocity of the Entity
    • Removed property viewDirection
    • Removed property rotation
    • Removed property velocity
  • Added function playAnimation(animationName: string, options?: PlayAnimationOptions)
    • Plays the specified animation for an entityReplaced general setVelocity call with methods to apply impulses to entities:
  • Added function clearVelocity(): void - Sets the current velocity of the Entity to zero
  • Added function applyImpulse(vector: Vector3): void - Applies impulse vector to the current velocity of the Entity
  • Added function applyKnockback(directionX: number, directionZ: number, horizontalStrength: number, verticalStrength: number): void - Applies knockback to the Entity in specified direction based on vertical and horizontal strength
  • Removed function setVelocity
  • EntityAgeableComponent
    • Added function getDropItems(): string[] - Gets items that drop when entity grows
    • Added function getFeedItems(): EntityDefinitionFeedItem[] - Gets items that can be fed to the entity
    • Removed property dropItems
    • Removed property feedItems
  • EntityBreathableComponent
    • Added function getBreatheBlocks(): BlockPermutation[] - Gets blocks entity can breathe in
    • Added function getNonBreatheBlocks(): BlockPermutation[] - Gets blocks entity can't breathe in
    • Removed property breatheBlocks
    • Removed property nonBreatheBlocks
  • EntityHealableComponent
    • Added function getFeedItems(): FeedItem[] - Gets healing items for the EntityHealableComponent
    • Removed property items
  • Converted EntityHitInformation to an interface
  • EntityRideableComponent
    • Added function getFamilyTypes(): string[] - Gets supported rider entity types
    • Added function getSeats(): Seat[] - Gets rider information for each seat
    • Removed property familyTypes
    • Removed property seats
  • EntityTameableComponent
    • Added function getTameItems(): string[] - Gets tame items of the EntityTameableComponent
    • Removed property tameItems
  • FeedItem
    • Added function getEffects(): FeedItemEffect[] - Gets effect of the FeedItem
    • Removed property effects
  • IntBlockProperty
    • Added function getValidValues(): number[] - Gets all valid integer values for the IntBlockProperty
    • Removed property validValues
  • ItemDurabilityComponent
    • Added function getDamageRange(): NumberRange - Gets the range of numbers that describes the chance of the item losing durability
    • Removed property damageRange
  • Converted NumberRange to an interface
  • ProjectileHitEvent
    • Added function getBlockHit(): BlockHitInformation - Gets block hit information from the ProjectileHitEvent
    • Added function getEntityHit(): EntityHitInformation - Gets entity hit information from the ProjectileHitEvent
    • Removed property blockHit
    • Removed property entityHit
  • StringBlockProperty
    • Added function getValidValues(): string[] - Gets all valid string values for the StringBlockProperty
    • Removed property validValues
  • ItemStack
    • ItemStack can now be constructed using a string identifier
    • Removed constructor parameter data
    • Removed property data
    • Removed function clearLore - To clear lore, call setLore with an empty array or undefined
    • Setting nameTag to an empty string will now clear the name tag
    • Setting nameTag to a string longer than 255 characters will now result in an exception
    • Setting amount greater than the maximum stack size will now clamp the value to the maximum stack size
    • Setting amount to a value less than 1 will now result in an exception
    • Item lore can now be cleared by calling setLore(undefined) or setLore([])
    • Fixed a bug where calling function ItemStack.getComponent or ItemStack.getComponents would fail on ItemStacks returned from EntityItemComponent.itemStack
    • Added read-only property getMaxAmount: number - Returns the maximum stack size for the item
    • Added read-only property isStackable: bool - Returns whether the item is stackable
    • Added function isStackableWith(itemStack: ItemStack): bool - Returns whether the item can be stacked with the given item
    • Added read-only property type: ItemType - Returns the type of the item
    • Added function clone(): ItemStack - Returns a copy of the item stack
    • Added property keepOnDeath: bool - Sets whether the item is kept on death
    • Added property lockMode: ItemLockMode - Sets whether the item can be moved or dropped
    • Added function setCanPlaceOn(blockIdentifiers?: string[]) - Sets which blocks the item can be placed on
    • Added function setCanDestroy(blockIdentifiers?: string[]) - Sets which blocks this item can destroy
  • ContainerSlot
    • Removed function clearItem - To clear the item, call setItem with undefined
    • Removed function clearLore - To clear lore, call setLore with an empty array or undefined

General changes to more consistently use methods when working with simple data-only objects vs. properties:

  • BeforeExplosionEvent
    • Added function getImpactedBlocks(): Vector3[] - Gets the blocks locations that are impacted the by the explosion
    • Added function setImpactedBlocks(blocks: Vector3[]): void - Sets the blocks locations that are impacted the by the explosion
    • Removed property impactedBlocks
  • BeforeItemUseOnEvent
    • Added function getBlockLocation(): Vector3 - Gets the location of the block being impacted
    • Removed property blockLocation
  • BlockInventoryComponent
    • Removed property location
  • BlockLavaContainerComponent
    • Removed property location
  • BlockPistonComponent
    • Added function getAttachedBlocks(): Vector3[] - Gets the blocks locations that are impacted by the activation of this piston
    • Removed property attachedBlocks
    • Removed property location
  • BlockPotionContainerComponent
    • Removed property location
  • BlockRecordPlayerComponent
    • Removed property location
  • BlockSignComponent
    • Removed property location
  • BlockSnowContainerComponent
    • Removed property location
  • BlockWaterContainerComponent
    • Removed property location
    • Added function getHeadLocation(): Vector3 - Gets the head location of the Entity
    • Removed property headLocation
  • ExplosionEvent
    • Added function getImpactedBlocks(): Vector3[] - Gets the blocks locations that are impacted the by the explosion
    • Removed property impactedBlocks
  • ItemStartUseOnEvent
    • Added function getBlockLocation(): Vector3 - Gets the location of the block being impacted
    • Added function getBuildBlockLocation(): Vector3 - Gets the location of the resulting build block
    • Removed property blockLocation
    • Removed property buildBlockLocation
  • ItemStopUseOnEvent
    • Added function getBlockLocation(): Vector3 - Gets the location of the block being impacted
    • Removed property blockLocation
  • ItemUseOnEvent
    • Added function getBlockLocation(): Vector3 - Gets the location of the block being impacted
    • Removed property blockLocation
  • NavigationResult
    • Added function getPath(): Vector3[] - Gets the locations of the blocks that comprise the navigation route
    • Removed property path
  • Player
    • Added function getHeadLocation(): Vector3 - Gets the head location of the Player
    • Removed property headLocation
  • Block
    • Added function isAir - Returns if the block is an air block (i.e. empty space)
    • Added function isLiquid - Returns if the block is a liquid (e.g., a water block and a lava black are liquid, while an air block and a stone block are not)
    • Added function isSolid - Returns if the block is solid (e.g., a cobblestone block and a diamond block are solid, while a ladder block and a fence block are not)
    • The following blocks now have an inventory component:
      • Barrel
      • Beacon
      • Blast Furnace
      • Brewing Stand
      • Dispenser
      • Dropper
      • Furnace
      • Hopper
      • Jukebox
      • Lectern
      • Smoker

BlockPermutation

BlockPermutation has been significantly refactored! Every BlockPermutation now share a unique JavaScript handle so exact equality (===) will work for permutations that share exactly the same state values. We've also added utility methods that make interacting with permutations easier, which includes the removal of the XBlockProperty classes and now directly return properties (boolean | number | string) or a while collection of properties ( Record<string, boolean | number | string>)

  • Added method matches(blockName: string, properties?: BlockProperties): boolean which is used to match a block with optional states against a BlockPermutation
  • Added method withProperty(name: string, value: boolean | number | string): BlockPermutation; which returns a new block permutation with a given property set to a specific value. Throws if the provided data cannot be resolved as a valid block permutation
  • Added function static resolve(blockName: string, properties?: BlockProperties): BlockPermutation which resolve a BlockPermutation from a block name and optional states. Throws if the provided data cannot be resolved as a valid block permutation
  • Updated methods getProperty and getAllProperties to return values directly instead of wrapped into class objects. Example code:

Before:

const blockPermutation = MinecraftBlockTypes.stoneSlab.createDefaultBlockPermutation(); blockPermutation.getProperty(MinecraftBlockProperties.stoneSlabType).value = 'stone_brick'; blockPermutation.getProperty(MinecraftBlockProperties.topSlotBit).value = true;

Now:

const blockPermutation = BlockPermutation.resolve('minecraft:stone_slab', { stone_slab_type: 'stone_brick', top_slot_bit: true, });

BlockProperties

  • Added new class to expose BlockPropertyType

BlockPropertyType

  • Added new class to track "definitional" data about block properties. This is how you can find which values are valid for each block property

Data-Driven Custom Blocks

  • Released block properties and permutations out of experimental in JSON formats 1.19.70 and higher
  • Added a content warning when loading world with more than 65536 custom block permutations. Custom block permutation counts are logged in debug log

Minecraft - 1.19.63 (Bedrock)

  • Fixed an issue that was causing continuous freezes when playing on Nintendo Switch (MCPE-166760)
  • Fixed a crash that could occur when playing on iOS devices
  • Fixed a bug where the Edit World screen couldn't be opened for a world if the corresponding world directory had a space in it (MCPE-166763)
  • Improved navigation of the “My Content” Marketplace screen when using a controller

Minecraft - 1.19.63 (Bedrock)

  • Fixed an issue that was causing continuous freezes when playing on Nintendo Switch (MCPE-166760)
  • Fixed a crash that could occur when playing on iOS devices
  • Fixed a bug where the Edit World screen couldn't be opened for a world if the corresponding world directory had a space in it (MCPE-166763)
  • Improved navigation of the “My Content” Marketplace screen when using a controller

Feedback Website FAQ

Latest updates to simplify things and get to the point.

Hello!

We have created this frequently asked question page about the Feedback Website. If you haven't been here in a while, start here.

Note: Due to lots of interest in the Nether update and other issues, please be patient as our staff works as hard as they can to get your post through the queue as fast as possible. Thanks for understanding! How can you help make your feedback site awesome?

  • Please do not file more than one post for your feedback! This will slow down things for everyone.
  • A vote is the same thing as saying "I agree" or "good idea" or "yes"
  • Be kind, civil, and constructive to each other. Don't presume everyone has the same game experience you do
  • Similar topics should stick together
  • Please don’t post about topics that have already been discussed and rejected
  • Not all posts are filtered. That would be terrible. That said, a lot of things do fall in the queue. We appreciate your patience, as there are many more of you than there are of us. We are a very large and awesome community and we're all doing the best we can.
  • Our moderation queue is designed to not just keep everyone safe from bad content, but to also keep duplicate posts on similar topics from overwhelming the site. Want an idea of what some of those are? Look here.

Thank you for your patience! We know many of you put thought and care into each post you make, and we work on using the same type of care in making sure your feedback site remains a safe and productive place to get your ideas heard from by developers.

Do you still have concerns or questions? Topics here cover:

Questions about Posting or more often: "Where is my post?"

We appreciate everyone's contribution to the feedback site. The Minecraft team continues to be inspired by your thoughtful and intelligent feedback, and remember, we are people just like you.

Why is my post "pending approval"?

Is it possible you've posted something that may run against the rules (like an email address or URL) or is so commonly discussed that there's probably a similar post out there? Maybe you should check and edit your post to see if it helps.

How long will it be there? It's taking a long time.

We have multiple people on staff, but any time the Microsoft offices are closed, or a huge snapshot or patch comes out, approval will slow down. Please don't ping staff for an update!

How come that "garbage post" got approved and mine is still waiting?

Not all posts are filtered, and not all posts get caught by our automatic spam filters. Please only report a post once.

You rejected my post for no reason/It sat in pending approval and disappeared, and I wasn't notified.

The feedback site gets thousands of posts every week. You are not guaranteed an email regarding your post being rejected. Posts that are typically rejected without additional notification:

  • Spam. It should be obvious, but here we are.
  • Posts containing previously rejected content. Any rejected content.
  • Lists of ideas. We have been asked by our teams to make an effort to keep ideas to one main idea per post. It also helps people know exactly what they're discussing/voting for.
  • Posts that contain links to any sites outside of the immediate Minecraft system (common examples include but are not limited to: Reddit, YouTube, Google Docs, Imgur, blogs, and all social media). This is for everyone's safety.
  • Duplicates of highly popular topics. Look here. The best way to get something in-game is to contribute to existing discussions. We look for quality, not quantity!
  • Posts over the current character limits (75 characters for the subject, 1500 body text/comments) - we use Bing's word counter and we count spaces.
  • Off-topic thread comments. People work hard on their ideas and we should respect that by staying on topic.
  • Posts that contain excessive amounts of images, images that are mostly text, or contain text that is also not within the post itself.
  • Posts that are way too general - in order to take something to the team, or for the community to have something to discuss, it needs to be more than "we need more XYZ". Know exactly what you're asking for!
  • Anything violating the post guidelines or personal information.
  • Update/release date requests/bumps - when we have them, we'll share them!

Although we do our best to send emails to help you make better posts and be a great contributor, we are unable to guarantee your email provider will allow our mail to get through once it leaves our system and as such we cannot guarantee every poster or post will get a message.

My post wasn't similar! It's an entirely new way to do "X".

Please free to join discussions in progress on similar topics before starting a new thread on the same topic. We read and report on all the comments when we look at a post and keep them in mind because we know there may be more than one great way to implement an idea! For example, penguins.

I got a message but the "your post is rejected" message is so general.

Sorry! It's more of a "checklist" of things for you to keep in mind. We've had to standardize our messaging as our feedback community grows in order to even try to keep up.

Why can't I just make one post with ALL my ideas?

Keeping your ideas and feedback to one main idea per post so people know what they're voting for. Please feel free to repost your ideas once you've searched through and narrowed them down.

Why did you change the title/move my post?

If we've changed your post title or moved it, it is to make it easier for people to find. We're helping you get seen!

My post was on the site and then fell into the moderation queue. Why?

Did you edit it? Perhaps it got reported?

My post was on the site for a while and got removed. It had votes!

We are always making efforts to keep topics and general ideas together as much as possible.

Why don't you provide a link when you take something down?

Your feedback site staff will do the exact same searches we expect you to do. Also, people can remove their own posts. Links can vanish at any time.

I have a super long post and you removed it. Can you get my text back?

No, sorry. You may want to keep a copy somewhere.

I think your filter and search engine need improvement.

We know. But it's a work in progress, much like the website!

How do I post? How do I edit my post? Do you have posting tips that aren't covered in Creating Great Feedback?

Yes, more technical "nuts and bolts" questions about posting are covered here.

Logging in

Our feedback site is based on a system of trust and accountability. You must use a Microsoft based email account in order to log in.

Why do I need an account?

Here are the things you can always do without having to log in:

  • You can always use search, it is the box above "give feedback" on the right side of the screen.
  • You can read posts!
  • You can report a link or an issue with logging in.

You need to log in to do these things:

  • In order to vote on an idea, you need an account.
  • In order to make a comment on a feedback idea or post a new one, you must register.

Site Features

What are the tags? Can I add them to my own post?

Short answer: No, these are added by the team. We're working on better tags but have some technical limits right now.

Other sites have fancy headers and a lot of other formatting options!

Due to community members repeatedly abusing this feature, we ended up removing them.

Where do I post world seeds?

This is the feedback site. There are other sites on the web available for this type of thing. Please do not post them here, they are considered spam.

Questions, Problems, and Further Issues

This person posted some content that offends me/they copied my post/why did that get approved it's not appropriate.

Please use the report post button. Do not engage.

I didn't get any message about my post being removed!

Don't see your post? Check the list above for common reasons.

Do you have any volunteer community moderators?

Yes, we have volunteer community moderators and are working on getting more. They only have the ability to move posts and/or hide them for review by official staff members.

Can you tell me the team's thoughts on spam and suspensions/bans?

We have a no-tolerance policy on spam, personal attacks, attempts to get around suspensions, and severe breaks with the Posting Guidelines.

I need support! My game is broken!

This is the section you need.

Minecraft: Java Edition - 1.18.2 CHANGES IN 1.18.2TECHNICAL CHANGES IN 1.18.2FIXED BUGS IN 1.18.2GET THE RELEASE

Additionally, this version contains compliance updates for South Korean players.

Enjoy!

CHANGES IN 1.18.2

  • Users running Minecraft in a 32-bit environment will receive a warning in the main menu about the upcoming end of 32-bit environment support
  • If you’re playing in South Korea, we added gameplay timers and notices in compliance with gaming laws to help remind players to take occasional breaks from gameplay
  • A seed of the number zero is no longer handled as a special case
  • Any spaces before/after an inputted seed will now be trimmed
  • Dolphins will now more accurately pick the closest structure regardless of type
  • Ender chests are no longer gift wrapped around Christmas

TECHNICAL CHANGES IN 1.18.2

  • Added command: placefeature
  • The locate command now uses a namespaced id parameter
  • The locate command parameter is now a configured structure rather than a structure type. For instance, you can now use /locate village_desert or /locate shipwreck_beached
  • locate and locatebiome commands now support tags (prefix with # to distinguish from normal ids)
  • It is now possible to add custom structures in experimental datapacks
  • A lot of the cave generation is now configurable through experimental datapacks
  • Any type present in registries (blocks, items, biomes, etc.) can now have tags
  • The datapack version is now 9

PLACEFEATURE COMMAND

New command that places a configured feature at a given location. Syntax: placefeature <id> [pos]
Parameters:

  • id: The namespaced id of a configured feature to place
  • pos: The position to use as the origin for the feature placement (if omitted, ~ ~ ~ is used)

CONFIGURABLE CAVES

  • A new registry was added for Density functions (caves are created by combining those together)
  • Noise settings got a new field noise_router (and lost a couple of flags), see worldgen/noise_settings folder in the worldgen report
  • Noise router wires data-driven parts of the cave generation with the rest of the code

CONFIGURED STRUCTURES AND STRUCTURE SETS

The game now generates and stores data-driven configured structures.

  • Experimental datapacks can add new structure sets
  • The feature field in location predicates now references a configured feature
  • The exploration_map loot table function destination field is now a configured feature tag id
  • The exploration_map loot table function no longer automatically sets the display name of the map

UNIVERSAL TAGS

  • Tags can now be defined for any registry (blocks, items, biomes, etc. - see registries.json in report)
  • New tags are stored in datapacks under tags directory (same as old ones)
    • Names of new tag directories are the same as registry names (so /data/[namespace]/tags/potion and /data/[namespace]/tags/worldgen/biome)
    • Existing tags (blocks, items, fluids, entity_types, game_events and functions) keep their name (for now)
  • Some fields in worldgen structures that previously accepted only lists of element ids now accept tags
    • Those entries now accept [id, ...], id (shortcut for [id]) and #tag
    • Changed fields are:
      • feature.glow_lichen configuration: can_be_placed_on
      • feature.spring_feature configuration: valid_blocks
      • feature.simple_random_selector configuration: features
      • block_predicate_type.matching_blocks: blocks
      • block_predicate_type.matching_fluids: fluids
      • biome: inner list in features, map value in carvers
      • biome_source.checkerboard: biomes
  • Some tag fields now require id to be prepended with # (however they are not yet accepting element list)
    • dimension_type: infiniburn
    • feature.geode configration: blocks.cannot_replace, blocks.invalid_blocks
    • feature.vegetation_patch, feature.waterlogged_vegetation_patch configuration: replaceable
    • feature.root_system configuration: root_replaceable
    • structure_processor.protected_blocks: value

FIXED BUGS IN 1.18.2

In addition to crashes and other stability improvements, around 100 player-reported bugs were fixed in this release. View the list on the issue tracker.

GET THE RELEASE

​To install the release, open up the Minecraft Launcher and click play!

Cross-platform server jar:

Report bugs here:

Want to give feedback?

Minecraft - 1.18.33 (Switch)

Please search for any bugs you find on bugs.mojang.com and let us know what you think at feedback.minecraft.net.

Fixes:

  • Enabled configuration changes of some back-end services
  • Added a new button in Settings to clear local cache data
    • This will not delete save game data

Minecraft: Java Edition - 1.18 FEATURESTECHNICAL

AAAAARGH.

Ouff! Ouch! Ow!

Where am I? It’s dark down here! It’s almost as if I fell a greater distance than I would have before today. Figures. While I try to get out of this dripstone cave, I hope you enjoy all of the new features that 1.18 brings. Could you pass me a candle before you leave? It really is dark down here.

FEATURES

  • Added an “Allow Server Listings” option to opt out of having your name displayed in server listings
  • Added an Online options screen where you can now find the Realms Notifications option
  • Added new Overworld biomes
  • Added noise caves and aquifers
  • Added world autosave indicator for single-player worlds
  • Axolotls now have their own, separate, mob cap
  • Axolotls now only spawn in Lush Caves when in water that is above Clay Blocks
  • Badlands Mineshafts now generate higher up
  • Buried Treasure Chests may contain a Potion of Water Breathing
  • Changed default brightness to 50
  • Cod, Salmon, Pufferfish, Tropical Fish, Squid, and Dolphins now only spawn in water from height 50 to height 64
  • Frozen Peaks biome
  • Glow Squids now only spawn in water blocks under height 30
  • If it is raining, sleeping will stop the rain and reset the weather cycle (in 1.17 sleeping would always reset the weather cycle)
  • Illagers (Vindicator, Pillager, Evoker) no longer attack baby villagers
  • New music has been added to the game
  • New ore distribution and large ore veins
  • Overworld build and generation limits have been expanded
  • Raised the cloud level from 128 to 192
  • Redesigned how effects look in the inventory screen, to allow them to show even with recipe book open
  • Removed world types “Caves” and “Floating islands” from the world creation screen
  • Sprinting is no longer reduced to walking when gently brushing your sleeve against a wall
  • Tropical Fish now also spawn in Lush Caves at any height
  • Villages are slightly more spread out
  • World spawn selection algorithm has been reworked, now spawns player according to climate parameters

ADVANCEMENTS

  • Added “Caves & Cliffs” for falling from top to bottom of the Overworld
  • Added “Feels like home” for riding strider on lava for 50 blocks in the Overworld
  • Added “Star Trader” for trading with a villager at the build height limit
  • Added “Sound of Music” for playing music with a jukebox in a Meadow biome

BLOCKS

  • Enchanting Tables now emit a low amount of light
  • Using Shears on the tip of a Cave Vine, Twisting Vine, Weeping Wine, and Kelp will stop them from further growing
  • Copper Ore now drops 2-5 (from 2-3) Raw Copper items
  • In the Stonecutter, a Block of Copper can be converted to 4 Cut Copper
  • Restricted Big Dripleaf placement to Clay, Grass, Dirt, Farmland, Moss, Rooted Dirt, Podzol, and Mycelium

EFFECTS

  • Your list of effects are now shown to the right of your inventory, instead of the left side
  • When the inventory effects list is visible, it will be hidden from the game view to reduce screen clutter
  • There’s now two modes of seeing the effect list: Compact and Classic
    • Classic is the pre-existing list of effects, one after another
    • Compact is a single icon for each effect, suitable for small screen estate
  • The game will automatically switch between the two modes to suit the available screen estate (including having the recipe book open)

LARGE ORE VEINS

  • Ore Veins are large, rare, snake-like underground ore formations
  • Copper Ore Veins form between height 0 and 50 and are mixed with Granite
  • Iron Ore Veins form below height -60 and -8 and are mixed with Tuff

MOB SPAWNING

  • Monsters now only spawn in places where the light from blocks is 0 (sky light still prevents spawning like before)

MUSIC

  • Added new music by Lena Raine and Kumi Tanioka to the Overworld (when playing in Survival Mode) and the main menu
  • Added a new music disc from Lena Raine titled ‘Otherside’. This can be found rarely in Stronghold Corridor Chests or much more rarely in Dungeon Chests.

NEW OVERWORLD BIOMES

DRIPSTONE CAVES

  • Contains plenty of Pointed Dripstone and Dripstone Block on the floors and ceilings, as well as within small pools of water
  • In some places, you’ll find larger stalagmites, stalactites, and columns built from Dripstone Blocks
  • Contains extra Copper Ore
  • Drowned can spawn in aquifers inside Dripstone Caves

FROZEN PEAKS

  • Smooth mountain peaks with ice and snow
  • Spawns Goats and Yeti. Wait, no, actually it’s just Goats.

GROVE

  • Snowy terrain with big Spruce Trees and Powder Snow traps. You might want to wear leather boots!
  • Tends to generate on high-altitude terrain beneath mountain peaks or on hilltops
  • Spawns Wolves, Rabbits, and Foxes

JAGGED PEAKS

  • Dramatic jagged mountain peaks with Snow and Stone blocks
  • Spawns Goats

LUSH CAVES

  • Moss covers the floors and ceilings
  • Spore Blossoms grow from the ceiling and drip particles
  • Contains Clay pools with Dripleaf plants growing out of them
  • Contains Azalea Bushes and Flowering Azalea Bushes
  • The Azalea Tree loves to have its roots in Lush Caves, so if you find an Azalea Tree (either overground or in a cave) you know there is a Lush Cave beneath you
  • Cave Vines with Glow Berries grow from the ceiling and light up the caves

MEADOW

  • Large grassy and flowery biome that tends to generate high up on plateaus or next to large mountain ranges
  • Sometimes contains a lone, tall Oak or Birch Tree with a Bee Nest
  • Think Sound of Music!
  • Spawns Donkeys, Rabbits, and Sheep

SNOWY SLOPES

  • Very snowy terrain that can hide Powder Snow traps. I hope you kept those leather boots!
  • Tends to generate on high-altitude terrain beneath mountain peaks or on hilltops
  • Spawns Rabbits and Goats

Dripstone Caves in Minecraft 1.18. Click here for a link to the full-size image

NEW ORE DISTRIBUTION

  • Changed ore generation to match the new world height, and to add more strategy to mining. There is no longer a single height level that is best for all ores – you need to make tradeoffs!
  • Iron Ore generates below height 72, with a strong bias towards height 16. Iron Ore also generates above 80, with more Iron Ore as you go higher.
  • Copper Ore generates between height 0 and 96, with a strong bias towards height 48. Copper Ore generates in larger amounts in Dripstone Caves Biome.
  • Lapis Lazuli Ore generates below height 64, with a strong bias towards height 0. However, Lapis Lazuli Ore below height -32 or above height 32 cannot generate exposed to air. It will either be buried or inside water.
  • Coal Ore generates above height 0, with a strong bias towards height 96 and above. Coal Ore has reduced air exposure, so you will find more Coal Ore buried or underwater than exposed to air.
  • Gold Ore generates below height 32, with a strong bias towards height -16. Extra Gold Ore generates below height -48. Extra Gold Ore can be found in Badlands biomes above height 32.
  • Redstone Ore generates below height 16. Redstone Ore generation gradually increases as you go below height -32 and further down.
  • Diamond Ore generates below height 16, with more Diamond Ore the lower you go. Diamond Ore have reduced air exposure, so you will find more Diamond Ore buried or underwater than exposed to air.
  • Emerald Ore generates above height -16 in mountainous biomes, with more Emerald Ore the higher you go. Emerald Ore below height 0 is very rare!

Ore Distribution in Minecraft 1.18. Click here for a link to the full-size image

NOISE CAVES AND AQUIFERS

  • Noise caves are a new way of generating caves, providing more natural variety. They can get really huge sometimes! Noise caves come in three flavors:
    • Cheese caves: Like the holes in swiss cheese. These often form caverns of various size.
    • Spaghetti caves: Long squiggly tunnels, sometimes wide like tagliatelle
    • Noodle caves: Thinner, squigglier, and more claustrophobic variant of spaghetti caves
  • No, they aren’t loud. The “noise” part of noise caves is a technical term and has nothing to do with sound.
  • The old cave carvers and canyons still generate, combining with the noise caves to form interesting cave systems
  • As with carvers, noise caves form cave entrances where they intersect the surface
  • An aquifer is an area with local water level, independent of sea level
  • Aquifers are used during world generation to generate bodies of water inside noise caves
  • This sometimes results in large underground lakes
  • They can also form inside mountains and on the surface
  • Aquifers below y0 will sometimes be lava aquifers instead of water aquifers
  • Magma Blocks sometimes generates at the bottom of underground bodies of water
  • Underwater cave carvers and underwater canyons have been removed, since aquifers are used to generate water in caves instead

SPRINTING

  • Previously, any collision with a block would reduce sprinting to walking. Now, for very minor angles of collision with a block, players retain their sprint. For larger angles of collision, the old behavior is retained.

UPGRADING OF OLD WORLDS

  • The transition between new and old terrain is less “cliffy”
    • Will surface height blend? Yes.
    • Will biomes blend? Yes.
    • Will caves blend? Your mileage may vary.
  • In old chunks, if there is any Bedrock at y=0, the sections below non-air blocks will be filled with new generation
  • The old Bedrock between y=0 and y=4 in old chunks gets replaced with Deepslate
  • A new Bedrock layer is placed at y=-64

WORLD GENERATION

  • Generation range and build limits have been expanded by 64 blocks up and 64 blocks down, to a total range of 384 blocks
  • Underground features, structures, and caves generate all the way down to y-64
  • Exception: Diorite, Granite, Andesite, and Dirt will not generate below y0
  • Tweaked size and positioning of Diorite, Andesite, and Granite generation
  • Dripstone clusters can no longer be found in normal caves, only in Dripstone Caves biomes
  • Starting from y8 and below, Deepslate gradually replaces all Stone
  • Deepslate blobs no longer generate above y0
  • The terrain shape and elevation varies dramatically, indepedently from biomes
    • For example, forests and deserts could form up on a hill without needing a special biome just for that
  • Less Diorite, Granite, and Andesite generates above y 60
  • Strips of Gravel can generate in stony shores
  • Swamp trees can grow in water 2 blocks deep (instead of just 1 block deep)
  • Removed water lake features, aquifers provide local water levels
  • A bunch of biome variants with simular features but different shapes have been merged into one, since the shape is controlled independently now
  • Renamed some biomes
  • Geodes now only generate up to height 30

TECHNICAL

  • Added an accessibility option to stop the sky from flashing during thunderstorms
  • Added fall_from_height and ride_entity_distance advancement triggers
  • Changed nether_travel to match other similar triggers
  • Added an option to specify the audio device used by the game
  • Replaced light and barrier particles with block_marker
  • Replaced the clientbound chunk update network packet with another one that additionally contains light update data
    • The separate light update packet still exists and is sent when a light update happens without a chunk update
  • New video setting called “Chunk Builder”
  • Changed the prioritization order of the chunk rendering pipeline
    • Unrendered chunk holes in the world should not appear anymore while flying fast with high render distance
  • View distance now causes chunks to load cylindrically around players instead of in a square
  • Added “Toggle Sprint” and “Toggle Sneak” to the Controls settings
  • Moved Keybinds out to their own settings screen, accessible from Controls
  • Information about the world generation noise is now displayed on the debug screen
  • Added illageralt, rune-like font from Minecraft Dungeons (currently only usable via commands)
  • Added startup option --jfrProfile and command jfr to start profiling with Java Flight Recorder as well as a few custom events
  • Loot table functions set_contents and set_loot_table now require a type field with a valid block entity type
  • Added new loot table function set_potion
  • The maximum amount of background threads are increased
  • Worlds last saved before Minecraft 1.2 (pre “Anvil”) can no longer be opened directly
  • Data pack format has been increased to 8
  • Resource pack format has been increased to 8
  • --report option in data generator now creates reference files for the entirety of the worldgen, instead of just the biomes
  • Removed length limits for scoreboard, score holder, and team names
  • Standalone server.jar now bundles contains individual libraries instead of being flat archive
  • Size limit for server resource packs has been increased to 250 MB
  • Servers can now set property hide-online-players to true in order to not send a player list on status requests
  • New setting called “Simulation Distance”
  • Mob spawners can now override light checks for spawning
  • Added telemetry for world loading

ADVANCEMENTS

CHANGED TRIGGERS

NETHER_TRAVEL

  • entered condition is renamed to start_position
  • exited has been removed since it was identical to player.location

NEW TRIGGERS

FALL_FROM_HEIGHT

  • Triggered when a player lands after falling
  • Conditions:
    • player - a player for which this trigger runs
    • start_position - a location predicate for the last position before the falling started
    • distance - a predicate for the distance between start_position and the player

RIDE_ENTITY_IN_LAVA

  • Triggered for every tick when a player rides in lava
  • Conditions
    • player - a player for which this trigger runs
    • start_position - a position where the riding started (first tick on lava)
    • distance - a predicate for the distance between start_position and the player

CHUNK BUILDER SETTING

  • This setting determines if chunk sections are updated immediately during a single frame, or asynchronously using threads
  • “Fully Blocking” corresponds to the previous way chunks were updated, which prevents potential visual gaps when blocks are destroyed
  • “Threaded” will significantly reduce stutters when blocks are placed or destroyed (especially with light sources), however brief visual gaps may rarely occur
  • “Semi Blocking” is the middle-option, and will only immediately update chunks that are deemed important, otherwise updates occur asynchronously using threads

JAVA 17

Minecraft now uses Java version 17. If you are using a default setup, the Launcher will download and install the correct version. If you are using a custom Java setup, or a third-party launcher, you will need to ensure that your Java installation is version 17 or above.

JFR PROFILING

CUSTOM EVENTS

All events are enabled when starting the profiling using either jfr start command or --jfrProfile startup flag.
If profiling is started through any other means for monitoring purposes, only the ServerTickTime, LoadWorld and NetworkSummary are included by default.

  • minecraft.ServerTickTime: periodic event (1 second intervals) exposing average server tick times
  • minecraft.NetworkSummary: periodic event (10 second intervals) reporting total packet sizes and counts per connection
  • minecraft.PacketReceived | minecraft.PacketSent: network traffic
  • minecraft.ChunkGeneration: time taken to generate individual chunk stages
  • minecraft.LoadWorld: initial world loading duration

OVERVIEW

Java Flight Recorder (https://openjdk.java.net/jeps/328) is the internal JVM profiling tool bundled with the Java Runtime to analyze performance and runtime characteristics.
It’s a useful tool for exposing internal JVM performance metrics as well as custom metrics that can be monitored or analyzed using any stock Java profiler or monitoring agents.

PROFILING LIFECYCLE

A profiling run can be started using any of the following alternatives:
The run will then be stopped either by:

  • --jfrProfile startup flag when starting a Minecraft server or client
  • jfr start in-game command
  • Regular Java CLI tools such as jcmd
  • shutting down the JVM
  • jfr stop in-game command
  • jcmd CLI tool

REPORTS

A summary JSON report is written both to the log file and in the debug folder accompanied by a .jfr recording ready to be analyzed in i.e JMC https://github.com/openjdk/jmc or any other profiler tool supporting the format.

LOOT TABLES

CHANGED FUNCTIONS

SET_CONTENTS, SET_LOOT_TABLE

Added new mandatory field type. This type will be written into BlockEntityTag.id, to make sure that this tag can be correctly migrated between versions.

NEW FUNCTIONS

SET_POTION

  • Sets the Potion tag on any item
Parameters:
  • id - potion id

MAXIMUM AMOUNT OF BACKGROUND THREADS INCREASED

  • Various background tasks including worldgen are executed on a background thread pool
  • The default thread pool size equals the amount of available CPU threads, minus one
  • The upper thread pool limit has been raised from 7 to 255, which should help higher-end machines with improved world-gen performance
  • The upper limit can be overridden via the max.bg.threads Java system property, for example when running multiple servers on a single machine

MOB SPAWNING

  • Monster spawning limits are now per-player, rather than global for each dimension

OLD WORLD CONVERSION

  • Worlds last saved before Minecraft 1.2 (pre “Anvil”) now require conversion in a previous version of the game to be able to be opened
  • We recommend that you upgrade your old version, 1.2 (pre “Anvil”) or older, to version 1.6.4 - worlds opened for the first time in later versions will have incorrect biome information

PARTICLES

BLOCK_MARKER

  • Renders with a texture declared in the particle slot for a model assigned to the configured block state
  • Is summoned with same syntax as the block particle (i.e. block_marker wheat[age=2])

RESOURCE PACK FORMAT

  • minecraft/textures/gui/container/inventory.png now contains an extra sprite for a thin-layout version of the effect list in the inventory

SERVER BUNDLING

  • server.jar now bundles individual libraries instead of merging all the files into a single archive
  • This change is meant to solve certain problems related to Java modules
  • On startup, server.jar will unpack libraries into a directory configured by bundlerRepoDir (default: working directory)
  • To run a different main class other than the server, use the bundlerMainClass property (for example java -DbundlerMainClass=net.minecraft.data.Main -jar server.jar --reports) or unpack the jar manually and use the contents of META-INF/classpath-joined for command line
  • If bundlerMainClass is empty, the program will just validate and extract files, and will then exit
  • Server classes are now signed

SIMULATION DISTANCE SETTING

  • A new slider which is available under video settings
  • Entities, blocks, and fluids will not be updated outside of simulation distance
  • Allows higher render distance with less CPU load
  • There’s also a new simulation-distance property in the dedicated server properties

SPAWNER DATA CHANGES

Example:

SpawnData: { entity: { id: "minecraft:cow" }, custom_spawn_rules: { sky_light_limit: {min_inclusive: 10, max_inclusive: 15} }, } SpawnPotentials: [ { data: { custom_spawn_rules: { block_light_limit: {min_inclusive: 0, max_inclusive: 15} }, entity: {id: "minecraft:pig"}, }, weight: 2 }, { data: { custom_spawn_rules: { block_light_limit: {min_inclusive: 5, max_inclusive: 10}, sky_light_limit: {min_inclusive: 10, max_inclusive: 15} }, entity: {id: "minecraft:panda"} }, weight: 1 } ]
  • Spawners now support the custom_spawn_rules NBT in the SpawnData field and the SpawnPotentials list
  • custom_spawn_rules currently may contain fields block_light_limit and sky_light_limit - both are integer ranges with fields min_inclusive and max_inclusive
  • To make SpawnPotentials format similar to other weighted lists, structure was changed to {weight: <int>, data: <previous contents without 'Weight', 'Entity' renamed to 'entity'>}
  • To accomodate that change, previous contents of SpawnData were moved to SpawnData.entity (making format of that field same as elements of SpawnPotentials.data)

TELEMETRY

In this release, we are re-introducing diagnostic tracking, which was part of Minecraft: Java Edition until 2018. We are bringing it back to better understand our players and to improve their experience. Specifically this information will help us prioritise various aspects of development and identify pain points. All data is treated according to GDPR and CCPA best practices and is used to develop a better-performing and generally more enjoyable Minecraft: Java Edition.

  • At this point, the only implemented event is world load

WORLD LOAD EVENT

  • Sent when loading singleplayer world or connecting to multiplayer server
  • Contains following information:
    • launcher identifier
    • user identitifer (XUID)
    • client session id (changes on restart)
    • world session id (changes per world load, to be reused for later events)
    • game version
    • operating system name and version
    • Java runtime version
    • if client or server is modded (same information as on crash logs)
    • server type (single player, Realms or other)
    • game mode

WORLD DATA: CHUNK FORMAT

  • Removed chunk’s Level and moved everything it contained up
  • Chunk’s Level.Entities has moved to entities
  • Chunk’s Level.TileEntities has moved to block_entities
  • Chunk’s Level.TileTicks and Level.ToBeTicked have moved to block_ticks
  • Chunk’s Level.LiquidTicks and Level.LiquidsToBeTicked have moved to fluid_ticks
  • Chunk’s Level.Sections has moved to sections
  • Chunk’s Level.Structures has moved to structures
  • Chunk’s Level.Structures.Starts has moved to structures.starts
  • Chunk’s Level.Sections[].BlockStates and Level.Sections[].Palette have moved to a container structure in sections[].block_states
  • Chunk’s Level.Biomes are now paletted and live in a similar container structure in sections[].biomes
  • Chunk’s Level.CarvingMasks[] is now long[] instead of byte[]
  • Added yPos the minimum section y position in the chunk
  • Added below_zero_retrogen containing data to support below zero generation
  • Added blending_data containing data to support blending new world generation with existing chunks

WORLD GENERATION

  • Bedrock layers now generate dependent on the world seed
  • New random number generator for overworld generation

FIXED BUGS IN 1.18

GET THE RELEASE

​To install the release, open up the Minecraft Launcher and click play!

Cross-platform server jar:

Report bugs here:

Want to give feedback?

Minecraft: Java Edition - 1.19.3 NEW FEATURES IN 1.19.3CHANGES IN 1.19.3TECHNICAL CHANGES IN 1.19.3EXPERIMENTAL FEATURES IN 1.19.3FIXED BUGS IN 1.19.3GET THE RELEASE

NEW FEATURES IN 1.19.3

  • Some experimental features are now available through built-in experimental datapacks
  • Added a new "Panorama Scroll Speed" accessibility option
  • Added new default skins for offline players
  • New wood sounds

SOUNDS

  • Various wood types now have unique sounds when placed, broken, or walked on
    • There are three sets of unique sounds: Overworld wood types, Nether wood types, and Bamboo (when enabled)
  • Step sounds can now be heard when walking on Carpets, Lily Pads and Small Amethyst Buds
  • Step sounds can now be heard when walking through Nether sprouts, Glow lichen, Crimson Roots and Warped Roots

CHANGES IN 1.19.3

  • Reworked the Creative Inventory tabs
  • Added Operator Items Tab option in the Controls menu which is off by default
  • The Vex now has a new look
  • In the Nether dimension Endermen, Skeletons and Wither Skeletons now only spawn at light level 7 and below (instead of 11 and below)
  • Changes to block support
  • Spawner block changes
  • Changes to chat
  • Added Draft Player Reports
  • Improvements to the Open to LAN screen
  • The Realms News button will now show a confirmation screen before opening the link
  • Stronghold placement code has been changed to be more efficient, causing stronghold positions to shift
    • They are still placed in concentric rings, but their positions in the rings may change by a few degrees
  • "Teleport to Team Member" option in spectator menu now only shows up for teams with viable target players
  • Changes to tooltips
  • The Wild update music has been tweaked to be slightly less loud

CREATIVE INVENTORY

The ordering of tabs and the contents in the Creative Inventory have been tweaked to make the experience of finding relevant blocks and items easier.

  • Blocks and items have been moved into categories that fit them better
  • Blocks are now ordered by their material as much as possible
    • For example, all Oak blocks and variants are now next to each other
  • Some items can now be found in more than one tab
  • Various tabs have been renamed or collapsed into others
  • The search tab now lists items sequentially grouped by the other tabs
    • For example, items found in Building Blocks will always appear before items in Redstone Blocks
  • A Colored Blocks tab has been added that contains all blocks with 16 color variants
  • Petrified Oak Slab has been removed from the Creative Inventory
    • It can still be accessed through commands
  • The following missing items have been added to the Creative Inventory:
    • Suspicious Stew
      • The tooltip will show the effect of a stew before it's picked up from the Creative Inventory
      • Only stews with effects available via crafting or Mooshrooms are listed
    • Dragon Egg
    • Ominous Banner
    • Monster Spawner
    • All 3 flight durations of Fireworks
    • Operator-only blocks and items
      • These only appear in the Operator Utilities tab if you have both:
        • Operator Items Tab option in Controls menu set toON
        • The required operator permissions
  • Tooltips for all items in Creative Menu outside single-category tabs will show categories where this item can be found
    • Previously this only happened on the search tab

VEX

  • Changes to Vex model and textures
    • The Vex retains its old, now slightly oversized, hitbox to make it easier to fight

BLOCK SUPPORT

  • Fence Gates no longer provide center support beneath them
  • When opening, Shulker Boxes will pop off blocks which are attached to opened faces (such as Torches)
    • Blocks that require support cannot be placed on these open faces while the Shulker Box is open

SPAWNERS

  • No longer has a default mob spawn type when placed by a player (previously was the Pig)
  • Will not emit fire particles when a mob spawn type has not been defined
  • Renamed to Monster Spawner to match Bedrock, and removed purple text color
  • Pick-block now works for Spawner blocks
  • The mob type is now displayed in the hover description of a Spawner item stack
    • If a mob type has not been defined yet, the hover description will describe how to set it

ITEMS

  • Added new Spawn Egg items for Ender Dragon, Iron Golem, Snow Golem and Wither mobs to Creative mode
    • Ender Dragon and Wither Spawn Eggs will only be available through commands to prevent accidental destruction of player builds
  • Polar Bear Spawn Egg colors have changed to distinguish it from the Ghast Spawn Egg

CHAT

  • Removed Chat Preview
  • Chat messages deleted by server moderators will no longer be completely hidden, but rather replaced with text stating "This chat message has been deleted by the server."
  • Deleted chat messages will now be displayed in the chat window for at least 3 total seconds before being hidden
  • The Chat Trust Status indicators have been tweaked:
    • The 'Modified' tag will no longer display for server-modified messages where only style has been changed
    • The 'Modified' tag icon and indicator is now dark gray
    • The 'Not Secure' tag is now light gray and does not have an icon
  • Partially filtered chat messages now show the filtered text as gray hashes with a hover text saying that it was filtered
  • The Chat Reporting screen now shows when the player being reported rejoined chat

ADDED DRAFT PLAYER REPORTS

Player Reports can now be kept temporarily as a draft while connected to a server.

  • When exiting the Player Reporting screen, the report can be either discarded or kept as a draft
    • The draft will always be kept if the screen was forcefully closed (e.g. player dying)
  • Draft reports are kept until the player leaves the current server or world
    • When leaving, the player will be prompted to either discard or finish and send the report

LAN SCREEN

  • The screen now allows selecting the port on which to host the LAN world
  • The game mode and allow cheats buttons are now initialized with the default values of the world

TOOLTIPS

  • When tabbing through buttons, tooltips are displayed above or below them
  • Tooltips displayed when hovering are displayed next to the cursor
  • Tooltips from focused buttons (focused by pressing tab) take priority over tooltips from hovered buttons

TECHNICAL CHANGES IN 1.19.3

  • Added Feature Flags - world options to enable or disable some experimental or unfinished features (like blocks, entities and items)
  • Command changes
  • Added new Telemetry Events
  • Added new Game Rules
  • Custom Player Head Note Block sounds
  • New entity sub-predicate types
  • Instances of recipe types that have recipe books now have fieldcategoryto determine placement
  • Changes to texture loading and stitching
  • Network protocol changes
  • Migrated linear algebra types to Java OpenGL Math Library (JOML)
  • Blocks carried by Endermen now use loot tables to generate drops when killed

FEATURE FLAGS

GENERAL NOTES

  • Feature flags are options that enable or disable certain groups of game elements (like blocks, entities and items), later called "features"
  • Game elements controlled by flags are hardcoded
  • Feature flags are stored in world

CONFIGURATION AND DATAPACK CHANGES

  • Feature flags are enabled by datapacks
    • New pack metadata section calledfeaturesis added, containing enabled feature flags in list namedenabled
  • The game now contains built-in datapacks (similar to the "Programmer Art" resource pack) that enable features and provide associated recipes, advancements, loot tables, etc
  • Added new fields toserver.propertiesto allow initial selection of packs (works only during world creation)
    • initial-enabled-packs- comma-separated list of packs to be enabled (feature packs need to be explicitly enabled)
    • initial-disabled-packs- comma-separated list of packs to not auto-enable
  • Datapacks discovered after world creation will be disabled if they require features that are not enabled for loaded world
  • Added new entity sub-predicate types:axolotl,boat,fox,mushroom,painting,rabbit,horse,llama,villager,parrot,tropical_fish

EFFECTS OF FEATURE FLAGS

BLOCKS

  • Disabled block ids are not recognized by commands that can create new blocks
  • Block items for disabled blocks are disabled
  • Disabled blocks won't spawn in structures
  • Disabled blocks won't be loaded as part of entities (for example as falling sand or blocks carried by Endermen)
  • Players can't interact with disabled blocks

ENTITIES

  • Disabled entity ids are not recognized by commands that can summon new entities
  • Disabled entities will not spawn or load
  • Spawn egg items for disabled entities are disabled

ITEMS

  • Disabled items are hidden from creative menu
  • Recipes and loot tables are prevented from creating disabled items
  • Disabled item ids are not recognized by commands that can create new items
  • Disabled items can't be used for interactions or attacking

COMMANDS

  • New command:fillbiome
  • New execute sub-command:execute if|unless biome
  • Improvements to thepublishcommand

FILLBIOME

Changes biome entries for an area. Note that biomes are not stored per-block, so affected positions may not match input precisely.

Syntax:

fillbiome <from> <to> <biome> [replace <filter>]

Parameters:

  • from: One corner of the area to fill
  • to: The other corner of the area to fill
  • biome: The biome to set
  • filter: A biome or biome tag to replace

EXECUTE

Execute commands can now be conditional on biomes.

Syntax:

execute if|unless biome <pos> <biome>

PUBLISH

Thepublishcommand has new arguments to enable commands and set the default gamemode.

Syntax:

publish [allowCommands] [gamemode] [port]

TELEMETRY

This release includes the WorldUnloaded event, a required event, as well as several opt-in events. Diagnostic tracking is a tool that helps us understand what you like about Minecraft, which allows us to make those things better.

The reason that WorldUnloaded, along withWorldLoaded, is a required event is that the information we’re looking at is, well, required. As a part of Xbox, we all need to follow a standard of practice, you can find a detailed description of ithere. The parameters for what data we consider to be critical to our work are set by our team at Mojang Studios in alignment with Xbox.

What we want to find out is how fun you think Minecraft is. There are lots of ways to figure that out, like feedback, playtests, experience, and magic. We want to add data to that mix, which is where WorldLoaded and WorldUnloaded come in. WorldLoaded measures when you boot a session up, and WorldUnloaded measures when you shut it down. Together, they will measure how fun Minecraft is, using metrics such as playtime and the game modes that players choose to play. That’s it. All the data we collect, whether it’s required or opt-in, follows GDPR and CCPA best practices to keep your information safe.

The rest of the current telemetry events are opt-in, which means that you can choose whether or not you want to send us additional data. The only players that can’t opt-in are Microsoft child accounts, but everyone can still send in all of their feedback tofeedback.minecraft.net.

Just like all the thoughts and comments we get from you on our feedback site, this is something that greatly helps us improve Minecraft. We want to make a game that you want to play, so we want to know what that game needs. Even if it’s more lava.

TRANSPARENCY

  • Added Telemetry Data Collection Screen
    • This screen displays information about the type of data that is sent
    • The level of data sent can be controlled between "Minimal" and "All"
      • "Minimal" sends only the required data
      • "All" sends the required data, as well as optional data
    • The default data level is "Minimal" (only the required data)
  • Every telemetry event sent from the client is now logged to disk
    • Old log files are removed after 7 days
    • These can be found under thelogs/telemetrydirectory
      • A shortcut to this directory is available via the "Open My Data" button on the Telemetry Data Collection screen

REQUIRED EVENTS

  • Added WorldUnloaded event
  • Removed client Java version from the WorldLoaded event

WORLDLOADED & WORLDUNLOADED

Understanding how Minecraft is played allows us to focus game updates and improvements on the areas that are most relevant to players.The data that tells us this includes game mode, client or server modded status, and game version.

WorldLoaded & WorldUnloaded are two paired events that calculate how long the world session has lasted (in seconds and ticks).Data from WorldLoaded is sent when a world is launched, and data from WorldUnloaded is sent when a world is shut down (quitting to title, disconnecting from a server).

OPTIONAL EVENTS

  • Added PerformanceMetrics and WorldLoadTimes events

PERFORMANCEMETRICS

Knowing the overall performance profile of Minecraft helps us tune and optimize the game for a wide range of machine specifications and operating systems.

The periodic performance metrics includes data such as frame-rates, rendering performance, memory usage, operating system, and the modded status of the client and server.

Game version is included to help us compare the performance profile for new versions of Minecraft.

WORLDLOADTIMES

It’s important for us to understand how long it takes to join a world, and how that changes over time. For example, when we add new features or do larger technical changes, we need to see what impact that had on load times.

This event includes the total time in milliseconds for the world to load, whether this was a new world, as well as game version and platform details.

GAME RULES

  • AddedblockExplosionDropDecay,mobExplosionDropDecayandtntExplosionDropDecaygame rules
    • When set tofalse, all blocks drop loot
    • When set totrue, blocks drop loot randomly depending on how far from the explosion center
    • Defaults tofalsefor tnt, true for block and mob
  • AddedsnowAccumulationHeightgame rule
    • When it is snowing, this game rule determines the maximum number of layers can be accumulated in each block
    • Defaults to1
    • Set to0makes no snow form at all
    • Set to8or above lets snow form up to the level of a full block
  • AddedwaterSourceConversionandlavaSourceConversiongame rules
    • When set totrue, allows new sources of that fluid to form
    • Defaults totruefor water andfalsefor lava
  • AddedglobalSoundEventsgame rule, controlling whether certain gameplay moments are heard by all players regardless of location
    • Defaults totrue

RECIPES

CRAFTING BOOK CATEGORIES

  • Crafting book categories/tabs can now be controlled by recipe definitions
  • Categories available forshaped/shapelessand various special crafting recipes:
    • building
    • redstone
    • equipment
    • misc(default)
  • Categories available forsmelting,blasting,smoking,campfire_cooking
    • food
    • blocks
    • misc(default)
  • Some crafting books collapse multiple categories into a single tab
  • The exact mappings might change in the future

RESOURCE PACKS

  • The Resource Pack version is now 12
  • Removed "fixers" for resource packs with versions 3 and 4 (pre-flattening)
    • The game will no longer try to adapt packs with those versions to the current version
  • Game now loads all block models and blockstate definitions in appropriate directories
    • That means that if a pack has invalid model it will prevent pack from loading, even if this model is unused

TEXTURE LOADING CHANGES

  • Context: When the game loads all textures used by block and item models need to be stitched (merged) into a single image, called the "atlas"
    • Individual textures that are stitched onto the atlas are called "sprites"
  • To improve loading performance, block and item textures are now loaded before they are processed by block and item models
    • By default, textures not in thetextures/itemandtextures/blockdirectories will no longer be automatically recognized and will fail to load
  • Resource packs can now have configuration files, located inatlasesdirectory, that control which images are included in the atlases

ATLAS CONFIGURATION FILES

  • New directoryatlasesis now present for resource packs
  • This directory contains JSON entries for configuring atlases:
    • blocks- textures used by block and item models
    • banner_patterns,beds,chests,shield_patterns,shulker_boxes,signs- used to render some special-case models
    • mob_effects- textures used for effect icons in the UI
    • paintings- textures used for paintings
    • particles- textures used for particles (referenced by thetexturesfield in files within theparticlesdirectory)
  • If multiple packs include those files, they are merged by their order within the pack (same as tags in data packs)
  • Inside these files is a JSON object with a single list calledsources
    • Every entry insourcesruns in during load, in order of definition, adding or removing new files to the texture list; to be later referenced by block models, particles, etc
  • Types of sources:
    • directory- lists all files in a directory and its subdirectories, across all namespaces
      • source- directory in pack to be listed (relative totexturesdirectory)
      • prefix- string to be appended to the sprite name when loaded
    • single- adds a single file
      • resource- location of a resource within the pack (relative totexturesdirectory, implied.pngextension)
      • sprite- sprite name (optional, defaults toresource)
    • filter- removes sprites matching the given pattern
      • namespace,path- patterns (regular expressions, regex) of ids to be removed (only works for entries already in the list)
        • If omitted, any value will be matched
    • unstitch- copies rectangular regions from other images
      • resource- location of a resource within the pack (relative totexturesdirectory, implied.pngextension)
      • divisor_x,divisor_y- used for determining the units used by regions
      • regions- list of regions to copy from the source image
        • sprite- sprite name
        • x,y- coordinates of the top-left corner of the region
        • width,height- size of the region
      • Values such asxare transformed to real image coordinates via dividing by their divisor, and then multiplying by the real image size
  • Example: if a pack has a file namedassets/test/textures/fancy/iridium.pngand source is{"type": "directory", "source": "fancy", "prefix": "custom/"}, the texture will be available in models astest:custom/iridium

CUSTOM PLAYER HEAD NOTE BLOCK SOUNDS

  • Player Heads can now contain anote_block_soundfield
    • When present, this determines the sound a note block makes when the head is placed on top of it

NEW ENTITY SUB-PREDICATE TYPES

  • Added new entity sub-predicates for some entity types with variants:
  • axolotl
    • variant- values:lucy,wild,gold,cyan,blue
  • boat
    • Works for boats, chest boats and rafts
    • variant- values:oak,spruce,birch,jungle,acacia,dark_oak,mangrove,bamboo
  • fox
    • variant- values:red,snow
  • mooshroom
    • variant- values:red,brown
  • painting
    • variant- values: seepainting_variantregistry
  • rabbit
    • variant- values:brown,white,black,white_splotched,gold,salt,evil
  • horse
    • variant- values:white,creamy,chestnut,brown,black,gray,dark_brown
    • Markings are separate value and not matched
  • llama
    • variant- values:creamy,white,brown,gray
  • villager
    • variant- values: seevillager_typeregistry
    • Also works for Zombie Villagers
    • Profession and level are separate values and not matched
  • parrot
    • variant- values:red_blue,blue,green,yellow_blue,gray
  • tropical_fish
    • variant- values:kob,sunstreak,snooper,dasher,brinely,spotty,flopper,stripey,glitter,blockfish,betty,clayfish

NETWORK PROTOCOL

  • The network protocol now supports adding player entities to the world without being added to the 'tab' player list
  • Servers can now lazily distribute players' profile public keys along with their first chat packet
  • Message 'headers' within the Secure Chat protocol no longer need to be distributed when private messages are sent
  • Contextual message references are now deduplicated for efficiency within the Secure Chat network protocol
  • Servers can now lazily distribute players' profile public keys along with their first chat packet
  • Profile public keys will now be refreshed without reconnecting
  • Clients now reset their chat session on receiving a login packet

EXPERIMENTAL FEATURES IN 1.19.3

  • Some experimental features now need to be enabled to appear in worlds
  • Such features are enabled by adding a built-in datapack when creating a world
  • Feature toggles are meant to hide unfinished or experimental features, to make sure your existing worlds remain unaffected
  • Worlds that are using experimental features will be marked as "Experimental" in world selection list
  • Experimental features cannot be toggled for existing worlds

BUNDLES

  • Bundles are now available as an experimental feature

ADDED CAMEL

Camels are now available when Update 1.20 experimental features are enabled.

  • Camels can be equipped with a saddle and ridden by two players
  • Camels spawn naturally in Desert Villages
  • Camels are tall
    • Most hostile mobs will not be able to reach you when you are on a Camel
    • They can walk over Fences and Walls without a sweat
  • Camels are very graceful, but grumpy mobs
    • They randomly sit down
    • While sitting, it is difficult to convince them to move
  • Camels can either walk slowly or sprint quickly
  • They can also dash forward but will lose stamina for a while when doing so

BAMBOO WOOD SET

A new set of Bamboo wood blocks are now available when Update 1.20 experimental features are enabled.

  • New wood blocks
    • Block of Bamboo
    • Stripped Block of Bamboo
    • Bamboo Planks
    • Bamboo Door
    • Bamboo Trapdoor
    • Bamboo Sign
    • Bamboo Stairs
    • Bamboo Slab
    • Bamboo Fence
    • Bamboo Fence Gate
    • Bamboo Button
    • Bamboo Pressure Plate
  • Block of Bamboo can be crafted from 9 Bamboo and can be stipped like other wood logs
  • Bamboo Planks crafted from Block of Bamboo yield only 2 planks compared to 4 for wood logs
  • Added a new "Mosaic" plank variant that is unique to Bamboo called Bamboo Mosaic
    • It can be crafted with 1x2 Bamboo Slabs in a vertical strip
    • You can craft Stair and Slab variants of Bamboo Mosaic
    • Bamboo Mosaic blocks cannot be used as a crafting ingredient where other wooden blocks are used, but they can be used as fuel
  • Added a unique Bamboo Raft and Bamboo Chest Raft which can be crafted like normal boats, but with Bamboo Planks
    • They function the same as ordinary boats, but have a unique look to them

CHISELED BOOKSHELF

A new, chiseled variation of the Bookshelf is now available when Update 1.20 experimental features are enabled.

  • Crafted with 6 planks and 3 wooden slabs
  • Can store Books, Book and Quills, Written Books, and Enchanted Books
    • Holds up to 6 books
    • Keeps the stories and lore of your world safe
    • These can be added or removed from any slot by targeting the specific slot
  • Comparators can detect the last book placed/removed
    • Perfect for hiding secrets in your spooky library
  • Works with Hoppers

HANGING SIGNS

Ever wanted to hang up your signs? Fetch a few chains, strip some logs, and now you can! Hanging signs are now available when Update 1.20 experimental features are enabled.

  • Hanging Signs are a more expensive version of normal Signs
    • Crafted with 2 chains and 6 stripped logs of your preferred wood type
    • Crafting results in 6 Hanging Signs
  • Can be hung up in the following ways:
    • Underneath a block that can provide support in the center, like a full block or a fence
    • Attached to the solid side of a block
    • Attached to the side or underneath another Hanging Sign
  • Unlike normal Signs, they cannot be placed directly on the ground without support from the side or above
    • However, Hanging Signs that have a horizontal bar will not pop when the supporting block is removed

MOB HEADS ON NOTE BLOCKS INTERACTION

  • When placing a Mob Head on a Note Block, that Note Block will now play one of the ambient sounds of that mob when played by a player or powered by Redstone

PIGLIN MOB HEAD

  • Piglins will now drop their heads when killed by a charged Creeper
  • Placing the Piglin head on a Note Block will play one of the Piglin's ambient sounds
  • The Piglin head will flap its ears when powered by Redstone, or when worn by a player while walking

ADVANCEMENTS

  • Breeding Camels now counts for "The Parrots and the Bats" and is now required for "Two by Two"
  • Hanging Signs now counts for "Glow and Behold"

FIXED BUGS IN 1.19.3

Around 200 bugs were fixed in this release. View thelist on the issue tracker.

GET THE RELEASE

To install the Release, open up theMinecraft Launcherand click play! Make sure your Launcher is set to the "Latest Release” option.

Cross-platform server jar:

Report bugs here:

Want to give feedback?