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
General
blocks_attackscomponent- 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_secondson theweaponcomponent). - 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_soundcomponent- 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_patternscomponent- 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_materialcomponent- 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_materialtag. - 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_displaycomponent- This component allows the tooltips provided specifically by any given item component to be surpressed.
- This replaces the previous
show_in_tooltipfields,hide_additional_tooltipandhide_tooltipcomponents. - 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_armorentity tag.- Contains entity that can hold horse armor in their body slot.
Changes
Items
- Will now show all charged projectiles in their tooltip instead of just the first
Command format
- 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
- The field
backgroundno longer containstextures/prefix and.pngsuffix.
minecraft:paletted_permutationssprite 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_tooltipcomponent- Has been removed and replaced by use of the
tooltip_displaycomponent andhidden_componentsfield.- The following components previously covered by the
hide_additional_tooltipcomponent may need to be hidden:minecraft:banner_patternsminecraft:beesminecraft:block_entity_data- Specifically, Mob Spawner and Trial Spawner block entity data will display the configured mob.
minecraft:block_state- Specifically, the
honey_levelproperty will be displayed in the tooltip for any item with this specified.
- Specifically, the
minecraft:bundle_contentsminecraft:charged_projectilesminecraft:containerminecraft:container_lootminecraft:firework_explosionminecraft:fireworksminecraft:instrumentminecraft:map_idminecraft:painting/variantminecraft:pot_decorationsminecraft:potion_contentsminecraft:tropical_fish/patternminecraft: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_tooltipcomponent, 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_tooltipcomponent- Has been removed and replaced by use of the
tooltip_displaycomponent andhide_tooltipfield.
- Has been removed and replaced by use of the
attribute_modifierscomponent- Removed the
show_in_tooltipfield, replaced bytooltip_displaycomponent. - 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_colorcomponent- Removed the
show_in_tooltipfield, replaced bytooltip_displaycomponent. - 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_onandcan_breakcomponents- Removed the
show_in_tooltipfield, replaced bytooltip_displaycomponent. - 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
enchantmentsandstored_enchantmentscomponents- Removed the
show_in_tooltipfield, replaced bytooltip_displaycomponent. - 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_playablecomponent- Removed the
show_in_tooltipfield, replaced bytooltip_displaycomponent.
- Removed the
trimcomponent- Removed the
show_in_tooltipfield, replaced bytooltip_displaycomponent.
- Removed the
unbreakablecomponent- Removed the
show_in_tooltipfield, replaced bytooltip_displaycomponent.
- Removed the
weaponcomponentcan_disable_blockingfield 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
potionentity type has been split intosplash_potionandlingering_potion - Filled Maps without any
map_idcomponent 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_typeregistry)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_displaycomponent.
- The particle type
tinted_leavesnow has a parameter:color- Tint color, specified either as packed int or list of 4 floats.
smithing_transformrecipe type- The
baseingredient field is no longer optional- Previously, if no base ingredient was given, the recipe would parse but never be usable.
- The
smithing_trimrecipe type- The
base,template, andadditioningredient fields are no longer optional.- Previously, if these ingredients were not given, the recipe would parse but never be usable.
- Added new
patternfield, 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_shielddamage type tag to#bypasses_blocking. - Removed
#default_spawnsand#full_moon_spawnscat variant tags. - Added
test_block, andtest_instance_blockto the#dragon_immune, and#wither_immuneblock tags.
Uniform variant selection
- Variants that have spawn rules now use uniform approach for selecting.
- Selection process:
- Every variant field
spawn_conditionsthat 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_textureandwild_texturehave been grouped in fieldassetsand renamed toangry,tameandwild. - Added the field
spawn_conditions.
- The fields
- Pig Variants
textureandbiomefields are replaced withasset_idandspawn_conditionsrespectively.- 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
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.hitsound 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_playersound is played when player is hit by an arrow shot by himself. - MC-279454 –
hide_additional_tooltipno 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:raininginstead 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 posis offset by one on the y and z axis. - MC-279601 – "
test.error.expected_entity_at_pos" translation is missing.
Video
Videos made by Slicedlime:
References
- ↑ "Minecraft Snapshot 25w04a" – Minecraft.net, January 22, 2025.