Technical
- The data pack format is now 10
- The resource pack format is now 9
- Added the ability for data and resource packs to selectively hide files from packs below them
- Added kill_mob_near_sculk_catalyst advancement trigger
- Added thrown_item_picked_up_by_player advancement trigger
- Added allay_drop_item_on_block advancement trigger
- Added avoid_vibration advancement trigger
- Removed field location from triggers location, slept_in_bed, hero_of_the_village and voluntary_exile - it was handled exactly the same as player.location
- Some mutually exclusive tests in entity predicate (player, fishing_hook, lightning_bolt and catType) have been collapsed to the type_specific field
- Removed the placefeature command
- Added the place command
- The locate command is now moved to locate structure, locatebiome is moved to locate biome
- Added locate poi <type: point_of_interest_type>
- Added the loot table function set_instrument
- The bundled Java runtime has been updated to 17.0.3
- The M1 ARM64 architecture is now supported
- LWJGL library has been updated to version 3.3.1
- Banner patterns available in the Loom can now be controlled with tags (banner_pattern/no_item_required for no pattern item and banner_pattern/pattern_item/* for specific banner pattern items)
- Added new font glyph provider for spaces
- Added new game events
- Renamed some game events
- 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)
- The type of the field Id in the mob effect structure (for example, in the ActiveEffects list on entities) has been changed from byte to int
- Added minecraft:darkness mob effect
- Added sonic_explosion particle
- World presets/types and flat world presets in the “Create World” screen can now be controlled by datapacks
- Servers can now enable Chat Preview, which displays a server-controlled preview above the chat edit box
- Servers can now define different chat style formats for clients
- Added server property max-chained-neighbor-updates to limit the amount of consecutive neighbor updates before skipping additional ones
- Negative values remove the limit
- Servers will now also send an additional icon and MOTD packet after a player has connected
- This allows servers with enable-status=false to set an icon and MOTD for players that successfully connect
Advancements
New triggers
allay_drop_item_on_block
- Triggered when an Allay drops an item on a block
- Conditions:
player
- a predicate for the player who gave the Allay the item to collect
location
- a predicate for the block that the item was dropped on
item
- a predicate for the item that was dropped
avoid_vibration
- Triggered when a vibration event is ignored because the source player is holding the sneak key
- Conditions:
player
- a player for which this trigger runs
kill_mob_near_sculk_catalyst
- Triggered when a player kills an entity next to a Sculk Catalyst
- Conditions:
player
- a predicate for the player killing the entity
entity
- a predicate for the entity that was killed
killing_blow
- a predicate for how the entity was killed
thrown_item_picked_up_by_player
- Triggered when a player picks up an item that was thrown by an entity
- Conditions:
player
- a predicate for the player picking up the item
entity
- a predicate for the entity that threw the item
item
- a predicate for the item
Blending
- Blending now supports 3D biome blending, which blends the underground biomes as well as the overground biomes
- Removed
blending_data.old_noise
, now existence of blending_data
in chunk data determines if a chunk is considered old
- Added
blending_data.min_section
and blending_data.max_section
that determines which section data that will be used for blending
Chat Preview
- Servers can enable Chat Preview by setting
previews-chat=true
in server.properties
- Custom servers can enable or disable chat preview for certain clients by sending a new network packet
- When enabled, a server-controlled preview appears above the chat edit box, showing how the message will look when sent
- A preview is also shown for chat-related commands, such as
/say
and /msg
- This can be used by servers to preview messages with styling applied, such as emojis or chat coloring
- Chat Preview sends chat messages to the server as they are typed, even before they’re sent
- The server then sends back the styled preview in real time
- This allows servers to apply dynamic message stylings while still allowing chat to be securely signed
- A warning screen is shown on the client when joining a server with Chat Preview, and it can be globally disabled in Chat Settings
Chat Types
- Different chat style formats can now be controlled by the server through the
chat_type
registry
- These are synchronized to clients when they join the server
- The translation key or translation format can be defined, like
chat.type.text
or %s says: "%s"
- Chat can be similarly optionally narrated with a custom translation key or format
- The entire message can have formatting applied, such as italics or a specific color (but currently not click or hover events)
Commands
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 work
place jigsaw
works like using the generate button in the UI of a Jigsaw Block
place template
works like using the load button in the UI of a Structure Block
place structure
generates a full structure, matching how structures generate during world generation
feature
: The namespaced id of a configured feature to try to place
structure
: The namespaced id of a structure to try to generate
template
: The namespaced id of a template (“structure block file”) to load and place
pool
: The namespaced id of a template pool to start generating
start
: The namespaced id name of a jigsaw to use as the starting anchor
depth
: The maximum number of jigsaw connections to traverse during placement
pos
: 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 1
seed
: The seed to use for the randomized degradation when integrity is less than 1
Debug
- Added a heap memory allocation metric to the F3 debug screen
- Added estimated GPU utilization percentage to performance profiling metrics and the F3 debug screen
- This is only available for graphics devices that support GPU timer queries
- Removed the debug hotkey that cycles the render distance
Game Events
Added Events
teleport
with a vibration frequency of 5
note_block_play
with a vibration frequency of 6
instrument_play
with a vibration frequency of 15
Combined Events
The following events have been collapsed into block_activate
and block_deactivate
:
block_press
block_unpress
block_switch
block_unswitch
Other Changes
Other miscellaneous changes to game events:
ring_bell
has been removed and replaced with block_change
- Both
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
is
entity_interact
should be dispatched more often when interacting with various mobs
- Added the
dampens_vibrations
block tag that that includes all Wool and Wool Carpet blocks, to indicate blocks that will not trigger when placed, broken, or stepped on
- Renamed item tag
occludes_vibration_signals
to dampens_vibrations
item tag as well
Renamed Events
Some 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
Game Rules
- Added
doWardenSpawning
game rule
Loot Tables
New functions
set_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
Multiplayer Secure Chat Signing
- Chat messages between players are now cryptographically signed
- The message arguments to
/say
, /msg
, /teammsg
, and /me
commands are all also signed
- Players are given a Mojang provided key-pair on startup
- Servers can require players to have a Mojang-signed public key by setting
enforce-secure-profile=true
in server.properties
- Enforcing secure profiles will prevent players without a Mojang-signed public key from connecting
- By default this is set to
false
, allowing players to connect without a Mojang-signed public key
- Static chat styling can now be controlled by the server through the
chat_type
registry, or with server resource packs as before
- Dynamic chat styling can also be controlled by the server, although this is only signed when Chat Preview is enabled
- Clients can prefer to always show the original, signed message by enabling “Only Show Secure Chat” in Chat Settings
- Chat from players still using Mojang Accounts is not signed
- Their messages will not show for players with “Only Show Secure Chat” enabled
- They may be unable to join server with the
enforce-secure-profile
option enabled
Pack filters
- Data and resource packs can have
filter
section in pack.mcmeta
- This section has mandatory field
block
, which is a list of patterns (regular expressions) for namespaces and paths
- If any of the files in packs are added before one with
filter
, 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 it
- Both
namespace
and path
can be omitted
- Missing field matches every value
- For example, adding a pack with this section in
pack.mcmeta
after the vanilla pack will hide all the recipes and advancements defined by the vanilla pack
Example
"filter": {
"block": [
{
"namespace": "minecraft",
"path": "recipes/.*"
},
{
"namespace": "minecraft",
"path": "advancements/.*"
}
]
}
Paintings
- Paintings that are placeable in survival can now be controlled with the
painting_variant/placeable
tag
- Added unused paintings from Bedrock edition (
earth
, wind
, fire
, water
)
- These paintings are not placeable by default, but can be added through a datapack
Point of Interest types
- Removed
unemployed
and nitwit
point_of_interest_type
s
- Added tag
point_of_interest_type/acquirable_job_site
for all job sites seeked by villagers with none
profession
- Added tag
point_of_interest_type/village
for PoI that are part of village
- Added tag
point_of_interest_type/bee_home
for all PoI targeted by bees
Predicates
- The
feature
field in location predicates is now called structure
Entity predicate
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 fields
catType
has been wrapped to match new format and now uses new cat variant names instead of texture names:
- New
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
Example
Before:
"catType": "minecraft:textures/entity/cat/british_shorthair.png"
After:
"type_specific": {
"type_specific": {
"type": "cat",
"variant": "minecraft:british"
}
type_specific
Example
Before:
"lightning_bolt": {
"blocks_set_on_fire": 0
}
After:
"type_specific": {
"type": "lightning",
"blocks_set_on_fire": 0
}
Space glyph provider
- The new glyph provider type
space
is added to allow creation of space-like glyphs
- The new provider has a single argument called
advances
which is a map of codepoint to glyph advance (width)
- The rendering of space glyph is no longer hardcoded (needs to be declared manually in font)
World presets
- New registry types
worldgen/world_preset
and worldgen/flat_level_generator_preset
have been added to configure data-driven presets (like “Amplified” or “Single Biome”)
- Two tags for world presets have been added (
normal
and alternative
) to control which values show on the “World Type” button in the “Create World” screen
- One tag has been added (
visible
) for flat world presets to control the order that elements are displayed in the “Configure Flat World” screen
- World presets can also be used as a value of
level-type
in server.properties
Fixed Bugs in 1.19
Get the Release
To install the release, open up the Minecraft Launcher and click play!
Cross-platform server jar:
Report bugs here:
Want to give feedback?
Dela denna story