We're now releasing the Bundles of Bravery game drop for Java Edition, featuring space-saving Bundles and the addition of Hardcore Mode to Realms!
This game drop is all about embarking on a new adventure, collecting everything you can along the way, and definitely not dying. Together with these additions, we've also added baby variants of Dolphins and Squids, given Redstone Torches an updated look, optimized the game, and fixed over 300 bugs! To top it off, there's also a heap of technical changes, bringing even more control to creators.
Goodness, that was a lot, wasn't it? Perhaps we should've stuffed it all into a Bundle?
New Features
Added Bundles
Bundles
A Bundle is an item that can pack different items together into the same stack
A Bundle only fits one stack (usually 64 items) but it can be a mixture of many different item types
You can insert items into a Bundle directly in the inventory
Bundles have a tooltip that shows the items inside
If a Bundle has less than 12 item types inside, the tooltip will show all of them
Otherwise, the tooltip will show the top three rows of items (at least 8 item types) and the others will be hidden below
You can select any of the visible items to pull out of the Bundle
Right-click to take the first item
Use the scroll wheel to select a different item, then right-click to take it
When selecting an item to remove, the Bundle icon shows that item poking out of the Bundle
When holding a Bundle in hand, you can empty items onto the ground by right-clicking or holding right-click
The Bundle is crafted with one String above one Leather
The controls have changed from the original prototype:
Use left-click to put an item into a Bundle
Use right-click to remove the top item type from a Bundle
When the Bundle tooltip is visible, use the mouse wheel to select a different item type, then use right-click to remove it
Changes
Enabled hardcore mode for Realms
Updated the world creation screen for Realms
Trial Chambers have been updated with new variations
Added baby versions of Dolphins, Squids, and Glow Squids
Added Salmon variants
Sneaking while bouncing on a Slime Block will no longer cause fall damage
Tweaks to existing Blocks, Items and Entities
Thrown Ender Pearls now load and tick chunks
Banner Pattern items have new names and icons
Redstone Torches have been given a new look to give them a unique and distinctive identity
Added two new Banner Patterns: Field Masoned, and Bordure Indented
The distance that Bees fly as well as the cooldowns between Bee behaviors have been tweaked
Raider spawn logic has been updated
Smithing Template items are now named after their template type instead of the generic "Smithing Template" name
They instead specify that they are a Smithing Template through a subtitle in the hover text
Equipping a Carved Pumpkin on your head now removes the player marker from other players' maps
Various items and blocks have had their assigned rarities changed
Introduced new accessibility features
The game will now limit the maximum frame rate when it is minimized or when the player is AFK
A new video setting is introduced to configure this behavior
Improvements to the game's performance
Added language support for Tzotzil, Belarusian (Latin), and High Norwegian
Throwing items out of your inventory very quickly in creative mode is now throttled
Realms
Now uses the normal, fully-featured world creation screen
Enables game rule customization
Enables data pack customization
The game mode for the last active world on a Realm will now be visible on the main Realms screen if applicable
Hardcore Mode
Hardcore mode is now available in Realms
It is accessible when creating a new world or recreating an existing one
Tweaks to Blocks, Items and Entities
Wolves can now also be fed Cod, Cooked Cod, Salmon, Cooked Salmon, Tropical Fish, Pufferfish and Rabbit Stew
Bats can now spawn at any height, not just below sea level, as long as it is dark enough and there is a solid block to spawn on
Breeze no longer have a minimum distance required to attack a target
The portal cooldowns of vehicles and projectiles have been tweaked
After using a Nether Portal, Minecarts and Boats now only need to leave the portal for 0.5 seconds to use a portal again (down from previous 15 seconds)
After using a Nether Portal, projectiles such as Ender Pearls and Arrows now only need to leave the portal for 2 ticks to use a portal again (down from previous 15 seconds)
Projectiles such as Arrows, Tridents and Fishing Bobbers now bounce off the world border if hit
Being killed by a Mace smash attack now shows a new death message
Added unique block sounds to the Monster Spawner block
Enchanted Shields now have the same reduced glint as enchanted armor
Items that convert to another item after consumption will no longer do so in creative mode
For example, a Honey Bottle will no longer add a Glass Bottle to your inventory when consumed in creative mode
Suspicious Stew recipes are now shown in the Recipe Book
Shulker Box coloring recipes are now shown in the Recipe Book
Shulker Box and Bundle coloring recipes no longer work when trying to apply a Dye to an item of the same color
Trial Chambers
Added new variations to the hallways, including "Encounters": Short challenges leading to a larger chamber
Beds in intersections now have their colors randomized
Replaced the empty Chests at the entrance of chamber with a Hopper and Barrel
New Mob Variation
Added baby versions of Dolphins, Squids, and Glow Squids
Squid Spawn Eggs will only spawn adult Squids
There is a 5% chance of Squids spawned in groups in the wild to be a baby
Salmon may now spawn as Small, Medium (current size), or Large
Ender Pearl Chunk Loading
Ender Pearls now ensure that the chunk they are in or travel into is always loaded and ticking
They also load chunks when crossing to a new dimension
This ensures that Ender Pearls can always land, and makes cross-dimensional Ender Pearl travelling more predictable
Ender Pearls now unload when a player logs out, and reappear whenever that player logs back in, similar to how ridden entities currently behave
Banner Patterns
Each Banner Pattern item now includes their pattern type in their name instead of as a subtitle
Unique item textures have been added to better distinguish each pattern type
The following Banner Patterns have been added:
Field Masoned
Crafted with Paper and Bricks
Bordure Indented
Crafted with Paper and Vines
The Bricks and Curved Border patterns in the Loom can no longer be accessed without the above Banner Patterns
Bee Behavior
Bees now wander around randomly for less time after exiting a nest/hive
A Bee with a known nest or hive will now stay closer to it, reducing the distance it travels and reducing the risk of getting lost
Significantly increased the amount of time a Bee can take to return to a known nest/hive before it gives up trying to return home
Bees are now a lot less likely to get stuck when on corners or when close to a nest/hive they are trying to return to
Bees are also now a lot less likely to try and pathfind to a flower that it cannot reach
Raider Spawning
A triggered raid will no longer start if the Raiders cannot find a place to spawn within a reasonable distance of the village they are trying to raid
In order for a Raid to start, Raiders must now find a place to spawn no more than 96 blocks vertically above or below the Village center
It is now much less likely for Raiders to not find a valid place to spawn when raiding
User Interface
The Recipe Book now repeats the last selected recipe when a "selected" key is pressed (space or either enter key)
Updated slot highlight in the UI so that the item texture has better visibility
The previous textures have been added to Programmer Art resource pack
Tweaked air bubbles UI
Added an empty state for air bubbles along with a wobble when the player is drowning
Added a popping sound when the bubbles pop in the UI
Rarity
Rarity is a set of categories which determine the color used to display the name of an item or block
It has no gameplay impact, but is used to signal how difficult something is to obtain
By default, unless specified otherwise, all items and blocks have a rarity of Common which displays their name in the color white
We have re-evaluated the rarity of all items and blocks in the game to more accurately reflect the current challenge of obtaining them, given the following guidelines:
Items and blocks become more rare depending on the following factors:
The chance of finding it in a loot table, including mob drops
The amount of travelling required to obtain it
The difficulty of any obstacle which must be overcome to obtain it
The possible amount of that item or block which exists in the world
Any item or block which can be crafted must inherit the highest rarity of its crafting ingredients
For example, a Mace has an Epic rarity because one of its ingredients (the Heavy Core) has an Epic rarity
Likewise, any crafted item which has only Common crafting ingredients must also be Common
The lists below detail the items and blocks which have changed to that rarity category
Common
End Crystal
Golden Apple
Uncommon
Sniffer Egg
Chainmail Helmet
Chainmail Chestplate
Chainmail Leggings
Chainmail Boots
Recovery Compass
Disc Fragment 5
Nautilus Shell
Echo Shard
Goat Horns
Pottery Sherds
Ominous Bottles
Ominous Banner
Netherite Upgrade
Sentry Armor Trim
Dune Armor Trim
Coast Armor Trim
Wild Armor Trim
Tide Armor Trim
Snout Armor Trim
Rib Armor Trim
Wayfinder Armor Trim
Shaper Armor Trim
Raiser Armor Trim
Host Armor Trim
Flow Armor Trim
Bolt Armor Trim
The following Music Discs:
13
Cat
Blocks
Chirp
Creator (Music Box)
Far
Mall
Mellohi
Stal
Strad
Ward
11
Wait
Relic
5
Precipice
Rare
Enchanted Golden Apple
Enchanted Golden Apples have become more common in recent years due to being accessible in both Ancient Cities and Trial Chambers, warranting a demotion to Rare instead of Epic
Trident
We recently increased Trident's rarity up to Epic from Common, but after re-evaluating felt that it was easier to obtain than other items in the Epic category such as Heavy Cores or Elytras
Nether Star
Ward Armor Trim
Eye Armor Trim
Vex Armor Trim
Spire Armor Trim
Wither Skeleton Skull
Skull Charge Banner Pattern
Now that Wither Skeleton Skulls are Rare, these banner patterns should be Rare as well
Thing Banner Pattern
Now that Enchanted Golden Apples are Rare, these banner patterns should be Rare as well
The following Music Discs:
Pigstep
otherside
Creator
Epic
Elytra
Dragon Head
Silence Armor Trim
Accessibility
Added an accessibility option to make targeted block's outlines more visible
High Contrast Resource Pack
Added the following high contrast textures:
Frame and background textures for tooltips
Slot background and highlight textures for the Bundle tooltip
Inactivity FPS Limit
The game will now limit the maximum frame rate in certain situations
These situations are controlled by a new Video Setting: Reduce FPS when
Possible options are:
Mimimized
Limits frame rate to 10 FPS only when the game window is minimized
AFK
Limits frame rate to 30 FPS when the game is not getting any player input for more than a minute
Further limits to 10 FPS after 9 more minutes of no input
Also limits to 10 FPS when the game window is minimized
The default is AFK
Performance
Frame rate has been improved when using higher render distances
Significantly reduced the performance impact when turning the camera
The performance of the server (tick rate) has been improved when using higher render distances
Furthermore, the impact of loading and generating chunks on tick rate has been reduced
Player Safety
Skin Reporting
Added reporting reason "Sexually inappropriate"
This is intended for skins that are graphic in nature relating to sexual acts, sexual organs, and sexual violence
Removed reason "Defamation" for skins due to lack of relevance
Removed reason "Threat of harm to others" due to already being covered by "Harassment or bullying" reporting reason
Name Reporting
Added a text label above the description box to clarify that only the name of the player is subject to the report
Technical Changes
The Data Pack version is now 57
Resource Pack version is now 42
Updates to available server.properties options
Added some information about data pack structure (for example, data-driven registries) to generated reports
Removed the bundle feature flag and built-in data pack
server.properties
New option: pause-when-empty-seconds (default: 60)
When set to a positive value, causes the server to pause when no player has been online for that many seconds
Removed options: spawn-animals and spawn-npcs
Extended the text-filtering-config option in server.properties in order to support an internal migration for Realms Profanity Filtering
Servers currently utilizing the text-filtering-config will be able to continue to do so without any changes
Network Protocol
Added minecraft:client_tick_end serverbound packet during play phase, sent when the client finishes processing its current tick
Added ability for custom servers to override the order that players appear in the "tab list"
This is controlled by a non-negative ordering index that is sorted highest to lowest
The client now shares the state of the "Particles" limiter option to be used by custom servers
The server will now only send known recipes to the client
Temporary option for ignoring connection errors on client side (strictErrorHandling) has been removed
Data Pack Versions 49 through 57
Added new Tags
Changes to Commands
Added new disablePlayerMovementCheck Game Rule
Changes to Item Components
New data-driven registries for Goat Horn instruments and Trial Spawner configurations
Added new fields to painting variant definitions
Added new functionality to Enchantment Effects
The crafting_special_suspiciousstew recipe type has been removed
Recipe ingredient format has been simplified
Added new Loot Tables
Added new Advancement Predicates
Changes to Advancement Triggers
Expanded the functionality of the Lock property on Containers
Added optional field explosion_power to tnt and tnt_minecart entity types
Defaults to 4
For TNT Minecarts, the value is added to speed-based explosion power
boat and chest_boat entity types have been split into separate types
Changes to Attributes
Entities' rotation on the x-axis is now clamped between -90 and 90
Added new Particles and updated some Particle formats
Tags
Block Tags
bats_spawnable_on: Blocks that Bats can spawn on
Item Tags
furnace_minecart_fuel: Items that can be used to refuel a Furnace Minecart
villager_picks_up: Items that a Villager will try to pick up from the ground
Added new tags to control which items can be used to craft and repair various tool sets:
wooden_tool_materials
iron_tool_materials
gold_tool_materials
diamond_tool_materials
netherite_tool_materials
Added new tags to control which items can be used to repair various armor sets:
repairs_leather_armor
repairs_iron_armor
repairs_chain_armor
repairs_gold_armor
repairs_diamond_armor
repairs_netherite_armor
repairs_turtle_helmet
repairs_wolf_armor
piglin_safe_armor: Items that, when worn by a player, will cause Piglins to not get angry
duplicates_allays: Items that can be used to duplicate Allays when dancing
bundles: All Bundle Items
panda_eats_from_ground: Items that a Panda will pick up from the ground and eat
brewing_fuel: Items that can be used as fuel in a Brewing Stand
map_invisibility_equipment: Items that can be equipped to hide the player marker on other players maps
gaze_disguise_equipment: Items that can be equipped to disguise the player looking for other mobs
Commands
Invalid selector patterns in Chat Components will now cause commands to fail to parse, instead of resolving to an empty string
The loot command will now return an error when trying to drop from a block without a loot table (such as air)
You can no longer ride Leash Knots, Lighting Bolts and Fishing Bobbers with the ride command
Has a new field: types, hash-prefixed damage type tag
Items with this component, when in entity form, will be resistant to the damage types included in the tag
This component also affects whether the equipped item will be damaged when the wearer is hurt by a given damage type
minecraft:item_name
This component is now always present on every item
Name provided by this component always has the lowest priority
That means it will be overriden by components such as minecraft:potion_contents or minecraft:written_book_content
minecraft:potion_contents
Added an optional string field: custom_name
When present, it will be used to generate containing stack name
For example, if the value is foo and the item is minecraft:lingering_potion, the name of item will be translation of item.minecraft.lingering_potion.effect.foo
New Item Components
minecraft:consumable
If present, this item can be consumed on use
If food, potion_contents, ominous_bottle_amplifier or suspicious_stew_contents are also present on this item, consuming this will apply the stats and effects of those components
Format: object with fields
consume_seconds: Non-negative float, the amount of seconds it takes for a player to consume the item
Default value: 1.6
animation: The animation used during consumption of the item
Default value: eat
Accepted values:
none
eat
drink
block
bow
spear
crossbow
spyglass
toot_horn
brush
sound: Sound event, the sound used during and on completion of the item's consumption
Default value: entity.generic.eat
has_consume_particles: Boolean, whether consumption particles are emitted while consuming this item
Default value: true
on_consume_effects: An optional list of side effects which take place as a result of consuming this item
There are currently 5 valid consume effects, identified by a type field
minecraft:apply_effects
effects: A list of status effect instances applied once consumed
probability: Float, the probability the above effects will be applied once consumed
Default value: 1.0
minecraft:remove_effects
effects: A set of status effects removed once consumed, as either a Status Effect ID, hash-prefixed tag, or list of IDs
minecraft:clear_all_effects
Clears all status effects of the consumer
minecraft:teleport_randomly
diameter: Positive float, the diameter that the consumer will be teleported within
Default value: 16.0
minecraft:play_sound
sound: Sound event, played once consumed
e.g. consumable={consume_seconds:3.0, animation:'eat', sound:'entity.generic.eat', has_consume_particles:true, on_consume_effects:[{type:'minecraft:clear_all_effects'}]}
minecraft:use_remainder
If present, will replace the item with a remainder if its stack count has decreased after use
If the item has a stack count higher than 0 after use, the remainder item will be added to the inventory
If the inventory is full when trying to add a remainder item to it, it will be dropped on the ground
Format: single value as an item stack
e.g. use_remainder={id:'minecraft:stick',count:1}
minecraft:use_cooldown
If present, this item will apply a cooldown to all items of the same type or "cooldown group" once used
Format: object with fields
seconds: Positive float, the amount of seconds the cooldown will take place for
cooldown_group: Optional namespaced id representing the cooldown group
Items with the same cooldown group will share any cooldown applied to another item within that group
If not specified, the cooldown group defaults to the base item type's ID
e.g. use_cooldown={seconds:1.5,cooldown_group:"minecraft:custom_weapon"}
minecraft:item_model
Controls item model
Present on every item
Format: namespaced ID
namespace:id will reference model /assets/<namespace>/models/item/<id>
minecraft:equippable
If present, this item can be equipped by players in the selected slot
Format: object with fields
slot: one of head, chest, legs, feet, body, mainhand, or offhand
equip_sound (optional): Sound event to play when the item is equipped
If not specified, the default armor equip sound will be played
model (optional): namespaced ID of the equipment model to use when equipped
These model definitions are loaded from Resource Packs
If not specified, will fall back to rendering as the item itself when in the head slot (or no rendering if not applicable)
camera_overlay (optional): namespaced ID of the overlay texture to use when equipped
If not specified, no overlay is used
The ID will address a texture under the textures/ folder and automatically assumed to be .png
For instance, misc/pumpkinblur addresses textures/misc/pumpkinblur.png
allowed_entities (optional): Entity ID, Entity Tag, or list of Entity IDs to limit which entities can equip this item
If not specified, any entity (that can wear this kind of equipment) is allowed to equip this item
dispensable: boolean (default: true), whether the item can be equipped by using a Dispenser
If the item type has special dispenser behavior, this will have no effect
swappable: boolean (default: true), whether the item can be equipped into the relevant slot by right-clicking
damage_on_hurt: boolean (default: true), whether this item will be damaged when the wearing entity is damaged
e.g. equippable={slot:'chest',equip_sound:'item.armor.equip_chain'}
minecraft:glider
If present, this item will allow players to glide (as with Elytra) when equipped
Format: empty object
e.g. glider={}
minecraft:tooltip_style
If present, this item can use custom sprites for its tooltip background and frame
Format: namespaced ID for a tooltip style
A tooltip style of namespace:path will use sprites with IDs:
<namespace>:tooltip/<path>_background and <namespace>:tooltip/<path>_frame
e.g. tooltip_style='minecraft:special_sword'
minecraft:death_protection
If present, this item will protect the holder from dying by restoring a single health point
Format: object with fields
death_effects: An optional list of effects that are applied when the item protects the holder
These effects are the same as those specified by the on_consume_effects field in the consumable component
minecraft:repairable
If present, and this item is damageable, this item can be repaired in an Anvil using the specified ingredient
Format: object with fields
items: Item, list of Items, or hash-prefixed Item Tag matching what can be used to repair this item
e.g. repairable={items:'stick'}
minecraft:enchantable
If present (and any enchantments are applicable), this item can be enchanted in an Enchanting Table
Format: object with fields
value: Positive integer, a higher value allows enchantments with a higher cost to be picked
e.g. enchantable={value:15}
Instruments
Goat Horn instruments are now defined in a data pack registry folder called instrument. Like other registries, changing this content in data packs is considered experimental and requires a full world re-load to take effect.
Fields:
sound_event: The sound event the instrument plays
range: The maximum range (in blocks) at which the sound can be heard
use_duration: The amount of time (in seconds) the instrument is considered in use after triggering, which also serves as its cooldown
description: A Text Component used as the descrpition of the instrument in item tooltips
Trial Spawner Configurations
Trial Spawner configurations are now defined in a data pack registry folder called trial_spawner. Like other registries, changing this content in data packs is considered experimental and requires a full world re-load to take effect.
Has the same format as the normal_config and ominous_config fields in Trial Spawner blocks
Inline configurations inside Trial Spawner blocks are supported in the same format as before
These fields may however now instead be replaced with a namespaced ID reference to a Trial Spawner configuration
Painting Variant
Added new optional fields author and title, holding Text Components to be displayed in the creative menu tooltip
This replaces previous mechanism where those values were derived from variant name
Author tooltip has been removed for earth, wind, fire, water and wither variants
Enchantment Effects
Added support for the Enchantment trigger projectile_spawned in the following items:
Snowballs
Tridents
Small Fireballs
Thrown Potions
Ender Pearls
Fishing Rod
Firework Rocket
Wind Charge
Eggs
Renamed effect type damage_item to change_item_damage, now also supports negative amounts
Recipes
The format used for recipe ingredients has been simplified and aligned with other fields that accept item lists (like item predicates):
For items: { "item": "<item id>" } now becomes "<item id>"
For tags: { "tag": "<tag id>" } now becomes "#<tag id>"
Lists of items are still allowed, but tags can no longer appear in such list
Remaining restrictions:
minecraft:air can't appear anywhere in an ingredient
Ingredients must have at least one tag or item
The fields template, base and addition in smithing_transform and smithing_trim recipes are now optional instead of accepting empty list
crafting_transmute Recipe Type
New crafting recipe type has been introduced: crafting_transmute
When matched, the output will copy the input item stack, changing the item type but preserving all stack components
This completely replaces crafting_special_shulkerboxcoloring
Fields:
category - crafting book category, one of building, redstone, equipment, misc
group - optional string
input - ingredient for item to copy
material - additional ingredient to use
result - item type to use for output
Loot Tables
The special loot table empty has been removed and is no longer defined in the Vanilla data pack
Snow Golem shearing is now controlled by a loot table found at shearing/snow_golem
Tool value (used for functions like match_tool) is now available for some additional loot table types
archaeology - used brush
vault - inserted key (not available when displaying items)
shearing - shears
Chickens laying eggs is now controlled by a loot table found at gameplay/chicken_lay
Armadillos randomly dropping scutes is now controlled by a loot table found at gameplay/armadillo_shed
Sheep Loot Tables
Sheep now always uses a single loot table entities/sheep
Wool drops are still defined in sub-tables in entities/sheep/<color>, but are just dispatched from the main table
Note: Mutton drop is now controlled by the main table, while sub-tables are responsible only for the wool drop
Sheep shearing is now controlled by loot table found as shearing/sheep
This loot table also has dispatches to sub-tables for specific wool colors, which are found as shearing/sheep/<color>
Mooshroom shearing Loot Table
Mooshroom shearing is now controlled by loot table found as shearing/mooshroom
Sub-tables for specific variants are found as shearing/mooshroom/<variant>
Hero of the Village Gift Loot Tables
The loot given by Villagers is now controlled by two additional loot tables:
gameplay/hero_of_the_village/unemployed_gift - used if the Villager is unemployed
gameplay/hero_of_the_village/baby_gift - used if the Villager is a baby
Predicates
minecraft:boat entity sub-predicate has been removed, since Boats no longer have variants
sheep Entity Sub-predicate
Added minecraft:sheep entity sub-predicate
Fields:
sheared - optional boolean
color - optional wool dye color
salmon Entity Sub-predicate
Added minecraft:salmon entity sub-predicate
Fields:
variant: one of small, medium, large
player Entity Sub-predicate
Added a new field in the minecraft:player entity sub-predicate, input
Can be used to detect which movement keys the player is pressing
If specified, the predicate matches the corresponding keybinds that the player is pressing
The following fields may be specified to match player inputs:
All equippable items with an equipment model defined support rendering trims, based on the trim component
Trim textures will be loaded from the appropriate folder in the textures/trims/entity directory
For example, armor with wolf_body layers will fetch trims from textures/trims/entity/wolf_body
Moved Textures
All equipment-related textures have been moved to subfolders of the textures/entity/equipment directory
Player armor textures have been moved to textures/entity/equipment/humanoid and textures/entity/equipment/humanoid_leggings
<material>_layer_1 textures have been renamed to <material>, and moved into the humanoid subdirectory
<material>_layer_2 textures have been renamed to <material>, and moved into the humanoid_leggings subdirectory
leather_layer_1_overlay and leather_layer_2_overlay textures have been renamed to leather_overlay in their respective subdirectories
wolf_armor and wolf_armor_overlay textures have moved to textures/entity/equipment/wolf_body/ and have been renamed to armadillo_scute and armadillo_scute_overlay respectively
turtle_layer_1 has been renamed to turtle_scute
Llama decor textures have been moved to textures/entity/equipment/llama_body
Horse armor textures have been moved to textures/entity/equipment/horse_body
The Elytra texture has been moved to textures/entity/equipment/wings/elytra
Armor trim textures have also been moved to match the folder structure of the regular equipment textures
Textures in textures/trims/models/armor have been divided between textures/trims/entity/humanoid and textures/trims/entity/humanoid_leggings
For leggings textures, the _leggings suffix is dropped
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.
Shader program configurations can now specify preprocessor define directives to apply to their linked shaders
Many shader implementations have been merged by making use of this
The format of core shader and post-processing shader configurations have been consolidated
The format of post-processing effect configurations have been updated
The ChunkOffset uniform in terrain shaders has been renamed to ModelOffset
The rendertype_entity_glint_direct shader has been removed (replaced by rendertype_entity_glint)
The rendertype_entity_translucent_cull shader has been removed (replaced by rendertype_item_entity_translucent_cull)
Shader Program Definitions
Program definitions for post-processing effects (assets/<namespace>/shaders/program/<name>.json) have been made consistent with core shader definitions (assets/<namespace>/shaders/core/<name>.json)
The blend field has been removed, as it had no use
The attributes field has been removed, instead the Position attribute will always be bound
The provided uniforms have been consolidated with those provided to core shaders
Time has been renamed to GameTime
The vertex and fragment shader references in program definitions (including post-processing effects) are now namespaced shader ids
A vertex shader <namespace>:<path> will resolve to assets/<namespace>/shaders/<path>.vsh
A fragment shader <namespace>:<path> will resolve to assets/<namespace>/shaders/<path>.fsh
Shader source files are no longer required to be in the shaders/core subdirectory, this only exists for organization
Added defines field to program definitions (object with fields)
Allows GLSL define directives to be injected into the shader source, which can be referenced in the shader
values (map of string to string)
Will be injected as #define <key> <value> at the top of the file
flags (list of strings)
Will be injected as #define <key> at the top of the file
Shader Imports
The #moj_import directive now supports namespaced includes with absolute paths
For example, #moj_import <minecraft:fog.glsl> will import assets/minecraft/shaders/include/fog.glsl
Relative imports are not namespaced and behave as before
Post-process Effect Definitions
Post-processing effect configuration has been moved out of the assets/<namespace>/shaders/post directory to just assets/<namespace>/post_effect
Vertex and fragment shaders used by these effects have been moved from assets/<namespace>/shaders/program to assets/<namespace>/shaders/post
name has been renamed to program, and is now a namespaced id of a shader program configuration
<namespace>:<path> will resolve to assets/<namespace>/shaders/<path>.json
intarget and auxtargets have been merged into a single inputs list, as specified by the input format below
outtarget has been renamed to output with the same format
targets is now a map between target name and target definition, as opposed to a list
Inline target names are replaced with an empty object
For example, ["swap"] becomes {"swap": {}}
Target definitions with a specific size remain the same, with the name field moved into the map key
For example, [{"name": "potato", "width": 16, "height": 16}] becomes {"potato": {"width": 16, "height": 16}}
Input Format
For both render target and texture inputs, the following fields may be specified:
sampler_name: string - prefix to set up both _Sampler and _Size uniforms
For example, "sampler_name": "Diffuse" will link to the DiffuseSampler and DiffuseSize uniforms
This was previously always DiffuseSampler and InSize for intarget
For auxtargets, the name defined the sampler uniform, and the size was given as AuxSize<index>
bilinear: boolean (default: false) - if true, the input will be sampled with a bilinear filter
This formerly only existed on texture inputs, however now functions for render targets
For render targets, replaces the now removed use_linear_filter field on the pass definition
For inputs from a render target, the following fields may be specified:
target: namespaced id - the render target id
Either a custom target id defined in the same file, or minecraft:main to reference the main screen target
This replaces the former id field, which was a free-form string
use_depth_buffer: boolean (default: false) - true to sample from the depth texture, false to sample from the color texture
This replaces the former :depth suffix applied to the target id
For inputs from a static texture, the following fields may be specified:
location: namespaced string - the location to a static texture file that can be sampled by the effect
As the id field did before, this resolves to a texture at assets/<namespace>/textures/effect/<path>.png
width: positive integer - width in pixels of the texture
height: positive integer - height in pixels of the texture
External Targets
The 'Fabulous' graphics transparency post-processing config no longer specifies the sorted framebuffers as custom targets
These are instead imported in the same way as the minecraft:main target
translucent, itemEntity, particles, weather, clouds are now minecraft:translucent, minecraft:item_entity, minecraft:particles, minecraft:weather, and minecraft:clouds respectively
The entity outline processing shader similarly imports the minecraft:entity_outline target
Translation Removals and Renames
During load some deprecated translation strings will now be removed and/or renamed
Packs that use these translations will need to re-add them manually
The full list is available in the /assets/minecraft/lang/deprecated.json file inside the game's JAR file
Experimental Features
The following changes only apply when their respective Experiment is turned on, either by activating the corresponding experimental data pack or by turning it on in the Experiments screen while creating the world.
These experiments have no effect unless enabled. You can find more information about Feature Toggles here.
Winter Drop
Added Pale Garden Biome, Pale Oak tree, Pale Moss block, Pale Moss carpet, Pale Hanging Moss and Pale Oak woodset
Added Creaking mob, Creaking Spawn Egg and Creaking Heart block
Pale Garden
Pale Garden is a biome variation of Dark Forest. Unique features:
Pale Oaks generate here
Pale Moss blocks/carpet generate on the ground here
Hanging Pale Moss generate hanging from the foliage of Pale Oaks
Animal mobs do not spawn naturally in Pale Gardens
New biome specific ambient sounds
Creaking Heart block can generate in Pale Oaks
Pale Oak Tree
Pale Oak Leaves drop Pale Oak Saplings that can be planted in a 2x2 configuration to grow Pale Oak trees
Pale Oak Logs can be crafted into the Pale Oak woodset:
Door
Fence
Fence Gate
Plank
Sign
Hanging Sign
Slab
Stairs
Trapdoor
Wood
Stripped Log
Stripped Wood
Button
Pressure Plate
Boat
Boat with Chest
Pale Moss Block
Pale Moss block generates naturally in the Pale Garden biome
Pale Moss Carpet
Pale Moss block generates naturally in the Pale Garden biome. Unique features:
When placed, Pale Moss Carpet grows up to two blocks on the solid faces of any block that borders it
Pale Moss Carpet can be bone mealed to grow to full on all solid faces of any block that borders it
Pale Hanging Moss
Pale Hanging Moss generates naturally in the Pale Garden biome under the foliage of Pale Oaks
Pale Hanging Moss does not grow randomly, but can be bone mealed to grow down
Creaking mob
The Creaking mob spawns at night in the Pale Garden biome if there is a Creaking Heart block that has been generated in a Pale Oak tree. Gameplay features:
Creaking will activate if a surivival or adventure mode player is within 12 blocks of it and looks at it
Creaking stays active while there is a survival or adventure mode player within 32 blocks of it
An activated Creaking will not move if a survival or adventure player is looking at it
Creaking is invulnerable to damage
Creaking has fire resistance
When hit by players, a particle trail is shown between the Creaking and the Creaking Heart block it is connected to
When the Creaking Heart block that the Creaking is connected to is destroyed, the Creaking is removed
Is not affected by light levels but spawns and despawns based on the day/night cycle
Creaking cannot enter Boats
Creaking spawned from a Creaking Heart can not go through portals
The Creaking Spawn Egg will spawn a Creaking mob that is not connected to a Creaking Heart. This form of Creaking:
May also be spawned through commands
Will persist through day and night, and loads and saves
Is fire-resistant
Takes damage from attacks and other damage sources
Has one point of health (half a heart)
A Creaking summoned from the Creaking Heart cannot be spawned with a spawn egg, nor can it be named with a Name Tag or summoned with commands
It can only exist as a part of the Creaking Heart block
Players wearing a Carved Pumpkin on their head can look at Creaking without it freezing in place
Creaking Heart
A Creaking Heart is a “living” block generating in Pale Oak trees, covered on all sides by Pale Oak wood logs. It can spawn a Creaking mob when it is nighttime, and it is placed between two correctly aligned Pale Oak Logs.
Is active during the night and dormant during the day
Sends a trail of particles towards the connected Creaking when the Creaking gets hit by the player
When Creaking Heart block is destroyed, the connected Creaking is removed
Comparators attached to the Creaking Heart block will output a signal strength dependent on the distance to the connected Creaking
New system for Pale Garden ambient sounds
Ambient sounds in the Pale Garden biome do not come from the biome settings, but are generated by blocks found in the biome.
Pale Hanging Moss emits subtle atmospheric sounds when it is attached to Pale Oak Logs and Pale Oak Leaves
Creaking Heart block emits a set of eerie sounds when it is active during the night and surrounded by Logs on all sides
Redstone Experiments
Added a new Experiment containing various Redstone-related changes. This can be enabled by selecting "Redstone Experiments" in the Experiments menu when creating a world.
Please note that the experimental features behind this toggle are not aimed at any future release at this time. Instead, this is a place for us to try out changes and gather feedback. We are excited to hear what you think about these changes: please share your feedback on the feedpack page.
Redstone Wire
The performance impact of Redstone wire (connected blocks of Redstone Dust) has been improved
Redstone wire now only triggers block updates on blocks that may receive power from the wire
Before a line of wire causes block updates, the new signal strength of all connected wires is set
The update order around Redstone wire has been changed
The aim is to make wire work the same, independent of position and global orientation
When possible the order is deterministic based on the context the updates are caused in
When there is not enough context to fully determine the order, the rest is picked at random
Developer's note:We know that randomness in Redstone is usually unwanted. We've used it here because we've made things deterministic whenever it makes sense, and sometimes it just doesn't make sense - and we don't want some hidden state (like location-based hashes!) determining the order and making machines work differently at different coordinates or in different orientations.
Order in Which a Line of Wire Changes
When a line of wire turns on, the wires closer to the power source will cause block updates first
When a line of wire turns off, the wires closer to where the power source was, will cause block updates first
When two wires have the same distance to the power source, the one to the left in the direction of travel updates first
If there is not enough context to know the direction of travel (when the wire was powered from above or below), the side to update first is picked at random
Block Updates Around a Wire
The order in which blocks around the wire update is based on the direction the wire received an update from
The order of the updates is: back, front, left, right, down, up
When the updates are further distributed through solid blocks, the same order is applied there
Known Issues
As this experiment only changes Redstone wire, interactions with other components may not always act as expected, especially when it comes to update orders.
The removal of excessive neighbor updates around wire affects behavior of Quasi-Connectivity based contraptions. We plan to address these issues at a later point.
Minecart Improvements
Added a new Experiment containing various movement changes to Minecarts. This can be enabled by selecting "Minecart Improvements" in the Experiments menu when creating a world.
Our long term goal is to make vehicle travel, like Minecarts, a viable option for players compared to other late-game options which currently dominate most playstyles. To achieve this, we aim to make riding Minecarts a smooth experience, with consistent and predictable motion and rotation. With this feature toggle we are laying a foundation to build upon in the future. We are aware of that these changes will break some existing contraptions, which is why we want to collaborate with the community to shape the upgrade and future experience of riding Minecarts.
Please note that the experimental features behind this toggle are not aimed at any future release at this time. Instead, this is a place for us to try out changes and gather feedback.
We are excited to hear what you think about these changes: please share your feedback on this feedback page.
Movement Changes
Minecarts will articulate their movement better when going fast, riding on the rail all the time
Minecarts will now smoothly turn along with the track and are less likely to halt or derail
Minecarts can now jump better
They keep their vertical momentum when the track ends with a slope
Minecarts will tilt to visually articulate while in the air
No rail grinding sound is played when Minecarts are flying through the air
Added a new accessibility setting that makes players follow the rotation of Minecarts they ride
Defaults to off
Only has effect when within a world with the experiment enabled
Added new gamerule minecartMaxSpeed that changes the maximum speed of Minecarts
Defaults to 8 and goes up to 1000 blocks per second.
Setting it to a specific value does not guarantee that a minecart will reach that particular max speed - there are built in air resistances and similar effects that the speed added through slopes or powered rails need to overcome
This gamerule only exists in worlds with the experiment enabled
Minecart Changes
Minecarts can no longer be placed within another Minecart by the player
Dispensers can still "stack" Minecarts by placing them on the Rail, even if there is another Minecart already there
Minecarts can now consistently be placed next to each other along a track
Minecarts now pick up mobs more consistently when moving along a track
Minecarts will no longer phase through blocks on slopes
Known Impact
We are aware that these changes will affect certain contraptions such as 'piston bolts', which may now not work at all, or have their behavior changed
Very delicate rail networks will have their timings changed due to slight changes in speeds, movement distance, friction etc.
Contraptions that rely on Minecarts snapping to rails will no longer work, or have their behavior changed