Tag

Tags in data packs allow players to group items, blocks, fluids, entity types or functions together using JSON files.

Usage
To utilize block, item, or function tags the JSON files must be placed in a data pack inside the,   or   folder respectively.

The game itself also uses tags. Vanilla block tags are used for various block properties. Vanilla item tags are used for various item properties, vanilla advancement files and vanilla recipe files. There are no vanilla function tags since there are no vanilla functions, but the game reads from certain function tags under the  namespace.

Block Tags
Block tags can be called when testing for block arguments in commands with, which will succeed if the block matches any of the blocks specified in the tag.

Item Tags
Item tags can be called when testing for item arguments in commands with  or in recipes and advancements using , which will succeed if the item matches any of the items specified in the tag.

Function Tags
Function tags can be called in the command with , which will run all the functions specified in the tag in the order of their first appearance in a tag. If a function is referenced multiple times in a tag and its sub-tags, it will only be ran once.

Moreover, functions tagged in the  tag will run every tick at the start of the tick and functions tagged in   will run once at the start of the tick after a server (re)load.

JSON format

 * The root tag.
 * : Whether or not this tag should completely replace tags from different lower priority data packs with the same namespace and name. When  the tag will append instead. Defaults to.
 * : A list of mix and match of object names and tag names. For tags, circular reference is not possible.
 * : An object name in the form.
 * : Another tag of the same type in the form.