Java Edition 25w16a

Minecraft Wiki article. Categories: Java_Edition_versions, Java_Edition_1.21.6_snapshots, Java_Edition_snapshots_released_in_2025, Java_Edition_snapshots, Pages_with_YouTube_videos

📌 Mirrored from Minecraft Wiki

This article is reproduced from Java Edition 25w16a on the Minecraft Wiki. Mirrored from revision 3656805. It is licensed CC BY-NC-SA 3.0 by the Minecraft Wiki contributors — not under the Codex’s CC BY-SA 4.0, and it may not be used commercially. Edits belong upstream, not here.

Minecraft 25w16a
25w16a.jpg: Infobox image for Minecraft version 'Minecraft 25w16a'
Java Edition 25w16a.png: Infobox image for Minecraft version 'Minecraft 25w16a'

25w16a is the second snapshot for Java Edition 1.21.6, released on April 15, 2025,[1] which adds more functionality and improvements to leads, technical changes to shaders, and fixes bugs.

Additions

Gameplay

POI

  • Added the test_instance POI.

Changes

Items

Firework rocket

  • While gliding, using a firework rocket will only be used as a boost even if placed on a block.

Lead

  • Leashed leads are now rendered twice as thick, to match Bedrock Edition.
  • Leads can now be used to leash two mobs together.
    • Sneak-interact on any mob while holding a bunch of leashed mobs will leash these mobs to the interacted entity.
    • It's not possible to leash anything to itself.
  • If the re-leashing an entity would result in immediate leash snapping due to distance, the re-leashing would not happen.
  • Leads can be snipped from an entity when interacting them with shears, which consumes their durability.
    • This applies to its own leash connection as well as all entities attached to it.
    • Dispensers can now snip leashes from entities in front of them when they are equipped with shears; this also consumes their durability.
  • The leash mechanics were improved, with reworked leash physics, allowing for more stable leash connection, especially when leashed entities are not on ground.
    • When dragged on the leash, leashed objects will now orient themselves towards the leasher.
    • Using a firework rocket when flying with leashed entities will now break the leash connections.
  • When leashing an already leashed mob, the current leash will now snap and a player will re-leash the object to the player.
    • It's not possible to steal leashed entities from other players.
  • The interactions with a leash knot and fence blocks have changed:
    • When interacting with a leash knot or a fence, if there are any player-leashed entities in range of the leash knot, they will be re-leashed to the leash knot or a fence.
    • In case of attaching of mobs fails due to distance or there is nothing to attach, the player will now transfer all fence leashed entities to itself.
    • If there is nothing left attached to the leash knot, it disappears.
    • Sneak-interact can only result in attaching of the player mobs to the fence.
    • Interacting with shears or punching the leash knot will result in all current connections broken.
  • Boats, as well as large mobs that can be leashed but cannot fit in a boat (horses, donkeys, mules, camels and sniffers), can now be leashed in a special 4-leash configuration to the happy ghast.
    • Happy ghast will also present a custom layer when it's leashing something using a quad connection.
    • Leashes in quad connection are now rendered without slack.
  • Leash snapping distance has been changed from 10 to 12 blocks.
    • The distance between centers of entities bounding boxes, rather than their feet is used to determine the distance between two leashed entities.
    • Happy ghast leash is now longer - with free roaming distance of 10 blocks and leash snapping at 16 blocks.

General

Block models

  • Block model rotations are no longer limited to multiplies of 22.5.
    • elements[].rotation.angle value in block models is no longer limited to multiplies of 22.5 degrees and can now be any angle from -45 to +45.

Clouds

  • Clouds now exist all the way to the horizon.

Data component format

  • painting/variant
    • No longer accepts inline variants.

Data pack

Resource pack

  • The pack format version is now 57.
  • All core shader uniforms are now uniform blocks.
  • The cloud texture (clouds.png) can no longer be colored.

Shaders

  • All built-in uniforms are now uniform blocks instead of opaque loose uniforms.
  • Custom uniforms provided to post-process shaders are now uniform blocks.
  • Uniform definitions inside JSON files are now per-block.
  • Post-process effect definitions
    • Entries in the targets map have been expanded to support new properties.
      • New optional boolean field: persistent
        • Default: false
        • If true, this render target will be persistent across frames.
        • The contents of the target will be cleared when the screen is resized.
      • New optional field: clear_color
        • Default: [0, 0, 0, 0]
        • Format: integer ARGB value, or float array in order [R, G, B, A]
        • When this target is created or cleared, it will be filled with this color.
    • The uniforms values is now a list-per-block, instead of a global list.
      • e.g. uniforms: { "UniformBlockName": [ { "type": "vec2", "value": [...] } ] }
        • The order of uniforms in a block must match the order in the shader.
    • name as part of a uniform definition is no longer used.
    • value as part of a uniform definition replaces the old values, and the type depends on the type field.
      • This field is required.
      • "type": "int" needs "value": 123 (a single int).
      • "type": "float" needs "value": 123.4 (a single float).
      • "type": "vec2" needs "value": [1.2, 3.4] (two floats).
      • "type": "vec3" needs "value": [1.2, 3.4, 5.6] (three floats).
      • "type": "ivec3" needs "value": [1, 2, 3] (three ints).
      • "type": "vec4" needs "value": [1.2, 3.4, 5.6, 7.8] (four floats).
      • "type": "matrix4x4" needs "value": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0] (four rows of four columns of floats).
  • Post-process effect shaders
    • Instead of every uniform being an individual opaque type, they are now grouped in uniform blocks.
      • They will be set according to the pass definition in the JSON file, and may be shared across both vertex and fragment shaders.
    • The list of sizes (all vec2 *Size uniforms) are now replaced with a single SamplerInfo uniform block.
      • This contains, in order, the size of the output texture followed by the size every input texture.
      • The order of textures in the definition file will dictate the order of samplers in this uniform.
      • For most post chains this is just OutSize and InSize as before.
      • All sizes are vec2
  • post/bits.fsh
    • Expects a BitsConfig of float Resolution and float MosaicSize.
  • post/blit.fsh
    • Expects a BlitConfig of vec4 ColorModulate.
  • post/blur.vsh and post/box_blur.fsh
    • Expects a BlurConfig of vec2 BlurDir and float Radius.
  • post/color_convolve.fsh
    • Expects a ColorConfig of vec3 RedMatrix, vec3 GreenMatrix and vec3 BlueMatrix.
  • post/invert.fsh
    • Expects a InvertConfig of float InverseAmount.
  • post/rotscale.vsh
    • Expects a RotScaleConfig of vec2 InScale, vec2 InOffset and float InRotation.
  • post/spiderclip.fsh
    • Expects a SpiderConfig of vec4 Scissor and vec4 Vignette.
  • Globals uniform block
    • Available through #moj_import <minecraft:globals.glsl>
    • Most shaders are able to receive this uniform block, even if they don't normally use it.
    • Contains ScreenSize, GlintAlpha, GameTime and MenuBlurRadius.
      • MenuBlurRadius is the blur radius of the background when a menu is open.
  • Fog uniform block
    • Available through #moj_import <minecraft:fog.glsl>
    • Most shaders are able to receive this uniform block, even if they don't normally use it.
    • Contains FogColor, FogShape, FogStart, FogEnd, FogSkyEnd and FogCloudsEnd.
      • FogSkyEnd is new and represents where the fog should end when drawing for the sky.
      • FogCloudsEnd is new and represents where the fog should end when drawing the clouds.
      • FogEnd is the "normal" fog cutoff as before.
    • FOG_IS_SKY is now available to the position.vsh/position.fsh shaders when they are rendering for the sky.
  • Projection uniform block
    • Available through #moj_import <minecraft:projection.glsl>
    • Most shaders are able to receive this uniform block, even if they don't normally use it.
    • Contains ProjMat with no changes.
  • DynamicTransforms uniform block
    • Available through #moj_import <minecraft:dynamictransforms.glsl>
    • Is no longer available to shaders that do not normally use it.
    • Contains ModelViewMat, ColorModulator, ModelOffset, TextureMat, LineWidth.
  • Lighting uniform block
    • Available through #moj_import <minecraft:light.glsl>
    • Most shaders are able to receive this uniform block, even if they don't normally use it.
      • The values may not make sense if the shader wouldn't normally expect it, however.
    • Contains Light0_Direction and Light1_Direction.
  • CloudInfo uniform block
    • Only available to the clouds shaders (rendertype_clouds.vsh/rendertype_clouds.fsh).
      • Contains CloudColor, CloudOffset and CellSize (new).
        • CellSize contains the size of an individual cloud cell.
  • LightmapInfo uniform block
    • Only available to the lightmap shader (lightmap.fsh).
    • Contains AmbientLightFactor, SkyFactor, BlockFactor, UseBrightLightmap, NightVisionFactor, DarknessScale, DarkenWorldFactor, BrightnessFactor, SkyLightColor with no change in behavior.

Fixes

  • Reverted the fix for MC-101556: Nether Portal teleport range is too large (equivalent to a full block)

45 issues fixed

From released versions before 1.21

  • MC-104231 – Loading a custom structure doesn't load rails correctly.
  • MC-230902 – Black shapes sometimes appear in the end sky at low render distance
  • MC-238931 – Clouds stop rendering before they are hidden by fog
  • MC-256411 – Clouds not fully rendered depending on angle
  • MC-257532 – Clouds don't fill the sky after 1.18 height change

From 1.21.1

  • MC-277369 – The draft report icon isn't initially visible when saving a report as a draft.
  • MC-277370 – The draft report icon doesn't initially disappear when a report is discarded.

From 1.21.5

  • MC-279515 – The game stalls when running the /test clearall command with large radiuses.
  • MC-280297 – The volume level between grass and dirt is inconsistent.
  • MC-293754 – Minecraft causes OpenGL errors occasionally.
  • MC-295395 – Entities interact differently with nether portals.
  • MC-295677 – Title screen fades in from black after closing the "Welcome to Minecraft" screen.
  • MC-295895 – 1.21.5 breaks minecart behavior when travelling through nether portals.
  • MC-295944 – Reloading a professionless zombie villager causes it to gain random profession clothing.
  • MC-296099 – Nether portal collision is or isn't working depending on the cardinal direction.
  • MC-296121 – ClientboundLevelChunkPacketData buffer size is too big.
  • MC-296348 – NoAI:1b mobs cannot be ridden in 1.21.5+.

From the previous development version

  • MC-296353 – Potions, tipped arrows, and dyed leather armor render with missing or incorrect colors in the inventory.
  • MC-296355 – Characters in front of the cursor render one pixel too far to the left.
  • MC-296356 – Hitbox rendering in GUIs is broken.
  • MC-296357 – Happy ghasts produce footstep sounds when flying close above blocks.
  • MC-296358 – A player in Spectator mode on top of a happy ghast makes it stop moving.
  • MC-296363 – Scrolling in the experiments screen does not move the positions where the buttons can be selected.
  • MC-296365 – Block placing sounds are played when the block states of completely unhydrated dried ghasts are changed.
  • MC-296366 – Kicked for flying while flying happy ghast.
  • MC-296367 – The enchantment glint in the inventory appears on all items of the same type.
  • MC-296373 – The side faces of dried ghast tentacles aren’t culled when covered by blocks.
  • MC-296376 – Sounds produced by ghastlings can be heard from too far away.
  • MC-296381 – Dried Ghasts always face north in world generation.
  • MC-296382 – Filled maps are blurry.
  • MC-296401 – Harnesses are not sorted correctly in the Creative Inventory.
  • MC-296419 – Spectators' names in multiplayer tab list render improperly compared to 1.21.5.
  • MC-296426 – Text background lacks opacity over hotbar icons.
  • MC-296427 – Happy ghasts move/spin erratically when leashed to a fence.
  • MC-296434 – Unable to see items when hovering over them inside of a bundle.
  • MC-296437 – Items render behind effect icons and recipe book inside of the inventory.
  • MC-296444 – Blur is applied to resource pack icons.
  • MC-296465 – Highlighting text on a sign causes it to override the sign background.
  • MC-296467 – Item tooltips cause items behind it to not render.
  • MC-296470 – Items render behind text in anvils.
  • MC-296471 – Hud is now hidden while in bed resulting in delayed hud rendering.
  • MC-296517 – The menu panorama turns gray when the switching realm worlds interface is open.
  • MC-296518 – Text inside the middle of the java realms information box completely disappears when selected.
  • MC-296524 – Server and singleplayer world icons are blurry.
  • MC-296638 – Clocks, compasses, and lodestone compasses do not render enchantment glint in certain display contexts when using Fabulous! graphics.

Videos

Videos made by slicedlime:

References

  1. ↑ "Minecraft Snapshot 25w16a" – Minecraft.net, April 15, 2025.

Sources