Skip to content

Translation notice

This page was translated with machine translation and may contain inaccuracies. If you can help improve it, please open an issue or submit a pull request.

Cover

Vanilla News - Mojang Spotlight - July 2026

Alumopper

Alumopper

Hello? Hello? Microphone test

Ahem, although it’s a bit late, here is the Vanilla news, the most Vanilla technical snapshot news in Minecraft, our reporter Vanilla Fox reports the latest snapshot news for you~

This month is the first month of snapshots for version 26.3, and a lot of new content has been released. Of course, snapshot-4, which was supposed to be released yesterday, was delayed because Mojang employees were on summer vacation (yes), but the three snapshots in this round are still plenty!

I waited until midnight and found out that there were no snapshots. I went to DC and found out that Mojang was on holiday. Screenshot of Mojang employees’ holiday message

Currently, the data pack version has reached 110.0, and the resource pack version has reached 91.0.

Let me talk about the conclusion first. This round of updates is extremely practical and moderately destructive. Overall, it is at the level of Super Large Cup.

Since this column mainly summarizes technical snapshot content, it will not involve gameplay changes.

world generation

Mojang has made significant changes to world generation related content. Although these changes have added many more general data-driven capabilities, they have also significantly changed the names or formats of many fields and feature types.

surface rules (old)

in noise settingssurface_ruleThe field is renamed tomaterial_rule. At the same time, the game has addedworldgen/material_ruleandworldgen/material_conditionTwo registries are used to define the original surface rules and surface rule tests respectively.

The JSON format of the new rules and tests is basically the same as the original surface rules. In addition to inline definitions, it is now possible to reference namespaceIDs in the registry. This move greatly improved the reusability and readability of surface rules (Mojang was finally willing to take this thing apart). For old data packs, the original surface rules are still valid, only the field names need to be changed.

In addition, the surface rule test has a newheight_matchall_ofany_ofandnot, you can combine height and logical conditions.

Structures, features and carvings

Feature registry configuredworldgen/configured_featurewas renamed toworldgen/feature, all features were originally located inconfigThe configuration fields in have also been moved to the root tag. Engraver registry configuredworldgen/configured_carveris renamed toworldgen/carvercaveandcanyonThe engraver was originally located inconfigThe fields in have also been moved to the root tag.

Changes to the carver also include:

  • caveJoinedcountstart_vertical_radius_multiplierthicknessandweird_thickness_biasfields, and replaceyScaleRename toroom_vertical_radius_multiplier
  • canyonofyScalewas renamed toshape.y_scale
  • Both carvers have been removedreplaceablelava_levelanddebug_settingsfield.
  • Removednether_caveEngraver type whose function consists ofcavesubstitute.

Some feature types that originally had fixed uses have also been transformed into more general versions:

  • basalt_columnswas renamed tostepped_column_cluster
  • basalt_pillarwas renamed tosingle_block_pillar
  • glowstone_blobwas renamed torandom_neighbor_spread
  • JoinedoverlayGround object type, regardless of whether a single ground object is placed successfully or not, a given set of ground objects will be tried to be placed at the same location in sequence.
  • Joinedprojected_random_patch_squareThe type of ground object determines the placement probability of blocks based on the distance from the center of the square, and supports downward projection of blocks.
  • Joinedend_podiumThe clutter type used to place active or inactive return portals.
  • Removedcoral_mushroomkelpseagrassandsea_pickleFeature type;coral_clawandcoral_treethen joinedfeatureField to generate the actual block using the given placed features.

Joineddimension_originStructure placement type, placing a structure instance at the dimension origin. For dimensions using the noise setting, this origin is given byspawn_targetDetermine, otherwise chunk(0,0).

In addition, this round of snapshots also adds or changes other world generation-related content:

  • Joinedheight_rangeblockpredicate, the vertical anchor point has also been added relative to the dimension sea level.relative_to_sea_leveloptions.
  • Joinedcopy_properties_providerThe block state provider copies the block state attributes shared by the current block and the output block to the output result. Its fields were finally named in snapshot-3source
  • Joinedrandom_block_providerBlock state provider, randomly selects a block from a block, block list or blocktag and returns its default state.
  • Place modifierrandom_offsetwas renamed tooffset, the originalxz_spreadandy_spreadindependentxyzInteger provider override.
  • Joinedcuboidandrandom_chancePlacement modifiers are used to repeatedly place objects within the cuboid and to place objects based on probability.
  • in noise settingsspawn_targetIt is now possible to use arbitrary density functions and describe candidate spawn points by target ranges on multiple density function axes.
  • place featurecommand can now directly accept configured objects defined inline.

slot source

The slot source that was originally only used for the loot table system was officially connected to the command system in this round of snapshots. The data pack is now available inslot_sourceDefine the slot source in the folder and use the newreferenceSlot source types refer to them by namespaceID.slot_rangeofsourceField addedcontainerGet the value and set it as the default value;contentsThe slot source can also select empty slots.

executeJoinedif|unless slotsCondition, used to detect whether the block or entity has a slot that matches the given slot source. originalif|unless itemsAlso changed from accepting slots to accepting slot sources. They will all use newcommand_slot_sourceLoot context is parsed.

itemThe positions in the command that originally accepted slots now also accept slot sources, so multiple slots can be processed at one time, or even slots from multiple source entities can be connected in series.itemYou can either modify a series of slots or pass the originalfromSelect an ordered sequence of items from a series of slots. Now in addition to the semantically adjustedreplaceIn addition, two new subcommands have been added:

  • item fill: Repeat the source item sequence until all target slots are filled.
  • item override: Use the source item to cover the target slot, and clear the redundant target slots that do not have corresponding source items.

originalhotbar.4armor.chestandcontainer.*Slotted strings are still valid, they are treated asslot_rangeShort for slot source. (Mojang’s rare compatibility consideration)

Data components and data drivers

Joinedblock_transformerData component. When an item with this component interacts with a block, it can convert the block into the result given by the block state provider according to a series of rules. Each rule can also control sounds, particles, non-interactive surfaces, loot tables, drop locations, whether to consume items or durability, and whether to link the other half of a large copper box.

Joinednumber_providerRegistry, the value provider.

JoinedcompostableData component.compostableuselayersThe field refers to a value provider that describes the number of layers added each time the item is used for composting.

brewing recipes

JoinedbrewingRecipe type, potion brewing can now be defined via data pack. Each brewing recipe containsinputreagentandoutputThree main fields; when entering items and brewing materials, you can specify the item, item list or itemtag, and you can also attachpotion_contentsComponent predicate, the output uses the item template format, and can have components.

Other component changes

  • Joinedprovides_pottery_patternData component, use namespaceID to specify the pottery pattern provided by the item.
  • pot_decorationsData components and blockentity of decorative clay potssherdsField changed from list to includebackleftrightandfrontAn object with optional fields.
  • potion_contentsThe data component predicate now usespotionsMatch potion ID, ID list or tag and useeffectsCollection of matching status effects.

resource pack and rendering

Joinedposteffectcommand, you can useaddremoveclearandlistThe subcommand manages the player's post-processing effects. Post-processing effects only exist on the client, and the server does not know whether the effects were actually successfully applied.

resource pack can also be definedminecraft:end_of_framePost-processing pipeline. As long as the resource pack is loaded, this effect will be enabled before other effects and cannot be passedposteffectcommand is closed; when multiple resource packs are defined at the same time, the definition loaded last shall prevail.

The "Improve Transparency Display" option uses the new Order-Independent Transparency (OIT) algorithm, adds corresponding shader files and definitions, and removes the old transparency post-processing chain. Some core shaders at the boundary between cloud and world have also been removed.rendertype_prefix.

Elements of the baking model have been addedshade_direction_overrideField that specifies the orientation used when calculating shadows. Subsequently, the originalshadeField is removed; to keepshade: falseThe effect needs to be changed toshade_direction_override: "up"

Miscellaneous

  • Equipment assets have been addedtrim_palette_replacementsfield; armor ornamental materialasset_namequiltpalette_idalternative,override_armor_assetswas removed. Armor crest palette textures have also been moved to a new path.
  • Goat horn instrument definition addeddurability_damagefields,use_durationCan now be 0.
  • in server configurationwhite-listThe default value was changed totrue
  • giveand parttickThe subcommand will directly return an error when it fails;team joinandteam leaveNow returns the number of entities that actually changed the team.
  • blocktag#convertable_to_mudwas corrected to#convertible_to_mud,itemtag#dowses_campfireswas corrected to#douses_campfires

Please check the update log for more details~

Powered by VitePress and GitHub Pages