Skip to content

Instantly share code, notes, and snippets.

@gigaherz
Created June 24, 2020 15:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gigaherz/33e310abb3f6d77d689a6a6b9194f6a8 to your computer and use it in GitHub Desktop.
Save gigaherz/33e310abb3f6d77d689a6a6b9194f6a8 to your computer and use it in GitHub Desktop.
Minecraft tags convention

Tag Naming Convention

Tags are essentially grouping of items. There's an infinite number of ways to group them, but for the sake of understanding each other, here's what has been the ongoing convention since 1.13 introduced them.

Some basic rules

  1. Do not add tags to the minecraft namespace. Only add your things to existing tags only if you want your things to be used in recipes that might expect vanilla inputs. Example: only add something to the minecraft:wooden_buttons if your block is a redstone button, and is made of some kind of wood.
  2. Add your tag to the forge namespace only if it is designed to be grouped along with other tag files provided by other mods.
  3. Add your tag to some other mods' namespace only if it is designed to complement that mod's crafting logic / gameplay logic.
  4. Use your own mod's namespace for the inputs of your own machines, such that modpacks can replace your inputs without affecting other people's machines.

Materials

Material tags are tags that group everything that is a certain material used as input for recipes.

Example: forge:sugar would include any kind of ingredient you would use if a recipe says "add sugar".

Material tags have singular/uncountable names, such as forge:marble or forge:wood. Material tags must not have an implicit shape/form: "forge:wooden_button" is not a material tag.

Shapes/Forms

Shape tags are tags that group everything sharing a certain state/shape of the object.

Example: forge:buttons would include any item that can be used to activate redstone, and has a momentary action when clicked.

Shape tags have countable and plural names, such as forge:gemstones. Uncountable things such as minecraft:sand would not be a shape.

Materials of a shape

Shapes that have specific well-defined materials can be grouped using the shape as a parent folder.

Example: forge:ingots/silver would include any ingot made of (relatively pure) silver.

These tags use the shape name in plural, followed by the uncountable material name (singular).

Hierarchy: subtypes

Tags can have a hierarchy, where some tag uses the contents of another tag as part of itself. For the purposes of having more specific tags, the more generic tag should be the one which contains the specific.

Example: minecraft:buttons references minecraft:wooden_buttons never the other way around.

Tags can be used to group content from a mod. Mod-specific tags should be considered a subtype of the general tag, and included in the more general tag.

Example: minecraft:wooden_buttons could reference moartrees:buttons.

Hierarchy: machine-specific

Tags can be used to define the valid inputs for a machine or crafting system. Those tags are not subtypes, and should consume the appropriate general tag. This will allow modpacks to specify a replacement tag for your machine, without having to replace the same tag contents for any other machine that uses the same inputs.

Example: basictech:crusher_inputs could reference minecraft:stone to accept any block made out of stone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment