Skip to main Content
Five armor stands with various armors that have colorful decorations on them.

Minecraft Snapshot 23w04a

A Minecraft Java Snapshot

Tuesday is the new Wednesday, did you know? Here is snapshot 23w04a with a new experimental Armor Trim Smithing feature in the Update_1_20 experimental pack.

Happy trimming!


  • Enchantment glint on items and armor is now more subtle

Experimental Features

  • Added a new armor trimming system to visually customize your armor
  • Added Smithing Template items
  • Redesigned the Smithing Table
  • Changed how Netherite equipment is crafted

Smithing Templates

  • Smithing Tables have been redesigned into a workstation for physical equipment upgrades and modifications
  • Alongside slots for combining a piece of equipment and materials, there is now a required slot for an item type called Smithing Templates
  • Smithing Templates define what type of upgrade you will be making to equipment
    • It specifies both what type of items you can upgrade, and which ingredients are valid to customize the upgrade
    • There are currently two categories of Smithing Templates: Armor Trim and Netherite Upgrade
  • Smithing Templates are consumed when used to upgrade an item in the Smithing Table
  • You can craft a copy of a Smithing Template in the Crafting Table with 7 diamonds + 1 block of material that the template is made out of + 1 smithing template, which will output 2 of the same Smithing Template

Netherite Equipment

  • Netherite equipment crafting now also requires a Netherite Upgrade Smithing Template
  • Netherite Upgrade Smithing Templates can be found randomly in all Bastion Remnant chests, and there is a guarantee of 2 in every Treasure Room Bastion Remnant
  • This change was made for a variety of reasons:
    • Increase the time players utilize Diamond equipment before Netherite
    • Make Netherite equipment a more significant achievement in the game's progression
    • Adapt Netherite more naturally into the new Smithing Table crafting system

Armor Trims

  • You can now visually customize your armor with a variety of unique trims at the Smithing Table
    • All armor is viable for trims except for leather armor
  • Armor trims are purely visual with no gameplay benefits, and can only be applied to Helmets, Chestplates, Leggings and Boots
    • All trim patterns are visually the same on an armor's item icon, but the color will still change based on the trim material
    • To check which trim pattern a piece of armor has, you can hover over it in the inventory
  • Armor Trim Smithing Templates can be found all throughout the world, and each of the following structures contain their own unique Smithing Template:
    • Pillager Outpost
      • Sentry Armor Trim
    • Desert Pyramid
      • Dune Armor Trim
    • Shipwreck
      • Coast Armor Trim
    • Jungle Temple
      • Wild Armor Trim
    • Ocean Monument
      • Tide Armor Trim
    • Ancient City
      • Ward Armor Trim
    • Woodland Mansion
      • Vex Armor Trim
    • Nether Fortress
      • Rib Armor Trim
    • Bastion Remnant
      • Snout Armor Trim
    • Stronghold
      • Eye Armor Trim
    • End City
      • Spire Armor Trim
  • Smithing Templates are found in chests in their respective structure, except for the Ocean Monument. Instead of finding it in chests, Elder Guardians sometimes drop a Smithing Template upon death
  • Some Armor Trim Smithing Templates are rarer than others, so be on the lookout for them to impress your friends!
  • An armor trim has two properties: a pattern and a material
    • The pattern is defined by the Smithing Template used to apply the trim, and represents the visual pattern of the trim
    • The material is defined by what ingredient you used to apply the trim, and represents the color of the trim
  • The viable ingredients you can use to define the color of your armor trim are the following:
    • Iron
    • Copper
    • Gold
    • Lapis
    • Emerald
    • Diamond
    • Netherite
    • Redstone
    • Amethyst
    • Quartz
  • Armor cannot have the same material it is made of applied to it as a trim
    • For example, a Golden Chestplate cannot have a Golden Armor Trim

Technical Changes

  • Added a new type of atlas configuration source: paletted_permutations

  • Armor Stands now preserve custom names when placed and broken

  • A new registry trim_pattern has been added for the armor trim system

  • A new recipe serializer smithing_transform has been added for the updated Netherite Upgrade recipe

  • A new recipe serializer smithing_trim has been added for the new Armor Trim recipe

  • Smithing table has temporarily two menu types

    • Old menu without Smithing Template slot has been renamed to legacy_smithing
      • Will be removed when Armor Trim feature stops being an experimental feature
    • New menu with Smithing Template slot was added called smithing
  • Added new flag (value 128) to HideFlags NBT field for hiding armor trim item tooltips

Paletted Permutations

  • paletted_permutations is a new type of atlas configuration source used to dynamically generate new textures in memory based on a set of color palettes
  • Color palettes allow you to swap out the colors of a texture without having to supply all files for the variants of a texture in a resource pack
  • This is useful for things like armor trims, where you want to be able to change the color of parts of the armor without having to create a new texture for each color
  • The paletted_permutations source has a set of required parameters:
    • textures A list of namespaced locations of base textures
      • These textures will be used to generate variants of them that have been modified by color palettes
    • palette_key A namespaced location of a color palette key file
      • A color palette key is used to define the set of key pixel colors we want to swap out with the color palettes defined below
    • permutations A map of permutations from suffix to a namespaced location of a color palette file
      • The suffix is appended at the beginning to the resource location of the output variant textures, with a _ character separating the suffix and the base texture name
      • The color palette is a texture file with a set of pixels that are used for replacing pixels that match the color palette key in each base texture
      • The number of pixels in each color palette must be the same as that of the palette_key defined for this source
      • Key matching is done by comparing the RGB values of each pixel in the palette_key to the RGB values of each pixel in the color palette
      • Alpha channel is ignored for key matching, but in the resulting texture the alpha channel is multiplied with the color palette's alpha channel
      • Pixels that do not match the palette_key are copied over to the resulting texture as-is
  • After defining a paletted_permutations source, you can then reference those namespaced output textures in other resources in your resource pack
    • For example, if you have the following paletted_permutations source:
          "type": "paletted_permutations",
          "textures": [
          "palette_key": "minecraft:colormap/color_palettes/leather_armor_color_key",
          "permutations": {
              "red": "minecraft:colormap/color_palettes/red",
              "green": "minecraft:colormap/color_palettes/green",
              "blue": "minecraft:colormap/color_palettes/blue"
    • You can then reference the resulting textures in other resources like this:
          "textures": {
              "layer0": "minecraft:item/leather_helmet_red",
              "layer1": "minecraft:item/leather_chestplate_green",
              "layer2": "minecraft:item/leather_boots_blue"

Trim Patterns & Materials

  • Trim patterns and materials for armor are defined by the server through the trim_pattern and trim_material registry respectively
    • As a result, new trim patterns and materials can be added via data packs
  • These are synchronized to clients when they join the server
    • However, clients must have an accompanying resource pack to see those registered trim patterns and materials
    • The paths to these textures are inferred based on the filename of the pattern json, and will try to find the textures within the same namespace as the trim pattern's name field
  • The following data is defined by a trim pattern:
    • asset_id which is a namespaced id used to infer texture locations and localization
    • template_item which is the id of the smithing template item used to apply the trim pattern
    • description which is a text component used for displaying the pattern name of an armor trim when hovering an armor itemstack
  • The following data is defined by a trim material:
    • asset_name which is a string used as a suffix for armor trim texture locations
    • ingredient which is the id of the ingredient item used to apply the trim material
    • item_model_index which is a float which defines the item model override each armor item model should target to change their visuals for this material
    • incompatible_armor_material which is an optional id of the armor material this trim material cannot be applied to
    • description which is a text component used for displaying the material name of an armor trim when hovering an armor itemstack
      • The style defined in this description is applied to the armor trim pattern description as well


  • New relation available for execute on: origin:
    • shooter, if the executing entity is a projectile (like arrow, fireball, trident, firework, thrown potion, etc.)
    • thrower, if the executing entity is an item
    • source of effect, if the executing entity is an area effect cloud
    • igniter, if the executing entity is a primed tnt
    • summoner, if the executing entity is evoker fangs or a vex

Fixed bugs in 23w04a

  • MC-198809 - Blast Protection does not reduce explosion knockback except at very high levels
  • MC-259189 - "Narrator: Not Available" isn't grayed out on accessibility splash
  • MC-259204 - All goat horns display as Ponder goat horns and play the Ponder instrument
  • MC-259211 - You cannot select incompatible resource packs within the resource packs menu via keyboard navigation

Get the Snapshot

Snapshot are available for Minecraft: Java Edition. To install the Snapshot, open up the Minecraft Launcher and enable snapshots in the "Installations" tab.

Testing versions can corrupt your world, so please backup and/or run them in a different folder from your main worlds.

Cross-platform server jar:

Report bugs here:

Want to give feedback?


Written By
Mikael Hedberg

Community Creations

Discover the best add-ons, mods, and more being built by the incredible Minecraft community!