Skip to content
Thomas Glasser edited this page Dec 3, 2025 · 17 revisions

All it takes to make a sherd pattern is a texture file.

For Players and Map Makers

When using the /give command or functions to add an item to the inventory, set the sherdsapi:sherd_pattern component to a resource location and have a resource pack provide a texture at assets/<namespace>/textures/entity/decorated_pot/<path>.png Voila! That item can now be used in the decorated pot recipe and will display the pattern on decorated pots.

Custom Items

With the new 1.21.3+ changes, resource packs can add completely custom sherds by changing the item_name, item_model, and sherdsapi:sherd_pattern components!

For Mod Developers

Upon registration, add the sherdsapi:sherd_pattern component to your item's default components and put the texture in assets/<namespace>/textures/entity/decorated_pot/<path>.png. Voila! Your sherd will now render on pots and can be used in the decorated pot recipe!

It is recommended to include this API to avoid an additional download by players. This can be done with the include keyword on Fabric/Quilt and the Jar-In-Jar system on NeoForge.

In your repositories block, paste:

    exclusiveContent {
        forRepository {
            maven {
                name = 'Sherds API'
                url = 'https://dl.cloudsmith.io/public/thomasglasser/sherdsapi/maven/'
            }
        }
        filter { includeGroupAndSubgroups "dev.thomasglasser.sherdsapi" }
    }
    exclusiveContent {
        forRepository {
            maven {
                name = 'TommyLib'
                url = 'https://dl.cloudsmith.io/public/thomasglasser/tommylib/maven/'
            }
        }
        filter { includeGroupAndSubgroups "dev.thomasglasser.tommylib" }
    }

Then put one of these lines in your dependencies block:

NeoForge

implementation "dev.thomasglasser.sherdsapi:sherdsapi-neoforge-${minecraft_version}:${sherdsapi_version}"

Fabric/Quilt

modImplementation "dev.thomasglasser.sherdsapi:sherdsapi-fabric-${minecraft_version}:${sherdsapi_version}"

Common

implementation "dev.thomasglasser.sherdsapi:sherdsapi-common-${minecraft_version}:${sherdsapi_version}"

For versions below 6.0.0:

For Mod Developers

Datagen is highly recommended and natively supported. See NeoForgeSherdDatagenSuite for builtin NeoForge support, FabricSherdDatagenSuite for builtin Fabric support, or BaseSherdDatagenSuite to implement your own. The mod itself has an example of NeoForge datagen located at ExampleNeoForgeDataGenerator.java and Fabric datagen at ExampleFabricDataGenerator.java

It is recommended to include this API to avoid an additional download by players. This can be done with the include keyword on Fabric/Quilt and the Jar-In-Jar system on NeoForge.

In your repositories block, paste:

    maven {
        name = 'Sherds API'
        url = 'https://dl.cloudsmith.io/public/thomasglasser/sherdsapi/maven/'
        content {
            includeGroupAndSubgroups("dev.thomasglasser.sherdsapi")
        }
    }

Then put one of these lines in your dependencies block:

NeoForge

implementation "dev.thomasglasser.sherdsapi:sherdsapi-neoforge-${minecraft_version}:${sherdsapi_version}"

Fabric/Quilt

modImplementation "dev.thomasglasser.sherdsapi:sherdsapi-fabric-${minecraft_version}:${sherdsapi_version}"

Common

implementation "dev.thomasglasser.sherdsapi:sherdsapi-common-${minecraft_version}:${sherdsapi_version}"

For Datapack Developers

First, go to https://jsons.thomasglasser.dev/partners/sherdsapi/sherd/ and make a file for your sherd.
The "ingredient" field can be any items or item tag, vanilla or modded, that will be used in the recipe.
The "pattern" field holds the id of your pattern, which determines its texture location. If omitted, the pattern path will match the name of your JSON file.

Place the png file for your pattern in a resource pack at assets/<pack_id>/textures/entity/decorated_pot/<id>.png
Place the json file from the generator in a data pack at data/<pack_id>/sherdsapi/sherd/<id>.json
Lastly, add your item to the minecraft:decorated_pot_sherds item tag. For help, see https://minecraft.fandom.com/wiki/Tag

Done! Your sherd should now be craftable and show up in enabled worlds. Happy sherding!

Overriding vanilla sherds

With the new system, vanilla patterns can now be overridden. Make a sherd JSON with the same item as an existing pattern and it will automatically apply your pattern instead. For example,

{
  "ingredient": [
    {
      "item": "minecraft:sheaf_pottery_sherd"
    },
    {
      "item": "minecraft:shelter_pottery_sherd"
    }
  ],
  "pattern": "minecraft:archer_pottery_pattern"
}

will show the "archery_pottery_pattern" pattern when the sheaf or shelter sherd is applied.

For versions below 5.0.0:

For Mod Developers

Datagen is highly recommended and natively supported. See ForgeSherdDatagenSuite for builtin NeoForge support, FabricSherdDatagenSuite for builtin Fabric support, or SherdDatagenSuite to implement your own. The mod itself has an example of Forge datagen located at dev/thomasglasser/sherdsapi/impl/data/SherdsApiDataGenerators.java

It is recommended to include this API to avoid an additional download by players. This can be done with the include keyword on Fabric/Quilt and the Jar-In-Jar system on NeoForge.

For Datapack Developers

First, go to https://jsons.thomasglasser.dev/partners/sherdsapi/sherd-4.x/ and make a file for your sherd.
The "item" field can be any item's ResourceLocation (a.k.a. ID or Identifier), vanilla or modded (for example, "minecraft:cow_spawn_egg" or "minejago:scythe_of_quakes") that will be used in the recipe.
The "pattern" field holds the id of your pattern, which determines its texture location.

Place the png file for your pattern in a resource pack at assets/<pack_id>/textures/entity/decorated_pot/<id>.png
Place the json file from the generator in a data pack at data/<pack_id>/sherdsapi/sherd/<id>.json
Lastly, add your item to the minecraft:decorated_pot_sherds item tag so it can be used in the recipe. For help, see https://minecraft.fandom.com/wiki/Tag

Done! Your sherd should now be craftable and showing up in enabled worlds. Happy sherding!

Overriding vanilla sherds

With the new system, vanilla patterns can now be overridden. Simply make a sherd json with the same item as an existing pattern and it will automatically apply your pattern instead.
For example,

{
  "item": "minecraft:heart_pottery_sherd",
  "pattern": "sherdsapi:api"
}

will show the "API" pattern when the heart sherd is applied.

For versions below 4.0.0:

With this API you can type 1 line of code and get a pattern on a pot in no time! (Item and pattern not included)

Note: You must add the item to the minecraft:decorated_pot_sherds tag for it to work in the recipe

This mod can be Jar-in-Jar'd so the user doesn't have to download anything.

How to Use

Anytime after your variables are initalized, place this line of code with the item and pattern keys adjusted: PotteryShardRegistry.register(new ResourceLocation(MyMod.MOD_ID, "my_item"), ModPatterns.MY_PATTERN);. This also accepts Suppliers and RegistryObjects. Some examples:

            PotteryShardRegistry.register(new ResourceLocation("barrier"), new ResourceLocation(MOD_ID, "api"));
            PotteryShardRegistry.register(Items.LIGHT, DecoratedPotPatterns.ARCHER);

The item can be anything vanilla or modded that is not already registered as a pattern holder. A pattern can be applied to an unlimited number of items, but an item can only be associated with one pattern. The pattern texture must be located at assets/<modid>/textures/entity/decorated_pot/<id>.png.

Tag It!

Make sure your item registered is part of the minecraft:decorated_pot_sherds tag, located at data/minecraft/tags/items/decorated_pot_sherds.json