Java Edition 1.12

1.12, the first release of the World of Color Update, is a major update to Minecraft released on June 7, 2017. This update introduced a more vibrant color palette, a new crafting system, hints for beginners, glazed terracotta, concrete, colored beds, illusioners, and parrots. It also replaced achievements with a customizable and more powerful system of advancements, and introduced a new system for working with collections of commands, called functions.

Blocks

 * Colored beds
 * Added 15 new beds, in addition to the existing red bed.
 * Crafted using three of the respective wool colors along with three of any wood planks.


 * Concrete
 * Comes in the 16 traditional dye colors.
 * Created when concrete powder comes into contact with still or flowing water.


 * Concrete powder
 * Comes in the 16 traditional dye colors.
 * Gravity affected (like sand and gravel).
 * When it touches water, it turns into a concrete block.
 * Craftable using 4 sand, 4 gravel and one of any dye to get 8 concrete powder blocks. The recipe is shapeless.


 * Glazed terracotta
 * Comes in the 16 traditional dye colors.
 * Smelt any colored terracotta in a furnace to obtain the glazed terracotta of that color (not for regular terracotta).
 * Can be placed in 4 directions: north, south, west, and east.
 * When placed down while facing the right directions, a repeating pattern can be created. For example, the white terracotta will create the pattern of a sun when 4 are placed down correctly.
 * Will not "stick" to slime blocks if attached to the side, top or bottom, but will if attached to the front or back.

Items

 * Knowledge books
 * A green-colored book.
 * Currently obtainable only with the command.
 * A Knowledge Book with a  NBT tag, which contains a list of item IDs, will be consumed and unlock the specified items' recipes for any player that  it.
 * Especially useful when is set to true.


 * Spawn eggs
 * Parrot (new mob): Green with red dots.

Mobs

 * Illusioners
 * New illager.
 * Affects players with for 20 seconds then shoots with a bow.
 * Its blindness spell will only be cast if the regional difficulty is greater than 2.
 * Summons duplicates of itself.
 * All duplicates will show shooting animation, but only the real one can be hit and shoots the arrow.
 * The original turns invisible.
 * Does not currently have a spawn egg, so can only be summoned with.
 * Targets both the player and villagers.
 * Unused and present only $$.


 * Parrots
 * Fly around, but sit when "tired".
 * Tamed with seeds.
 * If fed cookies, the parrot dies.
 * Poison particle effects are emitted, but they are not actually killed by poison.
 * If a player has tamed a parrot and then fed it cookies, it will display the message "Parrot was slain by ".
 * Follow and crowd around nearby mobs.
 * Imitates sounds of hostile mobs.
 * Parrots dance if playing music on a nearby jukebox.
 * Right-click action available:
 * Right-click on a tamed parrot tells it to sit down.
 * Walking over/through/near a tamed parrot while crouching will cause it to sit on the player's shoulders.
 * Will let go if the player jumps.
 * Can fly with players during elytra flight.
 * Have health.
 * Come in red, blue, green, cyan and gray.

Gameplay

 * Gamerules
 * Defaults to true.
 * Toggles announcing of advancements, replacing the old  server.properties entry.
 * If  is set, the gamerule is automatically updated and   is removed.
 * Off by default.
 * Enabling will only allow players to craft recipes they have unlocked.
 * A function to be executed once per tick.
 * The default is 65536.
 * Determines the number at which the chain command block acts as a "chain".
 * A function to be executed once per tick.
 * The default is 65536.
 * Determines the number at which the chain command block acts as a "chain".
 * Determines the number at which the chain command block acts as a "chain".

Command format

 * Targets the executing entity, e.g:.
 * Can grant, test or revoke advancements, and particular advancement criteria, for a given player.
 * There are five modifiers to the command: "everything", "from", "until", "through", "only".
 * "everything" - all advancements, no specification required (same as "*")
 * "from" - this advancement, its children, and their children, etc.
 * "until" - this advancement, its parent, and its parent, etc.
 * "through" - both of the above
 * "only" - this advancement, and nothing else
 * Examples:
 * Runs a function once through the entity or command block which ran the function command.
 * Added new arguments:
 * - runs the function only if the specified selector is found.
 * - runs the function except when the specified selector is found.
 * Can unlock, or lock, the given recipes for the given player.
 * If  is specified, it will lock or unlock all recipes for the player.
 * Command to reload advancements and loot tables from disk.
 * This command is available to all opped players in single player and to all level 4 operators on a multiplayer server.
 * Cannot be run from a command block.
 * Can unlock, or lock, the given recipes for the given player.
 * If  is specified, it will lock or unlock all recipes for the player.
 * Command to reload advancements and loot tables from disk.
 * This command is available to all opped players in single player and to all level 4 operators on a multiplayer server.
 * Cannot be run from a command block.
 * This command is available to all opped players in single player and to all level 4 operators on a multiplayer server.
 * Cannot be run from a command block.

General

 * Advancements
 * Replaces achievements.
 * Can be customized via JSON files.
 * Tab-based UI.
 * 5 tabs (more supported):
 * Minecraft: The heart and story of the game.
 * Adventure: Adventure, exploration, and combat.
 * Nether: Bring summer clothes.
 * The End: Or the beginning?
 * Husbandry: The world is full of friends and food.
 * Data-driven UI, including positioning and layout.
 * Supports rewards in the form of recipes, loot, experience and functions.
 * The only default advancements with a reward are the default "challenge" advancements, which grant experience.
 * Pop-up "toast" notification for when players advance.
 * New sliding effect.
 * Comes in two different colors - yellow for normal advancements, and pink for "challenge" advancements.
 * A number display tracks progress while completing advancements with multiple requirements.


 * Controls
 * Added keybinding options for Creative toolbar saving.
 * Added new keybinding for opening advancements (default "L").


 * Creative
 * Added "Saved Toolbars" tab.
 * Save toolbars in Creative Mode with + and load them with +.
 * Can save up to 9 toolbars.
 * If the player saves an empty toolbar, it will clear the bookmarked toolbar and put back the 'informational paper' in the respective slot.


 * Functions
 * Added new function system, which are text files with the file extension  in.
 * For example, running  will refer to the function located at.
 * Functions are a list of commands, one line per command (without a forward slash), with  comment support.


 * JSON format
 * Added 'group' to recipe json format, to clump similar recipes together.
 * Added new 'keybind' text component, to refer to the player's keybindings.


 * Menu screen
 * Added the ability to see credits by clicking the copyright text.


 * Narrator
 * + toggles a text-to-speech engine that automatically reads player chat messages, including the name.
 * Option to toggle narrator between: "off", "chat & system", "chat only", and "system messages only".
 * Shows a notification for toggling.
 * The Narrator will not read commands or command outputs, nor will it read messages produced with.
 * It displays a message whenever the Narrator isn't available.
 * Uses the "toast" notification system.


 * NBT tags
 * Stores the tick a chain command block was last executed in.
 * and for breedable entities
 * Together these record the UUID of the entity that caused a given animal to breed.
 * A compound tag containing a list of recipes, formatted as JSON, that the player has seen, as well as recipe book information.
 * Becomes 1 if the player has enabled the "Show Craftable" feature in the recipe book.
 * Checks if the player has left the GUI open.
 * Contains information about all recipes the player has seen.
 * Checks if the player has tried out the recipe in the recipe book before (by clicking it/viewing it).
 * Within are recipe names that the player has unlocked but not viewed in the crafting helper yet.
 * Used for remembering to play the animation for new recipes.
 * A list of crafting recipes to unlock for the player that right-clicks while holding a knowledge book.
 * If this is not specified, the knowledge book will not be consumed.
 * A compound tag containing the X, Y, and Z coordinates of the Overworld position the player entered the Nether.
 * The x coordinate.
 * The y coordinate.
 * The z coordinate.
 * Changes to 1 if the player leaves the End through the portal.
 * and
 * Contains entity data about an entity on the left and right shoulders of the player.
 * Defaults to . If set to , loops can be created, where the same command block can run multiple times in one tick.
 * If this is not specified, the knowledge book will not be consumed.
 * A compound tag containing the X, Y, and Z coordinates of the Overworld position the player entered the Nether.
 * The x coordinate.
 * The y coordinate.
 * The z coordinate.
 * Changes to 1 if the player leaves the End through the portal.
 * and
 * Contains entity data about an entity on the left and right shoulders of the player.
 * Defaults to . If set to , loops can be created, where the same command block can run multiple times in one tick.
 * Changes to 1 if the player leaves the End through the portal.
 * and
 * Contains entity data about an entity on the left and right shoulders of the player.
 * Defaults to . If set to , loops can be created, where the same command block can run multiple times in one tick.
 * Defaults to . If set to , loops can be created, where the same command block can run multiple times in one tick.
 * Defaults to . If set to , loops can be created, where the same command block can run multiple times in one tick.


 * Recipe books
 * Catalogs recipes that are unlocked when the criteria are met.
 * When a recipe is clicked, it will appear in the crafting grid, and can be crafted if materials are available.
 * A shift-click ability puts all available materials in the crafting grid.
 * A new white-and-gray colored "toast" notification pops up when the player unlocks new recipes.
 * The pop-up notification that displays upon unlocking new recipes has an icon showing the items that can be crafted with the new recipes.
 * If the player searches "excitedze" in the recipe book, their language switches to Pirate Speak.
 * folder added with all item recipes as  files.


 * Sounds
 * New note block sounds.
 * = xylophone
 * = bell
 * = flute
 * = chime
 * = guitar
 * New sound effects for:
 * Parrots
 * Illusioners
 * Casting a fishing rod
 * Reeling in a fishing rod
 * Throwing an eye of ender
 * Eyes of ender exploding or popping back into item form
 * Putting ender eye in end portal frames (dinging sound)
 * Completing the end portal and having the portal spawn (evil sound)
 * Boat paddles
 * Player drowning
 * Player burning
 * Completing a challenge advancement
 * Toast notifications
 * New cave sounds: cave17.ogg and cave18.ogg.


 * Splashes
 * "Don't feed chocolate to parrots!"
 * "The true meaning of covfefe"
 * Reference to a cryptic tweet from then–U.S. President Donald Trump.
 * "An illusion! What are you hiding?"
 * "Something's not quite right..."
 * The top two are references to Suramar City guards in World of Warcraft, who say these lines when a player, having an illusion on themself, goes nearby.
 * The splash about the illusion could also be a reference to the illusioner.


 * Tutorial hints
 * Displayed in the top right.
 * Only displayed once per device.
 * Saved per player, stored in options.txt.
 * Name:
 * List of criteria:,  ,  ,  ,  , and

Blocks



 * Banners
 * New palette texture.
 * "Chief fess" and "base fess" banners are now just "chief" and "base" banners.


 * Beds
 * Now the player can sleep when a neutral zombie pigman is near.
 * Now the player can bounce on the bed, albeit much less than with slime blocks
 * Now reduce (but not negate) fall damage when landed on.
 * The player can survive a 41 block fall onto a bed without armor.
 * Any higher, and the second bounce will deal the remaining amount of damage to kill them.
 * The player can create a platform around 7 blocks high beside the bed to land on to prevent death, in which case a player can survive a 45 block fall.
 * Now a block entity, and each half can be colored individually using the NBT tag.
 * Beds now display as blocks, unlike Pocket Edition beds. Now use a 3D item model instead of a 2D item because of the new colors.


 * Buttons, levers, redstone torches, torches, and tripwire hooks
 * Can now be placed on jack o'lanterns.
 * Redstone torches and torches still cannot be placed on top of jack o'lanterns.


 * Command blocks
 * Now executes all of the commands in a chain before scheduling them for the next tick.
 * It is now possible to stop/modify the operation of a chain via commands and get results instantly (as opposed to getting them in a 1 tick delay).
 * Optimized error conditions in command blocks.
 * Tab-completing command names in command blocks will no longer add a  prefix.


 * Fences, cobblestone walls, glass panes, and iron bars
 * Now connect to the back and underside of stairs.


 * Hardened clay
 * Renamed to terracotta.


 * Magma blocks
 * Are now able to burn infinitely, like netherrack.


 * Shulker boxes
 * Colors changed in accordance with the changes to other block colors.
 * Purple shulker boxes unchanged.


 * Stairs
 * The rear face and underside of stairs are now considered "solid".
 * Allows for torches, fences, iron bars, glass panes, cobblestone walls, and snow layers to connect to them properly.


 * Wool
 * New palette texture.

Items

 * Maps
 * Dyed blocks such as banners and terracotta now have unique colors.

Mobs



 * Sheep
 * New color palette for wool on body.


 * Shulkers
 * Colors changed in accordance with the changes to other block colors.
 * Purple shulkers are left the same.


 * Withers
 * Can no longer break end gateway blocks and piston extensions.


 * Zombies
 * New  and   tags
 * Contains the UUID of the player that is converting the zombie.
 * Used with the "minecraft:cured_zombie_villager" trigger for advancements.

Non-mob entities

 * Minecarts with TNT
 * No longer instantly explode when hit with fire charges; instead, they explode as if primed by an activator rail.


 * Paintings
 * Will now try to place the largest possible in the available space it has.

Command format

 * and
 * Now reinforces item-specific stacking restrictions.
 * This is a reverse of 16w32a ( resolved as "Works as Intended").

General

 * Achievements
 * Removed and replaced by advancements.


 * Controls
 * Pressing will now hide all toast messages.


 * Crafting
 * Closing the crafting interface with items inside will no longer drop the items in front of the player, but will send them instead to the inventory.


 * Creative
 * Materials tab merged with miscellaneous tab in creative mode.


 * Java version
 * This is the first version to use, and thus require, Java 8.


 * Language
 * Many pieces of text are now translatable, where previously they were hardcoded English.
 * The full list of changes can be found here.


 * Movement
 * The player's body now entirely faces to the front, when moving backwards.
 * Prior to this update, moving backwards would cause the player model to rotate one side, making it look like the player was strafing backwards somewhat.


 * NBT format
 * Improved NBT parsing in commands.
 * Keys can now (optionally) be quoted, e.g:.
 * Unquoted string values are now stricter; they can no longer contain spaces or special symbols, e.g:.
 * Indices, which were previously optional in lists, are no longer allowed, e.g:.
 * Empty keys and values are no longer allowed.
 * Improved error messaging; now points to where exactly the error occurred.


 * Optimizations
 * Huge optimizations to creative inventory searching.
 * Optimized chunk loading.


 * Splashes
 * "Now Java 6!" changed to "Now Java 8!"

Video
Video made by slicedlime:

Trivia

 * 1.12, along with Java Edition 1.8.2, had the most pre-releases of any update at the time, with a total of 7 pre-releases.
 * This was later broken by Java Edition 1.13, with 10 pre-releases.
 * This version came out exactly 5 years before 1.19.