Java Edition 25w04a
Edition | |||||||
---|---|---|---|---|---|---|---|
Release date |
January 22, 2025 | ||||||
Type | |||||||
Snapshot for | |||||||
Downloads | |||||||
Obfuscation maps | |||||||
Protocol version |
dec: 1073742055 | ||||||
Data version |
4308 | ||||||
Resource pack format |
49 | ||||||
Data pack format |
64 | ||||||
Minimum Java version | |||||||
|
{ "title": "Minecraft 25w04a", "images": [ "25w04a.jpg", "Java Edition 25w04a.png" ], "rows": [ { "field": "''(link to Java Edition article, displayed as Java Edition)''", "label": "(link to Edition article, displayed as Edition)" }, { "field": "January 22, 2025", "label": "Release date" }, { "field": "(link to Snapshot article, displayed as Snapshot)", "label": "(link to Version types article, displayed as Type)" }, { "field": "(link to Java Edition 1.21.5 article, displayed as 1.21.5)", "label": "Snapshot for" }, { "field": "[https://piston-data.mojang.com/v1/objects/6102118fc64fba5ac798225e1c3618c005e01a51/client.jar Client] ([https://piston-meta.mojang.com/v1/packages/f8cca683be215f9eb1742fb563dd04ca1285508c/25w04a.json .json])<br />[https://piston-data.mojang.com/v1/objects/28a9d30423b1c50da661b95e754be9d5f0c871d4/server.jar Server]", "label": "(link to Tutorial:Installing a snapshot#Manual version installation article, displayed as Downloads)" }, { "field": "[https://piston-data.mojang.com/v1/objects/e39dc5a7ec18957a257fc41a7d49423a1ac7c5c1/client.txt Client]<br />[https://piston-data.mojang.com/v1/objects/663d1da3dff475eb79543d40ad2f18e4cb2c7708/server.txt Server]", "label": "(link to Obfuscation map article, displayed as Obfuscation maps)" }, { "field": " <span style=\"font-size:smaller\"><abbr title=\"decimal\">dec</abbr>: </span>1073742055<br /> <span style=\"font-size:smaller\"><abbr title=\"hexadecimal\">hex</abbr>: </span>400000E7", "label": "(link to Protocol version article, displayed as Protocol version)" }, { "field": "4308", "label": "(link to Data version article, displayed as Data version)" }, { "field": "49", "label": "<span style=\"white-space: normal;\">(link to Pack format#List of resource pack formats article, displayed as Resource pack format)</span>" }, { "field": "64", "label": "<span style=\"white-space: normal;\">(link to Pack format#List of data pack formats article, displayed as Data pack format)</span>" }, { "field": "<span class=\"plainlinks\">[https://en.wikipedia.org/wiki/Java_version_history#Java_SE_21 Java SE 21]</span>", "label": "<span style=\"white-space: normal;\">Minimum Java version</span>" } ], "invimages": [], "footer": "<table style=\"margin: auto; word-break: break-word;\">\n<tr style=\"background: inherit;\">\n<td style=\"padding: 0.4em\" >[[Java Edition 1.21.4|<span style=\"margin-right:-0.35em\">◄</span>◄ 1.21.4]]</td>\n<td style=\"padding: 0.4em\">'''[[Java Edition 1.21.5|1.21.5]]'''</td>\n<td style=\"padding: 0.4em\" ></td>\n</tr>\n<tr style=\"background: inherit;\">\n<td style=\"padding: 0.4em\">\n[[Java Edition 25w03a|◄ 25w03a]]\n</td>\n<td style=\"padding: 0.4em\">''' 25w04a'''</td>\n<td style=\"padding: 0.4em\">\n[[Java Edition 25w05a| 25w05a ►]]\n</td>\n</tr>\n</table>" }
25w04a is the third snapshot for Java Edition 1.21.5, released on January 22, 2025,[1] which adds new data components and fixes bugs.
Additions[edit | edit source]
General[edit | edit source]
blocks_attacks
component- When present, this item can be used like a Shield to block attacks to the holding player.
- Format: object with fields
block_delay_seconds
- Non-negative float (default:
0
). - The number of seconds that right-click must be held before successfully blocking attacks.
- Non-negative float (default:
disable_cooldown_scale
- Non-negative float (default:
1
). - Multiplier applied to the number of seconds that the item will be on cooldown for when attacked by a disabling attack (
disable_blocking_for_seconds
on theweapon
component). - If
0
, this item can never be disabled by attacks.
- Non-negative float (default:
damage_reductions
- List of object with fields (optional)
- Controls how much damage should be blocked in a given attack.
- If not specified, all damage is blocked.
- Each entry in the list contributes an amount of damage to be blocked, optionally filtered by damage type.
- Each entry adds to blocked damage, determined by
clamp(base + factor * dealt_damage, 0, dealt_damage)
. - The final damage applied in the attack to the entity is determined by
dealt_damage - clamp(blocked_damage, 0, dealt_damage)
- Entry format:
type
- damage type id, list of damage type ids, or hash-prefixed damage type tag (optional).- This entry will only contribute to the blocked damage if the dealt damage type matches this field.
- If not specified, any damage type will be accepted.
base
- float- Constant amount of damage to be blocked.
factor
- float- Fraction of the dealt damage that should be blocked.
item_damage
- Object with fields (optional)
- Controls how much damage should be applied to the item from a given attack.
- If not specified, a point of durability is removed for every point of damage dealt.
- The final damage applied to the item is determined by: .
- The final value may be negative, causing the item to be repaired.
- Format:
threshold
- non-negative float- The minimum amount of damage dealt by the attack before item damage is applied to the item.
base
- float- Constant amount of damage applied to the item, if threshold is passed.
factor
- float- Fraction of the dealt damage that should be applied to the item, if threshold is passed.
block_sound
- Sound event (optional).
- If specified, this sound will be played when an attack is successfully blocked.
disable_sound
- Sound event (optional).
- If specified, this sound will be played when the item goes on its disabled cooldown due to an attack.
break_sound
component- When present, this sound will be played when the item runs out of durability and breaks.
- If not present, no sound will be played on break.
- This component is present by default on every item type.
- Format: sound event
- e.g.
break_sound='item.wolf_armor.break'
- e.g.
provides_banner_patterns
component- When present, this item can be placed in the pattern slot of a Loom.
- Format: hash-prefixed banner pattern tag.
- e.g.
provides_banner_patterns='#minecraft:pattern_item/globe'
- e.g.
provides_trim_material
component- When present, this item will provide the specified trim material when used in a trimming recipe.
- Note that to be used in the built-in smithing recipes, the item must also be in the
#trim_material
tag. - As such, the trim material registry definition no longer specifies an item.
- Note that to be used in the built-in smithing recipes, the item must also be in the
- Format: trim material id
- e.g.
provides_trim_material='minecraft:iron'
- e.g.
- When present, this item will provide the specified trim material when used in a trimming recipe.
tooltip_display
component- This component allows the tooltips provided specifically by any given item component to be surpressed.
- This replaces the previous
show_in_tooltip
fields,hide_additional_tooltip
andhide_tooltip
components. - Format: object with fields:
hide_tooltip
- boolean (default:false
).- If true, the item will have no tooltip when hovered.
hidden_components
- list of item component ids (default:[]
).- The tooltips provided by any component in this list will be hidden.
- If that component provides no tooltip, it will have no effect.
- Added support for Kyrgyz language.
- Added the
#can_wear_horse_armor
entity tag.- Contains entity that can hold horse armor in their body slot.
Changes[edit | edit source]
Items[edit | edit source]
- Will now show all charged projectiles in their tooltip instead of just the first
Command format[edit | edit source]
- SNBT (textual representation of NBT-like data) has been expanded to accept heterogenous lists, i.e. ones where elements are not of the same type.
- NBT format is not changed
General[edit | edit source]
- The field
background
no longer containstextures/
prefix and.png
suffix.
minecraft:paletted_permutations
sprite source- New field:
separator
- Optional string (default:
_
). - Value to be used when joining texture and permutation names to produce sprite name.
- Optional string (default:
- New field:
hide_additional_tooltip
component- Has been removed and replaced by use of the
tooltip_display
component andhidden_components
field.- The following components previously covered by the
hide_additional_tooltip
component may need to be hidden:minecraft:banner_patterns
minecraft:bees
minecraft:block_entity_data
- Specifically, Mob Spawner and Trial Spawner block entity data will display the configured mob.
minecraft:block_state
- Specifically, the
honey_level
property will be displayed in the tooltip for any item with this specified.
- Specifically, the
minecraft:bundle_contents
minecraft:charged_projectiles
minecraft:container
minecraft:container_loot
minecraft:firework_explosion
minecraft:fireworks
minecraft:instrument
minecraft:map_id
minecraft:painting/variant
minecraft:pot_decorations
minecraft:potion_contents
minecraft:tropical_fish/pattern
minecraft:written_book_content
- This additionally means that tooltips from the above listed components are no longer restricted to specific item types.
- Note: for existing items in a world with the
hide_additional_tooltip
component, any of the above listed components also present on the same item will be added to the list to hide intooltip_display
.
- Note: for existing items in a world with the
- The following components previously covered by the
- Has been removed and replaced by use of the
hide_tooltip
component- Has been removed and replaced by use of the
tooltip_display
component andhide_tooltip
field.
- Has been removed and replaced by use of the
attribute_modifiers
component- Removed the
show_in_tooltip
field, replaced bytooltip_display
component. - This component now always uses its simplified form, with the modifiers field inlined to top-level.
- e.g.
attribute_modifiers={modifiers:[...]}]
->attributes_modifiers=[...]
- e.g.
- Removed the
dyed_color
component- Removed the
show_in_tooltip
field, replaced bytooltip_display
component. - This component now always uses its simplified form, with the rgb field inlined to top-level.
- e.g.
dyed_color={rgb:12345}]
->dyed_color=12345]
- e.g.
- The specified color now supports the RGB array format.
- e.g.
dyed_color=[0.5, 1.0, 0.2]
- e.g.
- Removed the
can_place_on
andcan_break
components- Removed the
show_in_tooltip
field, replaced bytooltip_display
component. - The predicates field has been inlined to top-level, and supports either a single element or list.
- e.g.
can_place_on={predicates:[{blocks:'stone'},{blocks:'dirt'}]}]
->can_place_on=[{blocks:'stone'},{blocks:'dirt'}]]
- or:
can_place_on={predicates:[{blocks:'stone'}]}]
->can_place_on={blocks:'stone'}]
- e.g.
- Removed the
enchantments
andstored_enchantments
components- Removed the
show_in_tooltip
field, replaced bytooltip_display
component. - These components now always use their simplified form, with the levels field inlined to top-level.
- e.g.
enchantments={levels:{sharpness:2}}]
->enchantments={sharpness:2}]
- e.g.
- Removed the
jukebox_playable
component- Removed the
show_in_tooltip
field, replaced bytooltip_display
component.
- Removed the
trim
component- Removed the
show_in_tooltip
field, replaced bytooltip_display
component.
- Removed the
unbreakable
component- Removed the
show_in_tooltip
field, replaced bytooltip_display
component.
- Removed the
weapon
componentcan_disable_blocking
field was replaced withdisable_blocking_for_seconds
.disable_blocking_for_seconds
- Non-negative float (default:
0
) - If non-zero, will disable a blocking Shield on successful attack for the specified amount of seconds.
- Non-negative float (default:
- Some existing components are now also transferred from spawning item to spawned entity:
minecraft:custom_name
- any entity.minecraft:potion_contents
- Lingering Potion to Area Effect Cloud.minecraft:potion_duration_scale
- Lingering Potion to Area Effect Cloud.
- The pack format version is now
64
. - Trim pattern and trim material items are no longer specified in the trim registries, but instead in the recipes and items respectively.
- The
potion
entity type has been split intosplash_potion
andlingering_potion
- Filled Maps without any
map_id
component no longer show an 'Unknown Map' tooltip (invalid IDs will still produce this tooltip)
Entity variant components
- Cat and Frog variants are now data-driven.
- Added uniform way to define variant selection rules.
- Select Property
minecraft:component
- If the selected value comes from a registry and the current datapacks does not provide it, the entry will be silently ignored.
- In previous snapshot, unrecognized elements caused the whole item model to be ignored.
- If the selected value comes from a registry and the current datapacks does not provide it, the entry will be silently ignored.
- Boolean Property
minecraft:component
- New conditional model property has been added to condition item model:
component
- Uses component predicates (like ones used in item predicates) to match item components.
- However, instead of encoding them as a map of
<predicate type>:<predicate value>
, a single predicate is encoded in two fields.
- However, instead of encoding them as a map of
- Fields:
predicate
- type of component predicate (member ofminecraft:data_component_predicate_type
registry)value
- predicate-specific value
- New conditional model property has been added to condition item model:
Loot Functions
toggle_tooltips
- Now supports any component id in the toggles map.
- Any component specified will be toggled in the
tooltip_display
component.
- The particle type
tinted_leaves
now has a parameter:color
- Tint color, specified either as packed int or list of 4 floats.
smithing_transform
recipe type- The
base
ingredient field is no longer optional- Previously, if no base ingredient was given, the recipe would parse but never be usable.
- The
smithing_trim
recipe type- The
base
,template
, andaddition
ingredient fields are no longer optional.- Previously, if these ingredients were not given, the recipe would parse but never be usable.
- Added new
pattern
field, controlling which trim pattern will be applied in the recipe.- As such, the trim pattern registry definition no longer specifies the item.
- Format: trim pattern id
- e.g.
"pattern": "minecraft:bolt"
- e.g.
- The
- The pack format version is now
49
.
Reversion of bug fixes
“ |
|
„ |
— Developer's Note |
The reverted bug fixes include:
- MC-152728 — The player continues sprinting when performing actions that slow them down
- MC-271065 — Diagonal movement is not normalized when crouching or using certain items
- Renamed
#bypasses_shield
damage type tag to#bypasses_blocking
. - Removed
#default_spawns
and#full_moon_spawns
cat variant tags. - Added
test_block
, andtest_instance_block
to the#dragon_immune
, and#wither_immune
block tags.
Uniform variant selection
- Variants that have spawn rules now use uniform approach for selecting.
- Selection process:
- Every variant field
spawn_conditions
that contain a list of entries. - Every entry has a condition and an integer priority.
- Conditions for all variants for given entity type are evaluated for position where entity is being spawned.
- Entries with priority lower than maximum priority of remaining entries are removed.
- The game randomly picks one entry out of remaining ones.
- If no conditions are remaining, variant remains unchanged from default.
- Every variant field
- Entry format:
priority
- integercondition
- optional structure- Fields:
type
- Additional fields dependent on
type
.
- If field is not present, condition is always true.
- Fields:
- Selection process:
- Spawn conditions
minecraft:biome
- Checks if entity is spawning in specific biomes.
- Fields:
biomes
- single entry, list or a tag describing biomes.
minecraft:moon_brightness
- Checks if current moon brightness is within certain range.
- Fields:
range
- floating point range (a single number or an object like {"min": 1, "max": 2}).
minecraft:structure
- Checks if entity is spawning in specific structures.
- Fields:
structures
- single entry, list or a tag describing structures.
- Wolf Variants
- The fields
angry_texture
,tame_texture
andwild_texture
have been grouped in fieldassets
and renamed toangry
,tame
andwild
. - Added the field
spawn_conditions
.
- The fields
- Pig Variants
texture
andbiome
fields are replaced withasset_id
andspawn_conditions
respectively.- Fields in file:
asset_id
- namespaced id for this variant asset, resolves toassets/<namespace>/textures/<path>.png
.spawn_conditions
- field described in uniform variant selection above
- Cat variants
- Cat variants can be data-driven by adding entries to
data/<namespace>/cat_variant/<id>.json
. - This feature is experimental.
- Fields in file:
asset_id
- namespaced id for this variant asset, resolves toassets/<namespace>/textures/<path>.png
.spawn_conditions
- field described in uniform variant selection above
- Cat variants can be data-driven by adding entries to
- Frog variants
- Frog variants can be data-driven by adding entries to
data/<namespace>/frog_variant/<id>.json
. - This feature is experimental.
- Fields in file:
asset_id
- namespaced id for this variant asset, resolves toassets/<namespace>/textures/<path>.png
.spawn_conditions
- field described in uniform variant selection above
- Frog variants can be data-driven by adding entries to
Fixes[edit | edit source]
From released versions before 1.21
- MC-98271 – The sound of blocking with a shield is only hearable by other players (not the person blocking).
- MC-101556 – Nether Portal teleport range is too large (equivalent to a full block).
- MC-165421 – Bubble columns have the opposite effect on wind charges.
- MC-165461 – Crossbow loading animation stops after loading, even when still holding down right click.
- MC-176233 – Crossbows no longer have a transition after loading.
- MC-200311 – Advancement background texture referencing is inconsistent with models.
- MC-255756 – When the shield is broken between players, the attacking side has no shield breaking sound.
- MC-279646 – Toggling fullscreen with F11 does not visually update the fullscreen option in the video settings menu.
From 1.21.1
- MC-276061 – Decorated pot sherds don't visually update until relog when replacing with blank pot.
From 1.21.3
- MC-278400 – Arrows and tridents move after hitting a block in flowing lava.
From 1.21.4
- MC-279653 – Block Entity Data desynchronizes after subsequent setblock commands.
From the 1.21.5 development versions
- MC-279217 – Arrows and tridents constantly spin after hitting a block in flowing lava.
- MC-279218 – The
minecraft:enchant.thorns.hit
sound does not play when mobs or players are killed by the Thorns enchantment. - MC-279225 – Players jitter and land slightly too high up when landing on powder snow while wearing leather boots.
- MC-279232 – SNBT text components prevent mixing text styles in lists.
- MC-279389 – The
minecraft:entity.arrow.hit_player
sound is played when player is hit by an arrow shot by himself. - MC-279454 –
hide_additional_tooltip
no longer hides author and generation on written books.
From the previous development version
- MC-279480 – The "
test_instance_block.reset_success
" string incorrectly spells the word "succeeded" as "succeded". - MC-279481 – Leaf litter no longer generates in forests or wooded badlands.
- MC-279482 – Elements within the test block and test instance block menus are not selected in order when using the TAB key.
- MC-279483 – Test blocks set to start mode show the "Message:" text despite no text field being present.
- MC-279485 – Test block and test instance block menus have blurred backgrounds.
- MC-279486 – Some strings displayed within the test instance block interface are untranslatable.
- MC-279487 – The "Test Instance ID" and "Test Structure Size" text within the test instance block interface are positioned too far to the right.
- MC-279488 – Leaf litter generates very sparsely in Dark Forests.
- MC-279489 – An unexpected error occurs when attempting to create tests with large sizes.
- MC-279490 – No command feedback messages are displayed when attempting to reset tests that don't exist.
- MC-279491 – The "
commands.test.no_tests
" raw translation key is displayed when using "/test run...
" commands in situations where no tests exist. - MC-279492 – An unexpected error occurs when attempting to locate tests that don't exist.
- MC-279493 – No command feedback messages are displayed when using the "
/test create
" command. - MC-279498 – Test blocks and test instance blocks aren't part of the "
#minecraft:dragon_immune
" or "#minecraft:wither_immune
" tags. - MC-279502 – Axolotl variants are no longer saved when bucketing.
- MC-279504 – "
minecraft:enchantments
" component does not work on the select property of Item Models. - MC-279505 – Horse-esque mobs that disallow horse armor still show an non-interactive slot.
- MC-279511 – Using "
minecraft:always_pass
" while the player is inside the test zone breaks the world. - MC-279518 – Test environment accepts
minecraft:raining
instead ofminecraft:weather
. - MC-279519 – Some words within some test command strings are always pluralized.
- MC-279522 – GameTest entrypoint doesn't load zip datapacks.
- MC-279527 – GameTest entrypoint doesn't load custom tests from datapacks.
- MC-279538 – The key name of the test instances field that represents the namespaced ID of the test environment is different from the changelog.
- MC-279539 – Villager variant is not applied to spawned zombie villagers.
- MC-279553 – Players using items no longer turn their body in the moving direction while moving diagonally.
- MC-279570 – Some piston operations don't send neighbor updates.
- MC-279573 – The "
test_instance_block.error.no_test
" string is missing the word "no". - MC-279588 – Test instance field typo '
sky_accesss
'. - MC-279599 –
/test pos
is offset by one on the y and z axis. - MC-279601 – "
test.error.expected_entity_at_pos
" translation is missing.
Video[edit | edit source]
Videos made by Slicedlime:
References[edit | edit source]
- ↑ "Minecraft Snapshot 25w04a" – Minecraft.net, January 22, 2025.