Copper golems are here at last, bringing with them an abundance of new items that are just as exciting to have! So, today, we explore all the big features to expect in the Minecraft The Copper Age patch notes, the blocks it adds, and, of course, the powers of the greatest copper companion one could have!
The Copper Age Update Patch Notes Highlights
Copper Tools, Weapons, & Armor
- Copper Nugget
- Copper Helmet
- Copper Chestplate
- Copper Leggings
- Copper Boots
- Copper Axe
- Copper Hoe
- Copper Pickaxe
- Copper Shovel
- Copper Sword
The new resource tier of copper has been added between stone and iron. This means any tool, weapon, or armor that could be made with iron, gold, and diamond can now be made with copper as well. Those who already have
netherite will find it has little use, but it is meant for the early game, so be sure to give it a try next time you start a new world.
New Copper Blocks
- Copper Bars
- Copper Chain
- Copper Chest
- Copper Torch
- Copper Lantern
Copper bars, chains, chests, and lanterns have all made their debut, complete with oxidation and all the expected variants the feature brings about.
Copper torches are also present, but they do not oxidize much like copper tools, weapons, and armor. As for the copper chest specifically, it does not store anything extra, but it does act as an essential part of copper golems, which we explore further below.
Shelves

Shelves have been added for all wood sets, and can visibly store items and hot bar loadouts. They also make for a great way to accent builds in ways that have never been possible before. For full details on how these complex new blocks function, we recommend our full guide
here.
Copper Golems

Copper golems are created by placing a copper block and then a
carved pumpkin on top. Once spawned, they will take items from copper chests and store them in nearby wooden chests that hold the same item. If left outside, copper golems can also oxidize, turning into a decorative statue block that has various poses, each producing a redstone signal. Oxidization can be removed at any time using an axe or permanently prevented with wax/honeycomb.
Server Terms of Service
A new feature for server owners has also been included in this update. Owners can now write and include a Terms of Service that players must agree to before being able to play on the server. We do not expect it to be legally binding, but it can still serve as a great way to deliver rules and etiquette to players, leaving no excuse if rules are broken.
How to Install the Minecraft The Copper Age Update

Bedrock Edition clients will automatically update to Minecraft: The Copper Age as soon as they are opened. As for Java Edition, the same will occur upon clicking “Play.” The only exception to this is for those who play on a custom
Java Edition installation, which would instead require the latest version to be manually selected. In either case, always remember that new releases can corrupt old worlds!
Ensure backups have been taken.
Should trouble updating be encountered in Java Edition, we recommend trying the following:
- Open the installations tab.
- Select “New Installation”
- Select “Latest Release” in the drop-down menu.
- Click “Create”
A new Minecraft: The Copper Age installation should now be a selectable option before clicking “Play.”
How to Make Minecraft The Copper Age Servers

Interested in creating a copper golem army with friends? Minecraft: The Copper Age servers can be created for free through
home hosting, but we recommend
paid hosting options for ease of use and performance. Especially with new releases, as they can be buggy!
Minecraft The Copper Age Patch Notes (Full)
The official patch notes for the Minecraft The Copper Age Update, otherwise known as Minecraft Java Edition patch 1.21.9, are here! Like all Minecraft patch notes, these are massive, so prepare your popcorn and get ready to dive in!
New Features
- Added Copper Chest
- Added Copper Golem
- Added Copper Golem Statue Block
- Added Copper Equipment
- Added Copper Decorations
- Added Shelf
- Added light flashes to The End dimension
- Added Chat Drafts
- Added sound previews to the Music & Sound Options sliders
- Added the Minecraft Server Management Protocol
- Added support for servers to have an in-game Code of Conduct
- Added Halychian language support
Copper Chest
- The Copper Chest is a new type of chest that has waxed and oxidized variants
- Copper Chests oxidize over time and can be waxed like other Copper blocks
- A Copper Chest can be crafted using a Chest and 8 Copper Ingots
Copper Golem
- The Copper Golem is a new mob which can be spawned by placing a Jack o'Lantern or Carved Pumpkin on top of a Copper block
- Copper Golems oxidize over time and can be waxed like Copper blocks
- If the Copper Golem is fully oxidized and not waxed it will turn into a Copper Golem Statue
- Upon turning into a statue, the Copper Golem will drop any item it may be holding
- The statue retains the Copper Golem's name
- Copper Golems can help with sorting items into Chests
- Interacting with the Copper Golem with an empty hand will make it drop its carried item
- Iron Golems will occasionally plant a decorative flower onto a nearby Copper Golem
- The flower can be removed with Shears
- This flower is dropped when the Copper Golem turns into a Copper Golem Statue
Copper Golem Item Sorting
- If the Copper Golem is not holding an item, it will look for nearby Copper Chests to try to pick up an item
- The Copper Golem will look in any oxidized and waxed Copper Chest variant to pick up items
- It can pick up at most 16 items in a stack at a time
- Any item in a Copper Chest can be picked up
- If the Copper Golem is holding an item, it will look for nearby Chests to try to place the item in
- The Copper Golem will look in Chests and Trapped Chests to try to place items
- It can place an item in a Chest if it's empty, or if it contains the same type of item that it is holding in its hand
- The Copper Golem will visit at most 10 Chests or Copper Chests in sequence to try to pick up or place an item
- If no matching chest is found the Copper Golem will idle for 7 seconds before trying again
- The search area for chests from the Copper Golem's position is horizontally 32 blocks and vertically 8 blocks
Copper Golem Statue Block
- The Copper Golem Statue is a new type of decorative block which has waxed and oxidized variants
- The Copper Golem Statue oxidizes over time and can be waxed like Copper blocks
- If the Copper Golem Statue has no oxidation when interacted with using an Axe, the statue will turn into a Copper Golem
- The Copper Golem Statue can be in one out of four poses: standing, sitting, running, and star
- The pose of the statue can be changed by interacting with it
- Each pose emits a Redstone Comparator signal
Copper Equipment
- Added Copper Nugget
- Added Copper armor
- Added Copper Helmet, Copper Chestplate, Copper Leggings and Copper Boots
- Copper armor has higher durability than Leather and Gold
- Copper armor has slightly less enchantability than Iron
- Added Copper tools and weapons
- Added Copper Axe, Copper Hoe, Copper Pickaxe, Copper Shovel and Copper Sword
- Copper tools and weapons do the same amount of damage as Stone, but have higher durability
- Copper tools work faster and last longer than Stone
- Copper tools have higher enchantability than Diamond, but slightly less than Iron
- Copper equipment can be crafted using Copper Ingots
- Copper equipment can be repaired with Copper Ingots
- Copper equipment turns into a Copper Nugget when smelted
- Added Copper Horse Armor
- Has the same loot table and chance of generating as Iron Horse Armor
- Armor toughness: 4
- Added Copper Torch
- A green variant of the Torch crafted from a Copper Nugget, Coal, and Stick
- Functionally identical to the Torch
- Added Copper Bars
- Functionally identical to the existing Iron Bars block
- Made from copper and oxidizes over time
- Added Copper Chain
- Functionally identical to the existing Chain block (now renamed to Iron Chain)
- Made from copper and oxidizes over time
- Added Copper Lantern
- Crafted similarly to a regular Lantern but uses Copper and a Copper Torch
- The lantern itself oxidizes, changing its look as it ages
- Functionally identical to the Lantern
Shelf
- The Shelf is a new type of decorative block which comes in the following variants:
- Oak
- Spruce
- Birch
- Jungle
- Acacia
- Dark Oak
- Mangrove
- Cherry
- Pale Oak
- Bamboo
- Crimson
- Warped
- The Shelf can be crafted from six matching blocks of any Stripped Log, Stripped Stem or Block of Stripped Bamboo, filling the top and bottom row
- This recipe produces 6 Shelves
- The Shelf can store up to 3 item stacks:
- Interacting with any of the 3 slots on its front swaps the player's main hand item with the content of that slot
- The Shelf displays all items it contains in front of it, similar to an Item Frame
- While a Shelf is powered by Redstone, its front texture changes to reflect that it's powered
- When powered, up to 3 Shelves will connect to each other
- Interacting with a single powered Shelf swaps all its contents with the 3 rightmost items in the player's hotbar
- Interacting with two connected Shelves swaps their contents with the 6 rightmost items in the player's hotbar
- Interacting with three connected Shelves swaps their contents with all items in the player's hotbar
- It does not matter which of the connected Shelves the player interacts with
Lightning Rod
- Lightning Rods now oxidize like other Copper blocks
The End Light Flashes
- The End dimension now has skylight
- Normally the skylight does not affect how the dimension looks
- From time to time flashes in the sky happen and produce a rumbling sound
- When they happen skylight intensity increases, flooding the dimension with purple light
- While the Ender Dragon fog effect is active the flash source in the sky is not visible and the brightness of the light affecting the world is reduced
- The "Hide Sky Flashes" accessibility option disables the End flashes
- When the flash is disabled by the setting the world is not lit by the flash but the flash source is still visible in the sky and the sound effect still plays
Minecraft Server Management Protocol
Added a server management API (JSON-RPC over WebSocket) for dedicated servers
- The API is disabled by default and can be enabled in server.properties
- management-server-enabled=true
- management-server-host=localhost
- management-server-port=0
- The API is accessible at ws://<management-server-host>:<management-server-port> when enabled
- Supports querying and updating of server state (players, allowlist, operators, settings, game rules)
- Sends notifications on state changes (e.g. player joins, game rule updates)
- Calling {"id":1,"method":"rpc.discover"} returns an API schema containing supported methods and notifications of the currently running server
- The Data Generator produces an API schema (json-rpc-api-schema.json) in the reports output folder mirroring the contents returned by the rpc.discover method
- The API adheres to the JSON-RPC 2.0 specification
- Uses namespaced methods and the reserved namespaces are minecraft (e.g. minecraft:players, minecraft:allowlist/add)
- Extensible via custom namespaces for additional methods and events
- Core method groups: players, allowlist, operators, server (save, stop), server settings, game rules
- Example method call:
- Request: {"method":"minecraft:allowlist/add","id":1,"params":[[{"name":"jeb_"}]]}
- Response: {"jsonrpc":"2.0","id":1,"result":[{"id":"853c80ef-3c37-49fd-aa49-938b674adae6","name":"jeb_"}]}
- Example notification:
- {"jsonrpc":"2.0","method":"minecraft:notification/players/joined","params":[{"id":"853c80ef-3c37-49fd-aa49-938b674adae6","name":"jeb_"}]}
- Example error:
- Request: {"method": "minecraft:foo/bar","id": 1}
- Response: {"jsonrpc":"2.0","id":1,"result":{"jsonrpc":"2.0","id":1,"error":{"code":-32601,"message":"Method not found","data":"Method not found: minecraft:foo/bar"}}}
- Errors and error codes follow JSON-RPC 2.0 error object format
- Clients must authenticate to access the API
- Clients should supply an Authorization bearer token header with a server-specific secret
- The secret is configured in server.properties
- management-server-secret=
- The secret should be exactly 40 alphanumeric characters (A-Z, a-z, 0-9)
- The secret will be automatically generated if the server property is empty
- Unauthorized requests are rejected with 401 Unauthorized
- TLS is enabled by default
- Can be disabled in server.properties
- management-server-tls-enabled=false
- Requires a keystore file to be set in server.properties
- management-server-tls-keystore=path/to/keystore.p12
- The keystore file must be in PKCS12 format
- Keystore password can be set in the following ways, in order of priority
- Environment variable: MINECRAFT_MANAGEMENT_TLS_KEYSTORE_PASSWORD
- JVM argument: -Dmanagement.tls.keystore.password=
- Server property: management-server-tls-keystore-password=
Chat Drafts
- Unsent chat messages now get saved as Chat Drafts if the chat was forcibly closed
- This includes it being closed by external sources such as dying or a dialog opening, but not the player intentionally closing their chat
- Any existing Chat Draft will get pre-filled into the message box the next time the chat is opened
- Draft text has a grayed-out appearance until fully restored
- Draft text can be restored as regular text by interacting with it:
- Typing additional text
- Moving the text cursor using the arrow keys
- Clicking it
- Highlighting it
- Pressing enter on a Chat Draft prior to it being restored sends it like a normal chat message
- Pressing backspace on a Chat Draft prior to it being restored deletes it
- Added an option to the Chat Settings screen that enables saving unsent chat messages by default
- With this option enabled, unsent messages will always get saved as Chat Drafts, even if the player intentionally closed their chat
Server Code of Conduct
When connecting to a server, a Code of Conduct screen can now be shown.
- Accepting the Code of Conduct is required to play on the server
- A checkbox is available for not showing the same Code of Conduct in the future
- If the Code of Conduct changes, it will be shown again
Server Setup
- A new boolean field has been added to server.properties called enable-code-of-conduct
- Setting it to true will make the server look for Code of Conduct files in the codeofconduct subfolder in the same folder as server.properties
- Each file in the folder should have the form <language_code>.txt and be UTF-8 encoded
- The language shown will attempt to match the player's language
- If it doesn't exist, the en_us Code of Conduct will be used
- If that also doesn't exist, an arbitrary available entry is used
Sounds
- Some sound sliders in the Music & Sound Options now play a preview sound when adjusting the setting outside a world
Accessibility
- The "Attack/Destroy" and "Use Item/Place Block" key binds are now toggleable, meaning they can be set to either "Hold" or "Toggle" in the Controls screen
- Added "Invert Mouse X" option to the Mouse Settings screen, which inverts the mouse x-axis
- Added "Sprint Window" option to the Controls screen, which represents the time window in ticks where double-tapping the forward key activates sprint
- Multiple key binds that have the same key assigned to them can now work together, while before only one would work
- For example, you can now bind D to Jump and Strafe Left to jump and strafe left at the same time
- The red warning for assigning the same key to multiple key binds is changed to yellow
- The spectator hotbar menu key can now be rebound
- It is part of a new Spectator category in the Key Binds screen, alongside the pre-existing Highlight Players key bind
Changes
- Performance improvements
- The Chain block has been renamed to "Iron Chain"
- Monster Spawn Eggs now have a tooltip warning when the difficulty is set to Peaceful
- The mob no longer spawns for one tick when an attempt is made to use the Spawn Egg
- Changes to world loading and the "Spawn Chunks"
- A dimension that has any player activity, forceloaded chunks, active portals, or Ender Pearls in flight will be considered "active" and will keep processing chunks and entities
- Previously, this would only apply if a player was in the dimension or a chunk was forceloaded
- Reworked the debug overlay to be less cluttered and more configurable
- Players seen in the game world of the current server are now always shown in the Social Interactions screen even if they are offline
- Players now stop flying when switching from Spectator Mode to Creative Mode if they are near the ground
- A player is considered to be near the ground if there is a collidable surface (i.e. blocks, Happy Ghasts, boats...) within 1 block below them
- Flight will not get disabled if the player was inside a block or collidable entity
- This is to prevent players from suddenly falling through the ground
- Migrated several server properties into game rules
- OpenGL 3.3 is now required to play the game, up from 3.2. This does not change our posted Minimum Requirements
Developer’s Note: We do not expect the update to OpenGL version to affect many people, if any at all. Our posted Minimum Requirement has been OpenGL 4.0 since 2017, and OpenGL 3.3 turned 15 years old recently.
Performance Improvements
- Entity rendering order was improved for significantly better performance
- You’ll notice much smoother gameplay in areas with lots of mobs, like mob farms
- FPS won’t improve much if most of your lag comes from things other than entities, like playing with high render distance while not being near many mobs
- Particles outside the player's view are not rendered anymore, which provides a performance improvement in some cases
World Loading and Spawn Chunks
- The concept of fixed "Spawn Chunks" has been removed
- The game will ensure that the following chunks are fully loaded before the player joins or the server starts, in the same way as spawn chunks formerly were:
- Chunks loaded by the forceload command
- Chunks active due to portal activity
- Thrown Ender Pearls (Singleplayer only)
- A small area of chunks around the player (Singleplayer only)
- Chunks required to assign the global world spawn (World creation only)
- The world loading screen now shows the chunks that the player is about to be placed into, rather than chunks loaded around world spawn
- The loading screen now has a progress bar
- This progress bar accounts for all kinds of chunk loading mentioned above
Server Properties
Several server properties were removed in favor of making them into game rules, allowing these settings to be changed while the server is running.
- Removed server property allow-nether in favor of the new game rule allowEnteringNetherUsingPortals
- Removed server property spawn-monsters in favor of the new game rule spawnMonsters
- Removed server property enable-command-block in favor of the new game rule commandBlocksEnabled
- Removed server property pvp in favor of the new game rule pvp
- Added server property management-server-enabled controlling whether the new Minecraft Server Management Protocol is enabled or not
- Added server property management-server-port controlling on what port the Minecraft Server Management Protocol is started
- Defaults to 0, assigning an available port each time management server is started
- Added server property management-server-host controlling with what host the new Minecraft Server Management Protocol is started
- Added server property management-server-tls-enabled controlling whether the Minecraft Server Management Protocol uses TLS or not
- Added server property management-server-tls-keystore controlling the path to the keystore file used for TLS
- Defaults to an empty string
- A dedicated server won't start when TLS is enabled and no keystore is provided
- Added server property management-server-tls-keystore-password controlling the password to the keystore file used for TLS
- Defaults to an empty string
- Added server property status-heartbeat-interval controlling the interval the management server sends heartbeat notifications to connected clients
- Defaults to 0, meaning it’s disabled
- Added server property enable-code-of-conduct
- Details on this property can be found in the "Server Setup" header
Game Rules
- Removed spawnChunkRadius game rule
- Added pvp game rule controlling whether players can deal damage to other players
- Added allowEnteringNetherUsingPortals game rule controlling if the Nether can be entered through portals
- Added spawnMonsters game rule controlling if monsters should spawn naturally
- Added commandBlocksEnabled game rule controlling if Command Blocks should be enabled or not
- Added spawnerBlocksEnabled game rule controlling if Spawner Blocks should be enabled or not
Mob Spawning
- The logic for choosing a type of equipment for mobs spawning with equipment has been tweaked to add Copper as a possibility
- The initial roll to choose a type now chooses between Leather, Copper and Gold
- The chance to increase an armor tier has increased from 9.5% to 10.87%
Minor Tweaks to Blocks, Items and Entities
- Test Instance Blocks now preserve error markers between world reloads
- Ambient lighting on entities has been adjusted to be more visually in line with blocks and other parts of the game
- The underside of flat surfaces will now be lit from that direction, instead of the opposite direction
- This mainly affects models containing cubes that are either flat or "hollow" such as:
- Worn armor
- Worn Elytra
- The outside layers on player skins
- The ribcages of Skeletons or Skeleton Horses
- The feet of Chickens or Frogs
- The wings of Phantoms or the Ender Dragon
- The fins on fish
- And more!
Recipes
- Changed the Copper Trapdoor recipe to use 4 Copper Ingots instead of 6 and now yields one Copper Trapdoor instead of two
Sounds
- The Happy Ghast is now audible from 64 blocks
- Sounds for Chests now play at a lower volume
- The volume at which a sound is played at now respects the sound source volume value
- The "Voice/Speech" sound source has been rephrased to "Narrator/Voice"
UI
- The Resource Pack and Data Pack selection screens now have a search box
- More text inputs now support selecting text by mouse dragging
- Double-clicking a word in an edit box now selects it
- When adding a new server to the server list, the server name is no longer prefilled
- When omitted, the default name "Minecraft Server" is used
Mouse cursor
- Some UI components will now change the shape of the mouse cursor
- Examples: text inputs, numeric sliders, buttons, scroll bars
- Additionally, clickable parts of text labels (like links) will now change the cursor to the "hand" shape
- This feature can be disabled with the "Allow Cursor Changes" option in the Mouse Settings screen
Debug Overlay
- The debug overlay is accessible by pressing F3, as before
- The debug overlay can now be accessed from everywhere in the game, not only when in a game world
- It is now less cluttered, displaying less information by default
- Added a new Debug Options screen, available by pressing F3 + F6, which can be used to configure what debug information should be displayed
- For each element, you can configure whether it should be visible in the debug overlay or not, and can even set it to always be visible regardless of the debug overlay being active
- Some debug features that were previously available, like chunk border rendering or entity hitbox rendering, can now be toggled through this Debug Options screen
- Some debug features that were not previously available to the community, like Octree visualization, are now accessible through the Debug Options screen
- The state of the Debug Options screen is saved between launches of the game
- The Debug Options screen has the following preset profiles:
- Default resets everything to the default state
- Performance shows simple performance metrics, including the FPS meter always visible
Developer's Note: Previously, gathering the information every frame to render the F3 screen had a significant performance cost. So opening the screen to check your FPS noticeably dropped the FPS. Now checking your FPS in the Performance profile should not affect game performance.
Chat
- It is now possible to start chatting while standing inside a Nether Portal
- The chat will now remain open and unchanged if the player was chatting before being transferred to another dimension
Accessibility
- Dye Colors now have updated icons
- The goal with these is to enhance visual cohesion across the dye set while maintaining distinct shapes to support colorblind accessibility
- A button leading to the Controls screen has been added to the Accessibility Settings screen
- The "Auto-Jump" option, as well as the "Sneak" and "Sprint" toggles have been removed from the Accessibility Settings screen
- The "Show Subtitles" option has been rephrased to "Closed Captions" to more accurately describe what it does
- The "Hide Lightning Flashes" accessibility setting has been renamed to "Hide Sky Flashes" as it includes the End light flashes
Technical Changes
- Pack versions now have minor versions
- The Data Pack version is now 88.0
- The Resource Pack version is now 69.0
- Some previously hidden debug features have been exposed to players
Pack Formats
- The pack versions for data packs and resource packs now have minor versions
- A minor version increment of the game's pack version is backwards-compatible, meaning all packs made for previous iterations of the same major version will keep working
- Packs can set compatibility requirements on minor versions in case they rely on resources introduced in a minor version
Pack Metadata
The pack.mcmeta format has been updated:
- The supported_formats field has been removed
- If your pack declares support for a pack version with the previous format (data pack < 82, resource pack < 65), it is still required
- Otherwise, it is not allowed and must be removed
- The pack_format field is now optional
- If your pack declares support for a pack version with the previous format (data pack < 82, resource pack < 65), it is still required
- Added required field min_format - specifies the minimum version supported
- A full version is specified as a list of two integers, e.g. [74, 1]
- Specifying a single integer is interpreted as that major version, e.g. 74 is the same thing as [74, 0]
- Specifying a list of a single integer is interpreted the same as specifying that integer alone
- Added required field max_format - specifies the maximum version supported
- A full version is specified as a list of two integers, e.g. [74, 1]
- Specifying a single integer is interpreted as any minor version, i.e. the minor version is 0x7fffffff
- Specifying a list of a single integer is interpreted the same as specifying that integer alone
- For overlay entries:
- The formats field has been removed
- If your pack includes any overlay range that includes a pack version with the previous format (data pack < 82, resource pack < 65), it is still required for all overlay definitions
- Otherwise, it is not allowed and must be removed
- Added required fields min_format and max_format with the same formats as the fields above with the same name for the pack section
Debug Features
- Some debug features that were previously removed during compilation are now preserved and can be used by players
- Individual values can be enabled with JVM properties:
- First, a global debug flag must be enabled with -DMC_DEBUG_ENABLED or -DMC_DEBUG_ENABLED=true
- Then, a specific feature can be enabled, for example -DMC_DEBUG_BRAIN or -DMC_DEBUG_BRAIN=true
- To get the list of all available debug properties, add -DMC_DEBUG_PRINT_PROPERTIES
- Warning: this is debug code, and the primary intention is to help modders - not for normal play. Handle with extreme care!
- Features can crash your game or corrupt your worlds
- Features are not guaranteed to work as intended
- Features might be added, changed or removed without a notice
Data Pack Versions 82.0 Through 88.0
- Added Mannequin entities
- World Borders can now be set per dimension
- Added a way to use GUI and item sprites in text
- Player profiles in data components and block entities no longer resolve automatically
- Added fetchprofile command for downloading player profiles
- Renamed chain to iron_chain
Mannequins
Added a new type of technical entity called
minecraft:mannequin which can only be spawned with summon commands.
- A Mannequin is a Player Avatar without a connected Player
- Mannequins show a description text (by default entity.minecraft.mannequin.label) where a Player's below_score score would show
- Mannequins function as Living Entities - they can hold and wear equipment, have attributes & effects, take damage, etc.
- Mannequins accept the minecraft:profile component from spawner items
Data Fields:
- profile - Which Player profile to show on the entity (same format as a minecraft:profile component), defaults to {} (i.e. static profile with both id and name missing)
- hidden_layers - List of outer skin layers to hide
- Valid entries: cape, jacket, left_sleeve, right_sleeve, left_pants_leg, right_pants_leg, hat
- pose - The pose of the mannequin
- Valid entries: standing, crouching, swimming, fall_flying, sleeping
- main_hand - Which hand is the main hand of the Mannequin - one of left and right
- immovable - Optional boolean specifying that the Mannequin cannot be moved (defaults to false)
- description - Optional Text Component shown where a Player's below_score score would show
- The default entity.minecraft.mannequin.label text is shown if omitted
- hide_description - Optional boolean specifying that no description should be shown at all
- A Mannequin with the description hidden displays as if a Player had no below_score display
World Border
- The World Border is now dimension-specific
- This means that each dimension can have its own World Border size, position, etc.
Text Rendering
object Text Component
- New text component with type object has been added
- This component will display a non-character object as a part of text
- Sprites are always rendered as a rectangle, 8x8 pixels in size
- Bold and italics styles are ignored
- Format:
- object: type of object, string, see below for values
- <type-specific>: additional fields depending on object type
- Similarly to the nbt text component, the object field can be omitted
- However, it's recommended to provide it for error checking
atlas Object Type
- Renders a single sprite from a sprite atlas as a character
- Format:
- atlas: namespaced ID of a sprite atlas, default value: minecraft:blocks
- sprite: namespaced ID of a sprite in the atlas, for example item/porkchop
General note about atlas contents:
- Sprite Atlases contain textures for items, blocks, mob effects, GUI elements, etc.
- The contents are controlled by files in the assets/minecraft/atlases/ directory in a resource pack
- The current contents can be reviewed with the F3+S key combination
player Object Type
- Renders a player head
- If a partial profile is given, the skin is resolved in the same way as the minecraft:profile component on a player head
- Format:
- player: player profile
- name: player name, optional string
- id: player uuid, optional UUID
- properties: profile properties, optional map
- hat: controls rendering of a hat layer, boolean, default true
run_command Click Event
- Previously, if the command field contained a command that required a signed message (/say, /me, /msg, /tell, /w, /teammsg, /tm), it would be silently discarded
- Instead, a screen will be shown that lets the user insert the command into the chat window or copy the command to their clipboard if the chat window can't be opened
Commands
- The summon command now fails when trying to summon monsters while the difficulty is set to Peaceful
- The spawnpoint and setworldspawn commands now have control over the full player look direction
- The angle argument has been removed
- Added an optional rotation argument which requires both yaw and pitch to be specified
- The setworldspawn command is no longer limited to the Overworld
- This means players can respawn e.g. in the Nether when they have no Bed or Respawn Anchor
- Server commands now run from the respawn dimension by default instead of always running in the Overworld
Added fetchprofile
- A new command that has been added to fetch the contents of a player profile from Minecraft servers
- Since the operation might take some time, it works asynchronously while the game keeps running
- After successful completion, a message will be printed that lets the user perform various actions:
- Copy the contents of a fully resolved minecraft:profile component
- Get a Player Head with the resolved profile
- Summon a Mannequin with the resolved profile
- Copy a text component to display the player head in text
- Since the result is not known at the time of execution, this command always returns 1
Syntax:
- fetchprofile name <player name> - resolves profile by name (case-insensitive)
- fetchprofile id <uuid> - resolves profile by id
Data Components
New Resolution Behavior
- Previously the contents of this component would permanently change when the profile was resolved, i.e. downloaded from Minecraft services
- To avoid issues with this unexpected change, the resolved value is no longer stored and contents of the profile will always remain unchanged
- That means this component now has two behaviors:
- Static: when it has the properties field or when both name and id are present or when both are missing
- In this state, the profile will always render as-is
- If the properties field is missing, a default skin will be used (selected based on id, same as in offline mode)
- That means the skin will be frozen at the moment of component creation
- This option is preferred for decorative uses
- Dynamic: when it has either name or id set (but not both)
- When an item containing this profile is rendered on the client side, the profile will be resolved to most recent value
- This means that this item will always render with the current skin of the targeted player
- Note: if a player changes their skin while the game is running, the change will not be visible until the client restarts
- The resolution might happen with a delay, during which the item will render with a default skin
- The profile name will replace the item name only when it is present
- Items with just id will show the default name
- Items with dynamic profiles are distinguished from static ones with a label in their tooltip
- Items stack based on exact contents, so even if a dynamic component is eventually resolved to the same profile as a static one, they won't stack together
- Player heads in older maps that have not been loaded in newer versions yet will usually be converted to dynamic contents
Player Skin Overrides
- Profiles can now also have additional fields that can replace various values used for rendering
- If any of the fields are omitted, the value from the resolved profile is used, even if the profile resolves to the default skin
- New fields
- texture - Optional namespaced ID of the skin texture to use for rendering
- The skin is specified relative to the textures folder and with a .png suffix
- e.g. entity/player/wide/steve will use the default wide Steve skin
- cape - Optional namespaced ID of the cape texture to use for rendering
- When specified, uses the same format as the texture field
- elytra - Optional namespaced ID of the elytra texture to use for rendering
- When specified, uses the same format as the texture field
- If this value is not present either as an override or in a player profile, Mannequins using this profile will use the cape texture, or if that is also not present, the default Elytra texture when wearing an Elytra
- model - Optional model type, one of wide and slim
blocks_attacks Item Component
- If the damage reduced in an attack is 0, for example by the angle threshold not matching, the item can no longer get disabled in the attack, nor cause knockback due to blocking
Entity Data
Modified
minecraft:player
- Changes to the respawn object
- angle has been renamed to yaw and is now a required field
- pitch has been added as a required field
- dimension is now a required field
Block Entity Data
Modified
minecraft:skull
- profile field has been changed to match minecraft:profile component
- That means that it also becomes immutable and is resolved only when necessary
Loot Tables
- Added minecraft:entity_interact loot table type which takes the following parameters:
- target_entity, the entity being interacted with
- interacting_entity, the optional entity that is interacting with the target_entity
- tool, the tool used to interact with target_entity
- Added minecraft:block_interact loot table type which takes the following parameters:
- block_state, the block state of the block entity being interacted with
- block_entity, the optional block entity being interacted with
- interacting_entity, the optional entity that is interacting with the block_state
- tool, the optional tool used to interact with block_state
- Fields that specify a target entity in a loot table, such as entity_properties.entity, can additionally target the target_entity and interacting_entity parameter types
- Added charged_creeper/root loot table for drops when an entity is killed by a Charged Creeper
- This loot table dispatches on the mob that was killed, to the following loot tables:
- charged_creeper/piglin
- charged_creeper/creeper
- charged_creeper/skeleton
- charged_creeper/wither_skeleton
- charged_creeper/zombie
- Once any killed mob drops an item from this loot table, other mobs killed by the same Creeper will not drop from this loot table
- Added brush/armadillo loot table for drops when an Armadillo is brushed
- Added gameplay/turtle_grow loot table for drops when a Turtle grows into an adult
- Added harvest/beehive loot table for drops when a Beehive or Bee Nest is harvested using Shears
- Added harvest/cave_vine loot table for drops when a Cave Vine with Glowberries is harvested by interacting with it
- Added harvest/sweet_berry_bush loot table for drops when a Sweet Berry Bush with Sweet Berries is harvested by interacting with it
- Added carve/pumpkin loot table for drops when a Pumpkin is carved using Shears
Loot Functions
minecraft:fill_player_head
- The entity field now accepts new entity context values:
- target_entity
- interacting_entity
minecraft:set_lore
- The entity field now accepts new context values:
- target_entity
- interacting_entity
minecraft:copy_custom_data
- The source field now accepts new context values:
- target_entity
- interacting_entity
minecraft:copy_name
- The source field now accepts new context values:
- direct_attacker
- target_entity
- interacting_entity
minecraft:copy_components
- The source field now accepts new context values:
- this
- attacker
- direct_attacker
- attacking_player
- target_entity
- interacting_entity
- tool
Predicates
minecraft:entity_scores
- The entity field now accepts new entity context values:
- target_entity
- interacting_entity
minecraft:entity_properties
- The entity field now accepts new entity context values:
- target_entity
- interacting_entity
Enchantments
explode Effects
New field:
block_particles - specifies per-block particles. Each block particle is randomly chosen according to weights. A set limit of block particles is spawned each tick from all explosions that tick.
Format: List of entries:
- weight: Non-negative integer representing the random weight for this entry being chosen
- particle: The particle to spawn
- scaling: Optional scaling to apply between explosion center and block position, or 1.0 if not specified
- speed: Optional scaling to apply to the speed of the particle, or 1.0 if not specified
World Generation
- The initial_density_without_jaggedness field in noise_settings definitions has been replaced with a preliminary_surface_level field
- initial_density_without_jaggedness was a 3D density function that was used to determine an approximate surface level by scanning for the first point with a density greater than 0.390625
- preliminary_surface_level is a 2D density function that should produce the y-level of the approximate surface
- The minecraft:find_top_surface density function can be used to replicate the previous scanning
Density Functions
Added
minecraft:find_top_surface
- Approximates the topmost surface of a given density function
- It scans from an upper bound to a lower bound to find the point at which the density changes from negative to positive
- The upper bound should be as close to the actual surface as possible for best performance
- The upper bound should never be lower than the actual surface
Fields:
- density - density function to approximate the surface of
- upper_bound - 2D density function providing the highest possible y-value
- lower_bound - integer, lowest possible y-value
- cell_height - positive integer defining the grid resolution on which to scan
Added
minecraft:invert
Fields:
- argument - density function
Jigsaw Structures
- The max_distance_from_center field may now specify a different restriction on the vertical axis from horizontal
- This can be specified by an object with fields:
- horizontal - required integer between 1 and 128
- vertical - optional integer between 1 and 4096 (default: 4096)
- e.g.: "max_distance_from_center": { "horizontal": 20, "vertical": 500 }
- The previous format of a single inline value specifying both horizontal and vertical distance is still supported
Tags
Block Tags
- Added #copper_chests - all Copper Chest blocks
- Added #copper - all Copper blocks
- Added #incorrect_for_copper_tool - all blocks which will not drop items with a copper tool
- Added #copper_golem_statues - all Copper Golem Statue blocks
- Added #chains - all Chain blocks
- Added #lanterns - all Lantern blocks
- Added #bars - all Bar blocks
Item Tags
- Added #copper_chests - all Copper Chest block items
- Added #copper - all Copper block items
- Added #copper_tool_materials - all copper tool materials
- Added #repairs_copper_armor - all items which repair copper armor
- Added #copper_golem_statues - all Copper Golem Statue block items
- Added #chains - all Chain block items
- Added #lanterns - all Lantern block items
- Added #bars - all Bar block items
- Added #shearable_from_copper_golem - all items that can be removed from the Copper Golem's saddle slot via Shears
Entity Type Tags
- Added #cannot_be_pushed_onto_boats - mobs that cannot be pushed onto boats which includes the Creaking, players and all aquatic mobs that aren't amphibious
- Added #accepts_iron_golem_gift - mobs that will accept and receive an offered item from an Iron Golem
- Added #candidate_for_iron_golem_gift - mobs that an Iron Golem will attempt to offer an item to, but may not necessarily accept it (see #accepts_iron_golem_gift)
Particles
- dragon_breath now optionally takes a power parameter (float, default 1.0), which is multiplied onto its initial velocity, after all randomness
- instant_effect and effect now optionally take power (float, default 1.0) and color (rgb, default 0xFFFFFF) parameters
- flash now requires a color parameter (argb)
Resource Pack Versions 64.0 Through 69.0
- Added new display transform "on_shelf"
- Used for displaying items on the Shelf
Block Sprites
- Added new block sprites:
- copper
- copper_left
- copper_right
- exposed_copper
- exposed_copper_left
- exposed_copper_right
- weathered_copper
- weathered_copper_left
- weathered_copper_right
- oxidized_copper
- oxidized_copper_left
- oxidized_copper_right
- acacia_shelf
- bamboo_shelf
- birch_shelf
- cherry_shelf
- crimson_shelf
- dark_oak_shelf
- jungle_shelf
- mangrove_shelf
- oak_shelf
- pale_oak_shelf
- spruce_shelf
- warped_shelf
- copper_bars
- copper_chain
- copper_lantern
- copper_torch
- exposed_copper_bars
- exposed_copper_chain
- exposed_copper_lantern
- exposed_copper_torch
- oxidized_copper_bars
- oxidized_copper_chain
- oxidized_copper_lantern
- oxidized_copper_torch
- weathered_copper_bars
- weathered_copper_chain
- weathered_copper_lantern
- weathered_copper_torch
- Renamed the following block sprites:
Entity Sprites
- Added new entity sprites:
- copper_golem
- exposed_copper_golem
- weathered_copper_golem
- oxidized_copper_golem
- copper_golem_eyes
- exposed_copper_golem_eyes
- weathered_copper_golem_eyes
- oxidized_copper_golem_eyes
Item Sprites
- Added new item sprites:
- copper_axe
- copper_boots
- copper_chestplate
- copper_golem_spawn_egg
- copper_helmet
- copper_hoe
- copper_leggings
- copper_nugget
- copper_pickaxe
- copper_shovel
- copper_sword
- copper_chain
- copper_lantern
- exposed_copper_chain
- exposed_copper_lantern
- oxidized_copper_chain
- oxidized_copper_lantern
- weathered_copper_chain
- weathered_copper_lantern
- Renamed the following item sprites:
Textures
- Added a new texture:
- environment/end_flash.png
- Moved the result slot of gui/container/villager.png up by one pixel
Sounds
Sound Events
- Added new sound events:
- block.copper_chest.open
- block.copper_chest.close
- block.copper_chest_weathered.open
- block.copper_chest_weathered.close
- block.copper_chest_oxidized.open
- block.copper_chest_oxidized.close
- entity.copper_golem.step
- entity.copper_golem.hurt
- entity.copper_golem.death
- entity.copper_golem.spin
- entity.copper_golem_weathered.step
- entity.copper_golem_weathered.hurt
- entity.copper_golem_weathered.death
- entity.copper_golem_weathered.spin
- entity.copper_golem_oxidized.step
- entity.copper_golem_oxidized.hurt
- entity.copper_golem_oxidized.death
- entity.copper_golem_oxidized.spin
- item.armor.equip_copper
- entity.copper_golem.spawn
- entity.copper_golem.no_item_get
- entity.copper_golem.no_item_not_get
- entity.copper_golem.item_drop
- entity.copper_golem.item_no_drop
- entity.copper_golem_become_statue
- block.copper_golem_statue.break
- block.copper_golem_statue.place
- block.copper_golem_statue.hit
- block.copper_golem_statue.fall
- block.copper_golem_statue.step
- block.shelf.activate
- block.shelf.deactivate
- block.shelf.multi_swap
- block.shelf.place_item
- block.shelf.single_swap
- block.shelf.take_item
- weather.end_flash"
Particles
Shaders & Post-process Effects
Developer's Note: Although it is possible in Resource Packs, overriding Core Shaders is considered as unsupported and not an intended Resource Pack feature. These shaders exist as part of the internal implementation of the game, and as such, may change at any time as the game's internals evolve. We understand that overriding Core Shaders is used for very cool Resource Pack features, many of which lack supported alternatives. We would like to provide better, supported alternatives in the future.
Shaders
- The following unused shaders have been removed:
- core/position_color_lightmap.vsh
- core/position_color_lightmap.fsh
- core/position_color_tex_lightmap.vsh
- core/position_color_tex_lightmap.fsh
- A new PER_FACE_LIGHTING flag has been added to the following shaders:
- core/entity.vsh
- core/entity.fsh
- When set, cardinal lighting will be computed separately for front- and back-faces
- As we now require OpenGL 3.3, we have bumped the version of all shaders from 150 to 330
Changes to Full Screen Passes
- The following vertex shaders have been removed, and replaced by core/screenquad.vsh:
- core/blit_screen.vsh
- post/blit.vsh
- post/blur.vsh
- post/invert.vsh
- post/sobel.vsh
- post/screenquad.vsh
- Vertex shaders for post-processing effects, as well as lightmap generation and full screen blits are no longer are passed the Position attribute, and instead must assign vertex coordinates by gl_VertexID
- These passes furthermore are only executed with 3 vertices, instead of a full quad