Everything posted by MinskWurdalak
For everyone who make datapacks (and modpacks), it is not a news that mods (mostly technological), when it comes to processing ores into other materials rely on Forge tags, rather than their ID. This allows greater cross-mod compatibility when it comes to processing variety of ores. This system works as following: All ores are given tag "ores.json" in directories "data/forge/tags/items/" and "data/forge/tags/blocks/". All ores that contain certain materials are tagged "name_of_material.json" in directories "data/forge/tags/items/tags/ores/" and "data/forge/tags/blocks/ores/". These tags are pretty much enough for most processes that involve ores. However, some mods add process that are more immersive in relation to on what kind of rock this ore is based on. For example, when processing vanilla iron ore Create mod crushing wheels output crushed ores and with 1/8 probability also output cobblestone. But they will also output cobblestone when crushing any ore that has "forge:ores/iron" tag, even if design wise it isn't based on stone. Another example, where ore base is relevant, is mods that allow to reinfuse or turn rock into ore, such as infusion in Mekanism or orechid in Botania. While most mods just add one base per ore types, some are more diverse. Subterranean Wilderness, for example, is mod that refurbish caves depending on biome, adding variants for all ore types, for example desert caves' walls are sandstone based and contain sandstone based variants of all vanilla ores. Such mods are now uncommon, but it seems that this going to change in the future. Vanilla Minecraft already has ore basis variation: overworld gold ore with stone base and nether gold ore with netherrack base. In upcoming 1.17 Caves & Cliffs update, 5/8 of overworld ores will have two variants: one based on stone and one based on grimstone. In order to confront this new reality and maintain compatibility between technological mods, new family of tags should be added. I propose the following solution: All ores that are based on certain rocks are to be tagged "name_of_ore_base.json" in directories "data/forge/tags/items/tags/ore_bases/" and "data/forge/tags/blocks/ore_bases/". For example, vanilla stone gold ore would get additional tag "forge:ore_bases/stone", vanilla grimstone gold ore would get additional tag "forge:ore_bases/grimstone" and vanilla nether gold ore would get additional tag "forge:ore_bases/netherrack". Most processes would still use just old tags that denote carried material, but this additional tag system would allow to maintain many technological mods proper functionality when it comes to ore crashing and ore creation recipes by employing both tags. P.S. I know that I can add/remove/change recipes and tags with CraftTweaker, Kubejs and/or datapacks. I am talking about default Forge tag convention that might be useful in the future.