Java Edition 1.19.4

1.19.4 is an upcoming minor update to with no set release date, which adds the  and  commands, makes technical changes, and fixes bugs. Aside from the aforementioned changes, this version will also release the rest of the 1.20 features under the same data pack.

Non-mob entities

 * Display entities
 * Including Block Display, Item Display, and Text Display, for flexible display of blocks, items and text.
 * Like 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.
 * 2 new data types added, each of them has 2 forms, but only one for saving, as following:
 * Quaternion form (used for saving): array of 4 numbers, describing components (x, y, z, w).
 * Axis-angle form: object with following fields:
 * : 3D vector.
 * : Angle in radians.
 * : Arbitrary affine transform, composed as following fields and following order:
 * Matrix form: array of 16 numbers, describing row-major matrix.
 * Decomposed form (used for saving): object with following fields:
 * : 3D vector.
 * : object.
 * : 3D vector.
 * : object.
 * Some properties of display entites can be interpolated, to create gradual changes over time for clients, instead of instantenous 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 single update.
 * Previous current values are saved as "previous".
 * If interpolation is enabled, entity will transition between "previous" and "current" values over time.
 * Start of interpolation (entity fully in "previous" state) is defined by field (game time, in ticks).
 * Set to to load current game time instead.
 * End of interpolation (entity fully in "current" state) is defined as +  (in ticks).
 * Every entity in family has the following fields:
 * : applied to model (after normal entity orientation). Defaults to identity. Interpolated.
 * : option to control if entity should pivot to face player when rendered:
 * : No rotation (default).
 * Entity can pivot around vertical axis.
 * Entity can pivot around horizontal axis.
 * Entity can pivot around center point.
 * : If present, overrides light values used for rendering. Omited by default (which means rendering uses values from entity position). Object has two fields:
 * : Value of skylight, from 0 to 15.
 * : Value of block light, from 0 to 15.
 * : 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).
 * : Size of shadow. Defaults to 0 (no shadow). Interpolated.
 * : Strength of the shadow. Controls the opacity of the shadow as a function of distance to block below. Defaults to 1. Interpolated.
 * : Describe size of culling bounding box. Bounding box spans vertically to  and horizontally  in all directions from entity position. If either field is set to 0, culling is disabled. Both default to 0.
 * : Override glow border color. Defaults to 0 (use team color).
 * Besides common fields, these entitiy types also have some exclusive fields for their different usages:
 * Item Display : Displays a single item stack (stack can be changed with commands by setting slot ).
 * : Item stack to display. Same format as in inventory.
 * Example:
 * : Describes item model transform applied to item (as defined in section in model JSON)
 * Values: (default),.
 * Block Display : Displays a block state, does not display block entities, even if they would normally be created on block placement (like chest).
 * : Block state to display. Same format as item held by endermen.
 * Example:.
 * Text Display : Displays a text component (backgrounds uses new shader types ).
 * : Text to display. Components are resolved with the context of the display entity.
 * : Line width used to split lines (note: new line can be also addded with characters). Defaults to 200.
 * : Opacity (alpha component) of rendered text. Defaults to 255. Interpolated.
 * : Color of background. Includes alpha channel. Defaults to 0x40000000. Interpolated.
 * : If true, rendering uses default text background color (same as in chat). Defaults to false.
 * : Should text be displayed with shadow. Defaults to false.
 * : Should text be visible through blocks. Defaults to false.
 * : How text should be aligned.
 * Values: (default),.
 * Values: (default),.


 * Interaction
 * A new type of entity that records s and s. Interactions are invisible and of a custom size, with following fields:
 * : Width of the entity's bounding box (default ).
 * : Height of the entity's bounding box (default ).
 * : An action object, records the last attack action on the entity.
 * : An action object, records the last interaction action on the entity.
 * : Boolean specifying if interacting should trigger a response (arm swing, sound effects, etc - default ).
 * Introduced action object accordingly. When an action is stored, it always has two fields:
 * : The UUID (in standard integer array format) of the player performing the action.
 * : The timestamp of the game tick when the event happened (stored as a long).
 * This made following command usage possible:
 * Execute command as the last player who attacked the entity when using.
 * Execute command as the last player who interacted with the entity when using.
 * Advancement triggers also got triggered, when:
 * Interacting with an interaction entity:.
 * Attacking an interaction entity:.

Command format

 * Game rule
 * Added.
 * Defaults to.
 * Controls the maximum number of blocks changed in one execution of, , and commands.
 * Added.
 * Defaults to.
 * Determines if vines will spread to nearby blocks.
 * Does not affect cave vines, twisting vines and weeping vines.


 * A new command to apply damage to entities, with following syntaxes:
 * Parameters:
 * : The entity to damage.
 * : Amount of damage to inflict.
 * : The type of damage to inflict.
 * This determines how the damage affects the entity as well as which death message is displayed.
 * : The location the damage originated at (when no entity caused the damage).
 * For instance, might represent the location of a bed exploding in the Nether.
 * : The entity inflicting the damage.
 * : The cause of the damage, in the case of indirect damage.
 * Example: When shot by an arrow, the is the arrow projectile while  might be a skeleton.
 * : The entity inflicting the damage.
 * : The cause of the damage, in the case of indirect damage.
 * Example: When shot by an arrow, the is the arrow projectile while  might be a skeleton.


 * A new command to allow entities to start or stop riding other entities, syntaxes:
 * : makes a single target mount a single vehicle, will fail if:
 * is a player;
 * is already riding a vehicle;
 * and are the same entity;
 * is already a passenger (direct or indirect) of.
 * : dismounts from any vehicle it is riding, will fail if  is not riding anything.
 * : dismounts from any vehicle it is riding, will fail if  is not riding anything.

General

 * Data pack
 * Added damage types, which are a new registry.
 * Determines how damage is handled by the game.
 * Includes which attributes the damage has as well as which death message is used when an entity dies due to that type of damage, example:
 * Fields:
 * : The message id used for deaths caused by this damage type.
 * Will be combined with other string fragments to form a translation key.
 * : The amount of hunger exhaustion caused by this damage type.
 * : Whether this damage type scales with difficulty levels. Possible values:
 * : Damage is always the same.
 * : Damage always scales with difficulty.
 * : Damage scales with difficulty if it was caused by a living entity who is not a player.
 * : Optional field controlling how damage manifests when inflicted on players. Possible values:
 * (default): The default hurt sound.
 * : Thorns hurt sound.
 * : Drowning sound.
 * : A single tick of burning sound.
 * : Berry bush poke sound.
 * : Freeze tick sound.
 * : Optional field that controls if special death message variants are used. Possible values:
 * (default): No special death message logic is applied.
 * : Show a variant of fall damage death instead of a regular death message, e.g..
 * : 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.


 * Menu screen
 * Added an accessibility onboarding screen for players launching the game for the first time, which allows players to turn on the narrator and change accessibility settings if needed.
 * Added 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 or  to start changing their value.


 * Options
 * Added a new "Notification Time" accessibility option, to change how long the notifications such as unlocked recipes, advancements, subtitles and selected item names are visible.
 * Added "Glint Speed" and "Glint Strength" accessibility option for adjusting the speed and transparency of enchantment glints.
 * Added "Damage Tilt" accessibility option, for controlling the amount of camera shake when being hurt.
 * Added a tooltip in the Key Binds screen that specifies which keybinds are conflicting.
 * Added "High Contrast" accessibility option, which enhances the contrast of UI elements.


 * Protocol
 * Added a network protocol feature for forcing bundle of packets to be processed within same client tick.
 * 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 serverbound direction.


 * Realms
 * Added a notification system for Realms to notify the player about important information about their Realm.


 * Recipes
 * Added a new recipe serializer for the new decorated pot recipe.
 * Added field to recipes.
 * Accepts a boolean which determines if a notification is shown when unlocking this recipe.
 * Defaults to if isn't specified.


 * Resource packs
 * Added a built-in "High Contrast" resource pack that enhances the contrast of UI elements.
 * The resource pack can be enabled in the accessibility options screen or manually in the resource pack screen.
 * Only available in the menus for now.


 * Tags
 * Added following biome tags:
 * : contains.
 * Fire will burn out faster in these defined biomes.
 * : contains.
 * Snow golems will melt in these defined biomes.
 * : contains.
 * Snow foxes will spawn in these defined biomes.
 * : contains.
 * White rabbits will spawn in these defined biomes.
 * Added following block tag:
 * : contains.
 * Added following damage type tags:
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : empty in vanilla.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * Added following entity tag:
 * : contains.
 * Added following item tags:
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.
 * : contains.


 * General
 * Added argument to dedicated server command line for printing  to file.

Blocks

 * Froglight
 * Sounds when placing or breaking the block are now less loud.


 * Jukebox
 * Now emit a note particle above them while playing a music disc, to match.
 * Now emits a redstone signal of 15 while playing a music disc.
 * Droppers and hoppers can now interact with it.


 * Sculk Sensor
 * The event now has a vibration frequency of 2 instead of 14.
 * Are now able to detect more actions included in several existing and new game events, such as the following:
 * Using shears on cave vines, kelp, twisting vines and weeping vines.
 * Picking an item from a cave vine or a lectern.
 * Interacting with items placed on both types of item frames.
 * Trampling farmland into regular dirt.
 * Charging up a respawn anchor.
 * Interacting with a composter.
 * Turtle and frogs laying eggs.
 * Closing a minecart with chest or a boat with chest.
 * (new game event, with signal 6):
 * Dismount any passenger from any vehicle.
 * Dyeing a sheep.
 * Attaching or removing a lead from an entity.
 * (new game event, with signal 7):
 * Mount any passenger to any vehicle.
 * Dyeing a sheep.
 * Attaching or removing a lead from an entity.
 * (new game event, with signal 7):
 * Mount any passenger to any vehicle.

Items

 * Armor and Elytra
 * Now can swap the equipped gears by them.


 * Potions
 * No longer have an enchantment glint due to it obscuring the color of the potion contents.


 * Shield
 * A sound is now played when a shield is placed into the offhand slot.

Mobs

 * Donkey, Mule, Skeleton Horse, and Zombie Horse
 * Changed their textures.


 * Vex
 * Now use a separate charging animation when empty-handed.

Non-mob entities

 * Armor Stand
 * Now preserve custom names when placed and broken.


 * Minecart with Hopper
 * No longer aggravates piglins when opened.

Command format

 * Chat component
 * Added an optional field to  text components.
 * The new field is a string that will be used in place of translation if it is missing.
 * If is missing, the old behavior (i.e. using the key itself as the translation) is preserved.
 * Out-of-bound arguments in formats are no longer silently ignored.


 * Now supports specifying the source and target dimensions, new syntax:
 * {{cmd|link=none|clone [from
 * The resulting textures can be referenced in other resources like this:
 * The resulting textures can be referenced in other resources like this:


 * Tags
 * Added following block tags:
 * {{cd|#cherry_logs}}: contains {{cd|d=and|cherry_log|cherry_wood|stripped_cherry_log|stripped_cherry_wood}}.
 * {{cd|#sniffer_diggable_block}}: contains {{cd|d=and|dirt|grass_block|podzol|coarse_dirt|rooted_dirt|moss_block|mud|muddy_mangrove_roots}}.
 * Added following item tags:
 * {{cd|#breaks_decorated_pots}}: contains {{cd|#tools}}.
 * {{cd|#cherry_logs}}: contains {{cd|d=and|cherry_log|cherry_wood|stripped_cherry_log|stripped_cherry_wood}}.
 * {{cd|#decorated_pot_shards}}: contains {{cd|d=and|brick|pottery_shard_archer|pottery_shard_prize|pottery_shard_arms_up|pottery_shard_skull}}.
 * {{cd|#noteblock_top_instruments}}: contains {{cd|d=and|zombie_head|skeleton_skull|creeper_head|dragon_head|wither_skeleton_skull|piglin_head|player_head}}.
 * {{cd|#sniffer_food}}: contains {{cd|torchflower_seeds}}.
 * {{cd|#trim_materials}}: contains {{cd|d=and|amethyst_shard|copper_ingot|diamond|emerald|gold_ingot|iron_ingot|lapis_lazuli|netherite_ingot|quartz|redstone}}.
 * {{cd|#trim_templates}}: contains {{cd|d=and|coast_armor_trim_smithing_template|dune_armor_trim_smithing_template|eye_armor_trim_smithing_template|rib_armor_trim_smithing_template|sentry_armor_trim_smithing_template|snout_armor_trim_smithing_template|spire_armor_trim_smithing_template|tide_armor_trim_smithing_template|vex_armor_trim_smithing_template|ward_armor_trim_smithing_template|wild_armor_trim_smithing_template}}.
 * {{cd|#trimmable_armor}}: contains {{cd|d=and|chainmail_boots|chainmail_chestplate|chainmail_helmet|chainmail_leggings|diamond_boots|diamond_chestplate|diamond_helmet|diamond_leggings|golden_boots|golden_chestplate|golden_helmet|golden_leggings|iron_boots|iron_chestplate|iron_helmet|iron_leggings|leather_helmet|leather_chestplate|leather_leggings|leather_boots|netherite_boots|netherite_chestplate|netherite_helmet|netherite_leggings|turtle_helmet}}.

Blocks

 * Head
 * They can be placed on top of note blocks without sneaking now.

Items

 * Armor
 * Now can be visually customized with a variety of unique trims at the smithing table.
 * 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.
 * The name of the trim pattern will be displayed on the item's tooltip.
 * Armor trim has 2 properties: pattern and material.
 * Pattern: Defined by the smithing template used to apply the trim, and represents the visual pattern of the trim.
 * Material: Defined by what ingredient is used to apply the trim, and represents the color of the trim.
 * Available ingredients:

World generation

 * Desert Pyramid
 * Now includes a new room filled with sand and suspicious sand.
 * Some sand will appear exposed, and can be found at the same height as blue terracotta.


 * Desert Well
 * Now includes suspicious sand underwater.

Gameplay

 * Advancements
 * The cherry grove is now required to be visited for the "Adventuring Time" advancement.
 * The "A Seedy Place" advancement can be granted by planting torchflower seeds now.
 * The "The Parrots and the Bats" advancement can be granted by breeding sniffers now.
 * The "Two by Two" advancement now requires breeding a sniffer.


 * Smithing Table functionality
 * Redesigned: it is now a workstation for physical equipment upgrades and modifications.
 * Added a slot used by smithing templates to the left of the old 2 slots.
 * Smithing templates define what type of upgrade that will be making to equipment.
 * It specifies both what type of items that can upgrade, and which ingredients are valid to customize the upgrade.
 * Netherite equipment crafting now also requires a netherite upgrade smithing template.
 * Two menu types:
 * Old menu without the smithing template slot has been renamed to, and will be removed when armor trims are no longer an experimental feature.
 * New menu with smithing template slot was added, called.

General

 * Tags
 * Added into the  item tag.
 * Added into the  block and item tags.
 * Added into the  item tag.
 * Added into the  block and item tags.
 * Added into the  block and item tags.
 * Added into the  block and item tags.
 * Added into the  biome tag.
 * Added into the  block tag and  item tag.
 * Added into the  block and item tag.
 * Added into the  block and item tag.
 * Added into the  block tag.
 * Added into the  block tag.
 * Added into the  block and item tag.
 * Added into the  block and item tags.
 * Added into the  block and item tags.
 * Added into the  block and item tag.
 * Added into the  block tag and  item tag.
 * Added into the  block and item tags.
 * Added into the  block and item tags.
 * Added into the  block and item tags.
 * Added into the  block tag.
 * Added into the  block tag.
 * Added into the  block tag.
 * Added into the  block and item tag.
 * Added into the  block and item tags.
 * Added into the  block tag.