Java Edition 1.12

| Edition | ||||||
|---|---|---|---|---|---|---|
| Official name | ||||||
| Release date |
June 7, 2017 | |||||
| Development versions | ||||||
| Downloads | ||||||
| Protocol version |
335 | |||||
| Data version |
1139 | |||||
| Resource pack format |
3 | |||||
| Minimum Java version | ||||||
| ||||||
{
"title": "Minecraft 1.12",
"images": [
"Java Edition 1.12.png"
],
"rows": [
{
"field": "''(link to Java Edition article, displayed as Java Edition)''",
"label": "(link to Edition article, displayed as Edition)"
},
{
"field": "(link to World of Color Update article, displayed as World of Color Update)",
"label": "Official name"
},
{
"field": "June 7, 2017",
"label": "Release date"
},
{
"field": "<div class=\"hlist\"><span style=\"white-space:nowrap;\">(link to :Category:Java Edition 1.12 snapshots article, displayed as '''Snapshots''') (11) </span><br/><span style=\"white-space:nowrap;\">(link to :Category:Java Edition 1.12 pre-releases article, displayed as '''Pre-releases''') (7) </span><br/>((link to Java Edition 1.12/Development versions article, displayed as View all))</div>",
"label": "<span style=\"white-space: normal;\">Development versions</span>"
},
{
"field": "[https://piston-data.mojang.com/v1/objects/909823f9c467f9934687f136bc95a667a0d19d7f/client.jar Client] ([https://piston-meta.mojang.com/v1/packages/367843437acbae63de3084dd6afd3dd8bd2a7479/1.12.json .json])<br />[https://piston-data.mojang.com/v1/objects/8494e844e911ea0d63878f64da9dcc21f53a3463/server.jar Server]",
"label": "(link to Tutorial:Installing a snapshot#Manual version installation article, displayed as Downloads)"
},
{
"field": "335",
"label": "(link to Protocol version article, displayed as Protocol version)"
},
{
"field": "1139",
"label": "(link to Data version article, displayed as Data version)"
},
{
"field": "3",
"label": "<span style=\"white-space: normal;\">(link to Pack format#List of resource pack formats article, displayed as Resource pack format)</span>"
},
{
"field": "<span class=\"plainlinks\">[https://en.wikipedia.org/wiki/Java_version_history#Java_SE_8 Java SE 8]</span>",
"label": "<span style=\"white-space: normal;\">Minimum Java version</span>"
}
],
"invimages": [],
"footer": "<table style=\"margin: auto; word-break: break-word;\">\n<tr style=\"background: inherit;\">\n<td style=\"padding: 0.4em\" >[[Java Edition 1.11|<span style=\"margin-right:-0.35em\">◄</span>◄ 1.11]]</td>\n<td rowspan=\"2\" style=\"padding: 0.4em\">''' 1.12'''</td>\n<td style=\"padding: 0.4em\" >[[Java Edition 1.13| 1.13 <span style=\"margin-right:-0.35em\">►</span>►]]</td>\n</tr>\n<tr style=\"background: inherit;\">\n<td style=\"padding: 0.4em\">\n[[Java Edition 1.11.2|◄ 1.11.2]]\n</td>\n\n<td style=\"padding: 0.4em\">\n[[Java Edition 1.12.1| 1.12.1 ►]]\n</td>\n</tr>\n</table>"
}
1.12, the release of the World of Color Update,[2] is a major update to 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. This is the first version released in 2017.
Additions
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.
- Comes in the 16 traditional dye colors.
- Created when concrete powder comes into contact with still or flowing water.
- 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.
- Comes in the 16 traditional dye colors.
- Smelt any stained 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, white terracotta creates the pattern of a sun when 4 are placed down correctly.
- Does not "stick" to slime blocks if attached to the side, top or bottom, but does stick if attached to the front or back.
Items
- A green-colored book.
- Currently obtainable only with the
/give @p knowledge_bookcommand. - A knowledge book with a
RecipesNBT tag, which contains a list of item IDs, is consumed and unlocks the specified items' recipes for any player that uses it.- Especially useful when
/gamerule doLimitedCraftingis set to true.
- Especially useful when
Mobs
- New illager.
- Affects players with
Blindness for 20 seconds then shoots with a bow.
- This spell is cast only if the regional difficulty is greater than 2.
- Summons duplicates of itself.
- All duplicates 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 effect's particles are emitted, but they are not actually killed by poison.
- If a player feeds a tamed parrot cookies, it displays the message "Parrot was slain by <player>" in chat (unless the parrot is named).
- 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 causes it to sit on the player's shoulders.
- Lets go if the player jumps.
- Can fly with players during elytra flight.
- Have 6HP health.
- Come in red, blue, green, cyan and gray.
Gameplay
- 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.
- 5 tabs (more supported):
- 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.
Gamerules
announceAdvancements- Defaults to true.
- Toggles announcing of advancements, replacing the old
announce-player-achievementsserver.properties entry.- If
announce-player-achievementsis set, the gamerule is automatically updated andannounce-player-achievementsis removed.
- If
doLimitedCrafting- Off by default.
- Enabling only allows 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.
- Targets the executing entity, e.g:
/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:
/advancement grant dinnerbone until story/elytra/advancement revoke dinnerbone everything
/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.
- Added new arguments:
- Runs a function once through the entity or command block which ran the function command.
/recipe <give|take> [player] <name|*>- Can unlock, or lock, the given recipes for the given player.
- If
*is specified, it locks or unlocks 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.
General
- 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 clears the bookmarked toolbar and puts back the 'informational paper' in the respective slot.
- Added new function system, which are text files with the file extension
.mcfunctioninnamespace:path/to/function/file.- For example, running
/function custom:example/testrefers to the function located atWORLDNAME/data/functions/custom/example/test.mcfunction.
- For example, running
- 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.
- 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 does not read commands or command outputs, nor it reads messages produced with
/me. - It displays a message whenever the narrator isn't available.
- Uses the "toast" notification system.
- [Long]
LastExecution- Stores the tick a chain command block was last executed in.
- [Long]
LoveCauseLeastand [Long]LoveCauseMostfor breedable entities- Together these record the UUID of the entity that caused a given animal to breed.
- [NBT Compound / JSON Object]
recipeBook- A compound tag containing a list of recipes, formatted as JSON, that the player has seen, as well as recipe book information.
- [Byte]
isFilteringCraftable- Becomes 1 if the player has enabled the "Show Craftable" feature in the recipe book.
- [Byte]
isGuiOpen- Checks if the player has left the GUI open.
- [Byte]
unlocked
- [NBT List / JSON Array]
recipes- Contains information about all recipes the player has seen.
- [Byte]
displayed- Checks if the player has tried out the recipe in the recipe book before (by clicking it/viewing it).
- [NBT List / JSON Array]
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.
- [NBT List / JSON Array]
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 is not consumed.
- [NBT Compound / JSON Object]
enteredNetherPosition- A compound tag containing the X, Y, and Z coordinates of the Overworld position the player entered the Nether.
- [Double]
x- The x coordinate.
- [Double]
y- The y coordinate.
- [Double]
z- The z coordinate.
- [Byte]
seenCredits- Changes to 1 if the player leaves the End through the portal.
- [NBT Compound / JSON Object]
ShoulderEntityLeftand [NBT Compound / JSON Object]ShoulderEntityRight- Contains entity data about an entity on the left and right shoulders of the player.
- [Byte]
UpdateLastExecution- Defaults to
1b. If set to0b, loops can be created, where the same command block can run multiple times in one tick.
- Defaults to
- Catalogs recipes that are unlocked when the criteria are met.
- When a recipe is clicked, it appears 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.
recipesfolder added with all item recipes as.jsonfiles.
- New note block sounds.
Bone block = xylophone
Block of gold = bell
Clay = flute
Packed ice = chime
Wool = 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.
- "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.

- 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, andcraft_planks
- Name:
- Saved per player, stored in options.txt.
Changes
Blocks

- 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 deals 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
- Can now be placed on jack o'lanterns.
- Redstone torches and torches still cannot be placed on top of jack o'lanterns.
- 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 no longer adds a
/prefix.
Fences, cobblestone walls, glass panes, and iron bars
- Now connect to the back and underside of stairs.
Hardened clay
- Renamed to terracotta.
- Are now able to burn infinitely, like netherrack.
- Colors changed in accordance with the changes to other block colors.
- Purple shulker boxes unchanged.
- 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.
- New palette texture.
Items
- Dyed blocks such as banners and terracotta now have unique colors.
Mobs

- 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 color palette for collar.
- New
ConversionPlayerLeastandConversionPlayerMosttags- Contains the UUID of the player that is converting the zombie.
- Used with the "minecraft:cured_zombie_villager" trigger for advancements.
Non-mob entities
- No longer instantly explode when hit with fire charges; instead, they explode as if primed by an activator rail.
- Now tries to place the largest possible in the available space it has.
Command format
/giveand/replaceitem
General
- Removed and replaced by advancements.
Controls
- Pressing F1 now hides all toast messages.
- Closing the crafting interface with items inside no longer drops the items in front of the player, but sends 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.[6]
- 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.[7][8]
- 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.
- Keys can now (optionally) be quoted, e.g:
- Improved error messaging; now points to where exactly the error occurred.
Optimizations
- Huge optimizations to Creative inventory searching.
- Optimized chunk loading.
- "Now Java 6!" changed to "Now Java 8!"
Fixes
From released versions before v0.16.0 alpha
- 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 [wolf], 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 – [Wolves], 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-108343 – Minecraft 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 [wolves] 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-112765 –
hoverEventJSON 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
SPacketPlayerListHeaderFooteris 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-114281 –
MutableBlockPosleak. - 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_propertiesloot 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.
Videos
Videos 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 was released exactly 5 years before 1.19 and 6 years before 1.20.
References
- ↑ "Important Message: Security vulnerability in Java Edition" – Minecraft.net, December 10, 2021.
- ↑ "World of Color is released!" by Jens Bergensten – Minecraft.net, June 7, 2017.
- ↑ "Here's another example of the palette, this time with exactly the same texture in both pictures" – @jeb_ (Jens Bergensten) on X (formerly Twitter), January 24, 2017
- ↑ MC-117005 — resolved as "Works As Intended".
- ↑ MC-105965 — resolved as "Works As Intended".
- ↑ "Heads up modders: This snapshot is the first Minecraft version to require (and therefore use) Java 8. You can now finally use 7/8 features!" – @Dinnerbone (Nathan Adams) on X (formerly Twitter), March 31, 2017
- ↑ MC-114900, resolved as "Works as Intended" – Maria Lemón, April 22, 2017
- ↑ "It actually is a bug, it tries to rotate the body to the direction you are walking, but it can only do it so far, that is also why it basically picks a 'random direction'. Now it can actually understand when it is walking backwards and it stopped doing that weird behavior." – u/_Grum on Reddit, April 22, 2017