Minecraft Wiki

For a guide about all content in this release and the other releases of the World of Color Update, see Java Edition guides/World of Color Update.

1.12, the first release of the World of Color Update,[1] is a major update to Minecraft (Java Edition) 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.



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.
  • 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.


Knowledge books
  • A green-colored book.
  • Currently obtainable only with the /give @p knowledge_book command.
  • A Knowledge Book with a Recipes NBT tag, which contains a list of item IDs, will be consumed and unlock the specified items' recipes for any player that uses it.
    • Especially useful when /gamerule doLimitedCrafting is set to true.
Spawn eggs
  • Parrot (new mob): Green with red dots.


  • New illager.
  • Affects players with Blindness for 20 seconds then shoots with a bow.
  • 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 /summon minecraft:illusioner.
  • Targets both the player and villagers.
  • Unused and present only in Java Edition.
  • 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 <player>".
  • 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 6♥♥♥ health.
  • Come in red, blue, green, cyan and gray.


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

Command format[]

  • @s
    • Targets the executing entity, e.g: /execute @e[type=villager] ~ ~ ~ say @s.
  • /advancement <grant|revoke|test> <player> <advancement> [criterion]
    • 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:
  • /function namespace:file
    • Runs a function once through the entity or command block which ran the function command.
      • Added new arguments:
        • if <selector> - runs the function only if the specified selector is found.
        • unless <selector> - runs the function except when the specified selector is found.
  • /recipe <give|take> [player] <name|*>
    • Can unlock, or lock, the given recipes for the given player.
    • If * is specified, it will lock or unlock all recipes for the player.
  • /reload
    • 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.


  • 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.
  • Added keybinding options for Creative toolbar saving.
  • Added new keybinding for opening advancements (default "L").
  • Added "Saved Toolbars" tab.
    • Save toolbars in Creative Mode with C+1-9 and load them with X+1-9.
    • 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.
  • Added new function system, which are text files with the file extension .mcfunction in namespace:path/to/function/file.
    • For example, running /function custom:example/test will refer to the function located at WORLDNAME/data/functions/custom/example/test.mcfunction.
  • 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.
  • CTRL+B 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 /me.
  • It displays a message whenever the Narrator isn't available.
    • Uses the "toast" notification system.
NBT tags
  •  LastExecution
    • Stores the tick a chain command block was last executed in.
  •  LoveCauseLeast and  LoveCauseMost for breedable entities
    • Together these record the UUID of the entity that caused a given animal to breed.
  •  recipeBook
    • A compound tag containing a list of recipes, formatted as JSON, that the player has seen, as well as recipe book information.
    •  isFilteringCraftable
      • Becomes 1 if the player has enabled the "Show Craftable" feature in the recipe book.
    •  isGuiOpen
      • Checks if the player has left the GUI open.
      •  unlocked
    •  recipes
      • Contains information about all recipes the player has seen.
      •  displayed
        • Checks if the player has tried out the recipe in the recipe book before (by clicking it/viewing it).
    •  toBeDisplayed
      • 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.
  •  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.
  •  enteredNetherPosition
    • A compound tag containing the X, Y, and Z coordinates of the Overworld position the player entered the Nether.
    •  x
      • The x coordinate.
    •  y
      • The y coordinate.
    •  z
      • The z coordinate.
  •  seenCredits
    • Changes to 1 if the player leaves the End through the portal.
  •  ShoulderEntityLeft and  ShoulderEntityRight
    • Contains entity data about an entity on the left and right shoulders of the player.
  •  UpdateLastExecution
    • Defaults to 1b. If set to 0b, 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.
  • recipes folder added with all item recipes as .json files.
  • "Don't feed chocolate to parrots!"
  • "The true meaning of covfefe"
  • "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
The new tutorial hints.
  • Displayed in the top right.
  • Only displayed once per device.
    • Saved per player, stored in options.txt.
      • Name: tutorialStep
      • List of criteria: movement, find_tree, punch_tree, open_inventory, and craft_planks




A comparison of banner colors before and after 17w06a. Image by Jeb.[2]

  • New palette texture.
  • "Chief fess" and "base fess" banners are now just "chief" and "base" banners.
  • 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 color.
  • 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
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
Magma blocks
Shulker boxes
  • Colors changed in accordance with the changes to other block colors.
    • Purple shulker boxes unchanged.
  • New palette texture.





Comparison of old and new shulker and shulker box colors (The purple shulker and shulker box was later changed back to normal).

  • New color palette for wool on body.
  • Colors changed in accordance with the changes to other block colors.
    • Purple shulkers are left the same.
  • Can no longer break end gateway blocks and piston extensions.
  • New ConversionPlayerLeast and ConversionPlayerMost 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.
  • Will now try to place the largest possible in the available space it has.

Command format[]

  • /give and /replaceitem
    • Now reinforces item-specific stacking restrictions.[3]
      • This is a reverse of 16w32a (MC-105965 resolved as "Works as Intended").


  • Removed and replaced by advancements.
  • Pressing F1 will now hide all toast messages.
  • 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.
  • Materials tab merged with miscellaneous tab in creative mode.
Java version
  • This is the first version to use, and thus require, Java 8.[4]
  • Many pieces of text are now translatable, where previously they were hardcoded English.
    • The full list of changes can be found here.
  • The player's body now entirely faces to the front, when moving backwards.[5][6]
    • 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: "Motion":[0.0,0.0,0.0].
    • Unquoted string values are now stricter; they can no longer contain spaces or special symbols, e.g: CustomName:Test Test.
    • Indices, which were previously optional in lists, are no longer allowed, e.g: Motion:[0:7.3,1:1.0,2:3.1].
    • Empty keys and values are no longer allowed.
  • Improved error messaging; now points to where exactly the error occurred.
  • "Now Java 6!" changed to "Now Java 8!"


53 issues fixed
From released versions before 1.12
  • MC-2813 – Snow doesn't form / cannot be placed on upside down slabs / stairs.
  • MC-5228 – Cow's/Mooshroom's udder texture is wrong.
  • MC-8345 – Placing torch on backside of stairs impossible.
  • MC-9176 – Glass panes not correctly rendering with the back of stairs.
  • MC-9565 – Fences and Cobblestone Walls connect to Fence Gates, which are facing the other direction.
  • MC-10613 – Fence doesn't connect with stairs.
  • MC-11240 – Ignited TNT can be set on fire by a Flame Bow.
  • MC-11963 – bed hind legs not rendered.
  • MC-12503 – Item Description is rendered behind Potion Effect Status in Inventory.
  • MC-40275 – Credit screen/End Poem music not playing correctly.
  • MC-50166 – Game states that "The block couldn't be placed" when using /setblock to place air in a space occupied by a tile entity, despite working.
  • MC-59535 – Server log outputs TextComponent object rather than its Text property for player lost connection/Disconnecting message.
  • MC-92324 – Players become invisible.
  • MC-92527 – Villager trade items render over inventory tooltips.
  • MC-94016 – Glass panes and iron bars connect to barrier blocks.
  • MC-95367 – Tamed dog, cat or parrot in a minecart teleports to a player (not visually).
  • MC-95560 – Wrong command message: Last character of NBT parsing error message is missing.
  • MC-96555 – Wolves, ocelots and parrots can teleport in all non-full cube blocks near owner including path, lava, fire.
  • MC-97662 – NBT parser regex checks for pipebars as tag declaration.
  • MC-100468 – Dogs, cats and parrots teleport to player despite being in a boat (yet not visually).
  • MC-101234 – Stack trace is not printed in log when exception occurs while running command.
  • MC-103067 – The unit for "Minutes Played" statistic is not always minutes.
  • MC-108175 – Villagers sent through an end gateway portal in a minecart lose their AI.
  • MC-108304 – "Level Requirement" message is not translatable.
  • MC-108343Minecraft crashes with "java.lang.NullPointerException: Ticking screen" while pinging server on multiplayer server list (previously due to network issues, now more frequent).
  • MC-109663 – Tamed dogs attack tamed cats.
  • MC-109871 – Some advanced tooltips are not translatable.
  • MC-110243 – Sneaking + hit -> moved wrongly / no knockback.
  • MC-110474 – Activator Rail ejects 2 block tall Mobs to the wrong spot inside of 2 block tall room.
  • MC-111054 – Invalid lang in options.txt leads to connection error.
  • MC-111699 – Can't rename stacked items.
  • MC-111744 – Anvil outputs only 1 item when renaming.
  • MC-111753 – Hopper/Dropper will not input water bottles into brewing stand after potions have been removed by a hopper from brewing stand.
  • MC-112017 – The anvil rename field accepts 31 characters but the server rejects it if it is over 30.
  • MC-112425 – Hitting rabbits with fire aspect sword: "Couldn't smelt 0xtile.air@0 because there is no smelting recipe".
  • MC-112602 – "disconnect.spam" kick message is untranslated.
  • MC-112765hoverEvent JSON with specified color does not share among new lines.
  • MC-113125 – Loaded world shows clouds and void for few seconds.
  • MC-113255 – Server does not test if some files exist before trying to interact with them.
  • MC-113429 – Wither can break piston extension and end gateway.
  • MC-114110 – Constructor for playerlist header and footer packet SPacketPlayerListHeaderFooter is missing footer parameter.
  • MC-114219 – NBT integer array regex matches non integer arrays.
  • MC-114220 – NBT integer arrays have trailing comma in string representation.
  • MC-114281MutableBlockPos leak.
  • MC-115407 – Loot entries serialize incorrectly.
  • MC-116422 – Fires put out by splash water bottles do not cause block update.
  • MC-116489 – Unknown entity property for entity_properties loot table condition causes server crash for default loot tables.
  • MC-116623 – Stained hardened clay / terracotta blocks do not have correct color on map.
  • MC-116669 – Exploding TNT minecarts and ender crystals can cause StackOverflow.
  • MC-117197 – Message for non-existent team specified in entity NBT data is logged as info instead of warning or error.
  • MC-117640 – Pets (wolves, ocelots, parrots) teleport onto magma blocks.
  • MC-117710 – Bonus Chest setting is not copied when re-creating world.
  • MC-117858 – Right-clicking an item stack into the creative mode item selector destroys the whole stack.


Video made by slicedlime:


  • 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 version came out exactly 5 years before 1.19.