Java Edition 1.13

1.13, also known as Update Aquatic, is an upcoming major update to Minecraft: Java Edition set to be released in Q2 2018. It will focus mainly on ocean content, bug fixes, technical features, and optimization. This update was originally going to be released as two separate updates with 1.13, originally named Technically Updated, having the technical changes and 1.14, originally named Update Aquatic, having all the ocean features.

General

 * Data packs
 * Like resource packs, but for loot tables, advancements, functions, structures, recipes and tags.
 * Used by placing them into the  folder of a world.
 * Data packs are  files or folders, with a   in the root. See: Tutorials/Creating a resource pack. The packs are located in.
 * Structures will load from  before checking data packs.
 * However, this directory should not be used to distribute structures. Instead, move these files into data packs.
 * Reloadable using.
 * Structure:,   folder containing a namespace folder determining the namespace of its contents
 * A namespace should only contain the following symbols: 01​​234​5​6​78​9abcdefghijklmnopqrstuvwxyz-_
 * Inside the namespace folder, there can be folders for,  ,  ,  ,   and.


 * Tags
 * Items, blocks and functions can be "tagged" with an ID.
 * Block tags can be used when testing for blocks in the world.
 * Items tags can be used when testing for items in inventories.
 * Function tags can be used when calling functions using commands or advancements.
 * Functions tagged in  will run every tick at the beginning of the tick.
 * Functions tagged in  will run once after a (re)load.
 * Tags are created using data packs in,  , and.
 * When overriding a tag from a different data pack, you can choose to replace or append.
 * By default all tags append if another data pack created the tag.
 * Adding  to your tag definition will make the tag overwrite instead.
 * For example:
 * This will create a block tag called.
 * The json file contains a list of all blocks that should be "tagged".
 * This list can also contain other tags of the same type.
 * You can add for example  in a tag value list to reference another tag called.
 * Self referencing is not possible.
 * There are 14 vanilla tags for both items and blocks:,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , and.
 * There are 3 extra vanilla tags for blocks:,  , and.
 * There is 1 extra vanilla tag for items:.
 * Advancement item predicates now support item s.


 * Loot tables
 * Added the  function to loot tables.


 * Death Messages
 * Added a death message for when the player is blown up by a bed in the nether or end.
 * "Player was killed by [Intentional Game Design]"
 * Clicking on "[Intentional Game Design]" opens a link to.
 * Added a death message for when a mob or player causes another player to die in the void.
 * "Player didn't want to live in the same world as Player/Mob"


 * Options
 * FS (Fullscreen) Resolution
 * Is used to change the resolution.
 * An option in chat settings to toggle automatic command suggestions (defaults on, otherwise hit tab to bring them up).
 * Options when editing a world to make a backup and open the backups folder.

Commands

 * General
 * A command UI when typing commands in the chat.
 * Different components of commands will be displayed in different colors.
 * Errors will be displayed in red without having to run the command.
 * An  argument in target selectors.
 * A new command parsing library known as brigadier.


 * Coordinates
 * Added a new local coordinate type in commands using.
 * When specifying coordinates in a command, you can now use  to specify local coordinates instead of world coordinates.
 * The axes used for local coordinates are relative to the execution rotation, defaulting to  (south).
 * Like world coordinates, they are by default measured from the base of an entity.
 * The syntax is:
 * is the amount of blocks in the specified direction.


 * Specific commands
 * A command that allows the player to get, merge, and remove entity and block nbt data
 * Will return the NBT data from the block at . A   can be specified to only retrieve that nbt data. Numeric values will be set as the   of the command, strings will set set the length of the string as the , lists will set the number of elements in the list as the  , and compounds will set the number of tags that are directly in that compound as the  . An optional   can be provided to scale the number retrieved.
 * Will return the NBT data from one  entity. A   can be specified to only retrieve that nbt data. Numeric values will be set as the   of the command, strings will set set the length of the string as the , lists will set the number of elements in the list as the  , and compounds will set the number of tags that are directly in that compound as the  . An optional   can be provided to scale the number retrieved.
 * Will merge the block nbt data at  with the specified   data.
 * Will merge the entity nbt data from  with the specified   data. Merging player nbt data is not allowed.
 * Will remove nbt data at  from the block at.
 * Will remove nbt data at  from one   entity. Removing player nbt data is not allowed.
 * Data paths look like this:.
 * means foo's child called bar.
 * means element 0 of foo.
 * "quoted strings" may be used if a name of a key needs to be escaped.
 * Examples of old commands:
 * is now
 * is now
 * Examples of new functionalities:
 * means foo's child called bar.
 * means element 0 of foo.
 * "quoted strings" may be used if a name of a key needs to be escaped.
 * Examples of old commands:
 * is now
 * is now
 * Examples of new functionalities:


 * A command to control loaded data packs.
 * Has the following subcommands:
 * - will enable the specific pack.
 * - will disable the specific pack.
 * - will list all data packs, or only the available/enabled ones.
 * Data packs are enabled by default, but if you disable it you can re-enable it with these commands:
 * - will enable the specific pack, putting it in its default position.
 * - will enable the specific pack, putting it before any other pack (lowest priority)
 * - will enable the specific pack, putting it after any other pack (highest priority)
 * - will enable the specific pack, putting it before (lower priority) pack
 * - will enable the specific pack, putting it after (higher priority) pack
 * - will enable the specific pack, putting it after (higher priority) pack


 * will create a boss bar.
 * is used to target the boss bar and is in the form, for example:  . If no   is specified it defaults to.
 * is the display name of the boss bar and only accepts a JSON text component.
 * will change the name of the boss bar.
 * will change the color of the text (if no color was specified as part of a text component) and the boss bar, defaults to.
 * will change the style of the boss bar, defaults to.
 * Available options are:,  ,  ,  , and.
 * will set the amount of segments.
 * will set the amount of segments to 1.
 * will change the current value of the boss bar, defaults to.
 * will change the maximum value of the boss bar, defaults to.
 * will change the visibility of the boss bar, defaults to
 * will change which players can see the boss bar, defaults to none.
 * will remove the boss bar.
 * will display a list of created boss bars.
 * will return the requested setting as a  of the command.
 * will return the requested setting as a  of the command.


 * Added.
 * Will rotate an entity to face either an entity or a location.
 * Will rotate an entity to face either an entity or a location.
 * Will rotate an entity to face either an entity or a location.


 * Added  and   to.
 * Added  and   to.

Blocks

 * Trapdoors, buttons and pressure plates made from all six types of wood.
 * A pumpkin block, without the face. The previous pumpkin block has been renamed "Carved Pumpkin".
 * Right-clicking a pumpkin block with shears will turn it into a carved pumpkin and make it spit out 4 pumpkin seeds.

Items

 * An item form for bark blocks for all six types of wood.
 * An item form for smooth quartz, smooth red sandstone, smooth sandstone, and smooth stone.
 * An item form for red and brown mushroom blocks and mushroom stems.
 * A debug stick to cycle between different block states.
 * Left clicking cycles through states; right clicking cycles through values. Shift clicking will cycle through the states or values in reverse order.
 * A model for petrified oak slab - the old wood slab that acts like a stone slab.

General

 * The "flattening"
 * Numeric block metadata completely phased out in favor of block states.
 * Split, merged, created, deleted, and renamed a lot of blocks, blockstates and items.
 * Blocks and items previously differing because of damage value have gotten their own id, for example  instead of
 * Damage has been moved to the  tag and is only used by tools and armor; maps use a   tag.
 * Files and commands no longer use  or.
 * Structures do not run an upgrade path for this.
 * To update your structures, load them all in 1.12, then update to 1.13 and save all structures again.


 * Recipes
 * Custom recipes can now be loaded from data packs in
 * Furnace recipes have been moved to JSON files.
 * They use.
 * is used to determine the time it should take to smelt an item in the furnace.
 * Fuel is not included and is still hardcoded.


 * Creative Inventory
 * Because of The "flattening", certain blocks and items have been moved around in their respective groups, for example the Purpur block is now after Obsidian.
 * Mushroom Blocks, farmland and grass path are added to the inventory, under the Decoration Blocks group. Additionally, blank firework rockets are added to the Miscellaneous group.


 * Controls
 * The name of keybindings now describes the actual key (e.g. 'LBUTTON' -> 'Left Button', 'BACKSLASH' -> '\')


 * Options
 * Removed 3D Anaglyph completely


 * Resource packs
 * Updated format number to
 * The default resource pack can now be moved up and down on the resource pack selection screen.


 * Statistics
 * Statistics are being updated.
 * is now.
 * is now.


 * Other
 * Game library updates
 * Upgraded to LWJGL 3
 * Loading or creating a world shows the percentages of the loading stages.
 * now shows as a loading stage.
 * Crash reports now list what data packs are enabled.
 * Data generators are now exposed, you can get a dump of all blocks/items/commands/etc from the game without opening it up.
 * Changed translation files from  to.
 * Now supports newlines.

Commands

 * General
 * Commands and functions are much faster and more efficient.
 * Most commands are now more case-sensitive. Lowercase is preferable wherever possible.
 * For example, this is no longer allowed:
 * The output signal of a command block used to be its "success count", but now is its "result".
 * Server commands (functions, console, rcon) now run from world spawn in the overworld, instead of at.
 * Errors during a command are now a nicer error message (with a tool tip for more info).
 * Added commands to the profiler (/debug).
 * Whitespaces are now allowed in entity selectors & blockstate arguments.


 * NBT
 * and  nbt keys of item entities are no longer strings but are instead compounds with two longs named   and.
 * nbt keys of snowballs, eggs and ender pearls are no longer strings but are instead compounds with two longs named  and.
 * Changed all custom names (blocks, items, entities, block entities) to translatable text components.


 * Command UI
 * A new prototype for the command UI.


 * Functions
 * Functions are now completely parsed and cached on load.
 * This means if a command is incorrect for any reason, the player will know about it on load.


 * Specific Commands


 * Removed in favor of entity selectors.
 * Removed in favor of entity selectors.


 * Removed in favor of.
 * Removed in favor of.


 * The syntax of has changed.
 * {{cmd|clear [ ] [ ] [ (but doesn't change position).
 * {{cmd|execute at }} executes a command using the position, rotation, and dimension of the   (but doesn't change entity).
 * {{cmd|execute positioned }} executes a command using the position of.
 * {{cmd|execute positioned as }} executes a command using the position (x y z) of the   but nothing else.
 * {{cmd|execute align }} executes a command after aligning the current position to the block grid (rounding down),   is any combination of     and   (for example: , ,  and  ).
 * Examples:
 * using  will become
 * using  will become
 * {{cmd|execute facing }} executes a command as though the executor is facing.
 * {{cmd|execute facing entity (eyes{{!}}feet) }} executes a command as though the executor is facing the entity's eyes or feet.
 * {{cmd|execute rotated as }} executes a command as though the executor is rotated in the direction of the entity.
 * {{cmd|execute rotated }} will run the command as though the executor is rotated in the specified direction.
 * {{cmd|execute in (overworld{{!}}the_end{{!}}the_nether) }} executes a command as though the executor is in the specified dimension.
 * {{cmd|execute anchored (feet{{!}}eyes) }} will make the rest of this command use feet or eyes for ^ ^ ^ coordinates or facing commands.
 * Conditional sub-commands can let you prevent the command from running at all:
 * {{cmd|execute (if{{!}}unless) block  }} executes a command if (or unless)   matches.
 * {{cmd|execute (if{{!}}unless) blocks  (all{{!}}masked) }} executes a command if (or unless) the region between   and   matches.
 * {{cmd|execute (if{{!}}unless) entity }} executes a command if (or unless)   exists (returns 1 or more entities).
 * {{cmd|execute (if{{!}}unless) score  ( < {{!}} <= {{!}} = {{!}} >= {{!}} > ) 's score relates to  's score based on the chosen criterium.
 * {{cmd|execute (if{{!}}unless) score matches  }} executes a command if (or unless)  's score is in the   (ie ,  ).
 * As replacement for {{cmd|stats}}, a new sub-command  lets you store the result or success of a command somewhere:
 * is the result of a command, which replaces these old stats:,  ,  ,.
 * is how many times the command was successful. This is usually  or , but if the command split up (for example  ) then it may be more than  . This replaces.
 * The value will be stored when the full command has finished executing.
 * If a command isn't successful ( is  ),   will always be set to.
 * It will be made clear what the expected result of each command is.
 * {{cmd|execute store (result{{!}}success) score  }}
 * The value is stored into the scoreboard under  and.
 * The  must exist, but unlike with {{cmd|stats}} you don't need to set an initial value for.
 * {{cmd|execute store (result{{!}}success) block (byte{{!}}double{{!}}float{{!}}int{{!}}long{{!}}short)  }}
 * The value is stored in the nbt data at  of the block at   as a byte, double, float, int, long, or short.
 * {{cmd|execute store (result{{!}}success) entity (byte{{!}}double{{!}}float{{!}}int{{!}}long{{!}}short)  }}
 * The value is stored in the nbt data at  of one   entity as a byte, double, float, int, long, or short.
 * Like, {{cmd|execute store}} can't modify player nbt. Nbt inside the  key of items in the player's   or   is an exception and can be modified by {{cmd|execute store}}.
 * {{cmd|execute store (result{{!}}success) bossbar  (value{{!}}max) }}
 * The value is stored in the  or   setting of the boss bar with ID.
 * Data paths look like this:.
 * means foo's child called bar.
 * means element 0 of foo.
 * "quoted strings" may be used if a name of a key needs to be escaped.
 * Examples:
 * {{cmd|execute store success score @a foo run say hi}}
 * {{cmd|/execute as @e[type=pig] at @s store success entity @s Saddle byte 1 if entity @p[distance=..5] }}
 * You can chain all sub-commands together.
 * After every sub-command you need to write another sub-command.
 * When you're done with chaining sub-commands,  lets you write the actual command to be executed.
 * is no longer allowed before the command.
 * {{cmd|execute as somebody at somebody run say hi}}
 * Example of old commands:
 * {{cmd|execute @e ~ ~ ~ detect ~ ~ ~ stone 0 say Stone!}} is now {{cmd|execute as @e at @s if block ~ ~ ~ stone run say Stone!}}
 * {{cmd|execute @e ~ ~ ~ detect ~ ~ ~ grass 0 summon pig}} is now {{cmd|execute at @e if block ~ ~ ~ grass_block run summon pig}}
 * {{cmd|execute @e ~ ~ ~ say Hello!}} is now {{cmd|execute as @e run say Hello!}}
 * {{cmd|execute @e ~ ~ ~ say Hello!}} is now {{cmd|execute as @e run say Hello!}}


 * {{cmd|experience}}
 * {{cmd|xp}} is now an alias for {{cmd|experience}}.
 * Split up into 3 different subcommands:
 * {{cmd|experience add [points{{!}}levels]}}
 * Adds  of either points or levels to the target   (defaults to points).
 * Adding points can cause players to level up, as usual.
 * Negative numbers are supported, to subtract points instead.
 * Subtracting points can cause players to level down.
 * {{cmd|experience set [points{{!}}levels]}}
 * Sets  of either points or levels on the target   (defaults to points).
 * You cannot set more points than their current level allows.
 * When changing levels, the points will stay at the same percentage as the previous level.
 * {{cmd|experience query (points{{!}}levels)}}
 * Returns either the number of points or levels on the given.


 * {{cmd|fill}}
 * The syntax of {{cmd|fill}} has been changed.
 * {{cmd|fill    arguments.
 * This has been moved into {{cmd|execute}}.
 * {{cmd|function foo if @e}} is now {{cmd|execute if entity @e run function foo}}


 * {{cmd|gamerule}}
 * {{cmd|gamerule}} no longer accepts unknown rules ("custom gamerules").
 * You can use functions or scoreboards as replacements, with no loss of functionality.
 * Existing custom gamerules will just not be accessible. Only built-in rules will be available.
 * Values to {{cmd|gamerule}} are now type checked (giving a string if it wants an int is a very obvious error).
 * Removed the  gamerule in favor of functions tagged in.


 * {{cmd|give}}
 * The syntax of {{cmd|give}} has changed.
 * {{cmd|give [ ] [  is now mandatory


 * {{cmd|locate}}
 * The y-coordinate is now returned as  instead of.
 * The  of the command, used by {{cmd|execute store}}, will be the absolute distance to the structure.


 * {{cmd|particle}}
 * The  argument has been removed, instead the parameters for particles like   can be specified right after the   argument using the new block argument.
 * {{cmd|particle block polished_granite ~ ~ ~ 0 0 0 0 1 }}
 * {{cmd|particle dust 1 1 1 1 ~ ~ ~ 0 0 0 0 1 }}
 * are, in order, the three RGB color values (0-1) and the size of the particle.
 * {{cmd|particle }} is now a valid shortcut. ,  , and   will default to
 * Particle names have been changed.
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed
 * -> removed


 * {{cmd|playsound}}
 * Will {{key|Tab}} auto-complete custom sound events.


 * {{cmd|replaceitem}}
 * The syntax of {{cmd|replaceitem}} has changed.
 * {{cmd|replaceitem block  [ ] [  argument no longer requires.
 * For example,  now is


 * {{cmd|scoreboard}}
 * {{cmd|scoreboard}} had  removed from its commands in favor of the   argument in entity selectors.
 * {{cmd|scoreboard players tag}} and {{cmd|scoreboard teams}} removed. Replaced by {{cmd|tag}} and {{cmd|team}} respectively.
 * {{cmd|scoreboard players test}} removed in favor of {{cmd|execute (if{{!}}unless) score}}, entity selectors and {{cmd|scoreboard players get }}.


 * {{cmd|setblock}}
 * The syntax of {{cmd|setblock}} has changed.
 * {{cmd|setblock [  and , which covers all the old stat types.


 * {{cmd|stopsound}}
 * can now be used instead of  to stop all sounds with a certain name, across all sources.


 * {{cmd|tag}}
 * Replaces {{cmd|scoreboard players tag}}.
 * Keeps the same syntax.
 * {{cmd|tag add }} to add  to.
 * {{cmd|tag remove }} to remove  from.
 * {{cmd|tag list}} to list all tags on.


 * {{cmd|team}}
 * Replaces {{cmd|scoreboard teams}}.
 * Keeps the same syntax.
 * {{cmd|team add [ ]}}
 * {{cmd|team empty }}
 * {{cmd|team join [ ]}}
 * {{cmd|team leave [ ]}}
 * {{cmd|team list [ ]}}
 * {{cmd|team option  }}


 * {{cmd|testfor}}, {{cmd|testforblock}} and {{cmd|testforblocks}}
 * Removed. Now part of {{cmd|execute}}.


 * {{cmd|toggledownfall}}
 * Removed. It was always used to stop the rain, but rain usually quickly returned.
 * Use {{cmd|weather}}.


 * {{cmd|tp}} and {{cmd|teleport}}
 * {{cmd|tp}} is now an alias of {{cmd|teleport}} (much like {{cmd|w}}, {{cmd|msg}} and {{cmd|tell}}).
 * {{cmd|teleport}} has been simplified a bit, to avoid ambiguity.
 * {{cmd|teleport }} doesn't allow rotation or facing, will teleport you to the entity.
 * {{cmd|teleport }} doesn't allow rotation or facing, will teleport you to the position.
 * {{cmd|teleport }} doesn't allow rotation or facing, will teleport victim to entity.
 * {{cmd|teleport [yRot xRot]}} will teleport you to that position with optional rotation.
 * {{cmd|teleport facing [xFacing yFacing zFacing]}} will teleport you to that position facing another position.
 * {{cmd|teleport facing entity  [feet{{!}}eyes]}} will teleport you to that position facing an entity's feet or eyes (default feet).
 * Teleporting to an entity in another dimension is now allowed.


 * {{cmd|trigger}}
 * {{cmd|trigger }} is a new syntax as a shortcut for {{cmd|trigger add 1}}.


 * {{cmd|weather}}
 * If you don't specify a time, it now defaults to 5 minutes (previously random).


 * Argument Types


 * Target selectors
 * More error handling has been introduced.
 * Arguments may now be quoted.
 * Things like,  ,   are not allowed.
 * There's no longer a "min" and "max" separate values, we instead support ranges.
 * is level 10
 * is level 10, 11 or 12
 * is anything level 5 or above
 * is anything level 15 or below
 * The arcane shorthand names have been renamed.
 * or  ->
 * or  ->
 * or  ->
 * or  ->
 * ,,  ,  ,  ,   are now doubles and allow values like
 * and  are no longer center-corrected.
 * This means  no longer equates to.
 * (previously ) no longer allows numerical or shorthand IDs.
 * (was ) No longer allows negative values.
 * Use  instead.
 * The  argument now supports spaces (as long as it's quoted).
 * Multiple of the same argument in target selectors is now possible.
 * matches someone with,   and not.
 * matches something that isn't a cow and isn't a chicken.
 * isn't allowed, because something cannot both be a cow and chicken.
 * You can specify the sorting.
 * is the old default, sorting by distance (default for )
 * is the reverse of that (previously you'd use  for this)
 * for random sorting (default for )
 * is a new option to not sort the result (default for,  )
 * Specifying scores now looks like
 * You can test for advancements with
 * for "they completed the advancement",  for "they have not completed the advancement"
 * Alternatively, pass a block of specific criteria to test for (again, / )
 * for "they completed the advancement",  for "they have not completed the advancement"
 * Alternatively, pass a block of specific criteria to test for (again, / )


 * Blocks
 * Wherever a, optionally   and optionally   was required, it's now a single   argument that looks like this:
 * ID is required (though just as before, if namespace isn't set it defaults to ).
 * States are inside, comma-separated and must be properties/values supported by the blocks. They are optional.
 * is a syntax error, because  doesn't have.
 * is a syntax error, because 's   is a number between 0 and 15.
 * NBT tag is inside {}, and works just like you'd expect. It's optional.
 * In the context of "conditions"/testing for blocks, only the states you provided will be tested.
 * If you test, it only checks power but ignores other states such as.
 * In the context of setting blocks, any states you provided will be set but anything missed out will default depending on the block.
 * If you set, it will set   to 15 but   will be a default value (in this case, set to  ).
 * There is no such thing as block data value in 1.13. It's either a different blocks, or a state.
 * Items
 * Wherever an, optionally   and optionally   was required, it's now a single   argument that looks like this:
 * ID is required (though just as before, if namespace isn't set it defaults to ).
 * NBT tag is inside {}, and works just like you'd expect. It's optional.
 * There is no such thing as item data value or item damage value in 1.13.
 * Damage, where applicable, is being moved into nbt.
 * Any other information is either a separate item or a property in nbt.
 * ID is required (though just as before, if namespace isn't set it defaults to ).
 * NBT tag is inside {}, and works just like you'd expect. It's optional.
 * There is no such thing as item data value or item damage value in 1.13.
 * Damage, where applicable, is being moved into nbt.
 * Any other information is either a separate item or a property in nbt.
 * Any other information is either a separate item or a property in nbt.

World generation

 * General
 * Rewrote the world generation system.


 * Witch Huts
 * Now generates with a mushroom in the flower pot.
 * Previously, it was completely empty.

Blocks

 * The upper limit of the block ID has dissappeared.
 * Blocks which used to have no bottom texture (like repeaters, comparators, torches, etc.) now have a bottom texture, not including redstone wire.
 * Flicking a lever on now displays redstone particles.
 * Blocks with a collision box now have matching bounding boxes.
 * Affected: anvils, cauldrons, hoppers, fences, iron bars, glass panes, filled ender portal frames, vines, lily pads, stairs, brewing stands, and pistons
 * Updated the collision box of anvils and hoppers.
 * Does not affect blocks with a collision box smaller than their model, such as soul sand and snow layers.
 * Beds now require a block below it as a support. Previously this was only required when placing the bed and the block could be destroyed afterwards without the bed being destroyed.
 * Chests and trapped chests can be put directly next to their double variants instead of requiring one block between them.
 * Shift right-clicking a chest or trapped chest next to a chest or trapped chest respectively will not make the two chests or 2 trapped chests combine into a double chest or double trapped chest.
 * Placing pumpkins and fence gates no longer requires a block below them.
 * Monster eggs will now break instantly, no matter the tool.
 * When broken with Silk Touch, the non-infested counterpart of the block will drop.
 * Bark can now be crafted. 4 logs in a square yield 3 bark.
 * Multiple vines facing different directions, including on the bottom of blocks, can now be placed in the same block space.

Mobs

 * Horse
 * The model has been changed to be more consistent with other mobs.
 * Some animations like opening its mouth when grazing have been removed from the model as well.

Non-mob entities

 * Item frames
 * Item frames can now be put on floors and ceilings.


 * Paintings
 * Paintings now use a namespaced ID for their motive.


 * Fishing bobbers
 * Bobbers created by fishing rods got an entity ID,.
 * This ID can only be used for testing, summoning is not possible.

Gameplay

 * Enchantments
 * Loyalty
 * Can be applied to tridents causing them to come back after thrown
 * Impaler
 * Slipstream Dash
 * Will make the player leap forward
 * Only works in water or in rain

World generation

 * Shipwrecks
 * Will contain chests with loot in them
 * Were shown primarily composed of dark oak wood planks and dark oak fences
 * Will come in multiple variants.


 * Icebergs
 * Consist of packed ice, snow layers, and snow blocks.
 * Generate on the surface of frozen ocean biomes.
 * Can generate with tall columns and tunnels.


 * Ocean biomes
 * Addition of more ocean variants, including warm and cold versions.
 * Will not generate retroactively in existing chunks from older versions.

Blocks

 * Coral
 * Available as a block, slab, stair and plant
 * Will die when placed outside of the water.
 * Turns gray/white
 * Cannot be revived
 * 5 colors have been shown
 * Textures will be replaced


 * Kelp
 * Grows up from the bottom of the water in tall pillars
 * Generates in a type of ocean biome that is separate from the one coral generates in


 * Turtle eggs
 * Generate in turtle nests
 * Baby turtles will hatch from these eggs
 * Eggs will show a cracking animation while this occurs
 * The eggs will be obtainable with a tool enchanted with Silk Touch.

Items

 * Tridents
 * Can be thrown at enemies or used as melee weapon
 * Can be enchanted with new enchantments Loyalty, Impaler, and Slipstream Dash


 * Turtle shell pieces
 * Used to craft a full shell as well as for brewing

Mobs

 * Phantoms (Mob B)
 * Was voted in by viewers of MineCon Earth
 * Spawns at high altitudes, and swoops down in groups of around 3 or 4 to attack players that have not slept in a long time.
 * The player must be above sea level


 * Dolphins
 * Will often jump out of the water and land back in
 * Will lead players to sunken treasures
 * Will not drop anything upon death


 * Fish
 * Come in several different colors and/or types
 * Can be picked up in a bucket and placed back down. When this is performed on the fish, it will no longer be able to despawn.


 * Turtles
 * Water mobs which will make nests comprised of eggs on shorelines throughout various biomes.
 * They will have a baby variant, which will hatch from the eggs, and move into the water when born.

General

 * World generation will become data-driven, using json files, allowing for custom structures.
 * Water will be able to be placed in the same space as semi-transparent blocks such as fences and slabs.
 * If a water source block is placed near a semi-transparent block, however, the flowing water it creates will not be able to flow through the block.
 * Items placed in flowing water will move through semi-transparent blocks the water flows through, instead of colliding with them as expected as if the water was not there.
 * Items in water will float upwards.

Blocks

 * Magma blocks placed under water will produce bubble columns that reduce the water's buoyancy.
 * Magma blocks will spawn in ocean ravines.
 * The bubble columns will make the player's boat shake when the player sails near them, until the player sinks with the boat.
 * Bubble columns will also cause items that are in the water near them sink too.
 * The player will be able to breathe while in the bubble columns.

Unconfirmed features

 * The ability to change biome dependent colors (such as foliage, water, and the sky) without needing mods.
 * The ability for the recipe book to show smelting recipes.
 * Customizable furnace recipe files.
 * Recipe book design might be changed.
 * , and  might be replaced by,  and.
 * ,, and  might be replaced by other commands.