diff --git a/src/main/resources/packs/create_wizardry/data/cmmodular/miapi/materials/metal/arcane_metal.json b/src/main/resources/packs/create_wizardry/data/cmmodular/miapi/materials/metal/arcane_metal_from_create_wizardry.json similarity index 100% rename from src/main/resources/packs/create_wizardry/data/cmmodular/miapi/materials/metal/arcane_metal.json rename to src/main/resources/packs/create_wizardry/data/cmmodular/miapi/materials/metal/arcane_metal_from_create_wizardry.json diff --git a/src/main/resources/packs/create_wizardry/data/cmmodular/miapi/materials/metal/mithril.json b/src/main/resources/packs/create_wizardry/data/cmmodular/miapi/materials/metal/mithril_from_create_wizardry.json similarity index 100% rename from src/main/resources/packs/create_wizardry/data/cmmodular/miapi/materials/metal/mithril.json rename to src/main/resources/packs/create_wizardry/data/cmmodular/miapi/materials/metal/mithril_from_create_wizardry.json diff --git a/tools/materials.py b/tools/materials.py index 8f284f3..27e10a6 100644 --- a/tools/materials.py +++ b/tools/materials.py @@ -1426,7 +1426,13 @@ def _extend_with_extra_forms(pack="create_wizardry"): path = f"{base['group']}/{name}" EXTENSIONS.append({ "pack": pack, - "path": path, + # The extension is filed under its own name, not the material's. A + # datapack file is identified by its path, so writing it to the + # material's path in a second pack does not add an extension - it + # replaces the material with one, whichever pack loads last. The + # extension then names itself as its own parent, MIAPI reads that as + # a cycle, and the material is gone for anyone with both mods. + "path": f"{path}_from_{pack}", "data": { "parent": f"cmmodular:{path}", "data": {