We are releasing Snapshot 24w03b to fix a crash, along with some bug fixes and minor changes.
Happy Mining!
New year, new Snapshot - we're now releasing the third Snapshot of Minecraft 1.20.5. This time around, we're bringing some updates to the Armadillo, the Breeze, as well as accessibility improvements.
In addition to a big bundle of bug fixes, we're bringing some changes to how spawn chunks are handled.
The spawn chunks are an area of the Overworld located at the world spawn which are always loaded in memory. These are useful for some players but use more of your computer’s resources and make the game load and run more slowly. (You can read more about spawn chunks at the community wiki!)
In this snapshot we made the size of the spawn chunks configurable by adding a new gamerule: spawnChunkRadius
.
The new default setting is 2 (which creates a 48x48 block area). This is 98% smaller than the previous area and will result in a noticeable performance improvement for most players.
If you would like to keep your spawn chunks working like they did before, you can use the game rule to change the spawn chunk radius value to 10. This will make your spawn chunks work the same as they did before, but you will miss out on the performance gains.
We're interested in hearing your feedback on this change and how the new default setting affects you.
Let's talk about spawn chunks!
Armadillo visual update! We gathered feedback from the first Armadillo snapshot, and the next step in the look of the Armadillo, the Armadillo Scutes and the Wolf Armor are now here.
ignoreTags: true
in the trade's NBTaccepts-transfers
property to true
in the server.properties
filespawnChunkRadius
to set the size of the spawn chunksminecraft:sweeping
enchantment has been renamed to minecraft:sweeping_edge
default_block_use
which triggers due to the default interaction of a block by a player, such as opening a doorany_block_use
which triggers due to any type of interaction with a block by a player, such as using an item on the block or its default usageNew item tags controlling what enchantments can be added to what gear:
minecraft:enchantable/foot_armor
minecraft:enchantable/leg_armor
minecraft:enchantable/chest_armor
minecraft:enchantable/head_armor
minecraft:enchantable/armor
minecraft:enchantable/weapon
minecraft:enchantable/sword
minecraft:enchantable/mining
minecraft:enchantable/mining_loot
minecraft:enchantable/fishing
minecraft:enchantable/trident
minecraft:enchantable/durability
minecraft:enchantable/bow
minecraft:enchantable/equippable
minecraft:enchantable/crossbow
minecraft:enchantable/vanishing
minecraft:ignores_poison_and_regen
for entities that cannot be affected by Poison and Regeneration effectsminecraft:illager_friends
for entities that Illagers will consider allies (unless on a different team)minecraft:inverted_healing_and_harm
for entities that have inverted meanings of the Healing and Harm effectsminecraft:not_scary_for_pufferfish
for entities that will not cause Pufferfish to puffminecraft:sensitive_to_bane_of_arthropods
for entities sensitive to Bane of Arthropodsminecraft:sensitive_to_impaling
for entities sensitive to Impalingminecraft:wither_friends
for entities that the Wither will not target and which cannot harm the Witherttf
font provider transforms have been adjusted to have more reasonable defaultsshift
is no longer applied double, and now directly represents a number of pixels in the game UIsize
pixels in the game UI, instead of between the font ascender and font descendersize
of 9 and no shift
should look correct by defaultComing in hot, here is Snapshot 23w51b, fixing a crash in 23w51a.
We're now releasing Snapshot 23w51a, the first snapshot for Minecraft 1.20.5. This one comes with a present for your pet Wolf in time for the holidays - and the Armadillo.
Happy brushing!
spit
instead of mob_projectile
FactorCalculationData
has been removed from mob effect instance tagsgeneric.scale
attribute that can be used to rescale any living entitygeneric.block_interaction_range
and generic.entity_interaction_range
attributesgeneric.step_height
attributeMinecraft 1.20.4 is a hotfix release for Java Edition which fixes a critical bug that could cause items to vanish after being stored in a Decorated Pot.
Happy Pot Smashing!
We're releasing a Release Candidate for Minecraft 1.20.4. This Release Candidate fixes a critical issue found after the release of Minecraft 1.20.3
We're now releasing 1.20.3 for Minecraft: Java Edition. This release comes with new functionality for Decorated Pots, a new look for the Bat and improvements to Shields.
This release also includes new features for map makers and pack creators like Scoreboard Display Names and extensions for the execute
and return
commands and a new administrative tool: the tick
command.
The optional Update 1.21 Experiment also shows up in this version as a sneak preview of features for the next major version of Minecraft.
{"text': "blah"}
type
value (allowed values: text
, translatable
, score
, nbt
, keybind
, selector
) to speed up parsing and improve error checkingnbt
now have a source
field with allowed values entity
, block
, storage
id
field in show_entity
hoverEvent
style now also accepts UUIDs as an array of 4 intstranslate
components are no longer converted to stringsnull
[]
color
clickEvent
hoverEvent
hoverEvent[action=show_entity].contents.name
hoverEvent[action=show_item].contents.tag
Changes have been made to world resource packs (resources.zip
), Realms resource packs and resource packs controlled by dedicated servers.
Downloaded packs are now stored in the downloads
directory (with a different file organization than the old server-resource-packs
)
log.json
) that stores information about downloaded files for debug purposesDownloaded packs now have a unique id (GUID/UUID) that can be used to differentiate them
resource-pack-id
option in server.properties
Some additional options have been added for 3rd-party servers software:
can_breathe_under_water
entity type tag which disables drowningcan_break_armor_stand
damage type tag for damage types that can incrementally knock down armor standsfunction
command resultsmaxCommandChainLength
maxCommandForkCount
execute
command: execute if function
return
command: return run
cracked
state set to true will always shatter when brokendust_plume
particle type(See further changes in Pack Version 23)
function
command has been changed to better accomodate new return
commandreturn
or there was error during lookup or instantiationfunction
command will no longer return (or even display) the number of commands run during executionexecute store
execute store ... run function
has been removedfunction
will now store at most once (zero times if return
was not called)Existing limits for functions have been refined to accomodate new execution rules and prevent wider range of exploits:
execute as @e run function
will count towards the same limitmaxCommandChainLength
limit for functions will now count "operations" like:execute
(no matter how many contexts were modified)maxCommandForkCount
now restricts the total amount of contexts that can be created by single state of functions like execute
execute as @e
creates 5 contexts, while execute as @e at @e
creates 5*5 = 25 contextsexecute if function
An execute
sub-command that runs a function or function tag and matches the return value(s).
This is a reintroduction of functionality removed in a previous version.
If a tag is given, all functions run regardless of the results of prior functions.
Syntax:
execute if|unless function <function> <continuation>
Parameters:
function
: The function or tag to runThe matching of the result value of the function(s) that run:
return
command to return a valuereturn
, neither if
or unless
will runreturn run
A form of the return
command is now available, return run
.
This is a reintroduction of functionality removed in a previous version.
Syntax:
return run <command>
This takes the result
value from running the specified command
and returns that as the return value of the function.
function
without return
), return will not execute and function will continue execution (changed in Data Pack Version 23)0
return
with a specified return valuereturn run execute as @e run some_command
), the first execution of the command will returnreturn run execute if entity @e[something_impossible] run some_command
), the function will not return and will continue execution (changed in Data Pack Version 23)block_state
to tnt
entity to allow replacement of rendered block modelFuse
to fuse
on tnt
entityplayersNetherPortalDefaultDelay
and playersNetherPortalCreativeDelay
game rules to control time (in ticks) that a player needs to stand in a Nether portal before changing dimensionsprojectilesCanBreakBlocks
to control whether impact projectiles will destroy blocks that are destructible by them, i.e. Chorus Flowers, Pointed Dripstone and Decorated Potswhite_smoke
particle typepool_aliases
list to Jigsaw structurestype
and is one of:direct
1:1 mapping from an alias to a new poolalias
pool to replacetarget
pool to replace withrandom
1:n mapping where a pool from n
is randomly selected for the structure instancealias
pool to replacetargets
randomized list of candidate pools to replace alias
withrandom_group
groups
each group is a randomized list of above alias typestick
commanditem
to minecraft:arrow
and minecraft:spectral_arrow
, this is the item that will be picked upTrident
to item
in minecraft:trident
tick
CommandAdded a new tick
command. This is an adminstative and debugging command that allows
control of the ticking flow and measuring the performance of the game.
The command requires elevated permissions (admins and above) and so it is not by default available in command blocks and datapacks.
Syntax:
tick query
- outputs the current target ticking rate, with information about the tick times performance.
tick rate <rate>
- sets a custom target ticking rate to the specified value. The value must be greater than 1.0
and lower than 10000.0. Setting a very low tick rate can cause the game to feel unresponsive and
setting too high tick rate for your system can cause
the game to crash as the game now assumes it is constantly falling behind the ticking target. Please use tick query
or <F3> + 2
(Integrated server only) debug screen to measure the performance of the game and adjust the tick rate accordingly.
Setting a tick target lower than the default 20.0
will also cause the players to be simulated
at a lower rate (including player movement and input controls), while
setting a higher tick rate will cause the players to be simulated at the default rate of 20
ticks per second to maintain
the expected responsiveness of the game, but can cause artifacts in entities interpolation.
tick freeze
- freezes all gameplay elements, except for players and any entity a player is riding.
This is useful for debugging and isolating issues with the game allowing the player to move around freely and inspect the world.
tick step [<time>]
- Only works when the game is frozen. It runs the game for the specified number of ticks and then freezes the game again.
This allows to step through the game a set amount of ticks at a time. If no time is given, steps 1 tick.
tick step stop
- stops the current stepping process, and re-freezes the game.
tick unfreeze
- unfreezes the game and resumes all gameplay elements.
tick sprint <time>
- runs the game while ignoring the set ticking target rate (meaning that the game will run
as fast as possible) for the specified number of ticks. At the end of the sprint, the game will resume
the previous ticking target and display performance information about the tick times while sprinting. This
is especially useful for testing gameplay elements that are time-dependent, such as Redstone contraptions,
or mob behaviour in isolated environments that allow for much faster simulation.
tick sprint stop
- stops the current tick sprint, and resumes the previous ticking target.
LootTable
tag keyreturn
return run
will now always returnreturn run
will fail (i.e. success=0
and result=0
)return run
will now propagate the success value together with the results value (previously it always set success to 1
)return run
now also allows storing values - that means execute store ... run return run some_command
will both store the value and return it outside the functionreturn fail
has been added to make the whole function fail (i.e. return success=0
and result=0
)function
function <function tag>
runs multiple functions in combination with return run
, execution will stop after first return
in any of the functionsfunction
command will always return when run with return run
return run execute [split context] run function <some function with conditional return>
will always return after processing the first contextexecute if|unless function
execute if|unless function
no longer always fails if none of the functions had a return
returns
in called functions, if
will fail and unless
will passreturn
in any of called functions will return (for a single context)size
from 7 to 20scoreboard
Each entry in a scoreboard can now have a custom display name.
scoreboard players display name <targets> <objective> <text component>
- set display namescoreboard players display name <targets> <objective>
- clear display nameTo make display name management easier, objectives can also be configured to auto-update display names on every score update.
scoreboard objectives modify <scoreboard> displayautoupdate [true|false]
Scores in numeric form can now be formatted.
scoreboard objectives modify <objective> numberformat <format>
- set the default format for an objectivescoreboard objectives modify <objective> numberformat
- clear the default format for an objectivescoreboard players display numberformat <targets> <score> <format>
- set the format for a specific score holderscoreboard players display numberformat <targets> <score>
- clear the format for a specific score holderstyled <style>
- the score will be displayed with selected style (like {"bold":true}
)fixed <text component>
- the score will be replaced with the text componentblank
- the score will not be displayedminecraft:grass
block and item to minecraft:short_grass
crafter
crafter
white_smoke
particle definitionbat.png
has been updated for the new Bat model with new texture mappingchiseled_copper
, exposed_chiseled_copper
, weathered_chiseled_copper
, oxidized_chiseled_copper
copper_grate
, expxosed_copper_grate
, weathered_copper_grate
, oxidized_copper_grate
copper_bulb
, exposed_copper_bulb
, weathered_copper_bulb
, oxidized_copper_bulb
copper_door
, exposed_copper_door
, weathered_copper_door
, oxidized_copper_door
copper_trapdoor
, exposed_copper_trapdoor
, weathered_copper_trapdoor
, oxidized_copper_trapdoor
tuff_stairs
tuff_slab
tuff_wall
chiseled_tuff
polished_tuff
polished_tuff_stairs
polished_tuff_slab
polished_tuff_wall
tuff_bricks
tuff_brick_stairs
tuff_brick_slab
tuff_brick_wall
chiseled_tuff_bricks
chiseled_copper
, exposed_chiseled_copper
, weathered_chiseled_copper
, oxidized_chiseled_copper
copper_grate
, expxosed_copper_grate
, weathered_copper_grate
, oxidized_copper_grate
copper_bulb
, exposed_copper_bulb
, weathered_copper_bulb
, oxidized_copper_bulb
copper_door
, exposed_copper_door
, weathered_copper_door
, oxidized_copper_door
copper_trapdoor
, exposed_copper_trapdoor
, weathered_copper_trapdoor
, oxidized_copper_trapdoor
chiseled_tuff
polished_tuff
tuff_bricks
chiseled_tuff_bricks
uniform
font has been updated to use Unifont 15.1.04 (from 15.0.06).png
breeze
, wind_charge
breeze_wind
minecraft:grass
block and item to minecraft:short_grass
The Copper family of blocks has been expanded, including:
Tuff has been expanded to have its own family of blocks, including:
All Tuff variants can be crafted in the Stonecutter.
Around 85 bugs were fixed in this release. View the list on the issue tracker.
We're now releasing the first (and hopefully last) release candidate for 1.20.3. Unless something critical pops up, no further changes will be made for the full release, which is planned for next week.
Happy Mining!
We are now releasing the third Pre-Release for Minecraft 1.20.3, containing mostly bug fixes, as well as changes to server resource pack handling.
Happy Mining!
Hello again! The stabilization phase for 1.20.3 release continues. This Pre-Release brings more bug fixes.
We're bringing you the first Pre-Release of 1.20.3 with updates to server resource pack handling and bug fixes!
Changes apply to world resource packs (resources.zip
), Realms resource packs and resource packs controlled by dedicated servers.
Downloaded packs are now stored in downloads
directory (with different file organization than old server-resource-packs
)
log.json
that stores information about downloaded files for debug purposesDownloaded packs now have unique id (GUID/UUID) that can be used to differentiate them
resource-pack-id
option in server.properties
Some additional options are added for 3rd-party servers software:
minecraft:grass
block and item to minecraft:short_grass
minecraft:grass
block and item to minecraft:short_grass
This snapshot brings about a few redstone-focused changes. Notably, we’re tweaking the tick delay behavior of the crafter and the copper bulb while they’re still in experimental development.
With these changes, we aim to make the crafter more consistent with other blocks that drop or eject items, and the copper bulb with other blocks that react or change state when a connected redstone signal changes. As a result of this, some contraptions built during the last few snapshots may no longer work properly.
We're really excited about the tinkering opportunities both these new redstone blocks bring to the world. Please keep sending all your thoughts about them to Minecraft Feedback so we can keep building Minecraft together!
Enjoy!
scoreboard
scoreboard players display name <targets> <objective> <text component>
- set display namescoreboard players display name <targets> <objective>
- clear display namescoreboard objectives modify <scoreboard> displayautoupdate [true|false]
scoreboard objectives modify <objective> numberformat <format>
- for setting default format for an objectivescoreboard objectives modify <objective> numberformat
- for clearing default format for an objectivescoreboard players display numberformat <targets> <score> <format>
- for setting format for a specific score holderscoreboard players display numberformat <targets> <score>
- for clearing format for a specific score holderFormats:
styled <style>
- score will be displayed with selected style (like {"bold":true}
)fixed <text component>
- score will be replaced with textblank
- score will not be displayedWe're happy to share another snapshot, this time offering an early look at some exciting new adventures waiting for you underground in the form of Trial Chambers!
Trial Chambers are designed to be challenging moments of combat and exploration hidden medium-deep below the surface of the Overworld. Trial Chambers bring new decorative and lighting blocks, new Trial Spawners to deliver a different style of multi-mob fights, and the bushy-browed Breeze, a new mob specific to Trial Chambers which will add quite a bit of chaos to your combats.
Happy Mining!
size
from 7 to 20trial_chambers_copper_bulb_degradation
structure processor listuniform
font has been updated to use Unifont 15.1.04 (from 15.0.06)breeze
, wind_charge
breeze_wind
In this week's Snapshot we're taking a break from new features to improve ones we've already added, including fixes to Commands and the ability to use Loot Tables with Decorated Pots.
LootTable
tag keytick
<time>
parameter in the tick step
command is now optional. The default value is 1return
return run
will now always returnreturn run
will fail (i.e. success=0
and result=0
)return run
will now propagate success value together with results value (previously it always set success to 1
)return run
now also allows storing values - that means execute store ... run return run some_command
will both store value and return it outside functionreturn fail
is added to make whole function fail (i.e. return success=0
and result=0
)function
function <function tag>
runs multiple functions in combination with return run
, execution will stop after first return
in any of the functionsfunction
command will always have return when run with return run
return run execute [split context] run function <some function with conditional return>
will always return after processing the first contextexecute if|unless function
execute if|unless function
will no longer always fail if all functions had no returnreturns
in called functions, if
will fail and unless
will passreturn
in any of called functions will return (for a single context)We're now releasing a second snapshot for the week to fix some crashes.
In this week's snapshot we're extending the Update 1.21 experiment with ALL the new blocks! And how about a bat makeover just in time for spooky fall? Happy crafting!
tick
commanditem
to minecraft:arrow
and minecraft:spectral_arrow
, this is the item that will be picked upTrident
to item
in minecraft:trident
tick
commandAdded a new tick
command. This is an adminstative and debugging command that allows
to control the ticking flow and measure the performance of the game.
The command requires elevated permissions (admins and above) and so it is not by default available in command blocks and datapacks.
Syntax:
tick query
- outputs the current target ticking rate, with information about the tick times performance.
tick rate <rate>
- sets a custom target ticking rate to the specified value. The value must be greater than 1.0
and lower than 10000.0. Setting a very low tick rate can cause the game to feel unresponsive and
setting too high tick rate for your system can cause
the game to crash as the game now assumes, it is constantly falling behind the ticking target. Please use tick query
or <F3> + 2
(Integrated server only) debug screen to measure the performance of the game and adjust the tick rate accordingly.
Setting a tick target lower than the default 20.0
will also cause the players to be simulated
at a lower rate (including player movement and input controls), while
setting a higher tick rate will cause the players to be simulated at the default rate of 20
ticks per second to maintain
the expected responsiveness of the game, but can cause artifacts in entities interpolation.
tick freeze
- freezes all gameplay elements, except for players and any entity a player is riding.
This is useful for debugging and isolating issues with the game allowing the player to move around freely and inspect the world.
tick step <time>
- Only works when the game is frozen. It runs the game for the specified number of ticks and then freezes the game again.
This allows to step through the game a set amount of ticks at a time.
tick step stop
- stops the current stepping process, and re-freezes the game.
tick unfreeze
- unfreezes the game and resumes all gameplay elements.
tick sprint <time>
- runs the game while ignoring the set ticking target rate (meaning that the game will run
as fast as possible) for the specified number of ticks. At the end of the sprint, the game will resume
the previous ticking target and display performance information about the tick times while sprinting. This
is especially useful for testing gameplay elements that are time dependent, such as redstone contraptions,
or mob behaviour in isolated environments that allow for much faster simulation.
tick sprint stop
- stops the current tick sprint, and resumes the previous ticking target.
bat.png
has been updated for the new Bat modelchiseled_copper
, exposed_chiseled_copper
, weathered_chiseled_copper
, oxidized_chiseled_copper
copper_grate
, expxosed_copper_grate
, weathered_copper_grate
, oxidized_copper_grate
copper_bulb
, exposed_copper_bulb
, weathered_copper_bulb
, oxidized_copper_bulb
copper_door
, exposed_copper_door
, weathered_copper_door
, oxidized_copper_door
copper_trapdoor
, exposed_copper_trapdoor
, weathered_copper_trapdoor
, oxidized_copper_trapdoor
tuff_stairs
tuff_slab
tuff_wall
chiseled_tuff
polished_tuff
polished_tuff_stairs
polished_tuff_slab
polished_tuff_wall
tuff_bricks
tuff_brick_stairs
tuff_brick_slab
tuff_brick_wall
chiseled_tuff_bricks
chiseled_copper
, exposed_chiseled_copper
, weathered_chiseled_copper
, oxidized_chiseled_copper
copper_grate
, expxosed_copper_grate
, weathered_copper_grate
, oxidized_copper_grate
copper_bulb
, exposed_copper_bulb
, weathered_copper_bulb
, oxidized_copper_bulb
copper_door
, exposed_copper_door
, weathered_copper_door
, oxidized_copper_door
copper_trapdoor
, exposed_copper_trapdoor
, weathered_copper_trapdoor
, oxidized_copper_trapdoor
chiseled_tuff
polished_tuff
tuff_bricks
chiseled_tuff_bricks
Hey! Today we bring you the first of the features we've shown you during Minecraft Live last weekend: the Crafter!
We want to hear your feedback on the Crafter, so please let us know what you think the over in our dedicated feedback thread.
type
field has a new allowed value: selector
nbt
now have source
field with allowed values entity
, block
, storage
block_state
to tnt
entity to allow replacement of rendered block modelFuse
to fuse
on tnt
entityplayersNetherPortalDefaultDelay
and playersNetherPortalCreativeDelay
gamerules to control time (in ticks) that a player needs to stand in a Nether portal before changing dimensionsprojectilesCanBreakBlocks
to control whether impact projectiles will destroy blocks that are destructible by them, i.e. Chorus Flowers, Pointed Dripstone and Decorated Potswhite_smoke
particle typepool_aliases
list to Jigsaw structurestype
and is one of:direct
1:1 mapping from an alias to a new poolalias
pool to replacetarget
pool to replace withrandom
1:n mapping where a pool from n
is randomly selected for the structure instancealias
pool to replacetargets
randomized list of candidate pools to replace alias
withrandom_group
groups
each group is a randomized list of above alias typescrafter
crafter
white_smoke
particle definitionFor this week's Snapshot, we've made improvements to the Decorated Pots!
Additionally, Realms is now available in Snapshots moving forward! Any player who has an active Realms subscription is eligible to create a free Snapshot Realm. This Snapshot Realm will be separate from your regular Realm to prevent any issues from impacting your regular Realm. For more information on how Snapshot Realms work, please see Realms in Minecraft: Java Edition Snapshot FAQ.
We want to hear your feedback on these improvements to Decorated Pots - let us know what you think in our dedicated feedback site post!
function
command resultsmaxCommandChainLength
maxCommandForkCount
execute
command: execute if function
return
command: return run
cracked
state set to true will always shatter when brokendust_plume
particle typefunction
command has been changed to better accomodate new return
commandreturn
or there was error during lookup or instantiationfunction
command will no longer return (or even display) number of commands run during executionexecute store
execute store ... run function
is removedfunction
will store at most once (zero times if return
was not called)Existing limits for functions have been refined to accomodate new execution rules and prevent wider range of exploits:
execute as @e run function
will count towards same limitmaxCommandChainLength
for functions will now count "operations" like:execute
(no matter how many contexts were modified)maxCommandForkCount
now restricts total amount of context that can be created by single state of functions like execute
execute as @e
creates 5 contexts, while execute as @e at @e
creates 5*5 = 25 contextsexecute if function
An execute
sub-command that runs a function or function tag and matches the return value(s).
This is a reintroduction of functionality removed in previous version.
If a tag is given, all functions run regardless of the results of prior functions.
Syntax:
execute if|unless function <function> <continuation>
Parameters:
function
: The function or tag to runThe matching of the result value of the function(s) that run:
return
command to return a valuereturn
, neither if
or unless
will runreturn run
A form of the return
command is now available, return run
.
This is a reintroduction of functionality removed in previous version.
Syntax:
return run <command>
This takes the result
value from running the specified command
and returns that as the return value of the function.
function
without return
), return will not execute and function will continue execution0
return
with a specified return valuereturn run execute as @e run some_command
) the first execution of the command will returnreturn run execute if @e[something_impossible] run some_command
) function will not return and will continue executionWe are now releasing Snapshot 23w40a, the first snapshot for 1.20.3! This snapshot contains improvements for shields, changes to chat component serialization and bug fixes.
{"text': "blah"}
type
value (allowed values: text
, translatable
, score
, nbt
, keybind
) to speed up parsing and improve error checkingid
field in show_entity
hoverEvent
style now also accepts UUID as an array of 4 intstranslate
component are no longer converted to stringnull
[]
color
clickEvent
hoverEvent
hoverEvent[action=show_entity].contents.name
hoverEvent[action=show_item].contents.tag
can_breathe_under_water
entity type tag which disables drowningcan_break_armor_stands
damage type tag for damage types that can incrementally knock down armor standsWe're now releasing 1.20.2 for Minecraft: Java Edition. This release comes with more diamond ore in the deep regions of the world and changes to mob attack reach as well as optimizations to the game's networking performance enabling smoother online play even on low-bandwidth connections.
This release also includes new features for map makers and pack creators like macro functions, a random command and pack overlays.
With 1.20.2, we are making some important updates to our Player Reporting Tool to better protect the online safety of our players. You will now be able to report player skins and usernames that violate our Community Standards.
The optional Villager Trade Rebalance Experiment also makes its debut in this version with changes to trades in the making that you can try out.
We are making some important updates to our Player Reporting Tool to better protect the online safety of our players.
Playing Minecraft should be an inclusive and safe experience for everyone, which is why alongside in-game chat messages, you will now be able to report player skins and usernames that violate our Community Standards in Java Edition.
Just like with chat reports, nothing is automated. Any reported skin or username will be reviewed manually by a team of trained Minecraft moderators, who will use the submitted evidence to decide whether the skin and/or username is in breach of our Community Standards. Skins that are in violation of these standards will be removed from Minecraft and will no longer be accessible for use by any player. Usernames that are in violation of these standards will need to be changed before that player can play online via a shared server or Realm; though single player mode will still be accessible. To find out more about this and other safety policies, including more detail on the suspension procedure, appeals process, and how we handle malicious or repeat reporting, please visit our dedicated FAQ page.
Ctrl+B
when this is onThe calculations to determine whether a mob can attack a player or other mobs have been changed. Previously a mob's horizontal width was used to determine their attack reach and their height had no effect. The area where a mob can attack is now their bounding box extended in horizontal directions.
Here are some situations where the new rules will affect the reach of mobs:
This change does not affect the reach of players, and mobs still need to see their target to attack it.
The Multiplayer mode of the game has been optimized to enable more fluid online play. If you have previously experienced disconnections or slow loading into online servers, this version may significantly improve that experience.
item_interact_finish
vibration of frequency 3unequip
vibration of frequency 4eat
vibration of frequency 8block_change
vibration of frequency 11block_change
vibration of frequency 11block_change
vibration of frequency 11 when receiving books from Hoppersblock_change
vibration of frequency 11block_destroy
vibration of frequency 12block_destroy
vibration of frequency 12entity_place
vibration of frequency 14log-ips
option to server.properties
LWJGL
library has been upgraded to version 3.3.2command_history.txt
in the game folderNew features have been added to datapacks and resource packs to allow creation of packs that are compatible with multiple versions of game.
supported_formats
which describes a range for pack formats that this pack supports16
, [16,17]
, {"min_inclusive": 16, "max_inclusive": 17}
pack_format
field is still required and its format remains unchanged, to allow older game versions to read pack datasupported_formats
is present, it must contain the value declared in pack_format
assets
and data
directoriesfoo
is applied, the file foo/assets/minecraft/textures/bar.png
will replace the contents of assets/minecraft/textures/bar.png
pack.mcmeta
and pack.png
are ignored in overlay directoriesoverlays
have been added to pack metadataentries
field, containing a list of overlaysformats
- range of supported formatsdirectory
- overlay directory (allowed characters: a-z
, 0-9
, _
and -
)"entries": [{"directory":"A", ...}, {"directory":"B", ...}]
, the game will first look in B
, then A
and then in the top pack directoryTo improve safety, the game will now also detect symbolic links used inside data- and resource packs.
As part of ongoing work towards more data-driven features, the network protocol has been changed to include a new configuration phase.
server.properties
log-ips
(default true
)false
, will prevent player IPs from being included in the log when players join the gametextures/gui/sprites
(automated by the Slicer tool)realms
namespace have been moved into the minecraft
namespace (automated by the Slicer tool)villager2.png
has been renamed to villager.png
(automated by the Slicer tool)icon/trial_available
and realm_status/expires_soon
GUI sprites are animated with .mcmeta
declarations instead of individual sprites (automated by the Slicer tool)notification\more.png
have been removedwidgets/button.png
and widgets/button_highlighted.png
have been split from widgets.png
gui
atlas from the textures/gui/sprites
directory.mcmeta
files, similar to other atlasesicon/trial_available
and realm_status/expires_soon
are now animated this waygui
atlas can now configure scaling behavior through a new gui
section in .mcmeta
filesgui
section in .mcmeta
contains one scaling
field:type
: one of: stretch
(default), tile
, or nine_slice
stretch
, the sprite will be stretched across the desired spacetile
, the sprite will be repeated across the desired space, starting from the top-leftwidth
: number of pixels for this sprite to cover on-screen across its widthheight
: number of pixels for this sprite to cover on-screen across its heightnine_slice
, the sprite will be sliced into 4 corners, 4 edges, and 1 center slice, which will be tiled across the desired spacewidth
: number of pixels for this sprite to cover on-screen across its widthheight
: number of pixels for this sprite to cover on-screen across its heightborder
: the size in pixels that the border slices should cover on-screen, one of:left
, top
, right
, and bottom
widget/text_field
and widget/text_field_highlighted
widget/scroller
map_icons.png
texture now contains new iconsrandomTickSpeed
now affects the rate of accumulation of Snow and Ice the same way it affects crops and other blocks affected by random tickingrandom
commandgeneric.max_absorption
belowName
value in display slot argument in scoreboard
command to below_name
random
A new command for randomizing values and controlling random sequences. The value
and roll
forms can be used to draw a random value. In the case of roll
, the resulting value is also shown in chat for all players.
Syntax:
random value|roll <range> [<sequenceId>]
random reset *|<sequenceId> [<seed>] [<includeWorldSeed>] [<includeSequenceId>]
Parameters:
range
: A range of values to randomize between, inclusivelysequenceId
: The name of a random sequence to sample or resetseed
: A seed to use for the random sequence after resetincludeWorldSeed
: A boolean [default: true
] specifying whether to include the world seed when seeding the sequencefalse
means the sequence will evaluate to the same regardless of which world the command is run inincludeSequenceId
: A boolean [default: true
] specifying whether to include the sequence ID when seeding the sequencefalse
means all sequences will evaluate to the same regardless of which name they haveBy default, all sequences are seeded as 0
, true
, true
. Using *
instead of a sequence ID resets all sequences and sets the default parameters.
If no seed is specified, the sequence resets to the default parameters.
Note that random value|roll <range>
used without a sequence id is available to non-operator players.
\
as the last non-whitespace character of a line now allows a command to be continued on the next lineFunctions can now contain macro lines, making them Function Macros.
$
(as the first non-space character) marks a macro line$(variable)
The function
command has new forms:
function <id> <compound>
function <id> with <data source> [<path>]
New Arguments:
compound
: A data compound, enclosed in {}
data source
: A data source specification, like what could already be used for data get
path
: An NBT path specificationNotes:
Using a macro means commands must be re-evaulated after variable substitution. This has an extra cost compared to running pre-parsed functions.
Regular commands (non-macro lines) are still pre-parsed. Only commands with variable substitutions in them are parsed when a macro is called and the game will attempt to cache the result of a certain parameter set being used in a call.
This makes repeated calls with the same parameter set cheaper than new calls with different parameters, but an overhead still remains compared to regular functions. Note that only the values references by macro as parameters are included in this cache, so any extra data in the provided compound is ignored.
teleport_duration
0
means that updates are applied immediately1
means that the Display Entity will move from current position to the updated one over one tickgeneric.max_absorption
generic.max_absorption
acts similar to generic.max_health
, but instead of being the upper bound for Health
, it is the upper bound for AbsorptionAmount
absorption
increases generic.max_absorption
as well as fills the AbsorptionAmount
to the max when appliedentity_roar
and entity_shake
game events have been removed and replaced with entity_action
game eventno_knockback
damage type tag which causes knockback to not be caused by the damage itselfnon_controlling_rider
to represent entities that don't override their vehicles movement controlconcrete_powder
block tag for Concrete Powder blockscamel_sand_step_sound_blocks
block tag for blocks that produce entity.camel.step_sand
sounddecal
field to armor trim patterns (default: false
)true
, the pattern texture will be masked based on the underlying armor4
becomes minecraft:mining_fatigue
)This structure is used in many places, so its changes are described separately.
Id
-> id
, also changed from number to string idAmbient
-> ambient
Amplifier
-> amplifier
Duration
-> duration
ShowParticles
-> show_particles
ShowIcon
-> show_icon
HiddenEffect
-> hidden_effect
, also since it's mob effect instance, changes apply recursivelyFactorCalculationData
-> factor_calculation_data
potion
, lingering_potion
, splash_potion
, tipped_arrow
CustomPotionEffects
-> custom_potion_effects
, contents tranformed as a list of mob effect instancessuspicous_stew
Effects
-> effects
, for each entry:EffectId
-> id
, also changed from number to string idEffectDuration
-> duration
mooshroom
EffectId
and EffectDuration
stew_effects
with the same format as suspicious_stew.effects
tag (i.e. list of effect id and duration)area_effect_cloud
Effects
-> effects
, contents tranformed as a list of mob effect instancesarrow
CustomPotionEffects
-> custom_potion_effects
, contents tranformed as a list of mob effect instancesActiveEffects
-> active_effects
, contents tranformed as a list of mob effect instancesbeacon
Primary
-> primary_effect
, also changed from number to string idSecondary
-> secondary_effect
, also changed from number to string idsequence
loot functionfunctions
: an array of sub-functions to run in sequenceall_of
predicates in loot tables can now be declared implicitly as an inline array without a typeThis data pack version removes the execute if function
and return run
functionality that existed for a time during the development of this version. Flaws with those commands (see bugs MC-264595, MC-264699 and MC-264710) require some substantial changes to fix, which we do not want to make close to a release.
These commands will instead be reintroduced early in the next snapshot series when we can take the time to iterate on and test them together with pack makers.
execute if|unless function
command formreturn run
command formenderPearlsVanishOnDeath
, controlling whether thrown Ender Pearls vanish when the player that threw them dies (default true
, which matches the existing behavior in previous versions)always_kills_armor_stands
for damage types that should always fully kill an Armor StandThe Experiments screen when creating a world now has an option to enable the Villager Trade Rebalance. When this option is selected, some Villager trades will change.
This experiment has no effect on normal worlds. You can find more information about Feature Toggles here.
Certain Enchanted Books now have a high chance of generating in some structures:
Around 200 bugs were fixed in this release. View the list on the issue tracker.
A second Release Candidate for 1.20.2 is now available in the Minecraft Launcher. If no further critical issues are found, we still aim to release 1.20.2 later this week.
Here is the first (and hopefully last) release candidate for 1.20.2. Unless something critical pops up, no further changes will be made for the full release, which is planned for next week.
Here comes the fourth pre-release for 1.20.2. Much like the previous one, this pre-release contains some bug and crash fixes.
Happy Mining!
always_kills_armor_stands
for damage types that should always fully kill an Armor StandWe are now releasing the third pre-release for 1.20.2. As we are now on the final stabilisation stretch of 1.20.2, this pre-release contains some bug and crash fixes.
Happy Mining!
Another pre-release this week with minor changes and some bug fixes.
We received a lot of great feedback on the changes to the Recipe Book search in the last pre-release, as well as a number of bugs. As we do not have time to address this feedback so close to release, we have reverted the change for now, but we may look into this again at a later time.
Are you pre-pared for Pre-release 1 of 1.20.2? Moving into pre-releases means that, moving forward, you won't see any significant changes besides bug fixes and tweaks until the next snapshot cycle. It also means that we will be releasing more frequently than just Wednesdays, so keep your eyes peeled! However, Pre-release 1 brings new changes to the 'Villager Trade Rebalance' experiment, updates to Recipe Book search, command changes, and a new game rule!
Happy crafting!
This data pack version removes the recently introduced execute if function
and return run
functionality. Flaws with those commands (see bugs MC-264595, MC-264699 and MC-264710) require some substantial changes to fix, which we do not want to make close to a release.
These commands will instead be reintroduced early in the next snapshot series when we can take the time to iterate on and test them together with pack makers.
execute if|unless function
command formreturn run
command formenderPearlsVanishOnDeath
, controlling whether thrown ender pearls vanish when the player that threw them dies (default true
)This pre-release updates the Villager Trade Rebalance experiment. This experiment has no effect on normal worlds. If you want to try these changes, you must turn on the Feature Toggle in the Experiments Menu when creating a new world. You can find more information about Feature Toggles here.
Thank you to everyone that has sent in their suggestions and feedback regarding the experimental trade change! We are trying out these changes to rebalance the villager trade system and make it more fair and fun for everyone. However, these changes are not yet final, and they will stay as experimental features while we continue to work on them. We appreciate your feedback on these changes. Visit this link to share your thoughts! We have been following the discussions about the previous Librarian and Wandering Trader updates and look forward to seeing the conversation continue.
Before now, Cartographers only sold maps to the Ocean Monument and Woodland Mansion. In this experiment Cartographers can sell seven new maps as well. These new maps each point to a different village or structure and can be used to find seven different biomes. This will help players who want to quickly find a specific location without waiting until they come across it by chance.
Cartographers from different biomes will sell a different selection of maps. Starting from one village, it will be possible to find every other village type by following maps from village to village.
Cartographers now sell 7 new maps: Desert Village Map, Jungle Explorer Map, Plains Village Map, Savanna Village Map, Snow Village Map, Swamp Explorer Map, and Taiga Village Map.
The Armorer's trades have been updated with many changes.
The biggest change is that buying diamond armor now requires paying a small amount of Diamonds as well as Emeralds. This is meant to make the Armorer's diamond armor trades less useful at the start of the game when players don't have any Diamonds, while still giving a powerful advantage to advanced players who have spent some time collecting Diamonds.
Early-game players will find Armorers useful as a great source of iron armor, Shields and Emeralds.
Other changes include:
Certain Enchanted Books now have a high chance of generating in some structures:
We are releasing a new snapshot that contains updates to support libraries, and a whole bundle of bug fixes!
LWJGL
library has been upgraded to version 3.3.2We are making some important updates to our Player Reporting Tool in this Snapshot to better protect the online safety of our players.
Playing Minecraft should be an inclusive and safe experience for everyone, which is why alongside in-game chat messages, you will now be able to report player skins and usernames that violate our Community Standards in Java Edition.
Just like with chat reports, nothing is automated. Any reported skin or username will be reviewed manually by a team of trained Minecraft moderators, who will use the submitted evidence to decide whether the skin and/or username is in breach of our Community Standards. Skins that are in violation of these standards will be removed from Minecraft and will no longer be accessible for use by any player. Usernames that are in violation of these standards will need to be changed before that player can play online via a shared server or Realm; though single player mode will still be accessible. To find out more about this and other safety policies, including more detail on the suspension procedure, appeals process, and how we handle malicious or repeat reporting, please visit our dedicated FAQ page.
Ctrl+B
The calculations to determine whether a mob can attack a player or other mobs have been changed. Previously a mob's horizontal width was used to determine their attack reach and their height had no effect. The area where a mob can attack is now their bounding box extended in horizontal directions.
Here are some situations where the new rules will affect the reach of mobs:
This change does not affect the reach of players, and mobs still need to see their target to attack it. We believe this new system will be more intuitive and will result in a more consistent behavior, and we welcome all feedback on this change.
decal
field to armor trim patterns (default: false
)true
, the pattern texture will be masked based on the underlying armorHello! This very technical snapshot contains vibration changes, data pack and resource pack changes, some network optimizations, new debug tools, and a some bug fixes. Enjoy!
unequip
vibration of frequency 4block_change
vibration of frequency 11 when receiving books from Hoppersblock_change
vibration of frequency 11block_destroy
vibration of frequency 12item_interact_finish
vibration of frequency 3block_destroy
vibration of frequency 12entity_place
vibration of frequency 14block_change
vibration of frequency 11block_change
vibration of frequency 11eat
vibration of frequency 8widget/text_field
and widget/text_field_highlighted
widget/scroller
4
becomes minecraft:mining_fatigue
)This structure is used in many places, so changes are described separately.
Id
-> id
, also changed from number to string idAmbient
-> ambient
Amplifier
-> amplifier
Duration
-> duration
ShowParticles
-> show_particles
ShowIcon
-> show_icon
HiddenEffect
-> hidden_effect
, also since it's mob effect instance, changes apply recursivelyFactorCalculationData
-> factor_calculation_data
potion
, lingering_potion
, splash_potion
, tipped_arrow
CustomPotionEffects
-> custom_potion_effects
, contents tranformed as a list of mob effect instancessuspicous_stew
Effects
-> effects
, for each entry:EffectId
-> id
, also changed from number to string idEffectDuration
-> duration
mooshroom
EffectId
and EffectDuration
stew_effects
with the same format as suspicious_stew.effects
tag (i.e. list of effect id and duration)area_effect_cloud
Effects
-> effects
, contents tranformed as a list of mob effect instancesarrow
CustomPotionEffects
-> custom_potion_effects
, contents tranformed as a list of mob effect instancesActiveEffects
-> active_effects
, contents tranformed as a list of mob effect instancesbeacon
Primary
-> primary_effect
, also changed from number to string idSecondary
-> secondary_effect
, also changed from number to string idsequence
loot functionfunctions
: an array of sub-functions to run in sequenceall_of
predicates in loot tables can now be declared implicitly as an inline array without a typeI was personally quite convinced that the game was already perfect, but it seems that our developers disagree. We are now releasing the first snapshot for Minecraft 1.20.2!
This snapshot brings changes to Diamond Ore generation, the ability to waterlog Barriers, and a change to Villager curing. It also brings a new Experimental Toggle that updates Villager trading, which we are eager to hear your feedback on. As well as a big batch of bug fixes, you will find a whole lot of technical features and changes in this snapshot, including new commands, function macros, persistent command history, network performance improvements, and much more.
Happy mining!
This snapshot introduces a new experimental Feature Toggle that updates the Wandering Trader and Librarian trades. You must turn on this Feature Toggle in the Experiments Menu when creating a new world if you want to test the new trades. You can find more information about Feature Toggles here.
As this is an experiment, we would really appreciate your feedback as work continues and to help us decide on the future direction for Villager trades. Visit this link to share your thoughts!
Before these changes, players could get any village enchantment from any Librarian. A novice Librarian could sell the best enchantment in the game! For some players, this felt too random and made trading feel overpowered when compared to using the Enchanting Table or searching for Enchanted Books in structures.
With the new rules, Librarians from different biomes sell different enchantments, and each village biome has one enchantment that is only sold by master Librarians.
Players will have to work towards getting the best trades instead of relying on random chance. We hope this makes Librarian trading more interesting and skillful, while also revealing some clues about their history of each village type through the enchantments that are sold there.
Some players felt that the Wandering Trader had unfair prices and didn't sell many useful items. We have lowered their prices, added more trades and increased the amounts available. The Wandering Trader will also now buy useful items from players, so it's possible to help them on their journey by giving them supplies even if you don't feel like buying anything.
In this snapshot, we have increased the amount of Diamond Ore found in the deepest parts of the world. Our goal is to make it more rewarding to mine for Diamonds in the Deepslate layers. We want your feedback on this! Please try out your favorite mining technique and let us know how it feels on this feedback site.
log-ips
option to server.properties
command_history.txt
in the game folderNew features have been added to datapacks and resource packs to allow creation of packs that are compatible with multiple versions of game.
supported_formats
which describes a range for pack formats that this pack supports16
, [16,17]
, {"min_inclusive": 16, "max_inclusive": 17}
pack_format
field is still required and its format remains unchanged, to allow older game versions to read pack datasupported_formats
is present, it must contain the value declared in pack_format
assets
and data
directoriesfoo
is applied, the file foo/assets/minecraft/textures/bar.png
will replace contents of assets/minecraft/textures/bar.png
pack.mcmeta
and pack.png
are ignored in overlay directoriesoverlays
have been added to pack metadataentries
field, containing a list of overlaysformats
- range of supported formatsdirectory
- overlay directory (allowed characters: a-z
, 0-9
, _
and -
)"entries": [{"directory":"A", ...}, {"directory":"B", ...}]
, the game will first look in B
, then A
and then in the top pack directoryAs part of ongoing work towards more data-driven features, the network protocol has been changed to include a new configuration phase.
server.properties
log-ips
(default true)false
, will prevent player IPs from being included in the log when players join the gameTo improve safety, the game will now also detect symbolic links used inside data- and resource packs.
textures/gui/sprites
(automated by Slicer tool)realms
namespace have been moved into the minecraft
namespace (automated by Slicer tool)villager2.png
has been renamed to villager.png
(automated by Slicer tool)icon/trial_available
and realm_status/expires_soon
GUI sprites are animated with .mcmeta
declarations instead of individual sprites (automated by Slicer tool)notification\more.png
have been removedwidgets/button.png
and widgets/button_highlighted.png
have been split from widgets.png
gui
atlas from the textures/gui/sprites
directory.mcmeta
files, similar to other atlasesicon/trial_available
and realm_status/expires_soon
are now animated this waygui
atlas can now configure scaling behavior through a new gui
section in .mcmeta
filesgui
section in .mcmeta
contains one scaling
field:type
: one of: stretch
(default), tile
, or nine_slice
stretch
, the sprite will be stretched across the desired spacetile
, the sprite will be repeated across the desired space, starting from the top-leftwidth
: number of pixels for this sprite to cover on-screen across its widthheight
: number of pixels for this sprite to cover on-screen across its heightnine_slice
, the sprite will be sliced into 4 corners, 4 edges, and 1 center slice, which will be tiled across the desired spacewidth
: number of pixels for this sprite to cover on-screen across its widthheight
: number of pixels for this sprite to cover on-screen across its heightborder
: the size in pixels that the border slices should cover on-screen, one of:left
, top
, right
, and bottom
randomTickSpeed
now affects the rate of accumulation of snow and ice the same way it affects crops and other blocks affected by random tickingrandom
commandexecute
command: execute if function
return
command: return run
generic.max_absorption
belowName
value in display slot argument in scoreboard
command to below_name
random
A new command for randomizing values and controlling random sequences. The value
and roll
forms can be used to draw a random value. In the case of roll
, the resulting value is also shown in chat for all players.
Syntax:
random value|roll <range> [<sequenceId>]
random reset *|<sequenceId> [<seed>] [<includeWorldSeed>] [<includeSequenceId>]
Parameters:
range
: A range of values to randomize between, inclusivelysequenceId
: The name of a random sequence to sample or resetseed
: A seed to use for the random sequence after resetincludeWorldSeed
: A boolean [default: true
] specifying whether to include the world seed when seeding the sequencefalse
means the sequence will evaluate to the same regardless of which world the command is run inincludeSequenceId
: A boolean [default: true
] specifying whether to include the sequence ID when seeding the sequencefalse
means all sequences will evaluate to the same regardless of which name they haveBy default, all sequences are seeded as 0
, true
, true
. Using *
instead of a sequence ID resets all sequences and sets the default parameters.
If no seed is specified, the sequence resets to the default parameters.
Note that random value|roll <range>
used without a sequence id is available to non-operator players.
execute if function
A new execute sub-command that runs a function or function tag and matches the return value(s). If a tag is given, all functions run regardless of the results of prior functions. Syntax:
execute if|unless function <function> <continuation>
Parameters:
function
: The function or tag to runThe matching of the result value of the function(s) that run:
return
command to return a valuereturn run
A new form of the return
command is now available, return run
. Syntax:
return run <command>
This takes the result
value from running the specified command
and returns that as the return value of the function. In all other aspects, it works like return
with a specified return value.
If the given command fails, the return value is 0
.
\
as the last non-whitespace character of a line now allows a command to be continued on the next lineFunctions can now contain macro lines, making them Function Macros.
$
(as the first non-space character) marks a macro line$(variable)
The function
command has new forms:
function <id> <compound>
function <id> with <data source> [<path>]
New Arguments:
compound
: A data compound, enclosed in {}
data source
: A data source specification, like what could already be used for data get
path
: An NBT path specificationNotes:
Using a macro means commands must be re-evaulated after variable substitution. This has an extra cost compared to running pre-parsed functions.
Regular commands (non-macro lines) are still pre-parsed. Only commands with variable substitutions in them are parsed when a macro is called and the game will attempt to cache the result of a certain parameter set being used in a call.
This makes repeated calls with the same parameter set cheaper than new calls with different parameters, but an overhead still remains compared to regular functions. Note that only the values references by macro as parameters are included in this cache, so any extra data in the provided compound is ignored.
teleport_duration
0
means that updates are applied immediately1
means that the display entity will move from current position to the updated one over one tickgeneric.max_absorption
generic.max_absorption
acts similar to generic.max_health
, but instead of being the upper bound for Health
, it is the upper bound for AbsorptionAmount
absorption
increases generic.max_absorption
as well as fills the AbsorptionAmount
to the max when appliedentity_roar
and entity_shake
game events have been removed and replaced with entity_action
game eventno_knockback
damage type tag which causes knockback to not be caused by the damage itselfnon_controlling_rider
to represent entities that don't override their vehicles movement controlconcrete_powder
block tag for Concrete Powder blockscamel_sand_step_sound_blocks
block tag for blocks that produce entity.camel.step_sand
soundIt's barely been a week, and we're already releasing 1.20.1 for Minecraft: Java Edition. This hotfix update contains fixes for critical issues found in the 1.20 release.
Happy mining!
We're now releasing a Release Candidate for a first minor update for Minecraft 1.20. This minor update will be a stability issue to fix some critical issues found after the release of Minecraft 1.20.
What, is there something special happening today? Hold on, let me grab my calendar book from my chiseled bookshelf.
Oh, it's time for Trails & Tales! How could I forget? Time to equip your new brush and ride your camel off to new adventures!
The following changes have been made for both Signs and Hanging Signs.
Smells Interesting
: Obtain a Sniffer EggLittle Sniffs
: Feed a Snifflet (requires Smells interesting
)Planting the Past
: Plant any Sniffer seed (requires Little sniffs
)Respecting the Remnants
: Brush a Suspicious block to obtain a Pottery SherdCareful Restoration
: Make a Decorated Pot out of 4 Pottery Sherds (requires Respecting the Remnants
)Crafting a New Look
: Craft a trimmed armor at a Smithing TableSmithing with Style
: Apply these Trim Smithing Templates at least once: Spire, Snout, Rib, Ward, Silence, Vex, Tide, Wayfinder (requires Crafting a New Look
)The Power of Books
: Read the power signal of a Chiseled Bookshelf using a ComparatorCtrl
and scrolling the mouse wheelup arrow
keyIn preparation for the Calibrated Sculk Sensor, vibration frequencies have been greatly simplified to prevent unwanted interference. The following are category descriptions for each frequency and the expected events that they correspond to:
update_1_20
feature flag and built-in datapack - features are no longer experimentalreturn
commandcapped
rule structure processor that limits the number of replaced blocks for a structure piece to a configured maximumrule
processor rule is now delegated to a referenced block_entity_modifier
instead of the previously fixed output_nbt
configurationreference
loot table functionalternative
to any_of
all_of
recipe_crafted
placed_block
, item_used_on_block
and allay_drop_item_on_block
triggerssmithing_trim
and smithing_transform
recipes on fields template
, base
and addition
outside_border
and generic_kill
minecraft.png
minecraft.png
from the Programmer Art resource packinvite_icon.png
legacy_unicode
glyph provider has been removeduniform
font have been removeduniform
font has been updated to use Unifont 15.0.06titles
, called disciplines
unihex
and reference
, removed legacy_unicode
server
& port
commandline arguments as their functionality has been replaced by Quick Playserver.properties
to UTF-8The light engine is responsible for calculating the brightness of each block in the world. Light is calculated during world generation as well as updated when a block is changed in the world. Behavior of the light engine has not been changed.
return
The return
command can be used to control execution flow inside functions and change their return value. Effects:
function
command that triggered the function is changed from the number of commands executed to value
return
command is also value
Syntax:
return <value>
Parameters:
value
: An integer return valuedata
string
data sources now accept negative boundaries, which are interpreted as index counted from the end of the stringinterpolation_duration
is 0
block_state
is applied at the same time as transformation, i.e. at the next tick after receiving an update)item_display
items have been rotated 180 degrees around the Y axis to better match the transformation that is applied when rendering items on an Armor Stand head and in Item Framesitem_transform
, rotate Y 180, transformation
field, entity orientation (billboard option + Rotation
field + Pos
field)capped
post-processor has been added which can limit how many blocks a delegated post-processor randomly transform in a structurecapped
post-processor has following required parameters:delegate
A post-processor which performs the actual block transformationlimit
Maximum amount of blocks that the delegated post-processor can transformoutput_nbt
which would be added to the processed output block entityblock_entity_modifier
block_entity_modifier
's are:passthrough
Retains existing fields on the block entityblock_entity_modifier
is specifiedappend_static
Similar to previous output_nbt
this provides fixed fields to add to the block entityclear
Removes any existing fields on the block entityappend_loot
Appends a loot table and seed to the block entity through required parameter:loot_table
Referenced loot table to add to block entity as LootTable
fieldLootTableSeed
is also added to the block entity using random seeded by block positionThe game now uses named random sequences to deterministically produce loot for loot tables. Each random sequence produces a unique sequence based on the world seed and sequence ID, which means a loot table will produce the same results when ran with the same parameters in the same world.
The ID of the random sequence to use for a loot table is specified in a new optional field called random_sequence
. If no sequence name is given, loot is drawn using a non-deterministic random source.
reference
New function reference
allows functions to call sub-functions (similar to reference
condition).
Fields:
name
- location of function to callany_of
/all_of
alternative
has been renamed to any_of
all_of
that passes only when all sub-conditions passany_of
recipe_crafted
recipe_id
- the resource location of the recipe craftedingredients
- an array of predicates for the item stacks used in the reciperecipe_id
will dictate the success of the triggerplaced_block
, item_used_on_block
and allay_drop_item_on_block
have been collapsed into a single location
fieldlocation
is similar to the player
field - it is a list of loot conditions/predicatesadvancement_location
. It has access to:this
entitylocation
field should be migrated to location_check
conditionitem
field should be migrated to match_tool
conditionblock
+ state
fields should be migrated to block_state_property
conditionExample (from make_a_sign_glow
advancement):
Before:
{
"conditions": {
"item": {
"items": [
"minecraft:glow_ink_sac"
]
},
"location": {
"block": {
"tag": "minecraft:all_signs"
}
}
},
"trigger": "minecraft:item_used_on_block"
}
After:
{
"conditions": {
"location": [
{
"condition": "minecraft:match_tool",
"predicate": {
"items": [
"minecraft:glow_ink_sac"
]
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"block": {
"tag": "minecraft:all_signs"
}
}
}
]
},
"trigger": "minecraft:item_used_on_block"
}
outside_border
instead of in_wall
/kill
command now uses damage type generic_kill
instead of out_of_world
replaceable_plants
since it was only used as a subset of the blocks for the tag above, and not as universallyreplaceable_by_trees
to better express blocks that are replaced when the tree grows through themreplaceable
with all the blocks that can be replacedsword_efficient
to represent blocks that are broken 50% faster by a sword than normalmaintains_farmland
to represent which blocks will not cause farmland to be converted into dirt due to drying out when placed on top of itcombination_step_sound_blocks
that controls which blocks produce a combination of step soundsenchantment_power_provider
to control which blocks increase the level of an Enchantment Tableenchantment_power_transmitter
to control which blocks are allowed between an Enchantment Table and a Bookshelf (or other Power Transmitter)vibration_resonators
to control which blocks transmit vibration signals when placed next to Sculk Sensorstrail_ruins_replaceable
for blocks that Trail Ruins can replace when generatingsniffer_diggable_block
to control which blocks Sniffers can digsniffer_egg_hatch_boost
to that control on which blocks Sniffer Eggs hatch twice as fastceiling_hanging_signs
wall_hanging_signs
all_hanging_signs
stone_buttons
block tagcherry_logs
block tagbamboo_blocks
block tagvillager_plantable_seeds
to represent which kind of seeds Villagers can farmnoteblock_top_instruments
to control which blocks can be placed on top of Note Blocks without sneakingbreaks_decorated_pots
to control which tools can break Decorated Potsdecorated_pot_ingredients
decorated_pot_sherds
sniffer_food
trimmable_armor
trim_materials
trim_templates
stone_buttons
item tagcherry_logs
item tagbamboo_blocks
item taghas_structure/trail_ruins
piston_contract
game event in favor of block_deactivate
piston_extend
and dispense_fail
game events in favor of block_activate
step
, swim
, flap
projectile_land
, hit_ground
, splash
item_interact_finish
, projectile_shoot
, instrument_play
entity_roar
, entity_shake
, elytra_glide
entity_dismount
, equip
entity_mount
, entity_interact
, shear
entity_damage
drink
, eat
container_close
, block_close
, block_deactivate
, block_detach
container_open
, block_open
, block_activate
, block_attach
, prime_fuse
, note_block_play
block_change
block_destroy
, fluid_pickup
block_place
, fluid_place
entity_place
, lightning_strike
, teleport
entity_die
, explode
unihex
Glyph Provider:
size_overrides
hex_file
- path to ZIP archive containing one or more *.hex
files (files in archive with different extensions are ignored)size_overrides
- list of codepoint ranges that should have width different from auto-detected (based on empty space in glyph). Fields:from
, to
- start and end of codepoint range (inclusive)left
, right
- integers describing the position of the left-most and right-most columns of the glyph in rangereference
Glyph Providerid
, that describes another font to be included in the currently loaded onelegacy_unicode
Glyph Providerlegacy_unicode
glyph provider has been removedunihex
providerquickPlayPath
takes a specified path for logging (relative to the run directory)type
: is either singleplayer
, multiplayer
, or realms
identifier
: represents the world you want to joinport
: represents the server port and is only logged for multiplayername
: The name of the worldgamemode
: The gamemode of the worldlastPlayedTime
: The time you joined the world--quickPlayPath "quickPlay/log.json"
will resolve into .minecraft/quickPlay/log.json
quickPlaySingleplayer
, quickPlayMultiplayer
and quickPlayRealms
all take their respective identifier
--quickPlaySingleplayer "New World"
--quickPlayMultiplayer "localhost:25565"
--quickPlayRealms "1234"
launcher_name
minecraft.launcher.brand
system propertyworld_loaded
realms_map_content
world_loaded
event will receive the name of that mapadvancement_made
game_load_times
server.properties
To improve safety, the game will now detect symbolic links used inside world directory. For a detailed explanation, check our help article.
allowed_symlinks.txt
in the client or server top directory#
are comments and are ignored[type]pattern
, where type
can be glob
, regex
or prefix
prefix
matches start of path with given pattern (so for /test
paths /test
, /test/
and /test/foo.txt
would match)regex
matches regular expression against whole pathglob
uses OS-specific path matching mechanism (for example *.txt
would usually match files with txt
extension)pattern
, which uses default prefix
typeAround 250 bugs were fixed in this release. View the list on the issue tracker.
We are now releasing the first, and hopefully only, release-candidate for 1.20, containing two bug fixes. If all goes well, no further changes will be made before the full release of Minecraft 1.20 on Wednesday next week.
Happy crafting!
Pre-release 7 for Minecraft 1.20 is now available in the Minecraft Launcher. This pre-release adds validation of symbolic links and fixes a bug.
To improve safety, the game will now detect symbolic links used inside world directory. For a detailed explanation, check our help article.
allowed_symlinks.txt
in client or server top directory#
are comments and are ignored[type]pattern
, where type
can be glob
, regex
or prefix
prefix
matches start of path with given pattern (so for /test
paths /test
, /test/
and /test/foo.txt
would match)regex
matches regular expression against whole pathglob
uses OS-specific path matching mechanism (for example *.txt
would usually match files with txt
extension)pattern
, which uses default prefix
typeThe sixth pre-release of the 1.20 update is here, yet again containing more bug fixes.
Happy mining!
"item": "minecraft:air"
can no longer be used in datapack recipessmithing_trim
and smithing_transform
recipes on fields template
, base
and addition
The ID of the random sequence is now an optional field. If no sequence name is given, loot is drawn using a non-deterministic random source.
Summer is around the corner here at the office, and what better time to stay inside and try out the new pre-release?!
Happy crafting, you wonderful people!
uniform
font has been updated to use Unifont 15.0.03 (was 15.0.01 last pre-release)We've now released 1.20 Pre-release 4, resolving a crash in the Multiplayer screen introduced in the last pre-release.
We are now releasing 1.20 Pre-release 3, containing even more bug fixes.
Happy crafting!
We are now releasing the second pre-release for Minecraft 1.20. This pre-release contains bug fixes.
Happy Mining!
"item": "minecraft:air"
can now be used in datapack recipes to denote an ingredient that will match an empty slot.minecraft:crafting_shaped
minecraft:crafting_shapeless
minecraft:smelting
minecraft:blasting
minecraft:smoking
minecraft:campfire_cooking
minecraft:stonecutting
It is now time for the first Pre-release for Minecraft 1.20: The Trails and Tales update!
From now on, you should mostly see bugs being fixed. In addition to that, pre-releases don't follow the regular snapshot cadence of releasing on Wednesdays, so keep an eye out for the next pre-release.
As always, a big thank you to the community for your feedback, bugs reported, and awesome ideas throughout the snapshot series. Let the pre-releases commence!
outside_border
and generic_kill
server.properties
encodingstring
data sources for the data
command now accept negative boundaries, which are interpreted as index counted from the end of the stringoutside_border
instead of in_wall
/kill
command now uses damage type generic_kill
instead of out_of_world
The game now uses named random sequences to deterministically produce loot for loot tables. Each random sequence produces a unique sequence based on the world seed and sequence ID, which means a loot table will produce the same results when ran with the same parameters in the same world.
The ID of the random sequence to use for a loot table is specified in a new field called random_sequence
.
server.properties
In this snapshot we're bringing you an additional advancement, updates to telemetry, as well as a fix for an 11 year old bug!
Happy stepping!
The Power of Books
: Read the power signal of a Chiseled Bookshelf using a Comparatorrecipe_crafted
placed_block
, item_used_on_block
and allay_drop_item_on_block
triggersalternative
to any_of
all_of
launcher_name
world_loaded
event now has a new property: realms_map_content
game_load_times
and advancement_made
placed_block
, item_used_on_block
and allay_drop_item_on_block
have been collapsed to a single location
fieldlocation
is similar to player
field - it's a list of loot conditions/predicatesadvancement_location
. It has access to:this
entitylocation
field should be migrated to location_check
conditionitem
field should be migrated to match_tool
conditionblock
+ state
fields should be migrated to block_state_property
conditionExample (from make_a_sign_glow
advancement):
Before:
{
"conditions": {
"item": {
"items": [
"minecraft:glow_ink_sac"
]
},
"location": {
"block": {
"tag": "minecraft:all_signs"
}
}
},
"trigger": "minecraft:item_used_on_block"
}
After:
{
"conditions": {
"location": [
{
"condition": "minecraft:match_tool",
"predicate": {
"items": [
"minecraft:glow_ink_sac"
]
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"block": {
"tag": "minecraft:all_signs"
}
}
}
]
},
"trigger": "minecraft:item_used_on_block"
}
any_of
/all_of
alternative
has been renamed to any_of
all_of
that passes only when all sub-conditions pass. It has the same syntax as any_of
This release includes a new global property sent with every event, a new property in the required WorldLoaded event, as well as two new opt-in events. The updated required events will help us troubleshoot launcher bugs more efficiently, and understand how Java Realms content is interacted with. The updated optional events will help inform game design decisions, and allow us to track and improve game load speeds.
launcher_name
minecraft.launcher.brand
system property. This will help us troubleshoot game launch related bugs more effectively, as we will be able to see whether the issue originated in the Minecraft launcher or a third-party program.world_loaded
realms_map_content
world_loaded
event will receive the name of that map. This is to help us understand how Java Realms users interact with Java Realms adventure or minimap content.advancement_made
game_load_times
Hello! Here is a new snapshot with tweaks to the new features, new advancements, new music and some long-awaited technical changes. For some time we've been working on a new faster light engine, and we are finally ready to share the result. Special thank you to the community for not only pointing out the issues with the game's light engine, but also to community members that have developed mods and plugins which have highlighted these performance challenges and served as an inspiration for our new implementation.
Please break it in all possible ways and report bugs!
Smells interesting
: Obtain a Sniffer EggLittle sniffs
: Feed a Snifflet (requires Smells interesting
)Planting the past
: Plant any Sniffer seed (requires Little sniffs
)Respecting the remnants
: Brush a Suspicious block to obtain a Pottery SherdCareful restoration
: Make a Decorated Pot out of 4 Pottery Sherds (requires Respecting the remnants
)Crafting a new look
: Craft a trimmed armor at a Smithing TableSmithing with style
: Apply these smithing templates at least once: Spire, Snout, Rib, Ward, Silence, Vex, Tide, Wayfinder (requires Crafting a new look
)up arrow
keylegacy_unicode
glyph provider has been removeduniform
font have been removeduniform
font has been updated to use Unifont 15.0.01titles
, called disciplines
unihex
and reference
, removed legacy_unicode
unihex
glyph provider:
size_overrides
hex_file
- path to ZIP archive containing one or more *.hex
files (files in archive with different extensions are ignored)size_overrides
- list of codepoint ranges that should have width different that auto-detected (based on empty space in glyph). Fields:from
, to
- start and end of codepoint range (inclusive)left
, right
- integers describing position of left-most and right-most columns of glyph in rangereference
glyph providerid
, that describes other font to be included in currently loaded onelegacy_unicode
glyph providerlegacy_unicode
glyph provider has been removedunihex
providerIn this weeks Snapshot we're bringing you tweaks to the Trail Ruins, new command functionality, a new advancement trigger, and more!
Happy mining!
Edit: We have published a fix for a crash issue in this Snapshot. If you are experiencing crashes, please try closing all instances of the game and restarting the Launcher.
Failed to get element ResourceKey[minecraft:worldgen/processor_list / minecraft:trail_ruins_suspicious_sand]
in an old snapshot world. These are harmless, but existing Trail Ruin structures that was not previously fully loaded might be missing parts of the structure.return
commandrecipe_crafted
advancement triggerreturn
The return
command can be used to control execution flow inside functions and change their return value. Effects:
function
command that triggered the function is changed from the number of commands executed to value
return
command is also value
Syntax:
return <value>
Parameters:
value
: An integer return valuerecipe_crafted
recipe_id
- the resource location of the recipe craftedingredients
- an array of predicates for the item stacks used in the reciperecipe_id
will dictate the success of the triggervillager_plantable_seeds
to represent which kind of seeds Villagers can farmmaintains_farmland
to represent which blocks will not cause farmland to be converted into dirt when placed on top of ititem_display
items have been rotated 180 degrees around Y axis to better match transformation applied when rendering items on armor stand head and in item framesitem_transform
, rotate Y 180, transformation
field, entity orientation (billboard option + Rotation
field + Pos
field)We are now releasing Snapshot 23w14a, containing changes to Sculk blocks and Enchanting Tables, a new Quick Play functionality, an updated logo for Java Edition, a new main menu panorama, and lots of bug fixes!
Happy mining!
text
chat components can no longer be editedreference
server
& port
arguments as their functionality has been replaced by Quick Playminecraft.png
minecraft.png
from the Programmer Art resource packinvite_icon.png
reference
New function reference
allows functions to call sub-functions (similar to reference
condition).
Fields:
name
- location of function to callquickPlayPath
takes a specified path for logging (relative to the run directory)type
: is either singleplayer
, multiplayer
, or realms
identifier
: represents the world you want to joinport
: represents the server port and is only logged for multiplayername
: The name of the worldgamemode
: The gamemode of the worldlastPlayedTime
: The time you joined the world--quickPlayPath "quickPlay/log.json"
will resolve into .minecraft/quickPlay/log.json
quickPlaySingleplayer
, quickPlayMultiplayer
and quickPlayRealms
all take their respective identifier
--quickPlaySingleplayer "New World"
--quickPlayMultiplayer "localhost:25565"
--quickPlayRealms "1234"
replaceable_by_trees
, to better express blocks that are replaced when the tree grows through themreplaceable_plants
since it was only used as a subset of the blocks for the tag above, and not as universallysword_efficient
, to represent blocks that are broken slightly faster by a sword than normalIn this week's snapshot 23w13a we're following up on all the new things in last week's snapshot with a big round of bug fixes. Happy mining!
Ctrl
and scrolling the mouse wheelWell hello fellow Minecraft lovers! It is time for the first snapshot for 1.20. We know we promised no more major features, so how did we end up with such a big snapshot? You thought the trails were over? NO! In snapshot 23w12a we have even more tales to tell! Our devs apparently could not resist throwing in a few extra additions. Enjoy!
New armor trim Smithing Templates have been added to the following structures:
In preparation for the Calibrated Sculk Sensor, vibration frequencies have been greatly simplified to prevent unwanted interference. The following are category descriptions for each frequency and the expected events that they correspond to:
capped
rule structure processor that limits the number of replaced blocks for a structure piece to a configured maximumrule
processor rule is now delegated to a referenced block_entity_modifier
instead of the previously fixed output_nbt
configurationupdate_1_20
feature flag and built-in datapack - features are no longer experimentalcapped
post-processor has been added which can limit how many blocks a delegated post-processor randomly transform in a structurecapped
post-processor has following required parameters:delegate
A post-processor which performs the actual block transformationlimit
Maximum amount of blocks that the delegated post-processor can transformoutput_nbt
which would be added to the processed output block entityblock_entity_modifier
block_entity_modifier
's are:passthrough
Retains existing fields on the block entityblock_entity_modifier
is specifiedappend_static
Similar to previous output_nbt
this provides fixed fields to add to the block entityclear
Removes any existing fields on the block entityappend_loot
Appends a loot table and seed to the block entity through required parameter:loot_table
Referenced loot table to add to block entity as LootTable
fieldLootTableSeed
is also added to the block entity using random seeded by block positionpiston_contract
game event has been removed in favor of block_deactivate
piston_extend
and dispense_fail
game events have been removed in favor of block_activate
step
, swim
, flap
projectile_land
, hit_ground
, splash
item_interact_finish
, projectile_shoot
, instrument_play
entity_roar
, entity_shake
, elytra_glide
entity_dismount
, equip
entity_mount
, entity_interact
, shear
entity_damage
drink
, eat
container_close
, block_close
, block_deactivate
, block_detach
container_open
, block_open
, block_activate
, block_attach
, prime_fuse
, note_block_play
block_change
block_destroy
, fluid_pickup
block_place
, fluid_place
entity_place
, lightning_strike
, teleport
entity_die
, explode
combination_step_sound_blocks
interpolation_duration
is 0
block_state
is applied at the same time as transformation, i.e. at next tick after receiving update)We're now releasing 1.19.4 for Minecraft: Java Edition. This release comes with improvements to horse breeding and jukeboxes, new visuals for potions, new accessibility features and many new technical capabilities like the damage and ride commands and display and interaction entities.
The update_1_20 experiment has also been updated with a first look at the Sniffer, Archaeology, Armor Trims and Cherry Grove features.
The speed, jump height and health of a baby is now a variation of the average of the parents' attributes, rather than being biased towards the average possible value.
This change makes horse breeding a viable way of getting great horses, if a player starts with good parents and puts in enough time and Golden Carrots.
damage
command for applying damage to entitiesride
command to mount and dismount entitiesclone
command now supports cloning to and from different dimensionsstring
source is now available for the data modify
commandexecute
sub-commands: if dimension
, if loaded
, on
, positioned over
, summon
paletted_permutations
screenshots/debug/
fallback
fields to translate
text componentstranslate
formats are no longer silently ignoredentity_dismount
with a vibration frequency of 6entity_mount
with a vibration frequency of 7item_interact_finish
now has a vibration frequency of 2 instead of 14heldItemTooltips
option from options.txt
--pidFile
argument to dedicated server command line for printing process id to fileshow_notification
field to recipestrue
if isn't specifiedsmithing_transform
has been added for the updated Netherite Upgrade recipesmithing_trim
has been added for the new Armor Trim recipecrafting_decorated_pot
has been added for the new Decorated Pot recipetrim_pattern
and trim_material
have been added for the armor trim systemlegacy_smithing
smithing
HideFlags
NBT field for hiding armor trim item tooltipsenchanted_glint_entity.png
and enchanted_glint_item.png
slider.png
filelight_dirt_background.png
for its background, unlike other screensclone
The clone command now supports specifying the source and target dimensions.
New syntax:
clone [from <sourceDimension>] <begin> <end> [to <targetDimension>] <destination> ...
Parameters:
sourceDimension
: id of dimension to clone fromtargetDimension
: id of dimension to clone todamage
New command to apply damage to entities.
Syntax:
damage <target> <amount> [<damageType>] [at <location>]
damage <target> <amount> [<damageType>] [by <entity>] [from <cause>]
Parameters:
target
: The entity to damageamount
: Amount of damage to inflictdamageType
: The type of damage to inflictentity
: The entity inflicting the damagecause
: The cause of the damage, in the case of indirect damageentity
is the Arrow projectile while cause
might be a Skeletonlocation
: The location the damage originated at (when no entity caused the damage)location
might represent the location of a Bed exploding in the Netherdata
New source available:
string <entity|block|storage> [path] [start] [end]
- reads a value as text, resulting in a string valueNew arguments:
start
: Index of first character to include at the start of the stringend
: Index of the first character to exclude at the end of the stringeffect
infinite
is now a valid option for effect durationsexecute
execute if|unless
New conditions available for the execute if|unless
sub-command:
execute if|unless loaded <pos>
- checks if the position given is fully loaded (in regard to both blocks and entities)execute if|unless dimension <dimension>
- checks if the execution is in a matching dimensionParameters:
pos
: Block position to checkdimension
: A dimension idexecute on
New execute
sub-command for selecting entities based on relation to the current executing entity:
execute on <relation>
Relations:
vehicle
- the entity that the executing entity is ridingpassengers
- all entities directly riding the executing entity (no sub-passengers)controller
- the entity that is controlling the executing entity (for example: first passenger in a boat)owner
- the owner of the executing entity, if it is a tameable animal (like cats, wolves or parrots)leasher
- the entity leading the executing entity with a leash (might be a leash knot in case of being attached to a fence)target
- the attack target for the executing entityattacker
- the last entity that damaged the executing entity in the previous 5 secondsorigin
:If the relation is not applicable to the executing entity or there are no entities matching it, the selector returns zero elements.
execute positioned over
New execute
sub-command for finding positions on top of a heightmap. Changes the height of the execution position to be on top of the given heightmap.
Syntax:
execute positioned over <heightmap>
A heightmap records the highest position in a column of blocks according to some criteria. Available options:
world_surface
: Any non-air blockmotion_blocking
: Any motion blocking material (e.g. ignores flowers and grass)motion_blocking_no_leaves
: Any non-leaf motion blocking materialocean_floor
: Any non-fluid motion blocking materialexecute summon
New execute
sub-command for summoning a new entity and binding the context (@s
) to it. Meant to simplify entity setup and reduce the need for raw NBT editing.
Syntax:
execute summon <entity id>
fillbiome
fillbiome
command has been optimizedtitle
title times
are now time durations and work with t
, s
and d
suffixesweather
duration
parameter is now a time duration in ticks and works with t
, s
and d
suffixess
suffix to pre-existing commandsride
New command to allow entities to start or stop riding other entities.
Syntax:
ride <target> mount <vehicle>
vehicle
is a playertarget
is already riding a vehicletarget
and vehicle
are the same entityvehicle
is already a passenger (direct or indirect) of target
ride <target> dismount
target
from any vehicle it is ridingtarget
is not riding anythingDamage Types are a new registry that can be extended through data packs. A Damage Type determines how damage is handled by the game. This includes which attributes the damage has as well as which death message is used when an entity dies due to that type of damage.
Example:
{
"exhaustion": 0.1,
"message_id": "arrow",
"scaling": "when_caused_by_living_non_player"
}
Fields:
message_id
: The message id used for deaths caused by this damage typeexhaustion
: The amount of hunger exhaustion caused by this damage typescaling
: Whether this damage type scales with difficulty levels. Possible values:never
: Damage is always the samealways
: Damage always scales with difficultywhen_caused_by_living_non_player
: Damage scales with difficulty if it was caused by a living entity who is not a playereffects
: Optional field controlling how damage manifests when inflicted on players. Possible values:hurt
(default): the default hurt soundthorns
: Thorns hurt sounddrowning
: Drowning soundburning
: A single tick of burning soundpoking
: Berry bush poke soundfreezing
: Freeze tick sounddeath_message_type
: Optional field that controls if special death message variants are used. Possible values:default
(default): No special death message logic is appliedfall_variants
: Show a variant of fall damage death instead of a regular death message, e.g. death.fell.assist.item
intentional_game_design
: Show the intentional game design message instead of a regular death messageDamage type tags control many aspects of how damage from different sources are interpreted.
The following fields have been removed from damage type predicates: is_projectile
, is_explosion
, bypasses_armor
,
bypasses_invulnerability
, bypasses_magic
, is_fire
, is_magic
, is_lightning
.
A new tags
array has been added, with the predicate matching if all entries match. Each entry has two fields:
id
: The ID of a damage type tagexpected
: Whether the damage is expected to have or not have the tag for the predicate to matchcommandModificationBlockLimit
, controlling the maximum number of blocks changed in one execution of clone
, fill
and fillbiome
doVinesSpread
game rule, determining if vines will spread to nearby blockstrue
Added an optional fallback
field to translate
text components.
fallback
is missing, the old behavior (i.e. using the key itself as the translation) is preservedThree new entities have been added for flexible display of items, blocks and text
marker
, don't tick and have no collisions or physicsTag contents for display entities include some new data types with a complex structure. Any form can be used for modifying data, but only one form is used for saving.
Arbitrary affine transform.
translation
- 3d vectorleft_rotation
, right_rotation
- rotation
scale
- 3d vectortranslation
, left_rotation
, scale
, right_rotation
axis
- unit 3d vectorangle
- in radiansSome properties of display entities can be interpolated. That means that clients will see gradual changes over time instead of instantaneous jumps.
Display entities keep track of current and previous values of interpolated values:
interpolation_duration
ticksstart_interpolation
field (this field is not normally present in NBT)0
ticks means that interpolation will start in next client tick after receiving the updatestart_interpolation
+ interpolation_duration
ticks after receiving the updatestart_interpolation
, but it will still behave as if it was started at the moment of the last update to start_interpolation
interpolation_duration
ticks have passed since last start_interpolation
update, the entity will immediately jump to new valuesAll display entity types have the following fields:
transformation
- the transformation applied to model (after normal entity orientation). Defaults to identity. Interpolatedbillboard
- option to control if entity should pivot to face player when rendered:fixed
- no rotation (default)vertical
- entity can pivot around its vertical axishorizontal
- entity can pivot around its horizontal axiscenter
- entity can pivot around its center pointbrightness
- if present, overrides light values used for rendering. Omitted by default (which means rendering uses values from entity position). Object has two fields:sky
- value of skylight, 0..15block
- value of block light, 0..15view_range
- maximum view range of this entity. Actual distance depends on client-side render distance and entity distance scalling. Default value 1.0 (roughly the same as fireball)shadow_radius
- size of shadow. Defaults to 0 (no shadow). Interpolatedshadow_strength
- strength of the shadow. Controls the opacity of the shadow as a function of distance to block below. Defaults to 1. Interpolatedwidth
, height
- describe size of culling bounding boxy
to y+height
and horizontally width/2
in all directions from entity position0
, culling is disabled0
glow_color_override
- override glow border color. Defaults to -1
(use team color). Alpha component is ignoreditem_display
Displays a single item stack.
container.0
Fields:
item
- item stack to display. Same format as in inventory (example: {id: "minecraft:dirt", Count: 1}
)item_display
- describes item model transform applied to item (as defined in display
section in model JSON)none
(default), thirdperson_lefthand
, thirdperson_righthand
, firstperson_lefthand
, firstperson_righthand
, head
, gui
, ground
, fixed
block_display
Displays a block state.
Fields:
block_state
- block state to display. Same format as item held by endermen (example {Name:"minecraft:dirt"}
)text_display
Displays a text component.
Fields:
text
- text to display. Components are resolved with the context of the display entityline_width
- line width used to split lines (note: new lines can be also added with \n
characters). Defaults to 200text_opacity
- opacity (alpha component) of rendered text. Defaults to 255. Interpolatedbackground
- color of background. Includes alpha channel. Defaults to 0x40000000. Interpolateddefault_background
- if true, rendering uses default text background color (same as in chat). Defaults to falseshadow
- whether the text should be displayed with a shadow. Defaults to falsesee_through
- whether the text should be visible through blocks. Defaults to falsealignment
- how the text should be alignedcenter
(default), left
, right
Note: text display backgrounds uses new shader types rendertype_text_background
and rendertype_text_background_see_through
.
A new type of entity that records attacks ("left clicks") and interactions ("right clicks"). Interactions are invisible and of a custom size.
Fields:
width
: Width of the entity's bounding box (default 1
)height
: Height of the entity's bounding box (default 1
)attack
: Records the last attack action on the entityinteraction
: Records the last interaction action on the entityresponse
: Boolean specifying if interacting should trigger a response (arm swing, sound effects, etc - default false
)When an action is stored, it always has two fields:
player
: The UUID (in standard integer array format) of the player performing the actiontimestamp
: The timestamp of the game tick when the event happened (stored as a long)player_interacted_with_entity
player_hurt_entity
execute on
with InteractionsThe Interaction entity targets the player who last interacted with it. That makes the following possible:
execute on attacker
: execute as the last player who attacked the entityexecute on target
: execute as the last player who interacted with the entityincreased_fire_burnout
biome tagonly_allows_snow_and_gold_rabbits
biome tag has been renamed to spawns_gold_rabbits
to match its behaviorspawns_white_rabbits
biome tagspawns_snow_foxes
biome tagsnow_golem_melts
biome tagdismounts_underwater
entity tag will now force the rider to dismount when underwaterpaletted_permutations
is a new type of atlas configuration source used to dynamically generate new textures in memory based on a set of color palettespaletted_permutations
source has a set of required parameters:textures
A list of namespaced locations of base texturespalette_key
A namespaced location of a color palette key filepermutations
A map of permutations from suffix to a namespaced location of a color palette file_
character separating the suffix and the base texture namepalette_key
defined for this sourcepalette_key
to the RGB values of each pixel in the color palettepalette_key
are copied over to the resulting texture as-ispaletted_permutations
source, you can then reference those namespaced output textures in other resources in your resource packFor example, if you have the following paletted_permutations
source:
{
"type": "paletted_permutations",
"textures": [
"minecraft:item/leather_helmet",
"minecraft:item/leather_chestplate",
"minecraft:item/leather_leggings",
"minecraft:item/leather_boots"
],
"palette_key": "minecraft:colormap/color_palettes/leather_armor_color_key",
"permutations": {
"red": "minecraft:colormap/color_palettes/red",
"green": "minecraft:colormap/color_palettes/green",
"blue": "minecraft:colormap/color_palettes/blue"
}
}
You can then reference the resulting textures in other resources like this:
{
"textures": {
"layer0": "minecraft:item/leather_helmet_red",
"layer1": "minecraft:item/leather_chestplate_green",
"layer2": "minecraft:item/leather_boots_blue"
}
}
trim_pattern
and trim_material
registry respectivelyname
fieldasset_id
which is a namespaced id used to infer texture locations and localizationtemplate_item
which is the id of the smithing template item used to apply the trim patterndescription
which is a text component used for displaying the pattern name of an armor trim when hovering an armor itemstackasset_name
which is a string used as a suffix for armor trim texture locationsingredient
which is the id of the ingredient item used to apply the trim materialitem_model_index
which is a float which defines the item model override each armor item model should target to change their visuals for this materialoverride_armor_materials
which is an optional map of armor material to overridden color palettedescription
which is a text component used for displaying the material name of an armor trim when hovering an armor item stackdescription
as wellThe following changes only apply when one or more Experiments is turned on, either by activating the corresponding experimental data pack or by turning it on in the Experiments screen while creating the world.
Around 150 bugs were fixed in this release. View the list on the issue tracker.
A third Release Candidate is now available for Minecraft 1.19.4, fixing one issue in preparation for the full release of Minecraft 1.19.4 tomorrow.
Happy Crafting!
We are releasing a second Release Candidate for 1.19.4 to fix a few critical issues.
Here is the first (and hopefully last) release candidate for 1.19.4. Unless something critical pops up, no further changes will be made for the full release, which is planned for next week.
Happy mining!
Changes to display entity interpolation:
interpolation_start
is replaced with start_interpolation
, with a different meaningstart_interpolation
describes amount of ticks from the start of next client tick after receiving an update to start of interpolation0
means that interpolation will start at the beginning of next client tick after receiving the updatestart_interpolation
is not stored in entity datastart_interpolation
is not present in modified tag, interpolation will continue from the time of previous update, but with new valuesWe are now releasing the fourth pre-release for Minecraft 1.19.4. This pre-release contains bug fixes, some cherry texture tweaks, and a button in the options menu to view the game credits.
Happy mining!
We're back again with the third pre-release for Minecraft 1.19.4. This pre-release contains more bug fixes, as well as color adjustments for potions. The archer pottery shard texture has also been updated. Happy mining!
screenshots/debug/
We are now releasing the second pre-release for Minecraft 1.19.4. This pre-release contains bug fixes, as well as an updated model for the decorated pot.
As a reminder, the pre-release cycle for 1.19.4 will continue to contain mostly bug fixes.
Happy mining!
dismounts_underwater
entity tag will now force the rider to dismount when underwaterWe are now releasing the first pre-release for Minecraft 1.19.4. This pre-release contains a new high contrast accessibility setting, some updates to the Create World tab visuals, a new execute subcommand, improvements to startup performance, and lots of bug fixes!
For the remainder of the 1.19.4 cycle, you should mostly see bugs being fixed. In addition to that, pre-releases don't follow the regular snapshot cadence of releasing on Wednesdays, so keep an eye out for the next pre-release.
Happy mining!
item_interact_finish
now has a vibration frequency of 2 instead of 14bypasses_cooldown
- damage types with this tag bypass the regular invincibility time after taking damagefall_damage_immune
- entity types with this tag do not take fall damageenchanted_glint_entity.png
and enchanted_glint_item.png
execute positioned over
New execute
sub-command for finding positions on top of a heightmap. Changes the height of the execution position to be on top of the given heightmap. Syntax:
execute positioned over <heightmap>
A heightmap records the highest position in a column of blocks according to some criteria. Available options:
world_surface
: Any non-air blockmotion_blocking
: Any motion blocking material (e.g. ignores flowers and grass)motion_blocking_no_leaves
: Any non-leaf motion blocking materialocean_floor
: Any non-fluid motion blocking materialThis week we're bringing you the Sniffer, Archaeology, and the Cherry Blossom biome as experimental features for the 1.20 update.
Changes for the 1.19.4 release include Interaction Entities, and updates to jukeboxes and horse breeding.
Happy brushing!
crafting_decorated_pot
has been added for the new Decorated Pot recipeshow_notification
field to recipestrue
if isn't specifiedA new type of entity that records attacks ("left clicks") and interactions ("right clicks"). Interactions are invisible and of a custom size.
Fields:
width
: Width of the entity's bounding box (default 1
)height
: Height of the entity's bounding box (default 1
)attack
: Records the last attack action on the entityinteraction
: Records the last interaction action on the entityresponse
: Boolean specifying if interacting should trigger a response (arm swing, sound effects, etc - default false
)When an action is stored, it always has two fields:
player
: The UUID (in standard integer array format) of the player performing the actiontimestamp
: The timestamp of the game tick when the event happened (stored as a long)player_interacted_with_entity
player_hurt_entity
execute on
with InteractionsThe Interaction entity targets the player who last interacted with it. That makes the following possible:
execute on attacker
: execute as the last player who attacked the entityexecute on target
: execute as the last player who interacted with the entityToday we are bringing you the damage
command and new display entities.
Damage safely!
damage
command for applying damage to entities--pidFile
argument to dedicated server command line for printing process id to fileentity_dismount
with a vibration frequency of 6entity_mount
with a vibration frequency of 7execute summon
to allow customization of a newly spawned entityThree new entities have been added for flexible display of items, blocks and text
marker
, don't tick and have no collisions or physicsTag contents for those entities include some new data types with complex structure. Any form can be used for modifying data, but only one form is used for saving.
rotation
axis
- 3d vectorangle
- in radianstransformation
Arbitrary affine transform
translation
- 3d vectorleft_rotation
, right_rotation
- rotation
scale
- 3d vectortranslation
, left_rotation
, scale
, right_rotation
Some properties of display entites can be interpolated. That means that clients will see gradual changes over time instead of instantenous jumps.
Display entities keep track of current and previous values of interpolated values:
interpolation_start
(game time, in ticks)-1
to load current game time instead)interpolation_start
+ interpolation_duration
(in ticks)Every entity in family has the following fields:
transformation
- transformation
applied to model (after normal entity orientation). Defaults to identity. Interpolatedbillboard
- option to control if entity should pivot to face player when rendered:fixed
- no rotation (default)vertical
- entity can pivot around vertical axishorizontal
- entity can pivot around horizontal axiscenter
- entity can pivot around center pointbrightness
- if present, overrides light values used for rendering. Omited by default (which means rendering uses values from entity position). Object has two fields:sky
- value of skylight, 0..15block
- value of block light, 0..15view_range
- maximum view range of this entity. Actual distance depends on client-side render distance and entity distance scalling. Default value 1.0 (roughly the same as fireball)shadow_radius
- size of shadow. Defaults to 0 (no shadow). Interpolatedshadow_strength
- strength of the shadow. Controls the opacity of the shadow as a function of distance to block below. Defaults to 1. Interpolatedwidth
, height
- describe size of culling bounding box. Bounding box spans vertically y
to y+height
and horizontally width/2
in all directions from entity position. If either field is set to 0, culling is disabled. Both default to 0glow_color_override
- override glow border color. Defaults to 0 (use team color)item_display
Displays a single item stack.
inventory.0
Fields:
item
- item stack to display. Same format as in inventory (example: {id: "minecraft:dirt", Count: 1}
)item_display
- describes item model transform applied to item (as defined in display
section in model JSON)none
(default), thirdperson_lefthand
, thirdperson_righthand
, firstperson_lefthand
, firstperson_righthand
, head
, gui
, ground
, fixed
block_display
Displays a block state.
Fields:
block_state
- block state to display. Same format as item held by endermen (example {Name:"minecraft:dirt"}
)text_display
Displays a text component.
Fields:
text
- text to display. Components are resolved with the context of the display entityline_width
- line width used to split lines (note: new line can be also addded with \n
characters). Defaults to 200text_opacity
- opacity (alpha component) of rendered text. Defaults to 255. Interpolatedbackground
- color of background. Includes alpha channel. Defaults to 0x40000000. Interpolateddefault_background
- if true, rendering uses default text background color (same as in chat). Defaults to falseshadow
- should text be displayed with shadow. Defaults to falsesee_through
- should text be visible through blocks. Defaults to falsealignment
- how text should be alignedcenter
(default), left
, right
Note: text display backgrounds uses new shader types rendertype_text_background
and rendertype_text_background_see_through
Damage Types are a new registry that can be extended through data packs. A Damage Type determines how damage is handled by the game. This includes which attributes the damage has as well as which death message is used when an entity dies due to that type of damage.
Example:
{
"exhaustion": 0.1,
"message_id": "arrow",
"scaling": "when_caused_by_living_non_player"
}
Fields:
message_id
: The message id used for deaths caused by this damage typeexhaustion
: The amount of hunger exhaustion caused by this damage typescaling
: Whether this damage type scales with difficulty levels. Possible values:never
: Damage is always the samealways
: Damage always scales with difficultywhen_caused_by_living_non_player
: Damage scales with difficulty if it was caused by a living entity who is not a playereffects
: Optional field controlling how damage manifests when inflicted on players. Possible values:hurt
(default): the default hurt soundthorns
: Thorns hurt sounddrowning
: Drowning soundburning
: A single tick of burning soundpoking
: Berry bush poke soundfreezing
: Freeze tick sounddeath_message_type
: Optional field that controls if special death message variants are used. Possible values:default
(default): No special death message logic is appliedfall_variants
: Show a variant of fall damage death instead of a regular death message, e.g. death.fell.assist.item
intentional_game_design
: Show the intentional game design message instead of a regular death messageDamage type tags control many aspects of how damage from different sources are interpreted.
damage
New command to apply damage to entities.
Syntax:
damage <target> <amount> [<damageType>] [at <location>]
damage <target> <amount> [<damageType>] [by <entity>] [from <cause>]
Parameters:
target
: The entity to damageamount
: Amount of damage to inflictdamageType
: The type of damage to inflictentity
: The entity inflicting the damagecause
: The cause of the damage, in the case of indirect damageentity
is the Arrow projectile while cause
might be a Skeletonlocation
: The location the damage originated at (when no entity caused the damage)location
might represent the location of a Bed exploding in the Netherexecute summon
New execute
sub-command for summoning new entity and binding context (@s
) to it. Meant to simplify entity setup and reduce need for raw NBT editing.
execute summon <entity id>
The following fields have been removed from damage type predicates: is_projectile
, is_explosion
, bypasses_armor
,
bypasses_invulnerability
, bypasses_magic
, is_fire
, is_magic
, is_lightning
.
A new tags
array has been added. Each entry has two fields:
id
: The ID of a damage type tagexpected
: Whether the damage is expected to have or not have the tag for the predicate to matchdoVinesSpread
game rule, determining if vines will spread to nearby blockstrue
In this snapshot we've tweaked the armor trim feature and redefined the Create New World user experience flow.
Happy world creating!
override_armor_materials
which is an optional map of armor material to overriden color paletteincompatible_armor_material
effect
infinite
is now a valid option for effect durationsTuesday is the new Wednesday, did you know? Here is snapshot 23w04a with a new experimental Armor Trim Smithing feature in the Update_1_20 experimental pack.
Happy trimming!
Added a new type of atlas configuration source: paletted_permutations
Armor Stands now preserve custom names when placed and broken
A new registry trim_pattern
has been added for the armor trim system
A new recipe serializer smithing_transform
has been added for the updated Netherite Upgrade recipe
A new recipe serializer smithing_trim
has been added for the new Armor Trim recipe
Smithing table has temporarily two menu types
legacy_smithing
smithing
Added new flag (value 128) to HideFlags
NBT field for hiding armor trim item tooltips
paletted_permutations
is a new type of atlas configuration source used to dynamically generate new textures in memory based on a set of color palettespaletted_permutations
source has a set of required parameters:textures
A list of namespaced locations of base texturespalette_key
A namespaced location of a color palette key filepermutations
A map of permutations from suffix to a namespaced location of a color palette file_
character separating the suffix and the base texture namepalette_key
defined for this sourcepalette_key
to the RGB values of each pixel in the color palettepalette_key
are copied over to the resulting texture as-ispaletted_permutations
source, you can then reference those namespaced output textures in other resources in your resource packpaletted_permutations
source:{
"type": "paletted_permutations",
"textures": [
"minecraft:item/leather_helmet",
"minecraft:item/leather_chestplate",
"minecraft:item/leather_leggings",
"minecraft:item/leather_boots"
],
"palette_key": "minecraft:colormap/color_palettes/leather_armor_color_key",
"permutations": {
"red": "minecraft:colormap/color_palettes/red",
"green": "minecraft:colormap/color_palettes/green",
"blue": "minecraft:colormap/color_palettes/blue"
}
}
{
"textures": {
"layer0": "minecraft:item/leather_helmet_red",
"layer1": "minecraft:item/leather_chestplate_green",
"layer2": "minecraft:item/leather_boots_blue"
}
}
trim_pattern
and trim_material
registry respectivelyname
fieldasset_id
which is a namespaced id used to infer texture locations and localizationtemplate_item
which is the id of the smithing template item used to apply the trim patterndescription
which is a text component used for displaying the pattern name of an armor trim when hovering an armor itemstackasset_name
which is a string used as a suffix for armor trim texture locationsingredient
which is the id of the ingredient item used to apply the trim materialitem_model_index
which is a float which defines the item model override each armor item model should target to change their visuals for this materialincompatible_armor_material
which is an optional id of the armor material this trim material cannot be applied todescription
which is a text component used for displaying the material name of an armor trim when hovering an armor itemstackdescription
as wellexecute on
: origin
:We're now releasing the first snapshot for Minecraft 1.19.4. This release contains new accessibility functionality, new commands and plenty of bug fixes!
Happy mining!
fallback
fields to translate
chat componentstranslate
formats are no longer silently ignoredclone
command now supports cloning to and from different dimensionsstring
source is now available for the data modify
commandexecute
sub-commandsincreased_fire_burnout
biome tagonly_allows_snow_and_gold_rabbits
biome tag has been renamed to spawns_gold_rabbits
to match its behaviorspawns_white_rabbits
biome tagspawns_snow_foxes
biome tagsnow_golem_melts
biome tagclone
The clone command now supports specifying the source and target dimensions. New syntax:
clone [from <sourceDimension>] <begin> <end> [to <targetDimension>] <destination> ...
Parameters:
sourceDimension
: id of dimension to clone fromtargetDimension
: id of dimension to clone todata
New source available:
string <entity|block|storage> [path] [start] [end]
- reads a value as text, resulting in a string valueNew arguments:
start
: Index of first character to include at the start of the stringend
: Index of the first character to exclude at the end of the stringexecute
execute if|unless
New conditions available for the execute if|unless
sub-command:
execute if|unless loaded <pos>
- checks if the position given is fully loaded (in regard to both blocks and entities)execute if|unless dimension <dimension>
- checks if the execution is in a matching dimensionParameters:
pos
: Block position to checkdimension
: A dimension idexecute on
New execute
sub-command for selecting entities based on relation to the current executing entity:
execute on <relation>
Relations:
vehicle
- entity that the executing entity is ridingpassengers
- all entities directly riding the executing entity (no sub-passengers)controller
- entity that is controlling the executing entity (for example: first passenger in a boat)owner
- owner of the executing entity, if it is a tameable animal (like cats, wolves or parrots)leasher
- entity leading the executing entity with a leash (might be a leash knot in case of being attached to a fence)target
- attack target for the executing entityattacker
- last entity that damaged the executing entity in the previous 5 secondsIf the relation is not applicable to the executing entity or there are no entities matching it, selector returns zero elements.
title
title times
are now time durations and work with t
, s
and d
suffixesweather
duration
parameter is now a time duration in ticks and works with t
, s
and d
suffixess
suffix to pre-existing commandsride
New command to allow entities to start or stop riding other entities
Syntax:
ride <target> mount <vehicle>
vehicle
is a playertarget
is already riding a vehicletarget
and vehicle
are the same entityvehicle
is already a passenger (direct or indirect) of target
ride <target> dismount
target
from any vehicle it is ridingtarget
is not riding anythingcommandModificationBlockLimit
, controlling the maximum number of blocks changed in one execution of clone
, fill
and fillbiome
Added an optional fallback
field to translate
text components.
fallback
is missing, the old behavior (i.e. using the key itself as the translation) is preservedWe're now releasing 1.19.3 for Minecraft: Java Edition. This release gives the Vex a brand new look as well as containing technical improvements and bug fixes.
The ordering of tabs and the contents in the Creative Inventory have been tweaked to make the experience of finding relevant blocks and items easier.
ON
Player Reports can now be kept temporarily as a draft while connected to a server.
category
to determine placementfeatures
is added, containing enabled feature flags in list named enabled
server.properties
to allow initial selection of packs (works only during world creation)initial-enabled-packs
- comma-separated list of packs to be enabled (feature packs need to be explicitly enabled)initial-disabled-packs
- comma-separated list of packs to not auto-enableaxolotl
, boat
, fox
, mushroom
, painting
, rabbit
, horse
, llama
, villager
, parrot
, tropical_fish
fillbiome
execute if|unless biome
publish
commandfillbiome
Changes biome entries for an area. Note that biomes are not stored per-block, so affected positions may not match input precisely.
Syntax:
fillbiome <from> <to> <biome> [replace <filter>]
Parameters:
from
: One corner of the area to fillto
: The other corner of the area to fillbiome
: The biome to setfilter
: A biome or biome tag to replaceexecute
Execute commands can now be conditional on biomes.
Syntax:
execute if|unless biome <pos> <biome>
publish
The publish
command has new arguments to enable commands and set the default gamemode.
Syntax:
publish [allowCommands] [gamemode] [port]
This release includes the WorldUnloaded event, a required event, as well as several opt-in events. Diagnostic tracking is a tool that helps us understand what you like about Minecraft, which allows us to make those things better.
The reason that WorldUnloaded, along with WorldLoaded, is a required event is that the information we’re looking at is, well, required. As a part of Xbox, we all need to follow a standard of practice, you can find a detailed description of it here. The parameters for what data we consider to be critical to our work are set by our team at Mojang Studios in alignment with Xbox.
What we want to find out is how fun you think Minecraft is. There are lots of ways to figure that out, like feedback, playtests, experience, and magic. We want to add data to that mix, which is where WorldLoaded and WorldUnloaded come in. WorldLoaded measures when you boot a session up, and WorldUnloaded measures when you shut it down. Together, they will measure how fun Minecraft is, using metrics such as playtime and the game modes that players choose to play. That’s it. All the data we collect, whether it’s required or opt-in, follows GDPR and CCPA best practices to keep your information safe.
The rest of the current telemetry events are opt-in, which means that you can choose whether or not you want to send us additional data. The only players that can’t opt-in are Microsoft child accounts, but everyone can still send in all of their feedback to feedback.minecraft.net.
Just like all the thoughts and comments we get from you on our feedback site, this is something that greatly helps us improve Minecraft. We want to make a game that you want to play, so we want to know what that game needs. Even if it’s more lava.
logs/telemetry
directoryUnderstanding how Minecraft is played allows us to focus game updates and improvements on the areas that are most relevant to players. The data that tells us this includes game mode, client or server modded status, and game version.
WorldLoaded & WorldUnloaded are two paired events that calculate how long the world session has lasted (in seconds and ticks). Data from WorldLoaded is sent when a world is launched, and data from WorldUnloaded is sent when a world is shut down (quitting to title, disconnecting from a server).
Knowing the overall performance profile of Minecraft helps us tune and optimize the game for a wide range of machine specifications and operating systems.
The periodic performance metrics includes data such as frame-rates, rendering performance, memory usage, operating system, and the modded status of the client and server.
Game version is included to help us compare the performance profile for new versions of Minecraft.
It’s important for us to understand how long it takes to join a world, and how that changes over time. For example, when we add new features or do larger technical changes, we need to see what impact that had on load times.
This event includes the total time in milliseconds for the world to load, whether this was a new world, as well as game version and platform details.
blockExplosionDropDecay
, mobExplosionDropDecay
and tntExplosionDropDecay
game rulesfalse
, all blocks drop loottrue
, blocks drop loot randomly depending on how far from the explosion centerfalse
for tnt, true for block and mobsnowAccumulationHeight
game rule1
0
makes no snow form at all8
or above lets snow form up to the level of a full blockwaterSourceConversion
and lavaSourceConversion
game rulestrue
, allows new sources of that fluid to formtrue
for water and false
for lavaglobalSoundEvents
game rule, controlling whether certain gameplay moments are heard by all players regardless of locationtrue
shaped
/shapeless
and various special crafting recipes:building
redstone
equipment
misc
(default)smelting
, blasting
, smoking
, campfire_cooking
food
blocks
misc
(default)textures/item
and textures/block
directories will no longer be automatically recognized and will fail to loadatlases
directory, that control which images are included in the atlasesatlases
is now present for resource packsblocks
- textures used by block and item modelsbanner_patterns
, beds
, chests
, shield_patterns
, shulker_boxes
, signs
- used to render some special-case modelsmob_effects
- textures used for effect icons in the UIpaintings
- textures used for paintingsparticles
- textures used for particles (referenced by the textures
field in files within the particles
directory)sources
sources
runs in during load, in order of definition, adding or removing new files to the texture list; to be later referenced by block models, particles, etcdirectory
- lists all files in a directory and its subdirectories, across all namespacessource
- directory in pack to be listed (relative to textures
directory)prefix
- string to be appended to the sprite name when loadedsingle
- adds a single fileresource
- location of a resource within the pack (relative to textures
directory, implied .png
extension)sprite
- sprite name (optional, defaults to resource
)filter
- removes sprites matching the given patternnamespace
, path
- patterns (regular expressions, regex) of ids to be removed (only works for entries already in the list)unstitch
- copies rectangular regions from other imagesresource
- location of a resource within the pack (relative to textures
directory, implied .png
extension)divisor_x
, divisor_y
- used for determining the units used by regionsregions
- list of regions to copy from the source imagesprite
- sprite namex
, y
- coordinates of the top-left corner of the regionwidth
, height
- size of the regionx
are transformed to real image coordinates via dividing by their divisor, and then multiplying by the real image sizeassets/test/textures/fancy/iridium.png
and source is {"type": "directory", "source": "fancy", "prefix": "custom/"}
, the texture will be available in models as test:custom/iridium
note_block_sound
fieldaxolotl
variant
- values: lucy
, wild
, gold
, cyan
, blue
boat
variant
- values: oak
, spruce
, birch
, jungle
, acacia
, dark_oak
, mangrove
, bamboo
fox
variant
- values: red
, snow
mooshroom
variant
- values: red
, brown
painting
variant
- values: see painting_variant
registryrabbit
variant
- values: brown
, white
, black
, white_splotched
, gold
, salt
, evil
horse
variant
- values: white
, creamy
, chestnut
, brown
, black
, gray
, dark_brown
llama
variant
- values: creamy
, white
, brown
, gray
villager
variant
- values: see villager_type
registryparrot
variant
- values: red_blue
, blue
, green
, yellow_blue
, gray
tropical_fish
variant
- values: kob
, sunstreak
, snooper
, dasher
, brinely
, spotty
, flopper
, stripey
, glitter
, blockfish
, betty
, clayfish
Camels are now available when Update 1.20 experimental features are enabled.
A new set of Bamboo wood blocks are now available when Update 1.20 experimental features are enabled.
A new, chiseled variation of the Bookshelf is now available when Update 1.20 experimental features are enabled.
Ever wanted to hang up your signs? Fetch a few chains, strip some logs, and now you can! Hanging signs are now available when Update 1.20 experimental features are enabled.
Around 200 bugs were fixed in this release. View the list on the issue tracker.
In order to secure the quality of the Minecraft 1.19.3 release, we have decided to fix a few more critical issues and to delay the release until tomorrow. To that end we are now releasing Minecraft 1.19.3 Release Candidate 3.
Happy mining!
We're now releasing the second (and hopefully last) release candidate for Minecraft 1.19.3, fixing a few critical bugs. If there are no major issues following this release candidate, no further changes will be done before the full release.
With this release candidate, we are reverting a behavior change for translation strings due to a prevalent but unsupported use case. Expect this behavior to be changed in the future to provide a supported alternative.
Happy mining!
We're now releasing pre-release 3 for Minecraft 1.19.3 with more bug fixes. Happy mining!
We're now releasing the first (and hopefully only) release candidate for Minecraft 1.19.3. If there are no major issues following this release candidate, no further changes will be done before the full release.
Happy mining!
We're now releasing 1.19.3 pre-release 2 which fixes a few bugs.
We’re now releasing the first pre-release for Minecraft 1.19.3. This pre-release fixes a few bugs, contains a few tweaks, and it has some technical changes.
If everything goes as expected, we aim to release this version on December 6th.
Happy mining!
axolotl
, boat
, fox
, mushroom
, painting
, rabbit
, horse
, llama
, villager
, parrot
, tropical_fish
fillbiome
command now supports a filtered modenote_block_sound
fieldaxolotl
variant
- values: lucy
, wild
, gold
, cyan
, blue
boat
variant
- values: oak
, spruce
, birch
, jungle
, acacia
, dark_oak
, mangrove
, bamboo
fox
variant
- values: red
, snow
mooshroom
variant
- values: red
, brown
painting
variant
- values: see painting_variant
registryrabbit
variant
- values: brown
, white
, black
, white_splotched
, gold
, salt
, evil
horse
variant
- values: white
, creamy
, chestnut
, brown
, black
, gray
, dark_brown
llama
variant
- values: creamy
, white
, brown
, gray
villager
variant
- values: see villager_type
registryparrot
variant
- values: red_blue
, blue
, green
, yellow_blue
, gray
tropical_fish
variant
- values: kob
, sunstreak
, snooper
, dasher
, brinely
, spotty
, flopper
, stripey
, glitter
, blockfish
, betty
, clayfish
fillbiome
commandNow supports a filtered form. New syntax:
fillbiome <from> <to> <biome> [replace <filter>]
New parameter:
filter
: A biome or biome tag to replaceWe are now releasing snapshot 22w46a for Minecraft 1.19.3 with playable mob sounds added as an experimental feature, improvements for telemetry data and several technical improvements.
Happy mining!
pack.mcmeta
are now including non-ASCII characters (encoded as UTF-8) directly instead of using escape sequencesThis release includes the WorldUnloaded event, a required event, as well as several opt-in events. Diagnostic tracking is a tool that helps us understand what you like about Minecraft, which allows us to make those things better.
The reason that WorldUnloaded, along with WorldLoaded, is a required event is that the information we’re looking at is, well, required. As a part of Xbox, we all need to follow a standard of practice, you can find a detailed description of it here. The parameters for what data we consider to be critical to our work are set by our team at Mojang Studios in alignment with Xbox.
What we want to find out is how fun you think Minecraft is. There are lots of ways to figure that out, like feedback, playtests, experience, and magic. We want to add data to that mix, which is where WorldLoaded and WorldUnloaded come in. WorldLoaded measures when you boot a session up, and WorldUnloaded measures when you shut it down. Together, they will measure how fun Minecraft is, using metrics such as playtime and the game modes that players choose to play. That’s it. All the data we collect, whether it’s required or opt-in, follows GDPR and CCPA best practices to keep your information safe.
The rest of the current telemetry events are opt-in, which means that you can choose whether or not you want to send us additional data. The only players that can’t opt-in are Microsoft child accounts, but everyone can still send in all of their feedback to feedback.minecraft.net.
Just like all the thoughts and comments we get from you on our feedback site, this is something that greatly helps us improve Minecraft. We want to make a game that you want to play, so we want to know what that game needs. Even if it’s more lava.
logs/telemetry
directoryUnderstanding how Minecraft is played allows us to focus game updates and improvements on the areas that are most relevant to players. The data that tells us this includes game mode, client or server modded status, and game version.
WorldLoaded & WorldUnloaded are two paired events that calculate how long the world session has lasted (in seconds and ticks). Data from WorldLoaded is sent when a world is launched, and data from WorldUnloaded is sent when a world is shut down (quitting to title, disconnecting from a server).
Knowing the overall performance profile of Minecraft helps us tune and optimize the game for a wide range of machine specifications and operating systems.
The periodic performance metrics includes data such as frame-rates, rendering performance, memory usage, operating system, and the modded status of the client and server.
Game version is included to help us compare the performance profile for new versions of Minecraft.
It’s important for us to understand how long it takes to join a world, and how that changes over time. For example, when we add new features or do larger technical changes, we need to see what impact that had on load times.
This event includes the total time in milliseconds for the world to load, whether this was a new world, as well as game version and platform details.
textures/item
and textures/block
directories will no longer be automatically recognized and will fail to loadatlases
directory, that control which images are included in the atlasesatlases
is now present for resource packsblocks
- textures used by block and item modelsbanner_patterns
, beds
, chests
, shield_patterns
, shulker_boxes
, signs
- used to render some special-case modelsmob_effects
- textures used for effect icons in the UIpaintings
- textures used for paintingsparticles
- textures used for particles (referenced by the textures
field in files within the particles
directory)sources
sources
runs in during load, in order of definition, adding or removing new files to the texture list; to be later referenced by block models, particles, etcdirectory
- lists all files in a directory and its subdirectories, across all namespacessource
- directory in pack to be listed (relative to textures
directory)prefix
- string to be appended to the sprite name when loadedsingle
- adds a single fileresource
- location of a resource within the pack (relative to textures
directory, implied .png
extension)sprite
- sprite name (optional, defaults to resource
)filter
- removes sprites matching the given patternnamespace
, path
- patterns (regular expressions, regex) of ids to be removed (only works for entries already in the list)unstitch
- copies rectangular regions from other imagesresource
- location of a resource within the pack (relative to textures
directory, implied .png
extension)divisor_x
, divisor_y
- used for determining the units used by regionsregions
- list of regions to copy from the source imagesprite
- sprite namex
, y
- coordinates of the top-left corner of the regionwidth
, height
- size of the regionx
are transformed to real image coordinates via dividing by their divisor, and then multiplying by the real image sizeassets/test/textures/fancy/iridium.png
and source is {"type": "directory", "source": "fancy", "prefix": "custom/"}
, the texture will be available in models as test:custom/iridium
fillbiome
execute if|unless biome
fillbiome
Changes biome entries for an area. Note that biomes are not stored per-block, so affected positions may not match input precisely.
Syntax:
fillbiome <from> <to> <biome>
Parameters:
from
: One corner of the area to fillto
: The other corner of the area to fillbiome
: The biome to setexecute
Execute commands can now be conditional on biomes.
Syntax:
execute if|unless biome <pos> <biome>
Minecraft Snapshot 22w45a is now out and about. This snapshot introduces the new default skins for offline players, bamboo blocks, and a visual refresh for the Vex. On top of that, there’s some additional creative inventory tweaks.
Happy mining!
ON
/publish
command has new arguments to enable commands and set the default gamemode/publish [allowCommands] [gamemode] [port]
Another Wednesday, another snapshot. This week's snapshot introduces a few new game rules and a few gameplay changes which include another round of inventory tweaks. As usual, there are a few bugfixes as well.
Happy Mining!
A (hopefully) final round of changes have been made to the Creative Tab orderings to address feedback:
blockExplosionDropDecay
, mobExplosionDropDecay
and tntExplosionDropDecay
game rulesfalse
, all blocks drop loottrue
, blocks drop loot randomly depending on how far from the explosion centerfalse
for TNT, true
for block and mobsnowAccumulationHeight
game rule1
0
makes no Snow form at all8
or above lets Snow form up to the level of a full blockwaterSourceConversion
and lavaSourceConversion
game rulestrue
, allows new sources of that fluid to formtrue
for Water and false
for lavaglobalSoundEvents
game rule, controlling whether certain gameplay moments are heard by all players regardless of locationtrue
Did you know that Camels walk by lifting both legs on one side at the same time? Yes, in snapshot 22w43a, Minecraft knows too! This snapshot also contains another round of tweaks to the Creative Inventory.
Happy Mining!
A lot of feedback has come pouring in as a result of the creative inventory ordering changes.
Player Reports can now be kept temporarily as a draft while connected to a server.
Hello there! We are now releasing the first snapshot for 1.19.3! You might have been thinking that this snapshot would be for 1.20, but times are changing. Going forward, we are taking a bit of a different approach to how we release minor and major versions for Minecraft: Java Edition. Essentially, we will be releasing minor versions more often. You can find out more details about this in a post over here.
In this snapshot we’re introducing feature toggle, which you might have seen in a post we released yesterday. This means we can add a toggle for Update 1.20 with features such as the Camel, without committing to releasing them in version 1.19.3. This lets us have experimental features available for testing, while still being able to release updates with new functionality, changes, and improvements, without having to remove those features from the game first.
In this snapshot you’ll be seeing the features that we talked about during Minecraft Live as experimental features, a few changes to chat, some technical changes and many bug fixes.
Camels are now available when Update 1.20 experimental features are enabled.
A new set of Bamboo wood blocks are now available when Update 1.20 experimental features are enabled.
A new, chiseled variation of the Bookshelf is now available when Update 1.20 experimental features are enabled.
Ever wanted to hang up your signs? Fetch a few chains, strip some logs, and now you can! Hanging signs are now available when Update 1.20 experimental features are enabled.
The ordering of tabs and the contents in the Creative Inventory have been tweaked to make the experience of finding relevant blocks and items easier.
category
to determine placementfeatures
is added, containing enabled feature flags in list named enabled
server.properties
to allow initial selection of packs (works only during world creation)initial-enabled-packs
- comma-separated list of packs to be enabled (feature packs need to be explicitly enabled)initial-disabled-packs
- comma-separated list of packs to not auto-enableshaped
/shapeless
and various special crafting recipes:building
redstone
equipment
misc
(default)smelting
, blasting
, smoking
, campfire_cooking
food
blocks
misc
(default)We're now releasing 1.19.2 for Minecraft: Java Edition. This release fixes a critical issue related to server connectivity with secure chat.
This update can also be found on minecraft.net.
If you find any bugs, please report them on the official Minecraft Issue Tracker. You can also leave feedback on the Feedback site.
To install the release, open up the Minecraft Launcher and click play! Make sure your Launcher is set to the "Latest Release" option.
Cross-platform server jar:
We're now releasing the first (and hopefully only) release candidate for Minecraft 1.19.2. This release candidate fixes a critical issue related to server connectivity with secure chat. If there are no major issues following this release, no further changes will be done before the full release.
Edit: We've now released 1.19.2 release candidate 2
Report bugs here: Minecraft issue tracker!
Want to give feedback?
We're now releasing the first (and hopefully only) release candidate for Minecraft 1.19.2. This release candidate fixes a critical issue related to server connectivity with secure chat. If there are no major issues following this release, no further changes will be done before the full release.
Report bugs here: Minecraft issue tracker!
Want to give feedback?
We're now releasing 1.19.1 for Minecraft: Java Edition. This release adds Allay duplication and new Player Safety functionality.
/say
It is now possible to report a player for sending abusive messages in the game chat. A reporter is required to select the individual chat messages that contain the objectionable content, as well as the category of the report, this is to provide the best context for our moderation team to take action. This is accessed via the social interactions screen.
For more information, see this article about Player Reporting and our Reporting FAQ.
chat_types
registry are now only used for player chat, and not system messagessystem
and game_info
chat types have been removedchat
and narration
decorationsmsg_command
chat type has been split apart into msg_command_incoming
and msg_command_outgoing
team_msg_command
chat type has been split apart into team_msg_command_incoming
and team_msg_command_outgoing
team_name
chat type parameter has been renamed to target
msg_command_outgoing
run_command
click event for text components no longer supports sending chat messages directly/
-prefixed/say
that produce a signed player chat message are not allowed/tellraw
should be used insteadjukebox_play
jukebox_stop_play
enforce-secure-profile
is now defaulted to true
for dedicated servers[Not Secure]
tagWe are now releasing Release Candidate 3 for Minecraft 1.19.1. We still expect to release the full version of 1.19.1 this week.
We are now releasing Release Candidate 2 for Minecraft 1.19.1. If no critical issues are found, we expect to release the full version next week.
We are now releasing pre-release 6 for Minecraft 1.19.1 with some small tweaks to sculk sensors and catalysts as well as bug fixes and improvements to the chat signing system.
run_command
click event for text components no longer supports any commands that send chat messages/tellraw
should be used insteadWe are now releasing pre-release 5 for Minecraft 1.19.1. This pre-release includes the remaining fixes for a known exploit regarding player report context. It also fixes some other crashes and bugs.
/say
team_msg_command
chat type has been split apart into team_msg_command_incoming
and team_msg_command_outgoing
New snapshot! We're now heading towards 1.19.1, which will add Allay duplication, the ability to report chat, and, of course, fix a few bugs.
On the topic of chat reporting, we want everyone to feel safe and welcome in Minecraft, which is why we have community guidelines in place. If you feel unsafe, uncomfortable, or concerned that someone is breaking our Community Guidelines or the Xbox Community Standards, you can soon report this in-game. Of course, it will also be possible to report incidents over at the Report a Concern page.
We are looking for feedback regarding the Chat Reporting feature. For now, any reports made during the testing period may not be actioned on.
Enjoy!
It is now possible to report a player for sending abusive messages in the game chat.
A reporter is required to select the individual chat messages that contain the objectionable content, as well as the category of the report, this is to provide the best context for our moderation team to take action.
Accessed via the social interactions screen (default keybind is P).
This pre-release fixes an exploit found regarding contextual chat evidence when creating a Player Report.
[Not Secure]
tagHi everyone,
Before we jump into today's pre-release, we would like to take a moment and dedicate some thoughts to a person who over the years has made an incredible impact on the Minecraft community and touched the lives of many. Technoblade became synonymous with a source of good – a positive force that time and time again made many, many people happy and someone we are proud to have as part of our giant family.
Minecraft is its community, which is why it should come as no surprise that so many of us mourn the loss of him, with tributes and love pouring in from across the world.
On behalf of the Java Team – thank you Technoblade for the memories, for all the fun and the laughter. You will be dearly missed. Our thoughts are with your family and friends.
Regarding 1.19.1: We still have a number of fixes in the pipeline, set for another pre-release in the near future. After that, once everything is tested and verified, we'll be aiming for a release candidate.
msg_command
chat type has been split apart into msg_command_incoming
and msg_command_outgoing
team_name
chat type parameter has been renamed to target
msg_command_outgoing
Hey everyone! As a few of you might have noticed, we’ve made the decision to postpone the release of 1.19.1 and we're now going back into pre-release mode. This is in order to address a few of our more noticeable issues. We've yet to fully decide on a new release date, but it won't be too far in the future.
We’ve received a lot of feedback regarding the Player Chat Report feature, which is something we address specifically in a newly released post here, as well as in our FAQ which hopefully answers all your questions!
We've added the ability to see the signing status of chat messages – this is so you can easily tell when a server is tampering with, or removing the signing security of, their players' messages.
chat_types
registry are now only used for player chat, and not system messagessystem
and game_info
chat types have been removedchat
and narration
decorationsenforce-secure-profile
is now defaulted to true
for dedicated serversWe're now releasing the first (and hopefully only) release candidate for Minecraft 1.19.1. We have also now created a help article on chat reporting, available here.
If there are no major issues following this release, no further changes will be done before the full release on Tuesday.
Happy mining!
run_command
click event for text components no longer supports sending chat messages directly/say
should be used insteadThe first pre-release for 1.19.1 is now available. This release contains a few bugfixes, an increased cooldown for Allay duplication, and it also contains a new UI if you have been banned for violating the Minecraft Community Standards. On the topic of community standards and the recent introduction of the chat reporting feature, we’re working on creating a help article that aims to add some context surrounding the functionality. All of this said, if everything goes as planned, we plan to release the update next Tuesday on June 28th.
Oh, hello. I didn’t see you there! I was too busy inspecting these mangrove tree roots. They’re all tangled up! What do you mean they’re supposed to be? Hey, that’s pretty neat.
While we’re on the topic – have you had a chance to check out all the other spiffy stuff that we added to Minecraft today? Because The Wild Update has officially launched and now the Overworld is full of frogs, allays, wardens (shudder), mud, boats with chests, new music, and much, much more! You can check out the list below for all the details, I’m too busy making heart eyes at these cute propagules to go through them all.
Muddy! Murky! Magnificent! Welcome to Minecraft's newest biome - the Mangrove Swamp
Introducing a new type of water-adapted trees that spawn propped up on roots
Added a new type of wood: Mangrove!
A Frog in a Mangrove Swamp.
Steve next to a house built out of blocks from the Mangrove Swamp.
A Mangrove Swamp biome in Minecraft.
A view from being underwater in a Mangrove Swamp biome.
Dig into the depths far underground to uncover the darkest biome in Minecraft - the Deep Dark.
Wander the halls of these long-abandoned structures in the Deep Dark depths to uncover some relics long forgotten.
A new music disc has been added to the game
A new Recovery Compass can be crafted with Echo Shards, another new item which can only be found in Ancient City Chests
Imbue your leggings with this shiny new enchantment to move as fast while crouching as you would normally walk!
The rattling tendrils of the Sculk Sensors had to come from somewhere, right? Introducing sculk, a new family of blocks that dwells in the Deep Dark. they find a valid substrate they can feed off of
The horror of the Deep Dark! A creature with no eyes, roughly resembling the Sculk that can be found throughout the Deep Dark, the Warden is an unstoppable force of nature that inhabits this biome. Wardens are powerful creatures, and it is often better to sneak around one that has emerged instead of taking it head on - you have been warned.
item_interact_start
and item_interact_finish
vibrations are ignored if sneakingAn Ancient City in the Deep Dark.
A Warding shooting its Sonic Boom attack.
A Warden in the Deep Dark.
A variety of sculk blocks.
Some randomized events are now more predictable and no longer have a possibility of extreme behaviors:
follow_range
component attribute for mobsAlex in a boat with a chest.
An Allay holding a Goat Horn.
Alex holding a Goat Horn.
kill_mob_near_sculk_catalyst
advancement triggerthrown_item_picked_up_by_player
advancement triggerallay_drop_item_on_block
advancement triggeravoid_vibration
advancement triggerlocation
from triggers location
, slept_in_bed
, hero_of_the_village
and voluntary_exile
- it was handled exactly the same as player.location
player
, fishing_hook
, lightning_bolt
and catType
) have been collapsed to the type_specific
fieldplacefeature
commandplace
commandlocate
command is now moved to locate structure
, locatebiome
is moved to locate biome
locate poi <type: point_of_interest_type>
set_instrument
LWJGL
library has been updated to version 3.3.1banner_pattern/no_item_required
for no pattern item and banner_pattern/pattern_item/*
for specific banner pattern items)CatType
fields on enitites with type minecraft:cat
have been replaced with variant
, with numeric values being replaced with string ids (so, for example, 5
becomes minecraft:calico
)Id
in the mob effect structure (for example, in the ActiveEffects
list on entities) has been changed from byte
to int
minecraft:darkness
mob effectsonic_explosion
particlemax-chained-neighbor-updates
to limit the amount of consecutive neighbor updates before skipping additional onesenable-status=false
to set an icon and MOTD for players that successfully connectallay_drop_item_on_block
player
- a predicate for the player who gave the Allay the item to collectlocation
- a predicate for the block that the item was dropped onitem
- a predicate for the item that was droppedavoid_vibration
player
- a player for which this trigger runskill_mob_near_sculk_catalyst
player
- a predicate for the player killing the entityentity
- a predicate for the entity that was killedkilling_blow
- a predicate for how the entity was killedthrown_item_picked_up_by_player
player
- a predicate for the player picking up the itementity
- a predicate for the entity that threw the itemitem
- a predicate for the itemblending_data.old_noise
, now existence of blending_data
in chunk data determines if a chunk is considered oldblending_data.min_section
and blending_data.max_section
that determines which section data that will be used for blendingpreviews-chat=true
in server.properties
/say
and /msg
chat_type
registrychat.type.text
or %s says: "%s"
place
New command that replaces placefeature
and can place features, jigsaws, structures, and templates at a given location. Syntax:
place feature <feature> [pos]
place jigsaw <pool> <start> <depth> [pos]
place structure <structure> [pos]
place template <template> [pos] [rotation] [mirror] [integrity] [seed]
Parameters:
place feature
works like placefeature
used to workplace jigsaw
works like using the generate button in the UI of a Jigsaw Blockplace template
works like using the load button in the UI of a Structure Blockplace structure
generates a full structure, matching how structures generate during world generationfeature
: The namespaced id of a configured feature to try to placestructure
: The namespaced id of a structure to try to generatetemplate
: The namespaced id of a template ("structure block file") to load and placepool
: The namespaced id of a template pool to start generatingstart
: The namespaced id name of a jigsaw to use as the starting anchordepth
: The maximum number of jigsaw connections to traverse during placementpos
: The position to use as the origin for the generation (if omitted, ~ ~ ~
is used)rotation
: The rotation to apply (if omitted, none
is used)mirror
: The mirroring to apply (if omitted, none
is used)integrity
: The structure integrity value between 0 and 1seed
: The seed to use for the randomized degradation when integrity is less than 1teleport
with a vibration frequency of 5note_block_play
with a vibration frequency of 6instrument_play
with a vibration frequency of 15The following events have been collapsed into block_activate
and block_deactivate
:
block_press
block_unpress
block_switch
block_unswitch
Other miscellaneous changes to game events:
ring_bell
has been removed and replaced with block_change
shulker_open
and shulker_close
have been removed in favour of using container_open
and container_close
fishing_rod_cast
and fishing_rod_reel_in
have been renamed to item_interact_start
and item_interact_finish
item_interact_start
is not detectable as a vibration to allow more specific actions be detected, like drink
or eat
, but item_interact_finish
isentity_interact
should be dispatched more often when interacting with various mobsdampens_vibrations
block tag that that includes all Wool and Wool Carpet blocks, to indicate blocks that will not trigger when placed, broken, or stepped onoccludes_vibration_signals
to dampens_vibrations
item tag as wellSome game events have been renamed, with some of those changes to make them more gramatically consistent:
drinking_finish
-> drink
entity_killed
-> entity_die
entity_damaged
-> entity_damage
elytra_free_fall
-> elytra_glide
mob_interact
-> entity_interact
ravager_roar
-> entity_roar
wolf_shaking
-> entity_shake
doWardenSpawning
game ruleset_instrument
Sets the item tags needed for instrument items to a randomly selected instrument from a tag Parameters:
options
- a tag reference specifying the instrument options to randomly pick from/say
, /msg
, /teammsg
, and /me
commands are all also signedenforce-secure-profile=true
in server.properties
false
, allowing players to connect without a Mojang-signed public keychat_type
registry, or with server resource packs as beforeenforce-secure-profile
option enabledfilter
section in pack.mcmeta
block
, which is a list of patterns (regular expressions) for namespaces and pathsfilter
, the section will match any pattern inside block
, and it will then be filtered out (i.e. treated as if it wasn't present in the first place)filter
section does not apply to a pack containing it - only to packs loaded before itnamespace
and path
can be omittedpack.mcmeta
after the vanilla pack will hide all the recipes and advancements defined by the vanilla pack"filter": {
"block": [
{
"namespace": "minecraft",
"path": "recipes/.*"
},
{
"namespace": "minecraft",
"path": "advancements/.*"
}
]
}
painting_variant/placeable
tagearth
, wind
, fire
, water
)unemployed
and nitwit
point_of_interest_type
spoint_of_interest_type/acquirable_job_site
for all job sites seeked by villagers with none
professionpoint_of_interest_type/village
for PoI that are part of villagepoint_of_interest_type/bee_home
for all PoI targeted by beesfeature
field in location predicates is now called structure
player
, fishing_hook
, lightning_bolt
and catType
fields have been replaced with type_specific
type_specific
has field type
(one of player
, fishing_hook
, lightning_bolt
or cat
) and same fields as removed fieldscatType
has been wrapped to match new format and now uses new cat variant names instead of texture names:type_specific
options:frog
has variant
field matching Frog variant (minecraft:warm
, minecraft:temperate
or minecraft:cold
)slime
applies for Slimes and Magma Cubes, has size
field matching Slime size (smallest is 1
)catType
ExampleBefore:
"catType": "minecraft:textures/entity/cat/british_shorthair.png"
After:
"type_specific": {
"type": "cat",
"variant": "minecraft:british"
}
type_specific
ExampleBefore:
"lightning_bolt": {
"blocks_set_on_fire": 0
}
After:
"type_specific": {
"type": "lightning",
"blocks_set_on_fire": 0
}
space
is added to allow creation of space-like glyphsadvances
which is a map of codepoint to glyph advance (width)worldgen/world_preset
and worldgen/flat_level_generator_preset
have been added to configure data-driven presets (like "Amplified" or "Single Biome")normal
and alternative
) to control which values show on the "World Type" button in the "Create World" screenvisible
) for flat world presets to control the order that elements are displayed in the "Configure Flat World" screenlevel-type
in server.properties
1.19 release candidate 2 is now available which fixes a crash.
We're now releasing the first (and hopefully only) release candidate for The Wild Update. If there are no major issues following this release, no further changes will be done before the full release.
Happy mining!
The fifth pre-release for 1.19 is now available with more bug fixes.
The fourth pre-release for 1.19 is now available with a few bugfixes.
In case you missed it, we just announced the release date for the Wild Update (June 7th). You can read more about that here.
It is now time for pre-release 3 for Minecraft 1.19, which will be our last pre-release for this week. In this pre-release we've tweaked the sonic boom attack and fixed more bugs.
Enjoy!
item_interact_start
is no longer detectable as a vibration to allow more specific actions be detected, like drink
or eat
, but item_interact_finish
still isA recent change made it possible for more types of mobs to spawn inside Nether Portals, which caused them to instantly change dimensions after spawning. We will not be making any further changes to this before the release of 1.19, but our intent for the future is to prevent most mobs from spawning in Nether Portals and the ones that do will not immediately travel through the portal. Expect to see these changes in a coming version.
generic equip
sound when equipping blocks in the head slotteleport
with a vibration frequency of 5Presenting the first pre-release of 1.19: The Wild Update!
From now on, you should mostly see bugs being fixed. In addition to that, pre-releases don't follow the regular snapshot cadence of releasing on Wednesdays, so keep an eye out for the next pre-release ;)
As always, a big thank you to the community for your feedback, bugs reported, and awesome ideas throughout the snapshot series. Let the pre-releases commence!
place template
/say
and /msg
test-rainbow-chat
has been removed from server.properties
note_block_play
with a vibration frequency of 6instrument_play
with a vibration frequency of 15Thursday snapshot! Apart from some bugfixes and some changes to fancy tags and commands, we're introducing "chat preview" as a way to cryptographically sign chat messages that have been dynamically styled by servers. And for this snapshot only, we've left in our testing option test-rainbow-chat
in server.properties
, which can be set to true together with the new previews-chat
option for testing. If this is something that interests you, and especially if you run a server, we would love your feedback on it.
Enjoy!
previews-chat=true
in server.properties
place
-commandlocate
command moved to locate structure
, locatebiome
moved to locate biome
locate poi <type: point_of_interest_type>
enable-status=false
to set an icon and MOTD for players that successfully connectThe place
-command can now also place templates at a given location. Syntax:
place template <template> [pos] [rotation] [mirror] [integrity] [seed]
place template
works like using the load button in the UI for a structure blockParameters:
template
: The namespaced id of a template ("structure block file") to load and placerotation
: The rotation to apply (if omitted, none
is used)mirror
: The mirroring to apply (if omitted, none
is used)integrity
: The structure integrity value between 0 and 1seed
: The seed to use for the randomized degradation when integrity is less than 1unemployed
and nitwit
point_of_interest_type
spoint_of_interest_type/acquirable_job_site
for all job sites seeked by Villagers with none
professionpoint_of_interest_type/village
for PoI that are part of Villagepoint_of_interest_type/bee_home
for all PoI targeted by BeesAnother snapshot is now available for Minecraft: Java Edition. This snapshot brings a few gameplay changes and some technical tidbits, such as the place command and cryptographically signed chat commands.
Enjoy!
banner_pattern/no_item_required
for no pattern item and banner_pattern/pattern_item/*
for specific banner pattern items)placefeature
commandplace
commandset_goat_horn_sound
set_instrument
/say
, /msg
, /teammsg
, and /me
commands are now all also cryptographically signedchat_type
registrychat.type.text
or %s says: "%s"
New command that replaces placefeature
and can place features, jigsaws and structures at a given location. Syntax:
place feature <feature> [pos]
place jigsaw <pool> <start> <depth> [pos]
place structure <structure> [pos]
Parameters:
feature
: The namespaced id of a feature to try to placestructure
: The namespaced id of a structure to try to generatepool
: The namespaced id of a template pool to start generatingstart
: The namespaced id name of a jigsaw to use as the starting anchordepth
: The maximum number of jigsaw connections to traverse during placementpos
: The position to use as the origin for the generation (if omitted, ~ ~ ~
is used)set_instrument
Sets item tags needed for instrument items to a random value selected from a tag.
Parameters:
options
- a tag reference specifying the instrument options to randomly pick fromPrepare to drop some sick bleats in the latest Minecraft: Java Edition snapshot! We're bringing in the sweet sounds of the goat horn. There are also some changes to the warden and the allay.
If the technical aspects of chatting is where it's at for you, make sure to check out the changes to chat signing.
Enjoy!
dampenable_vibrations
game event tagThis is the first step in a process to provide more security and player safety features for in-game chat. We'd love to hear your thoughts, but keep in mind that many features such as server-driven styling of chat messages are still missing.
enforce-secure-profile=true
in server.properties
false
, allowing players to connect without a Mojang-signed public keychat.type.text
We've now released snapshot 22w16b to fix a crash.
A chance to re-live the good old times appears in snapshot 22w16a with the ability to de-fragment a Disc - a new Music Disc, to be precise! This snapshot also comes with even more new music, tweaks to the Allay and to top it off it makes some random gameplay events slightly more predictable.
Enjoy!
A new music disc has been added to the game.
Some randomized events are now more predictable and no longer have a possibility of extreme behaviors.
follow_range
component attribute for mobsLWJGL
library has been updated to version 3.3.1painting_variant/placeable
tagearth
, wind
, fire
, water
)Let me tell you a little story about hubris. Well, not so much a story as a lament. Because some of you have been thinking that the warden was a little too easy. I won’t name names, but I know you’re out there. Why else would we be adding ranged attacks for this already terrifying mob? Was the sniffing not enough? When will it end? Not today, apparently. Enjoy a new terrifying warden along with more advancements and technical changes.
item_delivered_to_player
advancement triggerthrown_item_picked_up_by_player
advancement trigger- Added avoid_vibration
advancement trigger
sonic_explosion
particlethrown_item_picked_up_by_player
player
- a predicate for the player picking up the itementity
- a predicate for the entity that threw the itemitem
- a predicate for the itemavoid_vibration
player
- a player for which this trigger runsignore_vibrations_on_occluding_block
to dampenable_vibrations
dampens_vibrations
to indicate blocks which will not trigger vibrations when placed, broken or stepped onoccludes_vibration_signals
to dampens_vibrations
item tag as wellMangrove trees! Warm frogs! Mud blocks! More mangrove trees! Today, we’re happy to bring you the most mud-tastic Java snapshot to date!
Sure, it might be our only mud-tastic snapshot to date – but the important thing is that our new biome, mangrove swamp, now is available for testing, along with nitty-gritty features like the recovery compass and other, more technical tidbits.
Enjoy!
Introducing a new type of water-adapted tree that spawns propped up on roots
Muddy! Murky! Magnificent! Welcome to the newest biome - the Mangrove Swamp
A new Recovery Compass can be crafted with Echo Shards which can only be found and are unique to Ancient City chests
CatType
fields on enitites with type minecraft:cat
have been replaced with variant
, with numeric values being replaced with string ids (so, for example, 5
becomes minecraft:calico
)player
, fishing_hook
, lightning_bolt
and catType
) have been collapsed to type_specific
fielditem_delivered_to_player
advancement triggerallay_drop_item_on_block
advancement triggerplayer
, fishing_hook
, lightning_bolt
and catType
fields have been replaced with type_specific
type_specific
has field type
(one of player
, fishing_hook
, lightning_bolt
or cat
) and same fields as removed fields "lightning_bolt": {
"blocks_set_on_fire": 0
}
"type_specific": {
"type": "lightning",
"blocks_set_on_fire": 0
}
catType
has been wrapped to match new format and now uses new cat variant names instead of texture names: "catType": "minecraft:textures/entity/cat/british_shorthair.png"
"type_specific": {
"type": "cat",
"variant": "minecraft:british"
}
type_specific
options:frog
has variant
field matching frog variant (minecraft:warm
, minecraft:temperate
or minecraft:cold
)slime
applies for slimes and magma creams, has size
field matching slime size (smallest is 1
)location
from triggers location
, slept_in_bed
, hero_of_the_village
and voluntary_exile
- it was handled exactly the same as player.location
item_delivered_to_player
player
- a player for which this trigger runsallay_drop_item_on_block
player
- a player for which this trigger runslocation
- a predicate for the block that the item was dropped onitem
- a predicate for the item that was droppedAllay, the mob that nobody is really sure how to pronounce, is now entering the latest Minecraft: Java Edition snapshot. Along with our new shiny blue friend, we've added the ancient cities, which have seen some pretty drastic changes since the experimental snapshot a few weeks ago, so make sure you check them out.
Happy mining!
Wander the halls of these long-abandoned structures in the Deep Dark depths to uncover some relics long forgotten.
kill_mob_near_sculk_catalyst
advancement triggerkill_mob_near_sculk_catalyst
player
- a player for which this trigger runsentity
- a predicate for the entity that was killedkilling_blow
- a predicate for how the entity was killedcan_summon
blockstate to the Sculk Shrieker that determines whether a Shrieker can summon a Warden or notcan_summon
set to truecan_summon
is set to falseSome game events have been renamed, with some of those changes to make them more gramatically consistent:
drinking_finish
-> drink
entity_killed
-> entity_die
entity_damaged
-> entity_damage
elytra_free_fall
-> elytra_glide
mob_interact
-> entity_interact
ravager_roar
-> entity_roar
wolf_shaking
-> entity_shake
The following events have been collapsed into block_activate
and block_deactivate
:
block_press
block_unpress
block_switch
block_unswitch
Other miscellaneous changes to game events:
ring_bell
has been removed and replaced with block_change
shulker_open
and shulker_close
have been removed in favour of using container_open
and container_close
fishing_rod_cast
and fishing_rod_reel_in
have been renamed to item_interact_start
and item_interact_finish
ignore_vibrations_on_occluding_block
game event tag with subsequent logicentity_interact
should be dispatched more often when interacting with various mobsWaaaaaaaaaaah! It's Wal... wait that's not it. It's the warden! The spooky, unfriendly (maybe it just wants a hug?) mob is making its way into our latest snapshot.
Additionally, you'll be seeing some functionality for the sculk shriekers and some fancy new boats (they have chests).
Enjoy!
Added Warden mob
The horror of the Deep Dark! A creature with no eyes, roughly resembling the Sculk that can be found throughout the Deep Dark, the Warden is an unstoppable force of nature that inhabits this biome
Imbue your leggings with this shiny new enchantment to move as fast while crouching as you would normally walk!
Minecraft: Java Edition is jumping on the Wild Update train! The first snapshot for 1.19 is now available. It contains frogs, the Deep Dark, and a bunch of new blocks. We've also entered the era of 3D directional audio. Keeping up with the times!
Happy mining!
Dig into the depths far underground to uncover the darkest biome in Minecraft - the Deep Dark.
Added a new type of wood: Mangrove! Mangrove biome + mangrove trees are coming in a later snapshot.
The rattling tendrils of the Sculk Sensors had to come from somewhere, right? Introducing Sculk, a new family of blocks that dwells in the Deep Dark.
they find a valid substrate they can feed of off - The charge from souls in the Sculk Blocks and Sculk Veins will eventually decay, but it will decay much, much slower in the close vicinity of the Sculk Catalyst, and much faster away from its host - If the charge is dropped outside the range of the Catalyst, it has a chance of growing a Sculk Sensor
max-chained-neighbor-updates
to limit the amount of consecutive neighbor updates before skipping additional ones. Negative values remove the limit.blending_data.old_noise
, now existence of blending_data
in chunk data determines if a chunk is considered oldblending_data.min_section
and blending_data.max_section
that determines which sections will be used for data for blendingspace
is added to allow creation of space-like glyphsadvances
which is map of codepoint to glyph advance (width)filter
section in pack.mcmeta
.block
, which is a list of patterns (regular expressions) for namespaces and paths.filter
section matches any pattern inside block
, it will be filtered out (i.e. treated as if it wasn't present in the first place).filter
section does not apply to a pack containing it - only to packs loaded before it.namespace
and path
can be omited. Missing field matches every value.pack.mcmeta
after vanilla pack will hide all recipes and advancements defined by vanilla pack"filter": {
"block": [
{
"namespace": "minecraft",
"path": "recipes/.*"
},
{
"namespace": "minecraft",
"path": "advancements/.*"
}
]
}
worldgen/world_preset
and worldgen/flat_level_generator_preset
were added to data-drive presents (like "Amplified" or "Single Biome")normal
and alternative
) to control values show on "World Type" button in "Create World" screenvisible
) to control order of elements displayed in "Configure Flat World" screenlevel-type
in server.properties
feature
field in location predicates is now called structure
We're now releasing 1.18.2 for Minecraft: Java Edition. This release adds universal tags and the placefeature command. It also introduces the possibility for experimental data packs to customize cave generation and to add new custom structures to worlds.
Additionally, this version contains compliance updates for South Korean players.
Enjoy!
placefeature
locate
command now uses a namespaced id parameterlocate
command parameter is now a configured structure rather than a structure type. For instance, you can now use /locate village_desert
or /locate shipwreck_beached
locate
and locatebiome
commands now support tags (prefix with #
to distinguish from normal ids)placefeature
CommandNew command that places a configured feature at a given location. Syntax: placefeature <id> [pos]
Parameters:
id
: The namespaced id of a configured feature to placepos
: The position to use as the origin for the feature placement (if omitted, ~ ~ ~
is used)noise_router
(and lost a couple of flags), see worldgen/noise_settings
folder in the worldgen reportThe game now generates and stores data-driven configured structures.
feature
field in location predicates now references a configured featureexploration_map
loot table function destination
field is now a configured feature tag idexploration_map
loot table function no longer automatically sets the display name of the mapregistries.json
in report)tags
directory (same as old ones)/data/[namespace]/tags/potion
and /data/[namespace]/tags/worldgen/biome
)blocks
, items
, fluids
, entity_types
, game_events
and functions
) keep their name (for now)[id, ...]
, id
(shortcut for [id]
) and #tag
feature.glow_lichen
configuration: can_be_placed_on
feature.spring_feature
configuration: valid_blocks
feature.simple_random_selector
configuration: features
block_predicate_type.matching_blocks
: blocks
block_predicate_type.matching_fluids
: fluids
biome
: inner list in features
, map value in carvers
biome_source.checkerboard
: biomes
#
(however they are not yet accepting element list)dimension_type
: infiniburn
feature.geode
configration: blocks.cannot_replace
, blocks.invalid_blocks
feature.vegetation_patch
, feature.waterlogged_vegetation_patch
configuration: replaceable
feature.root_system
configuration: root_replaceable
structure_processor.protected_blocks
: value
In addition to crashes and other stability improvements, around 100 player-reported bugs were fixed in this release. View the list on the issue tracker.
We’re now releasing the first (and hopefully only) release candidate for Minecraft 1.18.2. This release candidate fixes two world generation bugs that could cause a server to stop running. If there are no major issues following this release, no further changes will be done before the full release, which is planned for February 28th. Happy mining!
The third pre-release for 1.18.2 is now out, fixing more bugs!
Happy Crafting!
Today we're happy to share snapshot 22w06a with you. It contains compliance updates for South Korean players and is Totally Teeming with Technical Tag Tastiness.
Happy Mining (in moderation)!
If you’re playing in South Korea, we added gameplay timers and notices in compliance with gaming laws to help remind players to take occasional breaks from gameplay. For more information, please see the FAQ.
registries.json
in report)tags
directory (same as old ones)/data/[namespace]/tags/potion
and /data/[namespace]/tags/worldgen/biome
)blocks
, items
, fluids
, entity_types
, game_events
and functions
) keep their name (for now)[id, ...]
, id
(shortcut for [id]
) and #tag
feature.glow_lichen
configuration: can_be_placed_on
feature.spring_feature
configuration: valid_blocks
feature.simple_random_selector
configuration: features
block_predicate_type.matching_blocks
: blocks
block_predicate_type.matching_fluids
: fluids
biome
: inner list in features
, map value in carvers
biome_source.checkerboard
: biomes
#
(however they are not yet accepting element list)dimension_type
: infiniburn
feature.geode
configration: blocks.cannot_replace
, blocks.invalid_blocks
feature.vegetation_patch
, feature.waterlogged_vegetation_patch
configuration: replaceable
feature.root_system
configuration: root_replaceable
structure_processor.protected_blocks
: value
The second pre-release for 1.18.2 is now out! This pre-release adds a spline density function and fixes a few bugs.
Enjoy!
spline
density function: general-purpose building block that allows you to express almost any function using a cubic splineWe're now releasing the first pre-release for Minecraft 1.18.2. This pre-release introduces the possibility for data packs to customize cave generation and to add new custom structures to worlds.
If everything goes as expected, we aim to release this version on February 28th.
Happy mining!
locate
and locatebiome
commands now support tags (prefix with #
to distinguish from normal ids)locate
command parameter is now a configured structure rather than a structure type. For instance, you can now use /locate village_desert
or /locate shipwreck_beached
noise_router
(and lost a couple of flags), see worldgen/noise_settings
folder in the worldgen reportThe game now generates and stores data-driven configured structures.
feature
field in location predicates now references a configured featureexploration_map
loot table function destination
field is now a configured feature tag idexploration_map
loot table function no longer automatically sets the display name of the mapSome gameplay oddities have been affected by this change.
Another snapshot is now available for Minecraft: Java Edition. If you're into custom worlds, you might want to try out biome tags.
Enjoy!
While we work on some larger changes that aren't quite ready yet, here's snapshot 22w05a which contains a small squishing (that's a word, right?) of bugs.
Happy mining!
Happy New Year! It's time for the first snapshot of 2022 to hit the shelves. This snapshot series will be leading up to the release of 1.18.2. With this release we aim to address a few issues before moving on and starting with the Wild Update snapshots.
This snapshot contains tweaks to the world seed input and adds a new placefeature
command. On top of that, it also fixes a bunch of bugs.
Happy mining!
locate
command now uses a namespaced id parameterplacefeature
placefeature
New command that places a configured feature at a given location. Syntax: placefeature <id> [pos]
Parameters:
id
: The namespaced id of a configured feature to placepos
: The position to use as the origin for the feature placement (if omitted, ~ ~ ~
is used)We’re now releasing Minecraft: Java Edition 1.18.1. This release fixes a critical security issue for multiplayer servers, changes how the world fog works to make more of the world visible, and fixes a couple of other bugs.
If you are running a multiplayer server, we highly encourage you to upgrade to this version as soon as possible.
Enjoy!
We're now releasing a third release candidate for Minecraft 1.18.1 to fix a critical security issue. If there are no major issues following this release, no further changes will be done before the full release.
Happy mining!
We're now releasing the second (uh... something something hopefully) release candidate for Minecraft 1.18.1. This release candidate fixes a chunk rendering issue. If there are no major issues following this release, no further changes will be done before the full release. Happy mining!
We're now releasing the first (and hopefully only) release candidate for Minecraft 1.18.1. This release candidate fixes crashes and bugs. If there are no major issues following this release, no further changes will be done before the full release. Happy mining!
We're now releasing the first pre-release for Minecraft 1.18.1. This will be a fairly small release that will fix a few stability issues and a few bugs. We aim to release this version at the end of next week.
Happy mining!
It’s been quite the trek, but we’re here. At the summit. The Caves & Cliffs Update: Part II is out today, completing the much anticipated cave update. What better way to celebrate than by climbing to the top of a higher than ever mountain. Let’s take a moment and just take in that view. Wait. What’s that sound. Don’t tell me that goat is back.
AAAAARGH.
Ouff! Ouch! Ow!
Where am I? It’s dark down here! It’s almost as if I fell a greater distance than I would have before today. Figures. While I try to get out of this dripstone cave, I hope you enjoy all of the new features that 1.18 brings. Could you pass me a candle before you leave? It really is dark down here.
fall_from_height
and ride_entity_distance
advancement triggersnether_travel
to match other similar triggerslight
and barrier
particles with block_marker
illageralt
, rune-like font from Minecraft Dungeons (currently only usable via commands)--jfrProfile
and command jfr
to start profiling with Java Flight Recorder as well as a few custom eventsset_contents
and set_loot_table
now require a type
field with a valid block entity typeset_potion
--report
option in data generator now creates reference files for the entirety of the worldgen, instead of just the biomesserver.jar
now bundles contains individual libraries instead of being flat archivehide-online-players
to true
in order to not send a player list on status requestsnether_travel
entered
condition is renamed to start_position
exited
has been removed since it was identical to player.location
fall_from_height
player
- a player for which this trigger runsstart_position
- a location predicate for the last position before the falling starteddistance
- a predicate for the distance between start_position
and the playerride_entity_in_lava
player
- a player for which this trigger runsstart_position
- a position where the riding started (first tick on lava)distance
- a predicate for the distance between start_position
and the playerMinecraft now uses Java version 17. If you are using a default setup, the Launcher will download and install the correct version. If you are using a custom Java setup, or a third-party launcher, you will need to ensure that your Java installation is version 17 or above.
All events are enabled when starting the profiling using either jfr start
command or --jfrProfile
startup flag.
If profiling is started through any other means for monitoring purposes, only the ServerTickTime
, LoadWorld
and NetworkSummary
are included by default.
minecraft.ServerTickTime
: periodic event (1 second intervals) exposing average server tick timesminecraft.NetworkSummary
: periodic event (10 second intervals) reporting total packet sizes and counts per connectionminecraft.PacketReceived | minecraft.PacketSent
: network trafficminecraft.ChunkGeneration
: time taken to generate individual chunk stagesminecraft.LoadWorld
: initial world loading durationJava Flight Recorder is the internal JVM profiling tool bundled with the Java Runtime to analyze performance and runtime characteristics.
It's a useful tool for exposing internal JVM performance metrics as well as custom metrics that can be monitored or analyzed using any stock Java profiler or monitoring agents.
A profiling run can be started using any of the following alternatives:
The run will then be stopped either by:
--jfrProfile
startup flag when starting a Minecraft server or clientjfr start
in-game commandjcmd
jfr stop
in-game commandjcmd
CLI toolA summary JSON report is written both to the log file and in the debug folder accompanied by a .jfr
recording ready to be analyzed in i.e JMC or any other profiler tool supporting the format.
set_contents
, set_loot_table
Added new mandatory field type
. This type will be written into BlockEntityTag.id
, to make sure that this tag can be correctly migrated between versions.
set_potion
Potion
tag on any itemid
- potion idmax.bg.threads
Java system property, for example when running multiple servers on a single machineblock_marker
particle
slot for a model assigned to the configured block stateblock
particle (i.e. block_marker wheat[age=2]
)minecraft/textures/gui/container/inventory.png
now contains an extra sprite for a thin-layout version of the effect list in the inventoryserver.jar
now bundles individual libraries instead of merging all the files into a single archiveserver.jar
will unpack libraries into a directory configured by bundlerRepoDir
(default: working directory)bundlerMainClass
property (for example java -DbundlerMainClass=net.minecraft.data.Main -jar server.jar --reports
) or unpack the jar manually and use the contents of META-INF/classpath-joined
for command linebundlerMainClass
is empty, the program will just validate and extract files, and will then exitsimulation-distance
property in the dedicated server propertiesExample:
SpawnData: {
entity: {
id: "minecraft:cow"
},
custom_spawn_rules: {
sky_light_limit: {min_inclusive: 10, max_inclusive: 15}
},
}
SpawnPotentials: [
{
data: {
custom_spawn_rules: {
block_light_limit: {min_inclusive: 0, max_inclusive: 15}
},
entity: {id: "minecraft:pig"},
},
weight: 2
},
{
data: {
custom_spawn_rules: {
block_light_limit: {min_inclusive: 5, max_inclusive: 10},
sky_light_limit: {min_inclusive: 10, max_inclusive: 15}
},
entity: {id: "minecraft:panda"}
},
weight: 1
}
]
custom_spawn_rules
NBT in the SpawnData
field and the SpawnPotentials
listcustom_spawn_rules
currently may contain fields block_light_limit
and sky_light_limit
- both are integer ranges with fields min_inclusive
and max_inclusive
SpawnPotentials
format similar to other weighted lists, structure was changed to {weight: <int>, data: <previous contents without 'Weight', 'Entity' renamed to 'entity'>}
SpawnData
were moved to SpawnData.entity
(making format of that field same as elements of SpawnPotentials.data
)In this release, we are re-introducing diagnostic tracking, which was part of Minecraft: Java Edition until 2018. We are bringing it back to better understand our players and to improve their experience. Specifically this information will help us prioritise various aspects of development and identify pain points. All data is treated according to GDPR and CCPA best practices and is used to develop a better-performing and generally more enjoyable Minecraft: Java Edition.
Level
and moved everything it contained upLevel.Entities
has moved to entities
Level.TileEntities
has moved to block_entities
Level.TileTicks
and Level.ToBeTicked
have moved to block_ticks
Level.LiquidTicks
and Level.LiquidsToBeTicked
have moved to fluid_ticks
Level.Sections
has moved to sections
Level.Structures
has moved to structures
Level.Structures.Starts
has moved to structures.starts
Level.Sections[].BlockStates
and Level.Sections[].Palette
have moved to a container structure in sections[].block_states
Level.Biomes
are now paletted and live in a similar container structure in sections[].biomes
Level.CarvingMasks[]
is now long[]
instead of byte[]
yPos
the minimum section y position in the chunkbelow_zero_retrogen
containing data to support below zero generationblending_data
containing data to support blending new world generation with existing chunksAbout 250 bugs were fixed in this release. View the entire list on the issue tracker.
We're now releasing the fourth (and totally last) release candidate for Caves & Cliffs: Part II. If there are no major issues following this release, no further changes will be done before the full release.
We're now releasing the third (and almost certainly last) release candidate for Caves & Cliffs: Part II. If there are no major issues following this release, no further changes will be done before the full release. Happy crafting!
We're now releasing the second (and hopefully last) release candidate for Caves & Cliffs: Part II. If there are no major issues following this release, no further changes will be done before the full release.
We're now releasing the first (and hopefully only) release candidate for Caves & Cliffs: Part II. If there are no major issues following this release, no further changes will be done before the full release.
Happy mining!
It is now time for pre-release 8 for Minecraft 1.18 which contains more fixes for crashes and bugs.
We're now releasing the seventh pre-release for Minecraft 1.18, fixing more critical issues and tweaking cave biome features a bit further.
The sixth pre-release for 1.18 is now available. This pre-releases squashes some more bugs. Additionally, we now save the game more often, similar how to you should remember to save backups more often.
Happy mining!
We're now releasing pre-release 5 for Minecraft 1.18. This pre-release contains more bug fixes and a tweak to new cave generation under existing chunks.
We've now released Pre-release 4, which fixes a few crashes.
We've now released 1.18 pre-release 3 with additional bugfixes and some performance improvements. In case you missed it, we've also announced the release date for 1.18! The update is set to release on November 30th, and you can read more about that here. Mark your calendars!
The second pre-release for Minecraft Java is now available. In this pre-release, we've upgraded the Java version that is bundled with the game, and the game now uses Java 17. Other than this, we've mostly been busy fixing bugs.
Enjoy!
Minecraft now uses Java version 17. If you are using a default setup the Launcher will download and install the correct version. If you are using a custom Java setup or a third-party launcher, you will need to ensure that your Java installation is version 17 or above.
The first 1.18 pre-release is here!
From now on, you should mostly see bugs being fixed. In addition to that, pre-releases don't follow the regular snapshot cadence of releasing on Wednesdays, so keep an eye out!
That being said, this pre-release introduces biome blending, which means that you should no longer find harsh borders between new and old terrain. On top of that, we've also reintroduced the Amplified and Large Biome world types.
Happy mining!
--report
option in data generator now creates full worldgen reference files instead of just biomesAnother snapshot is now available. We've added new world generation below existing chunks, and blocks and fluids are now also part of the simulation distance setting. We also fixed a few bugs.
Keep in mind that we're still working on the world upgrades, so making a backup before upgrading is still a good idea.
Enjoy!
hide-online-players
to true
in order to not send a player list on status requestsHere's a snapshot from the blender! In this snapshot, world generation around the edges of an old world will now be adjusted for a smoother transition! This is the first iteration of this system which we expect to keep improving. Keep in mind that if you try it out now, the result will be saved to your world forever - which, as we know, is quite a long time. Better be safe than sorry. Make a backup before you try it!
Also - the space underneath existing chunks is now filled in, but only with deepslate. We will later be adding full cave generation in this place, so if you want that in your world, make a backup before you try it!
Due to some updates to terrain generation in this snapshot, seeds have shuffled once again so worlds will not look like they did in the previous snapshot. We expect world seeds to be stable after this snapshot.
Oh yeah, did we mention that it's a good idea to make a backup?
Level
and moved everything it contained upLevel.Entities
has moved to entities
Level.TileEntities
has moved to block_entities
Level.TileTicks
and Level.ToBeTicked
have moved to block_ticks
Level.LiquidTicks
and Level.LiquidsToBeTicked
have moved to fluid_ticks
Level.Sections
has moved to sections
Level.Structures
has moved to structures
Level.Structures.Starts
has moved to structures.starts
Level.Sections[].BlockStates
and Level.Sections[].Palette
have moved to a container structure in sections[].block_states
Level.Biomes
are now paletted and live in a similar container structure in sections[].biomes
yPos
the minimum section y position in the chunkbelow_zero_retrogen
containing data to support below zero generationblending_data
containing data to support blending new world generation with existing chunksIt's time for a musical snapshot! We're now introducing new music for Caves & Cliffs: Part II. This time around we have a bunch of new tracks composed by the talented Lena Raine and Kumi Tanioka. These tracks are also available on Spotify for you to listen to, and they will soon be available on other services such as Apple Music and YouTube as well.
This snapshot also includes a few additional tweaks, bug fixes, and performance improvements.
We still highly recommend backing up your world before loading it in this snapshot.
light
and barrier
particles with block_marker
block_marker
particle
slot for model assigned to configured block stateblock
particle (i.e. block_marker wheat[age=2]
)Have a random snapshot! In this snapshot, we've replaced the random number generator used for world generation, which makes more seeds come out as different... but it also moves everything around in the world, so expect all worlds to look different in this snapshot.
Another thing that we've replaced is the cubemap - the spinning image that you see behind the main menu. It's pretty sweet!
Also, in case you missed it, we're having our annual Minecraft Live event this Saturday. Make sure to check that out!
We still highly recommend backing up your world before loading it in this snapshot.
Badabee badablurb.
We still highly recommend backing up your world before loading it in this snapshot.
Time for an Advanced snapshot! In this snapshot, you can also open worlds from previous versions again - with one big warning! The blending technology we intend to introduce for Caves & Cliffs: Part II is not yet available. If you open an old world in this snapshot it will be upgraded with air under the current bottom of the world and visible chunk borders to new areas.
We highly recommend backing up your world before loading it in this snapshot.
fall_from_height
and ride_entity_distance
advancement triggersnether_travel
to match other similar triggersset_potion
server.jar
now bundles contains individual libraries instead of being flat archivefall_from_height
player
- a player for which this trigger runsstart_position
- location predicate for last position before falling starteddistance
- predicate for distance between start_position
and playerride_entity_in_lava
player
- a player for which this trigger runsstart_position
- position where riding started (first tick on lava)distance
- predicate for distance between start_position
and playernether_travel
entered
condition renamed to start_position
exited
has been removed, since it was identical to player.location
set_potion
Sets Potion
tag on any item
id
- potion idLevel.Sections[].BlockStates
& Level.Sections[].Palette
have moved to a container structure in Level.Sections[].block_states
Level.Biomes
are now paletted and live in a similar container structure in Level.Sections[].biomes
Level.CarvingMasks[]
is now long[]
instead of byte[]
minecraft/textures/gui/container/inventory.png
now contains an extra sprite for a thin-layout version of the effect list in the inventoryserver.jar
now bundles individual libraries instead of merging all the files into single archiveserver.jar
will unpack libraries into directory configured by bundlerRepoDir
(default: working directory)bundlerMainClass
property (for example java -DbundlerMainClass=net.minecraft.data.Main -jar server.jar --reports
) or unpack jar manually and use contents of META-INF/classpath-joined
for command lineThe second Caves & Cliffs: Part II snapshot is here! This snapshot mostly contains tweaks and bug fixes, but there are also some new technical additions such as a separate simulation distance slider and an increased thread count (no I'm not talking about the fancy sheets you're thinking about buying).
Oh, and you also seemed to enjoy Strongholds quite a lot, so we decided to add them back into the game. Enjoy!
simulation-distance
property in dedicated server properties.Various background tasks including worldgen are executed on a background thread pool. Its size equals the amount of available CPU threads minus one, but there was an upper limit of 7. Now this upper limit is 255. This should help higher-end machines with world-gen performance.
The upper limit can be overridden by max.bg.threads
Java system property, for example when running multiple servers on a single machine.
In this release, we are re-introducing diagnostic tracking, which was part of Minecraft: Java Edition until 2018. We are bringing it back to better understand our players and to improve their experience. Specifically, we hope to ensure stronger performance for the extremely heavy world generation in the second part of the Caves & Cliffs update later this year.
In practice, this can mean identifying technical pain points in the game, like how less powerful hardware performs in high-complexity terrain. This information will also help us prioritize various aspects of development, balance game features (by learning, for instance, that the goats are pushing every single player off the cliffs) and lend new Minecrafters a helping hand (after realizing that many of them get stuck at the same points). All data is treated according to GDPR and CCPA best practices and is used to develop a better-performing and generally more enjoyable Minecraft: Java Edition.
At this point the only implemented event is world load.
Marvellous mountains and colossal caves, this snapshot has it all! Today we're bringing the Overworld revamp to regular snapshots. If you've been playing or checking out the experimental snapshots that we've been releasing, you should be familiar with what you're seeing. If not, you're in for a treat!
Since we're extending the world height, and there are quite a few under-the-hood changes, we've been keeping an eye on how the game is running, and there are still improvements to be made. However, we would still appreciate it if you would be able to take this survey so that we can understand how you perceive the performance of this snapshot.
It should also be noted that there is currently no upgrade path for existing worlds in this snapshot. This means that you can only create new worlds in this snapshot, and not play on any of your existing worlds. We're working on this and you should be able to play on your existing worlds in an upcoming snapshot not too far in the future.
All of this said, we hope that you have a great time checking out these new additions. Watch your feet so that you don't fall into a very deep hole, and make sure you don't get punted off a mountain by a goat that's just minding its own business.
Happy mining!
illageralt
, rune-like font from Minecraft Dungeons (currently only usable via commands)--jfrProfile
and command jfr
to start profiling with Java FlightRecorder as well as a few custom events.set_contents
and set_loot_table
now require type
field with valid block entity typeminecraft.ServerTickTime
: sampling event exposing average server tick times at one second intervalsminecraft.ChunkGeneration
: time taken to generate individual chunk stagesminecraft.PacketRead | minecraft.PacketSent
: network trafficminecraft.WorldLoadFinishedEvent
: initial world loading durationThe run will then be stopped either by:
jfr stop
in-game commandjcmd
CLI toolJava Flight Recorder (https://openjdk.java.net/jeps/328) is the internal JVM profiling tool bundled with the Java Runtime to analyze performance and runtime characteristics. It's a useful tool for exposing internal JVM performance metrics as well as custom metrics that can be monitored or analyzed using any stock Java profiler or monitoring agents.
A summary JSON report is written both to the log file and in the debug folder accompanied by a .jfr
recording ready to be analyzed in i.e JMC https://github.com/openjdk/jmc or any other profiler tool supporting the format.
A profiling run can be started using any of the following alternatives:
--jfrProfile
startup flag when starting a Minecraft server or clientjfr start
in-game commandjcmd
set_contents
, set_loot_table
Added new mandatory field type
. This type will be written into BlockEntityTag.id
, to make sure this tag can be correctly migrated between versions
custom_spawn_rules
NBT in the SpawnData
field and the SpawnPotentials
listcustom_spawn_rules
currently may contain fields block_light_limit
and sky_light_limit
- both are integer ranges with fields min_inclusive
and max_inclusive
SpawnPotentials
format similar to other weighted lists, structure was changed to {weight: <int>, data: <previous contents without 'Weight', 'Entity' renamed to 'entity'>}
SpawnData
were moved to SpawnData.entity
(making format of that field same as elements of SpawnPotentials.data
)Example:
SpawnData: {
entity: {
id: "minecraft:cow"
},
custom_spawn_rules: {
sky_light_limit: {min_inclusive: 10, max_inclusive: 15}
},
}
SpawnPotentials: [
{
data: {
custom_spawn_rules: {
block_light_limit: {min_inclusive: 0, max_inclusive: 15}
},
entity: {id: "minecraft:pig"},
},
weight: 2
},
{
data: {
custom_spawn_rules: {
block_light_limit: {min_inclusive: 5, max_inclusive: 10},
sky_light_limit: {min_inclusive: 10, max_inclusive: 15}
},
entity: {id: "minecraft:panda"}
},
weight: 1
}
]
We're now releasing Minecraft: Java Edition 1.17.1. This release changes some behaviours of the features added in Caves & Cliffs: Part I, and it also fixes a few bugs and critical issues.
A second Release Candidate for Minecraft Java Edition 1.17.1 is now available in the launcher, fixing some critical issues. If nothing critical is found, we expect this to be released as the full version of 1.17.1 on Tuesday, July 6th.
Download the latest datapack.
A first and hopefully only Release Candidate for Minecraft: Java Edition 1.17.1 is now available in the launcher, fixing a few more crashes and bugs. If nothing critical is found, we expect this to be released as the full version of 1.17.1 on Tuesday, July 6th.
Download the latest datapack.
A third pre-release for 1.17.1 is now available in your launcher, fixing a few more crashes and bugs.
Download the latest datapack.
The second pre-release for 1.17.1 is now available in your launcher. This pre-release fixes a few more bugs.
Download the latest datapack.
Happy Friday! The first pre-release for 1.17.1 is now available for download. This pre-release introduces a few changes to some gameplay mechanics, and it also fixes a bunch of bugs.
Download the latest datapack.
It’s here. The Cave Update, with a side of cliffs. That’s right, The Caves & Cliffs Update: Part I is launching today!
Now you can finally swim with the glow squid, fight alongside the axolotls, and get rammed off a mountain by a goat. You can also build with new blocks like copper, pointed dripstone, and moss, hang some hanging roots and cave vines, and marvel at the new ore textures. Light up your homes, caves, mineshaft and lives with the glow berry. Build a spyglass and peep your next adventure or just keep track of what that creeper over yonder is doing. Wait, what is it doing? Is it getting closer, or is this spyglass just really good?
Have fun with Part I!
Snowier snow!
freezeDamage
game rule that allows players to toggle whether Powder Snow causes freeze damage or not/debug function
/item
commandlightning_bolt
sub-predicatelooking_at
condition to player sub-predicatepassenger
, stepping_on
and lightning_bolt
properties to entity predicatesource
condition to effects_changed
triggerstarted_riding
, lightning_strike
and using_item
advancement triggersplayersSleepingPercentage
(100 by default), which sets what percentage of players that must sleep in order to skip the night. Setting it to 0 will mean one player is always enough to skip the night. Setting it above 100 will prevent skipping the night./item
commandset_banner_pattern
Difficulty
) can now be controlled with the mouse wheelblock
field on block predicate to blocks
item
field on item predicate to items
/replaceitem
selector
and nbt
chat components can now configure separators between elementsLoad
. Data
is now hidden (but can be accessed by clicking the mode button while holding the alt key)version.json
has been split into data and resource versions/debug function
block
field expended to blocks
, which now accepts an array of block typespassenger
- a new sub-predicate for a passenger that is directly riding this vehicle (if present, must match one or more)stepping_on
- a location predicate for a block that an entity is currently standing onlightning_bolt
- a sub-predicate that is valid only for a lightning bolt entityitem
field expended to items
, which now accepts an array of item typeslooking_at
- an entity that is currently viewed by a playereffects_changed
source
triggers that match an entity that triggered the changeblocks_set_on_fire
- a range check for blocks set on fire by this entityentity_struck
- a predicate for entities struck by this lightning bolt (if present, must match one or more)lightning_strike
player
- a player for which this trigger runslightning
-a predicate for a lightning entitybystander
- a predicate for one of the entities in a certain area around a strike that is not hurt by itstarted_riding
player
- either a player that has started riding or one of the boat passengersusing_item
player
- a player that uses an itemitem
- an item being usedoccludes_vibration_signals
block tag. Anything in this tag will occlude vibrations, and inherits wool
tag entries by defaultselector
or nbt
can now override separator (,
by default) with separator
element{"selector": "@e[type=chicken]", "separator": "|"}
{"nbt": "CustomName", "entity": "@e[type=chicken]", "interpret": true, "separator": {"text": "*", "color": "red"}}
item
Modifies the item or block inventory.
This command has three forms:
Possible sources and targets:
For example, /item replace block ~ ~ ~ container.0 from entity @s enderchest.0
will copy the first item from the player's Ender Chest to the first slot of a container that the player is currently standing on.
/item replace <target> with <item stack> [<count>]
- the same as old replaceitem
/item replace <target> from <source> [<modifier>]
- copies an item for source to target(s), optionally applying a modifier/item modify <target> <modifier>
- modifies an item (without copying)entity <selector> <slot>
block <x> <y> <z> <slot>
require-resource-pack
in server.properties
resource-pack-prompt
in server.properties
, expects chat component syntax, can contain multiple lines)Changes to data packs for version 7:
/replaceitem
(replaced with /item replace
)entities
directory (similar to POI storage)item_modifiers
directoryMinecraft now uses a more recent version of Java. If you are using a default setup, the Launcher will download and install the correct version. If you are using a custom Java setup, or a third-party launcher, you will need to ensure that your Java installation is version 16 or above.
/give
), air-like, waterloggable blockcopy_nbt
source
parameter can now accept an object with type and additional parameters{"type": "context", "target": "<target>"}
storage
provider (example: {"type": "storage", <namespaced id>}
) can be used to access command storageset_count
This function now has add
parameter. If true
, the change will be relative to the current item count. If false
, item count will be replaced with current value (default behavior)
set_damage
This function now has an add
parameter. If true
, the change will be relative to the current damage. If false
, the damage will be replaced with the current value (default behavior)
value_check
Checks range of value. Parameters:
value
- see "New value providers" section (currently a combination of random generators and score)range
- min/max rangeset_banner_pattern
Sets tags needed for banner patterns. Parameters:
patterns
- list of pattern objects:pattern
- the name of the pattern (square_bottom_left
, bricks
, etc.)color
- the name of the color (light_gray
, etc.)append
- if true
, the new elements will be appended to the existing ones instead of replacing themset_enchantments
Modifies enchantments on an item.
enchantments
- map of enchantment id to level value (can be a score or a random number)add
- if true
, the change will be relative to the current level. If false
, the level will be replaced with the current value (default behavior)Note: value providers can be used in same places as random number generators.
score
Returns scaled scoreboard value.
score
- scoreboard nametarget
- see belowscale
- scaling factor (float)<target>
or {"type": "context", "target": <target>}
where <target>
can be one of this
, killer
, direct_killer
, killer_player
(not all may be available depending on context){"type": "fixed", "name": "<scoreboard name>"}
for fixed scoreboard name (may be fake player)Markers are a new type of entity that is meant for custom use cases like map-making and data packs.
data
compound field that can contain any dataRendering is now using OpenGL 3.2 core profile. All fixed-function rendering has been replaced with shader-based rendering.
Shaders are now included for all supported render states. Any shader, except for the blit
shader, can also be replaced in resource packs. For now, replacing these shaders is not officially supported, and the way it works may change in the future.
The current rendering engine uses a system similar to the post-processing shader pipeline. There are some differences between both systems that cater to the slightly different requirements.
vibration
and dust_color_transition
These will be saved to a zip file in debug/profiling/<yyyy-MM-dd_HH.mm.ss-[levelname]-[version]>.zip
and could be used for performance regression analysis if included in bug reports.
The exact metrics, output format, and names are susceptible to change between versions. Our plan is to continue iterating on which metrics to capture.
Pressing F3+L while in the game will start a recording for 10 seconds, which captures metrics such as tick durations, used heap sizes, and other more detailed stats. Pressing F3+L before the 10-second limit will end the recording early. This shortcut is always available to clients, even on multi-player servers where it will record client-side performance.
perf start
will start a recording for 10 seconds, which captures metrics such as tick durations, used heap sizes, and other more detailed stats.perf stop
before the 10-second limit will end the recording early.Changes to resource packs for version 7:
max-build-height
play_time
total_world_time
) that also includes time when the game was pausedWe're now releasing the first (and hopefully only) release candidate for Caves & Cliffs: Part I. If there are no major issues following this release, no further changes will be done before the full release.
Happy mining!
Download the latest datapack.
The fifth pre-release for 1.17 is now available, fixing another round of bugs and crashes.
Download the latest datapack.
The fourth pre-release for 1.17 is now available, and this one fixes a few additional bugs and crashes.
Download the latest datapack.
Time for another pre-release, this time with some final tweaks to candles and more fixes for bugs and crashes!
Note that a bug has snuck into this pre-release making the game warn about every world as if it was experimental. This will be fixed in the next pre-release.
Download the latest datapack.
It's Monday and it's time for another pre-release! This one fixed a few bugs and crashes.
In case you missed our recent news, we just announced that we're releasing Caves & Cliffs Part I on June 8th. That's soon!
The first 1.17 pre-release is here!
From now on, you should mostly see bugs being fixed. In addition to that, pre-releases doesn't follow the regular snapshot cadence of releasing on Wednesdays, so keep an eye out!
Addtionally, based on feedback from the community, we have decided to include candles in part 1 of Caves & Cliffs again. Candles will become available in Bedrock shortly after the release of part 1.
Download the updated datapack.
started_riding
, lightning_strike
and using_item
advancement triggerssource
condition to effects_changed
triggerlightning_bolt
sub-predicatepassenger
, stepping_on
and lightning_bolt
properties to entity predicatelooking_at
condition to player sub-predicateitem
field on item predicate to items
block
field on block predicate to blocks
started_riding
player
- either a player that started riding or one of boat passengerslightning_strike
player
- player for which this trigger runslightning
- predicate for lightning entitybystander
- predicate for one of the entities in certain area around strike not hurt by itusing_item
player
- players that uses itemitem
- item being usedeffects_changed
source
triggers that matches entity that triggered the changeitem
field expended to items
, now accepting array of item typesblock
field expended to blocks
, now accepting array of block typespassenger
- new sub-predicate for passenger directly riding this vehicle (if present, must match one or more)stepping_on
- location predicate for block entity is currently standing onlightning_bolt
- sub-predicate valid only for lightning bolt entitylooking_at
- entity currently viewed by playerblocks_set_on_fire
- range check for of blocks set on fire by this entityentity_struck
- predicate for entities struck by this lightning (if present, must match one or more)These will be saved to a zip file in debug/profiling/<yyyy-MM-dd_HH.mm.ss-[levelname]-[version]>.zip
and could be used for performance regression analysis if included in bug reports.
The exact metrics, output format, and names are susceptible to change between versions. Our plan is to continue iterating on which metrics to capture.
Pressing F3+L while in the game will start a recording for 10 seconds capturing metrics such as tick durations, used heap sizes and other more detailed stats.
Pressing F3+L before the 10-second limit will end the recording early.
This shortcut is always available to clients, even on multi-player servers where it will record client-side performance.
perf start
will start a recording for 10 seconds capturing metrics such as tick durations, used heap sizes and other more detailed stats.
perf stop
before the 10-second limit will end the recording early.
Another snapshot is now going out. This time around, we fixed quite a few bugs, and we also introduced some changes to some Caves & Cliffs features, and additionally, we added some extra context for the narrator.
Download the updated datapack.
Now with twice as much Java version.
Starting with this snapshot, Candles, Bundles, and Sculk Sensors are only accessible through commands. We do not feel that they are at the quality we want for Part 1 of the Caves & Cliffs release. To keep trying these features out in survival mode, use the Preview data pack!
Download the updated datapack.
mineable/axe
, mineable/hoe
, mineable/pickaxe
and mineable/shovel
block tags. Blocks with these tags can be destroyed more quickly with the matching tool.needs_stone_tool
, needs_iron_tool
and needs_diamond_tool
block tags. If a block requires the correct tool to drop, these tags determine which tier of that tool is required./item
commandMinecraft now uses a more recent version of Java. If you are using a default setup the Launcher will download and install the correct version. If you are using a custom Java setup or a third-party launcher, you will need to ensure that your Java installation is version 16 or above.
New syntax:
/item replace <target> with <item stack> [<count>]
- same as old replaceitem
/item replace <target> from <source> [<modifier>]
- copies item for source to target(s), optionally applying modifier/item modify <target> <modifier>
- modifies item (without copying)For example, /item replace block ~ ~ ~ container.0 from entity @s enderchest.0
will copy first item from player's enderchest to first slot of container player is currently standing on.
Hey-hoo! Will you look at that! It's Wednesday once again, which means we get to share updates about all the Minecraft bits and bobs. This week, we're distributing an ore distribution Snapshot for all you lovely Snapshot connoisseurs to feast upon. Enjoy!
Download the updated datapack.
Ore distribution in snapshot 21w18a. Click here for a link to the full resolution image.
A delicious snapshot appears! This snapshot introduces some tweaks to the raw ore textures, a few copper changes, and the introduction of noodle caves in the Caves & Cliffs Preview datapack.
If you have any feedback, a penne for your thoughts...
New raw ore textures in snapshot 21w17a. Click here for a link to the full resolution image.
Download the updated datapack.
Noodles caves in snapshot 21w17a. Click here for a link to the full resolution image.
Snapshot 21w16a introduces some changes to azaleas and dripstone. On top of that, we've tweaked the textures of raw ores. There are also a few additions to the Caves & Cliffs preview datapack.
New raw ore textures in snapshot 21w16a. Click here for a link to the full resolution image.
Download the updated datapack here A lava aquifer in snapshot 21w16a. Click here for a link to the full resolution image.
play_time
total_world_time
) that also includes time when the game was pausedIn today’s snapshot, we’re making a few needed changes that directly relate to our recent announcement. If you haven’t yet read it, we strongly recommend you do. You can also check out this Caves & Cliffs video from Agnes and Henrik to learn more about our plans for the update.
Even though some features will be released later than we’d planned, you can still try them out through a separate data pack. More information, as well as our latest tweaks, can be found here below.
The riskier and technically more complex world generation changes for the Caves & Cliffs update will be shipped in a later update and have been switched off in this snapshot. This means:
You can still try out the world generation for the later update using a datapack which activates the changes as an experimental custom world:
Keep in mind that the world you create with the data pack will be flagged as experimental by the game, and such worlds are not guaranteed to work in future versions. Also, please note that you can’t add data packs that change the world generation to existing worlds, so you must create a new world to access the experimental features.
New raw ore textures in snapshot 21w15a. Click here for a link to the full resolution image.
/debug function
selector
and nbt
chat components can now configure separators between elementsMarkers are a new type of entity meant for custom use cases like map making and data packs.
data
compound field that can contain any data/debug function
New debug subcommand executes command with same syntax as function
selector
or nbt
can now override separator (", "
by default) with separator
element{"selector": "@e[type=chicken]", "separator": "|"}
{"nbt": "CustomName", "entity": "@e[type=chicken]", "interpret": true, "separator": {"text": "*", "color": "red"}}
When require-resource-pack
is used in server.properties
, there's now an option for servers to add a custom message.
resource-pack-prompt
in server.properties
, expects chat component syntax, can contain multiple lines)A new snapshot is ready to be served, although somewhat… raw. Gordon Ramsey would be furious. Please don’t tell him, we don’t want to be called donuts. :(
Most of us have just gotten back from being off for a few days during Easter, so this snapshot is a bit on the smaller side.
Another snapshot hits the streets, and it's dropping some sick bleats. That's right, Goats are leaping into this snapshot!
Added an alternative solid black background color for the Mojang Studios loading screen, toggleable with the "Monochrome Logo" accessibility option
/give
) air-like waterloggable blockAn absolutely shocking snapshot arrives! This snapshot adds some new functionality to Copper, some general tweaks, a fancy new way of getting performance metrics, and a bunch of bugfixes.
Happy mining!
Pressing F3+L while in the game will start a recording for 10 seconds capturing metrics such as tick durations, used heap sizes and other more detailed stats. These will be saved to a zip file in debug/profiling/<yyyy-MM-dd_HH.mm.ss>.zip
and could be used for performance regression analysis if included in bug reports.
The exact metrics, output format and names are susceptible to change between versions, and our plan is to continue iterating on which metrics to capture.
A truly fabulous snapshot enters the arena! This snapshot brings fundamental changes to our rendering pipeline with the introduction of the brand new tech that is OpenGL Core 3.2. On top of that, we're finally introducing the Lush Caves biome. However, as with the Dripstone Caves, this is only available through creating a custom world.
There's an important note about this snapshot for those of you with older computers: With the introduction of OpenGL Core 3.2 there is a chance Minecraft Java will no longer run on computers that do not meet the minimum system requirements. Computers that meet the minimum system requirements should not be affected.
The Lush Caves underground biome now exists for use in single-biome worlds. It does not yet generate in other world types.
Ore texture changes in snapshot 21w10a. Click here for a link to the full resolution image.
New textures for emerald, coal, and copper in Deepslate. Click here for a link to the full resolution image.
Overworld ore generation has been tweaked.
Ore distribution in snapshot 21w10a. Click here for a link to the full resolution image.
give
command can only give up to 100 stacks of items at a time (e.g. 6400 stone or 100 iron swords)Rendering is now using OpenGL 3.2 core profile. All fixed function rendering has been replaced with shader based rendering.
Shaders are now included for all supported render states. Any shader except for the blit
shader can also be replaced in resource packs. For now replacing these shaders is not officially supported and the way it works may change in the future.
The current rendering engine uses a system similar to the post processing shader pipeline. There are some differences between both system that cater to the slightly different requirements.
In this snapshot, our new beloved stone type has suffered a grim fate and has been renamed to Deepslate. How mysterious!
Click here for a link to the image in full resolution.
Good things come to those who wait, and we've believe you've waited long enough. The first Caves & Cliffs snapshot is finally here and ready to enter the Java Edition of Minecraft! We hope that you're as excited about this as we are, because this snapshot brings you a variety of features, some changes to existing features, and a few technical changes. All of it is listed in this blog post, and we can't wait to see you experiment with it all.
Happy mining!
Minecarts and rails now work in water
A dedicated server can enforce custom resource packs by setting require-resource-pack
in server.properties
.
When this option is used, players will be prompted for a response and will be disconnected if they decline the required pack.
Entities have been extracted from main (terrain) chunks and are now stored in separate entities
directory (similar to POI storage).
Those new files are still region files with NBT.
set_banner_pattern
Sets tags needed for banner patterns. Parameters:
patterns
- list of pattern objects:pattern
- name of pattern (square_bottom_left
, bricks
, etc.)color
- name of color (light_gray
, etc.)append
- if true
, new elements will be appended to existing ones instead of replacingGrimstone can be found in the deepest parts of the underground, and is slightly tougher to mine than normal Stone.
Click here to view full resolution.
Hello, new snapshot! Hello, new cave generation!
Today's snapshot introduces a major change to how caves are generated within Minecraft. You could say that we're now introducing the cave part of Caves & Cliffs.
This is only the first step in our underground adventure, so please note that snapshots show features in early development and that there are two notable caveats with this snapshot:
Added the following game events that the Sculk Sensor reacts to, along with corresponding frequency value:
Vibration Types | Frequency Value |
---|---|
Minecart Moving, Ring Bell, Block Change | 6 |
Drinking Finish, Prime Fuse | 7 |
Mob Interact | 8 |
Equip, Shear, Ravager Roar | 9 |
Entity Place | 12 |
Entity Killed | 13 |
Shulker Close | 14 |
Shulker Open | 15 |
Block Change
is for when player or dispenser action has changed a block. Example: cake slice being eaten.Mob Interact
is for specific mob interaction events that cause vibrations.Prime Fuse
is for both TNT and Creepers.Ever since the Nether Update, the Piglins have seen players sneaking in and having a peek in their chests - well no more! With 1.16.2, we’re introducing the Piglin Brute – a Piglin so focused on guarding the Bastion Remnants' chests that even gold can’t distract them.
Two new accessibility settings have been added to help with visual comfort
execute in
now respects dimension scalingAdded an angle parameter for setting the default facing angle of a respawning player
Syntax: spawnpoint [<targets>] [<pos>] [<angle>]
Syntax: setworldspawn [<pos>] [<angle>]
New parameters:
angle
- Floating point angle in degrees. Supports the relative ~
modifiernamespace/<type>/resource.json
)worldgen
folder in data packsworldgen/biome
can contain biome definitionsworldgen/configured_carver
can contain definitions for world carver settingsworldgen/configured_feature
can contain definitions for feature placementsworldgen/configured_structure_feature
can contain definitions for structure placementsworldgen/configured_surface_builder
can contain definitions for surfacesworldgen/noise_settings
can now contain noise configurationsworldgen/processor_list
can contain sets of block processorsworldgen/template_pool
can contain pool definitions for jigsaw structuresrate-limit
settings in server.properties
pack.png
as pack iconEntries in tags can now be marked as optional. Failure to resolve optional entries does not prevent the whole tag from loading. Example:
{
"replace": false,
"values": [
"#minecraft:beds", // existing syntax
{ "id":"#missing:tag", "required": false }, // optional sub-tag entry
"minecraft:anvil", // existing syntax
{ "id":"minecraft:stone_button", "required": true }, // new syntax for required tags
{ "id":"missing:block", "required": false } // optional single-element entry
]
}
A total of more than 150 bugs have also been fixed in this release!
What better way to start the week than with a new release candidate that fixes two bugs? 1.16.3 addresses a duplication exploit, along with a pathfinding issue.
The 1.16.3 release is now going live! This release fixes two(!) bugs.
Just in case you missed it, we'll be announcing a bunch of new stuff on October 3rd at Minecraft Live. Make sure to mark your calendar!
The first pre-release for 1.16.4 is officially out! If you’ve been on the Internet for some time, you’ve probably noticed that you occasionally run into other players that you don’t get along with. To alleviate some of that frustration, we’re introducing a UI element called the “social interactions screen”, which will let you disable chatting with certain players, thus hiding any messages you receive from them. Additionally, the 1.16.4 update will contain some fixes for critical bugs, but other than that, this will be it for this dot-release. Please help us out by testing the new UI and reporting any bugs you find on the Minecraft Issue Tracker.
A new screen available in Multiplayer which shows a list of all players on a server so you can can hide chat from any player.
Time for another pre-release! This time around we've fixed some issues with the new social interactions screen and we've also fixed some crashes.
In case you haven't heard, yesterday we announced that Mojang accounts will be migrating into Microsoft accounts. With this pre-release, we are preparing for that by having the game understand the settings and block-list of Microsoft accounts. You can read more about that over here, and you can find answers to questions you might have in the FAQ. The FAQ will be continuously updated.
We aim to release 1.16.4 sometime during next week.
We have now released 1.16.4 Release Candidate 1. If no further critical issues are found, we expect this version to be the full release of 1.16.4 on Thursday.
It's time for the 1.16.4 release! This release adds the new social interactions screen and fixes a few crashes.
If you missed it, we recently announced that Mojang accounts will be migrating into Microsoft accounts. This release prepares for that by having the game understand the settings and block-list of Microsoft accounts. You can read more about it over here, and you can find answers to questions you might have in the FAQ, which will be continuously updated.
A new screen available in Multiplayer which shows a list of all players on a server so you can hide chat from any player.
The snow is snowier than before.
For today’s snapshot, we’ve changed most of the textures introduced in the previous snapshot. This is simply to test if these textures give a better experience in exploring and building. We’re interested to hear what you think. Keep in mind, that some textures might be reverted or changed again in the future
Snowier snow!
Difficulty
) can now be controlled with mouse wheelChanged a number of the textures for blocks and items introduced in the previous snapshot:
/replaceitem
command/item
command/item
command.Load
. Data
is now hidden (but can be accessed by clicking mode button while holding alt key)The function part of loot tables can now be defined as separate data pack resource in item_modifiers
directory.
Such files can contain a single function (i.e single JSON object) or an array of functions.
item
Modifies item or block inventory.
This command has three forms:
/item <target> replace <item stack> [<count>]
- same as old replaceitem
/item <target> modify <modifier>
- modifies item (without copying)./item <target> copy <source> [<modifier>]
- copies item for source to target(s), optionally applying modifierPossible sources and targets:
entity <selector> <slot>
block <x> <y> <z> <slot>
For example, /item block ~ ~ ~ container.0 copy entity @s enderchest.0
will copy first item from player's enderchest to first slot of container player is currently standing on.
value_check
Checks range of value.
Parameters:
value
- see "New value providers" section (currently combination of random generators and score)range
- min/max rangescore
entity
parameter has now been replaced with target
.
It can either contain value from old entity
field (like this
) or be an score holder name in form {"name": "..."}
.
set_damage
This function now has add
parameter. If true
, change will be relative to current damage. If false
, damage will be replaced with current value (default behavior)
set_count
This function now has add
parameter. If true
, change will be relative to current item count. If false
, item count will be replaced with current value (default behavior)
copy_nbt
source
parameter can now be set to {"storage": <namespaced id>}
, to access command storage.
set_enchantments
Modifies enchantments on item
enchantments
- map of enchantment id to level value (can be score or random number)add
- if true
, change will be relative to current level. If false
, level will be replaced with current value (default behavior)Note: value providers can be used in same places as random number generators.
score
Returns scaled scoreboard value.
score
- scoreboard nametarget
- same as target
in score
predicatescale
- scaling factor (float)Changes to data packs for version 7:
/replaceitem
(replaced with /item replace
)score
loot table condition: entity
parameter has been replaced with target
Changes to resource packs for version 7:
Did someone ask for a snapshot full of tasty Caves & Cliffs features? Then you came to the right place! This particular snapshot adds blocks for dripstone – stalagmites and stalactites. Or is it stalactites and stalagmites? Anyway, you can’t find them in the world just yet… but try out the functionality of the new blocks!
Another snapshot is going out, and this one introduces the Sculk. They're a bit creepy, but don't let that put you off. Pick up some good vibrations!
This biome doesn't generate naturally yet, since it is designed for the upcoming larger caves. However, if you want to see the biome in the current caves you can create a single-biome world with dripstone caves.
Vibration Type | Frequency Value |
---|---|
Step | 1 |
Flap | 2 |
Swim | 3 |
Elytra Free Fall | 4 |
Hit Ground | 5 |
Splash | 6 |
Wolf Shaking | 6 |
Projectile Shoot | 7 |
Projectile Land | 8 |
Start Eating | 7 |
Finish Eating | 8 |
Hit Entity | 9 |
Add Item To Armor Stand | 9 |
Open Block | 11 |
Close Block | 10 |
Switch Block | 11 |
Unswitch Block | 10 |
Press Block | 11 |
Unpress Block | 10 |
Attach Block | 11 |
Detach Block | 10 |
Open Container | 11 |
Close Container | 10 |
Dispense Failed | 10 |
Use Flint And Steel | 12 |
Place Block | 12 |
Destroy Block | 13 |
Place Fluid | 12 |
Pickup Fluid | 13 |
Cast Fishing Rod | 15 |
Reel-In Fishing Rod | 14 |
Extend Piston | 15 |
Contract Piston | 14 |
Explosion | 15 |
Lightning Strike | 15 |
max-build-height
server settingoccludes_vibration_signals
block tag. Anything in this tag will occlude vibrations, and inherits wool
tag entries by defaultvibration
and dust_color_transition
This system has been developed to identify when certain in-world actions are happening in nearby chunks, particularly so the new Sculk Sensor can detect these events as vibrations.
The following is a list of the initial game events:
minecraft:step
minecraft:swim
minecraft:flap
minecraft:elytra_free_fall
minecraft:hit_ground
minecraft:splash
minecraft:projectile_shoot
minecraft:projectile_land
minecraft:entity_hit
minecraft:block_place
minecraft:block_destroy
minecraft:fluid_place
minecraft:fluid_pickup
minecraft:block_open
minecraft:block_close
minecraft:block_switch
minecraft:block_unswitch
minecraft:block_attach
minecraft:block_detach
minecraft:block_press
minecraft:block_unpress
minecraft:container_open
minecraft:container_close
minecraft:explode
minecraft:armor_stand_add_item
minecraft:wolf_shaking
minecraft:dispense_fail
minecraft:fishing_rod_cast
minecraft:fishing_rod_reel_in
minecraft:piston_extend
minecraft:piston_contract
minecraft:flint_and_steel_use
minecraft:eating_start
minecraft:eating_finish
minecraft:lightning_strike
There are also game event tags that come with this, and can be modified by data packs. They can be found under data/minecraft/tags/game_events
.
vibrations
Determines which game events are considered vibrations by the Sculk Sensor. Currently, all added game events are in this tag by default.ignore_vibrations_stepping_carefully
Which game events should be ignored by the Sculk Sensor when the source of the event is sneaking.The following game events are in ignore_vibrations_stepping_carefully
by default:
minecraft:step
minecraft:hit_ground
minecraft:projectile_shoot
Ready your screenshot buttons and start rehearsing your best "naaaaww"s. The final snapshot of the year enters Minecraft Java, and what better way to end the year than with something that has been on our bucket list for quite a while: the adorable axolotl?
We hope you'll end the year on a good note, and the entirety of the Java team wishes you happy holidays.
As we continue to consider feedback from the community, some changes to the frequency ranges have been made. We expect this to change quite heavily up until release to figure out the most interesting ranges for gameplay, and as always feedback is extremely welcome! Here is the newest table in this snapshot.
Vibration Types | Frequency Value |
---|---|
Step | 1 |
Flap | 2 |
Swim | 3 |
Elytra Free Fall | 4 |
Hit Ground | 5 |
Splash, Wolf Shaking | 6 |
Projectile Shoot | 7 |
Projectile Land, Eating Finish, Entity Hit | 8 |
Armor Stand Add Item | 9 |
Block Close, Block Unswitch, Block Unpress, Block Detach, Dispense Fail | 10 |
Block Open, Block Switch, Block Press, Block Attach | 11 |
Block Place, Fluid Place, Flint And Steel Use | 12 |
Block Destroy, Fluid Pickup | 13 |
Fishing Rod Reel-In, Container Close, Piston Contract | 14 |
Fishing Rod Cast, Container Open, Explode, Lightning Strike, Piston Extend | 15 |
We're now releasing 1.16.5 Release Candidate 1, which addresses two critical stability issues. If no further critical issues are found, we plan to release 1.16.5 on Friday. We hope to release another Caves & Cliffs snapshot next week.
Happy mining!
Today's Caves & Cliffs snapshot is particularly shiny! You could almost say it's glowing... Oh wait, that's a squid.
Glow squids have been added, but do not yet spawn naturally. You can find spawn eggs for them in the creative inventory.
Ever felt that you want to take a ride across fields of lava? Yeah? Me too! This snapshot introduces the adorable(?) strider. It might need some help with directions...
A new block that can help you get your bearings!
A new mob living the lava lakes of the Nether.
Joint type
to describe if attached piece can be rotated (rollable
) or not (aligned
)target_pool
has been renamed to pool
attachement_type
has been split into name
(on parent block) and target
(on child block).In this snapshot you can be on your merry way across the beautiful Soulsand Valleys with your freshly enchanted boots. It's a bit scary to be fair, so these boots will help you out with that bit...
This update can also be found on minecraft.net.
If you find any bugs, please report them on the official Minecraft Issue Tracker.
The spawnpoint command now supports being run in any dimension.
UUIDs stored in NBT are now represented as an array of four integers.
Example: {UUID:[I;1498693494,1027158888,1898994005,860320107]}
Along with that a couple of fields have been renamed:
OwnerUUID
of tamed animals, area effect clouds, evoker fangs and projectiles is now simply Owner
TrustedUUIDs
of foxes is now Trusted
target_uuid
of conduits is now Target
fishing_hook
sub-predicatefishing_hook
Check properties of the fishing hook
to be open water if there are no blocks above water and no solid underwater blocks around, all water blocks are source blocks and there are no bubble columns.
in_open_water
- Matches whether the fishing location is open water fishing or not. A fishing location is consideredIn this snapshot you can be on your merry way across the beautiful Soulsand Valleys with your freshly enchanted boots. It's a bit scary to be fair, so these boots will help you out with that bit...
Redstone is one of the coolest things in Minecraft and many of you are members of communities that focus on building mind-blowing redstone contraptions, farms, computing machines and 256x256 piston doors.
A lot of redstone behaviour is currently categorized as “undefined”. This is when the behaviour of the block is not the result of intentional code but is a side-effect of unaccounted edge cases or quirks in the game code.
We know that many players consider undefined behaviour as a very interesting aspect of redstone and enjoy experimenting with and using undefined behaviour to build unique contraptions to share with the rest of the community.
However, the quirks of undefined behaviour can be quite surprising - even when building simple contraptions. This quirkiness can be a negative experience for players new to redstone and may turn them away from this very unique and exciting aspect of Minecraft as well as the vast redstone community behind it.
Our goal is to bring all redstone components up to a level of quality that we are happy with and we will be making adjustments where it makes the most sense for redstone going forward.
Any changes we make will be communicated in the snapshot changelogs and as always we will be reading your feedback and comments.
Never suffer again drudging through Soul Sand Valleys - Soul Speed has you covered!
minecraft:soul_speed_blocks
is any block that the Soul Speed enchantment increases speed onsoul
Today's snapshot is loud! It comes with a bunch of new ambient sound that adds some really nice flavour to the Nether biomes. Apart from this, you now have to use the smithing table to craft Netherite. Happy mining!
We've made some changes to Hoes to make them more useful in the Nether.
Invisible
- makes item frame invisible (item inside frame remains visible)Fixed
- prevents item frame from being broken and the item inside from being removed
target_hit
advancement trigger type Conditions:
signal_strength
matches the signal strength output from the block on hitprojectile
matches the projectile entityshooter
matches the player who shot or threw the projectile
Today is a sad day for Obsidian... It's crying. If you're not into crying you could always take aim at the new Target that we've added.
This update can also be found on minecraft.net.
If you find any bugs, please report them on the official Minecraft Issue Tracker.
Because let’s face it, your aim could use some practice
Some blocks have been renamed. Turns out singular Fungus in the Nether attempted to falsely present itself as many Fungi - very sneaky!
dripping_obsidian_tear
, falling_obsidian_tear
, landing_obsidian_tear
IsImmuneToZombification
data value that prevents them from zombifying in the overworldA wild snapshot appears! To tell you the truth, we hadn't actually planned to do a snapshot this week, but the Villagers were in dire need of neurosurgery.
Ahh, a freshly baked snapshot! It undoubtedly smells better than the piglins that we just added...
Many new block types have been added!
Crimson Forests can now be found in the Nether!
Soulsand Valleys can now be found in the Nether!
Warped Forests can now be found in the Nether!
locatebiome
commandNew command that locates a specified biome. Useful in creative mode when you're
looking for a specific biome and don't want to fly around randomly searching for it.
Syntax: locatebiome <biome>
Parameters:
biome
- The id of the biome to findWe're buzzing with excitement! Can someone tell Cory to stop making bee puns now?
In real life, bees dance in their nests to show other bees where flowers are!
Sticky. Very sticky!
Organic, gluten-free, delicious locally-farmed honey!
Disclaimer: Cannot be used to comb your hair
BYOH - Build Your Own Honeycomb
Things from other editions of Minecraft have arrived to Java Edition!
spectate
commandexecute if
commandschedule
command to allow scheduling function multiple timesenchantments
now only matches enchantments on item itself - it can no longer be used for enchanted booksstored_enchantments
player
Entity predicate now accepts player
field, which checks player properties. Fails when entity is not player.
level
- range of allowed player levelsgamemode
- same values as /gamemode
commandstats
- list of statistics to match. Entry fields: type
(like minecraft:custom
), stat
(like minecraft:sneak_time
) and value
(int range)recipes
- map of recipe ids. Boolean value tells if it should or should not be known to playeradvancements
- map of advancement ids. If value is boolean, checks if advancement is done. If value is object, checks completion of criterateam
Entity predicate now accepts team
field, which matches team name.
block
and fluid
Predicate also accepts block
and fluid
sub-predicate. Available fields:
block
/fluid
- exact block/fluid id to matchtag
- block/fluid tag to matchnbt
- matcher for block entity NBT (only for blocks)state
- map of name-value properties. Value can be integer, boolean or string or object with optional min
and max
propertieslight
Predicate now accepts light
sub-predicate. Object has one integer range - light
that matches visible light (max(sky-darkening,block)
).
copy_to_clipboard
action to clickEvent
{"nbt": <path>, "storage":"<resource id>"}
. NBT storage can be manipulated with commands like /data merge storage <resource id> ...
data
storage
as target. This is general-purpose, key-value storageexecute if predicate
New subcommand evaluates custom predicates (defined in predicates
directory of datapack).
schedule
/schedule ... [append|replace]
(/schedule ...
defaults to replace
)/schedule clear <id>
to remove existing schedules (returns number of removed schedules)The effect clear
command now defaults to @s
if no target argument is given.
New selector parameter predicate
allows to apply custom custom predicate (defined in predicates
directory of datapack).
The kill
command now defaults to @s
if no target argument is given.
New command that makes a player in spectator mode spectate an entity. Syntax: spectate [target] [player]
Parameters:
player
- The player that should spectate the target. Must be in spectator mode. If omitted, @s
is usedtarget
- The target to spectate. If omitted, makes the player stop spectatingCondition part of loot tables can now be defined as separate data pack resource in predicates
directory.
location_check
New parameters added:
offsetX
, offsetY
, offsetZ
- optional offsets to locationtime_check
conditionNew condition that checks day time.
value
- range of accepted valuesperiod
- if present, time will be modulo-divided by this value (for example, if set to 24000, value
will operate on time of day)reference
Includes condition defined in predicates
directory of datapack, selected with name
parameter.
copy_state
Copies state properties from dropped block to BlockStateTag
in dropped item.
block
- source of properties (block id)properties
- list of property names. All must be present on block
In an effort to help make modding the game easier, we have decided to publish our game obfuscation maps with all future releases of the game. This means that anyone who is interested may deobfuscate the game and find their way around the code without needing to spend a few months figuring out what's what. It is our hope that mod authors and mod framework authors use these files to augment their updating processes that they have today. These mappings will always be available, instantly and immediately as part of every newly released version. This does not, however, change the existing restrictions on what you may or may not do with our game code or assets. The links to the obfuscation mappings are included as part of the version manifest json, and may be automatically pulled for any given version. Prefixed to every obfuscation map is the following legal disclaimer:
(c) 2019 Microsoft Corporation. All rights reserved. This information is provided "as-is" and you bear the risk of using it. This information does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this information for your internal, reference purposes. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Few advancements and loot table predicates that used block state properties (location
, block_state_property
, enter_block
, placed_block
) can now match ranges (by replacing single value with {"min": ..., "max": ...}
).
Also, block type is now optional in those predicates - so for example it is not possible to match any crop with age
property in certain range.
for f in *.png; do convert "$f" -alpha copy tmp.png && composite tmp.png -compose copy-opacity ../shield_base.png tmp2.png && convert tmp2.png -fill "rgba(0,1,0,1)" -draw "rectangle 0,0 1,63" -draw "rectangle 2,0 63,1" -draw "rectangle 2,22 64,64" -draw "rectangle 12,2 64,64" -fill none -draw "matte 0,0 floodfill" tmp3.png && mv tmp3.png "$f" && rm tmp.png tmp2.png; done
They call it exotic. Which is just people talk for awesome. Which it is, which is why we're so happy that we added it to the game.
Do a barrel roll!
Ding dong, who's there? A RAID? GET INSIDE!!!
Come one, come all, and toast your buns around the campfire!
Anti-fusion!
As it turns out, you guys have GREAT suggestions!
This is such a fearsome weapon that it makes us quiver!
Oh my, a bunch of new blocks!
We've been dyeing to tell you more about this!
Get your green fingers!
What do they say? ...but really, what do they say?
Wait, another new block!?
Ermahgerd berks... holder... thingy?
Bröther, may I have some lööm?
Even more! Can you believe it?!
The extraordinary Minecraft Texture Update has been available at minecraft.net for quite a while, and now it’s finally available by default in the game
We bring pandamonium!
The pen is mightier than the sword. Unless you're fighting a pillager!
Here to make your life easy! No strings attached.
Hmmmm...
BlockStateTag
- contains map of block state properties to be overwritten after block is placed (note: item model is not affected).#
)custom_model_data
, backed directly by CustomModelData
integer NBT fieldtags\entity_types\
tick
EntityTag
(same as spawn eggs)'
as string quotes. Inside '
-quoted string "
is handled as normal character and requires no escaping (and vice-versa) - so now it's easier to input text components in NBTloot
command - evaluates loot commands items in various contextsschedule
command for delaying execution of functionstime set
, time add
and schedule function
can now have units (t
- ticks, s
- seconds, d
- days). Fractions are allowed (for example 0.5d
), but result will be rounded to nearest integer.teammsg
command - Sends a message to all players on your team.#baz
)is_lightning
equipment
fieldhead
, chest
, legs
, feet
, mainhand
, offhand
flags
fieldis_on_fire
, is_sneaking
, is_sprinting
, is_swimming
, is_baby
{"nbt": <path>, "block":"<coordinates>"}
, where <coordinates>
field uses same format as /setblock
{"nbt": <path>, "entity":<selector>}
, where selector
field uses same format as /kill
interpret
is present and set to true
, contents of selected tags will be interpreted as chat components,
type
field in @
selectors now accepts entity type tags (type=#foo
and type=!#bar
)/replaceitem
data
data modify <block or entity> <path> <operation> <source>
set
- replaces valueinsert <index> | prepend | append
merge
from <block or entity> <path>
- copies value from existing tagvalue <nbt>
- uses NBT literalexecute
execute if data <block or entity> <path>
(and execute unless
)if
) or zero(unless
) countloot
General syntax: loot <target> <source>
fish <loot table id> <fishing location> [tool <item>|mainhand|offhand]
- uses fishing contextloot <loot table id>
- uses loot chest context (can be also used for advancement awards and cat gifts)kill <entity selector>
- simulates entity dropsmine <mining location> [tool <item>|mainhand|offhand]
- simulates block dropsspawn <position>
- drops in worldreplace
- works similar to /replaceitem
. If count
is missing, command will try to place all returned items. If count
is higher than number of items, remaining slots will be cleared.entity <entity selector> <start slot> [<count>]
- replaces range of slots.block <position> <start slot> [<count>]
- replaces range of slots.give <player selector>
- inserts items into player's inventory (similar to /give
)insert <position>
- inserts items into container (similar to shift left-click)schedule
Schedules function or tag to run in <time>
gametime ticks. Returns trigger time.
Any tag or function can be scheduled only once. Calling this command for already scheduled function or tag will replace older record.
teammsg
General syntax: teammsg <message>
Sends <message>
to all players on the team of the player who runs the command. Available to all players on a team.
tm <message>
Items[{Slot:10b}]
will either found element in Items
for slot 10 or create new one[{k1:v1,k2:v2}]
to match objects in list that have matching fields{k1:v1,k2:v2}
to match objects (selects 0 or 1 elements, mostly as safeguard against mismatched entries){}
is valid path for referencing root object[index]
to select element from end (i.e. [-1]
is last element, [-2]
second to last, etc)[]
to select all elements from listserver.properties
difficulty
and gamemode
settings now accept string names (integer values are still allowed as legacy option)eula.txt
is not set--help
. Not going to tell you what it does.initSettings
initializes eula.txt
and server.properties
with defaults, then exitsWe are de-lighted to have a new light engine!
Note: Some functions and predicates (like set_name
, set_lore
, fill_player_head
, entity_properties
) accept entity target parameter. Possible values are:
loot_tables/blocks/
)dynamic
, tag
, alternatives
, sequence
, group
apply_bonus
, explosion_decay
, copy_name
, limit_count
, set_contents
, set_loot_table
, set_lore
, fill_player_head
, copy_nbt
survives_explosion
, block_state_property
, table_bonus
, match_tool
, damage_source_properties
, location_check
, weather_check
and two special modifiers: inverted
and alternative
constant
, uniform
, binomial
). If omitted, defaults to uniformtype
, used to validate function usage (available types: empty
, chest
, fishing
, entity
, advancement_reward
, block
). Using function that references data not available in given context (for example, block state in fishing table) will cause warningdirect_killer
- allows access to projectiles etc.this
- usually entity performing actionkiller_player
killer
- primary source of damagedirect_killer
- direct source of damage (may be different than killer
- for example, when killing with bow, killer
will be bow user, while direct_killer
will be arrow entity)entity_properties
Now uses same predicate syntax as advancements (like player_killed_entity
). Parameters are now described in predicate
field. If this field is empty object, any entity is accepted (but still has to be present).
set_name
Added new parameter entity
(see note about entity target parameter for values). If present, name will be resolved with that entity (allows using selector and score components).
alternative
Joins conditions from parameter terms
with "or" ("disjunction").
block_state_property
Check properties of block state.
block
- id of block. Test will fail, if broken block does not matchproperties
- map of property:value
pairsdamage_source_properties
Checks damage source. Same syntax as entity_properties
, but uses damage source predicate (see player_hurt_entity
advancement trigger).
inverted
Inverts condition from parameter term
location_check
Applies advancement location predicate.
predicate
- predicate applied to location. Uses same structure as advancements.match_tool
Checks tool (available for block breaking and fishing).
predicate
- predicate applied to item. Uses same structure as advancements.survives_explosion
Return true with 1/explosion radius
probability.
table_bonus
Passes with probability picked from table, indexed by enchantment level.
enchantment
- id of enchantmentchances
- list of probabilities for enchantment level, indexed from 0weather_check
No surprise here.
raining
- optional booleanthundering
- optional booleanalternatives
Tests conditions of child entries and executes first that can run. Has no weight or quality, but may have conditions.
dynamic
Gets block specific drops. Currently implemented:
minecraft:contents
- block entity contents, for shulker boxesminecraft:self
- for banners and player skullsgroup
Executes child entries when own conditions pass. Has no weight or quality.
sequence
Executes child entries until first one that can't run due to conditions. Has no weight or quality, but may have conditions.
tag
Adds contents of item tag. Fields:
name
- id of tagexpand
- if false, entry will return all contents of tag, otherwise entry will behave as multiple item entries (all with same weight and quality)apply_bonus
Applies one of predefined bonus formulas.
enchantment
- id for enchantment level used for calculationformula
- type of used bonus formulaparameters
- values required for formula (depend on type)binomial_with_bonus_count
:extraRounds : int
, probability : float
n <- level + extraRounds
and p <- probabilty
uniform_bonus_count
bonusMultiplier
bonusMultiplier * level
ore_drops
count * (max(0, random(0..1) - 1) + 1)
copy_name
Copies display name from block entity to item (see enchanting table behaviour)
copy_nbt
Copies NBT from source to item tags.
source
- may be this
, killer
, killer_player
or block_entity
ops
- list of copy operations:source
- source path (same as /data
commands)target
- target pathop
- replace
, append
(for lists), merge
- for compound tagsexplosion_decay
Applies flat chance (equal to 1/explosion radius
) for every item to be destroyed (items in stack are processed separately)
fill_player_head
Copies player profile info to player head item.
entity
- source of profile (see note about entity target parameter for values, will do nothing if it's not player).limit_count
Limits count of every item stack to range.
limit
:min
- optionalmax
- optionalset_contents
Populates BlockEntityTag.Items
(works for shulker boxes, chests, etc.) with items from entries.
entries
- list of entries (same as in pool)set_loot_table
Sets BlockEntityTag.LootTable
and BlockEntityTag.LootPoolSeed
tags.
name
- id of loot tableseed
- seed (if omitted or 0, LootPoolSeed
will not be set)set_lore
Adds or replaces lore lines.
lore
- list of lines (in chat component format) to be addedreplace
- if true, previous lore is erasedentity
- if present, name will be resolved with selected entity (see note about entity target parameter for values).doPatrolSpawning
and doTraderSpawning
game rules that control spawning of patrols and wandering traders, respectivelygui_light
option in block models to allow controlling light when rendering model as item in GUIside
, model will be rendered like block. If set to front
, model is shaded like flat itemdoPatrolSpawning
and doTraderSpawning
game rules that control spawning of patrols and wandering traders, respectivelygui_light
option in block models to allow controlling light when rendering model as item in GUIside
, model will be rendered like block. If set to front
, model is shaded like flat itemHappy Friday! We're now releasing 1.16.5, which fixes two critical stability issues. We are not releasing more information about these issues at this time to protect servers that have not yet updated.
This release is network compatible with 1.16.4 - this means you do not need to upgrade your game right away to play on an upgraded server. However, we highly encourage all server owners to update as soon as possible to apply the stability fixes.
Next week, we aim to release the next snapshot of Caves & Cliffs. Stay tuned!
We have now released 1.16.2 Release Candidate 2, fixing a few critical issues. If no further critical issues are found, we expect this version to be the full release of 1.16.2 tomorrow.
We have now released 1.16.2 Release Candidate 1, fixing even more stability issues. If no further critical issues are found, we expect this version to be the full release of 1.16.2 on Tuesday next week.
We have now released 1.16.2 Pre-release 3, fixing some stability issues.
We have now released the second pre-release for Minecraft 1.16.2, in which another round of bugs have been squished!
execute in
now respects dimension scalingIt's time for pre-releases for Minecraft Java Edition 1.16.2!
From now on you should mostly see bug fixes leading up to the full release of 1.16.2 which we expect to happen in a few weeks.
namespace/<type>/resource.json
)Today we're releasing Snapshot 20w30a for Minecraft Java Edition in which we've tweaked Bastion Remnants, and given you the ability to have lanterns under water.
Entries in tags can now be marked as optional. Failure to resolve optional entries does not prevent the whole tag from loading.
Example:
{
"replace": false,
"values": [
"#minecraft:beds", // existing syntax
{ "id":"#missing:tag", "required": false }, // optional sub-tag entry
"minecraft:anvil", // existing syntax
{ "id":"minecraft:stone_button", "required": true }, // new syntax for required tags
{ "id":"missing:block", "required": false } // optional single-element entry
]
}
Today we're releasing Snapshot 20w29a for Minecraft Java Edition. We found some bugs to squash, but also snuck in a technical change or two!
Added angle parameter for setting the default facing angle of a respawning player.
Syntax: spawnpoint [targets] [pos] [angle]
Syntax: setworldspawn [pos] [angle]
New parameters:
angle
: Floating point angle in degrees. Supports the relative ~
modifierworldgen/noise_settings
can now contain noise configurationsThis week's snapshot introduces experimental support for custom biomes in data packs. This work has involved redoing some of the internal plumbing of things behind the scene, so it might be a bit leaky. We hope no important parts drip out, but if they do, pick them back up for us, please.
As always, make sure to make backups if you try a world in a snapshot.
worldgen
folder in data packsworldgen/biome
can contain biome definitionsworldgen/configured_carver
can contain definitions for world carver settingsworldgen/configured_feature
can contain definitions for feature placementsworldgen/configured_structure_feature
can contain definitions for structure placementsworldgen/configured_surface_builder
can contain definitions for surfacesworldgen/processor_list
can contain sets of block processorsworldgen/template_pool
can contain pool definitions for jigsaw structures
rate-limit
settings in server.properties
It's time for another snapshot cycle as we make our way towards 1.16.2! This snapshot introduces the Piglin Brutes, and you might have heard about them in a Bedrock beta already.
The Piglin Brutes will be the only feature addition of 1.16.2, the rest of these snapshots will be focused on fixing bugs.
pack.png
as pack iconSnapshots are available for Minecraft Java Edition. To install the snapshot, open up the Minecraft Launcher and enable snapshots in the "Installations" tab.
Testing versions can corrupt your world, please backup and/or run them in a different folder from your main worlds.
Cross-platform server jar:
We're now releasing 1.16.1 for Minecraft: Java Edition. This version fixes stability issues with Realms.
Looking for all the new stuff in the Nether Update release? You can check out this post to read about all the new things!
To install the release, open up the Minecraft Launcher and click play! Make sure your Launcher is set to the "Latest Release" option.
Cross-platform server jar:
Report bugs here:
Want to give feedback?
One does not simply walk into the Nether, but it seems that's what everyone is about to do anyway...
Today we're releasing the full Nether Update in all its glory! Traverse through familiar, fiery wastes into new unexplored fungal forests, spooky valleys, and deltas brimming with basalt. Dig your way through these biomes and you might be able to find a new curious material, suspiciously titled "ancient debris". What will you make of it (it’s totally not Netherite)?
Fight your way through hordes of Piglins… Or don't! They’re actually pretty cool if you bring some bling. And in case you find yourself in the wrong end of a bargain, make sure that you have access to a functional respawn anchor. I advise you to not use your regular bed unless you’re feeling a bit… “adventurous”.
Enjoy the update!
Monster Hunter
and Monsters Hunted
Serious Dedication
is now awarded for obtaining a Netherite hoeStone Age
advancementThe Parrots and the Bats
and is now required for Two by Two
Bullseye
unlocks when hitting the bullseye of a target block from at least 30 meters awayHidden in the Depths
unlocks when obtaining ancient debrisCover Me in Debris
unlocks when obtaining full Netherite armorCountry Lode, Take Me Home
unlocks when using a compass on a lodestoneWho Is Cutting Onions?
unlocks when obtaining crying obsidianNot Quite "Nine" Lives
unlocks when setting a respawn anchor to the maximumThis Boat Has Legs
unlocks when riding a Strider with a fungus on a stickHot Tourist Destinations
unlocks when visiting all biomes in the NetherThose Were the Days
unlocks when entering a bastionWar Pigs
unlocks when looting a chest in a bastionOh Shiny
unlocks when distracting an angry Piglin with goldBasalt Deltas can now be found in the Nether!
What's made of blackstone and full of Piglins and Hoglins? Bastion remnants!
Some blocks have been renamed. Turns out singular fungus in the Nether attempted to falsely present itself as many fungi – so sneaky!
Many new blocks have been added, and changes have been made to a few existing ones.
Crimson Forests can now be found in the Nether!
A small change has been made to this debug combination.
New F3 debug feature which allows you to switch game modes with traditional "tabbing" functionality.
We've made some changes to hoes to make them more useful in the Nether.
A new block that can help you get your bearings!
Updated anger management for most neutral mobs (polar bear, wolf, bee, Enderman, Piglin, Zombified Piglin).
Universal anger is basically guilt by association. A neutral mob attacked by players will be angry at players in general, regardless of who attacked them. More specifically:
The blockstate, rendering, and behavior of redstone wire are more in line with each other. Redstone will provide power to blocks on all sides it shows a visual connection to, and not do so on those sides without a visual connection.
Shattered remains of ancient Nether portals. Wonder who built them?
Never suffer again drudging through Soul Sand Valleys – Soul Speed has you covered!
Soulsand Valleys can now be found in the Nether!
A new mob living the lava lakes of the Nether.
Because let's face it, your aim could use some practice!
Warped Forests can now be found in the Nether!
target_hit
advancement triggerthrown_item_picked_up_by_entity
advancement triggerplayer_generates_container_loot
advancement triggeritem_used_on_block
advancement triggersafely_harvest_honey
advancement triggerplayer
check to every trigger (except impossible
)locatebiome
command_
LodestonePos
, LodestoneDimension
and LodestoneTracked
data fields. If LodestoneTracked
is zero, the game will skip checking for a Lodestone in the specified positionenable-status
option to the server.properties file which if set to false
will suppress replies to status requests from clients. This makes the server appear offline in the multiplayer screenstrider_one_cm
custom statistics for riding StridersEntity checks in triggers can now use loot table condition syntax. Old notation:
{
"trigger": "minecraft:player_killed_entity",
"conditions": {
"entity": {
"type": "minecraft:blaze"
}
}
}
is now equivalent to:
{
"trigger": "minecraft:player_killed_entity",
"conditions": {
"entity": [
{
"condition": "minecraft:entity_properties",
"predicate": {
"type": "minecraft:blaze"
},
"entity": "this"
}
]
}
}
Note 1: Like in loot tables, all conditions in top level array must be met for whole condition to trigger.
Note 2: To access new functionality, top level element must be JSON array. JSON object are interpreted as old notation.
Full list of extended triggers:
player
in every triggerbred_animals
- parent
, partner
, child
channeled_lightning
- victims
cured_zombie_villager
- zombie
, villager
fishing_rod_hooked
- entity
killed_by_crossbow
- victims
player_killed_entity
- entity
entity_killed_player
- entity
player_hurt_entity
- entity
summoned_entity
- entity
tame_animal
- entity
target_hit
- projectile
villager_trade
- villager
player
, existing contents of location
, slept_in_bed
, hero_of_the_village
, voluntary_exile
can now be placed in location
field instead of top-level object. Old syntax is still supported, but depreciated.location
got a new property smokey
which checks if the location is closely above a campfireentity_properties
got new properties vehicle
and targetedEntity
which match the vehicle or the entity targeted by a mobtarget_hit
trigger typesignal_strength
matches the signal strength output from the block on hitprojectile
matches the projectile entityshooter
matches the player who shot or threw the projectileitem_used_on_block
trigger typeitem
matches the thrown item which was picked upentity
matches the entity which picked up the itemplayer_generates_container_loot
trigger typeloot_table
matches the resource location of the generated loot tableitem_used_on_block
trigger typelocation
matches the location at the center of the block the item was used onitem
matches the item used on the blockAttributes have been moved to game registry. That means few changes: Renames:
generic.maxHealth
🡆 generic.max_health
zombie.spawnReinforcements
🡆 zombie.spawn_reinforcements
horse.jumpStrength
🡆 horse.jump_strength
generic.followRange
🡆 generic.follow_range
generic.knockbackResistance
🡆 generic.knockback_resistance
generic.movementSpeed
🡆 generic.movement_speed
generic.flyingSpeed
🡆 generic.flying_speed
generic.attackDamage
🡆 generic.attack_damage
generic.attackKnockback
🡆 generic.attack_knockback
generic.attackSpeed
🡆 generic.attack_speed
generic.armorToughness
🡆 generic.armor_toughness
BlockStates
in Sections
elements no longer contain values stretching over multiple 64-bit fields.
If number of bits per block is not power of two (i.e. single 64-bit value can't fill whole number of blockstates) some bits will not be used.
For example, if single block state takes 5 bits, highest 4 bits of every 64-bit field will be unused.
That also means slight increase in storage size (in case of 5 bits, from 320 to 342 64-bit fields).
minecraft:climbable
is now a block tag that allows datapacks to determine which blocks are, well, climbableminecraft:soul_speed_blocks
is any block that the soul speed enchantment increases speed onstyle.hoverEvent
parameter now has parameter contents
, with contents depending on type:show_text
- chat componentshow_item
- either item id or object with fields id
, count
, and tag
(with last one being serialized NBT)show_entity
- object with fields: id
(UUID), name
(chat component), and type
(entity type resource location)value
argument is now deprecated (but still supported)Adds modifies attribute on single entity. Possible syntax: Parameters:
attribute <target> <attribute> get [<scale>]
- get total value of attributeattribute <target> <attribute> base set <value>
- sets base valyeattribute <target> <attribute> base get [<scale>]
- get base valueattribute <target> <attribute> modifier add <uuid> <name> <value> add|multiply|multiply_base
- adds modifier (fails if modifier is already present)attribute <target> <attribute> modifier remove <uuid>
- removes modifierattribute <target> <attribute> modifier value get <uuid> [<scale>]
- get value of modifiertarget
- single entity (note: only players, armor stands and mobs have attributes)attribute
- name of attribute (like minecraft:generic.max_health
)name
- string (in optional quotes) describing human-readable name of modifiervalue
- floating point value (note: certain attributes have limits on final value, so your change might not be noticeable)New command that locates a specified biome. Useful in creative mode when you're
looking for a specific biome and don't want to fly around randomly searching for it.
Syntax: locatebiome <biome>
Parameters:
biome
- The id of the biome to findThe spawnpoint command now supports being run in any dimension.
Added an optional argument to specify maximum height.
New syntax: spreadplayers <center> <spreadDistance> <maxRange> [under <maxHeight>] <respectTeams> <targets>
maxHeight
- Specifies the maximum height for resulting positionsUUIDs stored in NBT are now represented as an array of four integers.
Example: {UUID:[I;1498693494,1027158888,1898994005,860320107]}
Along with that a couple of fields have been renamed:
OwnerUUID
of tamed animals, area effect clouds, evoker fangs and projectiles is now simply Owner
TrustedUUIDs
of foxes is now Trusted
target_uuid
of conduits is now Target
--safeMode
option to server to load only with vanilla datapackIt is now possible to control at what range the server sends data about entities to clients.
entity-broadcast-range-percentage
server property controlling how close entities need to be before being sent to clients. Higher values means entities are visible further away from players but cause more network traffic. Specifies percentage of default value, so for example 50
specifies half of the default rangeForce Unicode
option now switches between normal and alternative font (called uniform.json
) – no reload neededRegion files are now opened in synchronous mode to prevent data loss and corruption after crash. For performance reasons this feature is disabled by default on non-Windows clients. Status of this feature can be manually controlled by following options:
sync-chunk-writes
within server.properties
syncChunkWrites
within options.txt
level.dat
now uses randomly-named temporary files (instead of using level.dat_new
every time)player/*.dat
are now saved in a way similar to level.dat
(including leaving .dat_old
files)Invisible
- makes item frame invisible (item inside frame remains visible)Fixed
- prevents item frame from being broken and item inside from being removedJoint type
to describe if attached piece can be rotated (rollable
) or not (aligned
)target_pool
has been renamed to pool
attachement_type
has been split into name
(on parent block) and target
(on child block)It is now possible to monitor the server tick times though JMX. The rationale for this is that JMX is a well known and supported monitoring technology with existing integrations and tools. This enables server admins to hook alerts and graphing tools using ordinary JMX clients and dashboards.
enable-jmx-monitoring
has been added to the server.properties file which if set to true
will expose an MBean with the Object name net.minecraft.server:type=Server
and two attributes averageTickTime
and tickTimes
exposing the tick times in millisecondsfishing_hook
sub-predicateCheck properties of the fishing hook
in_open_water
- Matches whether the fishing location is open water fishing or not. A fishing location is considered to be open water if the fishing hook is in water, there are no blocks besides lily pads above water and all water blocks are source blocks with no solid underwater blocks aroundThere's now a smithing
recipe type. Recipes of this type are used in the smithing table to upgrade one item type into another type, maintaining tags.
base
- Ingredient specifying an item to be upgradedaddition
- Ingredient specifying valid items to trigger the upgraderesult
- Item specifying the resulting type of the upgraded itemcolor
property can now contain RGB value prefixed by #
. For example #55ff55
will result in the same color as green
Chat component style now supports font
property, which is resource location for font in resource pack. No entry is equivalent to minecraft:default
Nearly 500 bugs fixed in this release.
Out with the old, and in with the new! Today we're introducing a new naming convention (well, it's been a while) for Minecraft Java Edition. Previously, the last pre-release was, in fact, the release candidate, but we're now making that more clear by changing the name to be "release candidate". This means that if there are no major issues following this release, no further changes will be done before the full release.
Speaking of the full release: In case you've been living under a rock (it's Minecraft, so that's OK), we're releasing the Nether Update on Tuesday, June 23. That's next week!
Squish, squash is the sound bugs make when you squish them. Or was it squash them? Anyway, here's pre-release 8 with more bug fixes.
We've now released pre-release 7 to fix a few more bugs.
Start your new week by not slipping and sliding on blocks that should not be slippy or slidey - we've now released pre-release 6 for Minecraft Java Edition 1.16.
Added player_interacted_with_entity
advancement trigger
item
matches the item which was in the player's hand during interactionentity
matches the entity which was interacted withSpend your weekend with this brand new fifth pre-release for Minecraft Java Edition 1.16 - it has a check to warn you not to try to run with too high graphics settings for your system and a bunch of bug fixes.
We've now released Minecraft 1.16 Pre-release 4, with tweaked spawn rates and another round of bug fixes.
Another pre-release is now available for Minecraft: Java Edition! This pre-release fixes a bunch of bugs, but we also made a few minor tweaks. The Nether Update is closing in and we aim to release the update within a couple of weeks.
Region files are now only opened in synchronous mode on Windows, not on other operating systems. Status of this feature can be manually controlled by following options:
sync-chunk-writes
within server.properties
syncChunkWrites
within options.txt
We've now released 1.16 pre-release 2, fixing some crashes. Note that worlds opened in 1.16 pre-release 1 are corrupt and will not work in any way in 1.16 pre-release 2 (this includes using the re-create world button). Please restore an older backup or create a brand new world to play in this pre-release.
It's time for 1.16 pre-releases!
Going forward you should mostly see bugs being fixed. Additionally, pre-releases doesn't necessarily tend to our usual cadence of releasing on Wednesdays, so keep an eye out!
There's now a smithing
recipe type. Recipes of this type are used in the smithing table to upgrade one item type into another type, maintaining tags.
base
- Ingredient specifying an item to be upgraded.addition
- Ingredient specifying valid items to trigger the upgrade.result
- Item specifying the resulting type of the upgraded item.It has been a busy week for us but we still wanted to squeeze out a snapshot as we've been busy squashing a bunch of bugs.
We've included some experimental changes to graphics rendering in this snapshot, which might reveal some issues on a small number of older graphics cards.
If do you find any new graphical bugs then please report them to the bug tracker with the make and model of your graphics card as well as which operating system you are using
--safeMode
option to server to load only with vanilla datapack
In this snapshot, we're adding support for custom world settings and custom dimensions. This is an early release to hear your feedback about this feature - do note that this support is considered experimental and unsupported. Any custom world settings may change from one snapshot to the next, and worlds using custom settings will be clearly marked as experimental in your worlds list.
spreadplayers
command
spreadplayers
Added an optional argument to specify maximum height.
New syntax: spreadplayers <center> <spreadDistance> <maxRange> [under <maxHeight>] <respectTeams> <targets>
maxHeight
- Specifies the maximum height for resulting positions
locate
This week we are releasing a bit of a smaller snapshot. However, if you're into switching game modes and completing advancements, this is right up your alley!
Edit: We've now released 20w20b to fix a bug
New F3 debug feature which allows you to switch game modes with traditional "tabbing" functionality.
A small change has been made to this debug combination.
Hidden in the Depths
unlocks when obtaining Ancient DebrisCover Me in Debris
unlocks when obtaining full Netherite armorCountry Lode, Take Me Home
unlocks when using a Compass on a LodestoneWho Is Cutting Onions?
unlocks when obtaining Crying ObsidianNot Quite "Nine" Lives
unlocks when setting a Respawn Anchor to the maximumThis Boat Has Legs
unlocks when riding a Strider with a Fungus on a StickHot Tourist Destinations
unlocks when visiting all Biomes in the NetherThose Were the Days
unlocks when entering a BastionWar Pigs
unlocks when looting a chest in a BastionOh Shiny
unlocks when distracting an angry Piglin with gold
Bullseye
advancement now unlocks when hitting the bullseye of a target block from at least 30 meters awaySerious Dedication
advancement is now awarded for obtaining a Netherite HoeStone Age
advancementThe Parrots and the Bats
and is now required for Two by Two
thrown_item_picked_up_by_entity
advancement triggerplayer_generates_container_loot
advancement triggeritem_used_on_block
advancement triggersafely_harvest_honey
advancement trigger
item_used_on_block
trigger typeProperties:
item
matches the thrown item which was picked upentity
matches the entity which picked up the item
player_generates_container_loot
trigger typeProperties:
loot_table
matches the resource location of the generated loot table
item_used_on_block
trigger typeProperties:
location
matches the location at the center of the block the item was used onitem
matches the item used on the block
location
got a new property smokey
which checks if the location is closely above a campfireentity_properties
got new properties vehicle
and targetedEntity
which match the vehicle or the entity targeted by a mob
This snapshot contains another round of tweaks and bugfixes, but also quality of life features such as strider distancing. It might not be as important as social distancing, but we hope you'll like it. Stay safe and wash your hands!
In this snapshot we made some changes to Redstone wire and we fixed a bunch of bugs.
The blockstate, rendering and behavior of redstonewire are more in line with each other. Redstone will provide power to blocks on all sides it shows a visual connection to, and not do so on those sides without a visual connection.
enable-status
option to the server.properties file which if set to false
will suppress replies to status requests from clients. This makes the server appear offline in the multiplayer screen.
It is now possible to control at what range the server sends data about entities to clients.
entity-broadcast-range-percentage
server property controlling how close entities need to be before being sent to clients. Higher values means entities are visible further away from players but cause more network traffic. Specifies percentage of default value, so for example 50
specifies half of the default range.
player
check to every trigger (except impossible
)
Entity checks in triggers can now use loot table condition syntax. Old notation:
{
"trigger": "minecraft:player_killed_entity",
"conditions": {
"entity": {
"type": "minecraft:blaze"
}
}
}
is now equivalent to:
{
"trigger": "minecraft:player_killed_entity",
"conditions": {
"entity": [
{
"condition": "minecraft:entity_properties",
"predicate": {
"type": "minecraft:blaze"
},
"entity": "this"
}
]
}
}
Note 1: Like in loot tables, all conditions in top level array must be met for whole condition to trigger.
Note 2: To access new functionality, top level element must be JSON array. JSON object are interpreted as old notation.
Full list of extended triggers:
player
in every triggerbred_animals
- parent
, partner
, child
channeled_lightning
- victims
cured_zombie_villager
- zombie
, villager
fishing_rod_hooked
- entity
killed_by_crossbow
- victims
player_killed_entity
- entity
entity_killed_player
- entity
player_hurt_entity
- entity
summoned_entity
- entity
tame_animal
- entity
target_hit
- projectile
villager_trade
- villager
player
, existing contents of location
, slept_in_bed
, hero_of_the_village
, voluntary_exile
can now be placed in location
field instead of top-level object. Old syntax is still supported, but depreciated.
This week's snapshot brings you some tweaks, bugfixes, and technical changes!
We also have a survey up so that you can tell us what you think about the Nether Update. You can find it by clicking here. We would very much appreciate if you could take the time and fill it out.
attribute
commandlevel.dat
now uses randomly-named temporary files (instead of using level.dat_new
every time)player/*.dat
are now saved in a way similar to level.dat
(including leaving .dat_old
files)BlockStates
in Sections
elements no longer contain values stretching over multiple 64-bit fields. If number of bits per block is not power of two (i.e. single 64-bit value can't fill whole number of blockstates) some bits will not be used.
For example, if single block state takes 5 bits, highest 4 bits of every 64-bit field will be unused. That also means slight increase in storage size (in case of 5 bits, from 320 to 342 64-bit fields).
attribute
Adds modifies attribute on single entity. Possible syntax: Parameters:
attribute <target> <attribute> get [<scale>]
- get total value of attributeattribute <target> <attribute> base set <value>
- sets base valyeattribute <target> <attribute> base get [<scale>]
- get base valueattribute <target> <attribute> modifier add <uuid> <name> <value> add|multiply|multiply_base
- adds modifier (fails if modifier is already present)attribute <target> <attribute> modifier remove <uuid>
- removes modifierattribute <target> <attribute> modifier value get <uuid> [<scale>]
- get value of modifiertarget
- single entity (note: only players, armor stands and mobs have attributes)attribute
- name of attribute (like minecraft:generic.max_health
)name
- string (in optional quotes) describing human-readable name of modifiervalue
- floating point value (note: certain attributes have limits on final value, so your change might not be noticeable)style.hoverEvent
parameter now has parameter contents
, with contents depending on type:show_text
- chat componentshow_item
- either item id or object with fields id
, count
and tag
(with last one being serialized NBT)show_entity
- object with fields: id
(UUID), name
(chat component) and type
(entity type resource location)value
argument is now deprecated (but still supported)color
property can now contain RGB value prefixed by #
. For example #55ff55
will result in the same color as green
.
Chat component style now supports font
property, which is resource location for font in resource pack. No entry is equivalent to minecraft:default
.
Force Unicode
option now switches between normal and alternative font (called uniform.json
) - no reload neededBastion remnants, or "home sweet home" as Piglins would call them, are finally here! This snapshot introduces the home of the Piglins. If you scour the world you might also find ruins of some old portals.
What's made of Blackstone and full of piglins and hoglins? Bastion Remnants!
Shattered remains of ancient nether portals. Wonder who built them?
It is now possible to monitor the server tick times though JMX. The rationale for this is that JMX is a well known and supported monitoring technology with existing integrations and tools.
This enables server admins to hook alerts and graphing tools using ordinary JMX clients and dashboards.
enable-jmx-monitoring
has been added to the server.properties file which if set to true
will expose an MBean with the Object name net.minecraft.server:type=Server
and two attributes averageTickTime
and tickTimes
exposing the tick times in milliseconds.It's a wonderful day here in Sweden today! The sun is shining and spring is in the air, and when I say "spring" I mean pollen. Let's remedy that by 1) Staying indoors and 2) Introduce an all new biome with a grain of basalt, blackstone, and magma cubes! To spice it up, we also have some new fine tunes for you to listen to while traversing the Nether. Enjoy the snapshot!
Basalt Deltas can now be found in the Nether!
We're happy to announce that we've added three new tracks for the upcoming Nether Update, all composed by the very talented Lena Raine.
Some words from Lena:
Take a portal to the Nether, and stay awhile and listen...
_
Even though we just added every update imaginable to Minecraft, we thought that it might be good to pick up the Nether Update snapshots from where we left off. This snapshot introduces the Zoglins!
LodestonePos
, LodestoneDimension
and LodestoneTracked
data fields. If LodestoneTracked
is zero, the game will skip checking for a Lodestone in the specified position.
Attributes have been moved to game registry. That means few changes:
generic.maxHealth
🡆 generic.max_health
zombie.spawnReinforcements
🡆 zombie.spawn_reinforcements
horse.jumpStrength
🡆 horse.jump_strength
generic.followRange
🡆 generic.follow_range
generic.knockbackResistance
🡆 generic.knockback_resistance
generic.movementSpeed
🡆 generic.movement_speed
generic.flyingSpeed
🡆 generic.flying_speed
generic.attackDamage
🡆 generic.attack_damage
generic.attackKnockback
🡆 generic.attack_knockback
generic.attackSpeed
🡆 generic.attack_speed
generic.armorToughness
🡆 generic.armor_toughness
A small release to fix a few critical bugs.