Loot injectors are a JSON format added by Mantle in 1.19.2 which allow adding new entries to a loot table without modifying the original table JSON. This provides better mod comparability with other mods doing the same sorts of modifications.

Injector Format

Fluid texture JSON are defined under data/<domain>/mantle/loot_injectors/<name>.json, though the name <name> is arbitrary. They have the following format:

  • (Object): The loot injector object.
    • conditions (Array): List of conditions that must pass for this injector to be loaded, following the Forge recipe condition format. If unset, the injector will always load.
      • condition (Condition): Condition that must pass for the injector to be loaded.
    • name (Resource Location): Full path to the loot table to modify, relative to data/<domain>/loot_tables/ and excluding the .json extension.
    • pools (Array): List of pools to modify.
      • (Object): A loot pool object.
        • name (String): Name of the pool, per the Forge specification.
          • Loot pools added by mods should have the name specified in JSON.
          • For tables that don’t specify names, the first pool is named main.
          • Every following pool that does not specify a name is named pool# where # is the pool index (starting from 0 if you include main). For example, the second pool in a loot table is named pool1.
        • entries (Array): Array of loot entries.

While the loot injector <domain>:<name> must be unique, if another injector is placed at the same name it will override based on datapack order. Overriding a loot injector with an empty JSON will cause it to be skipped, allowing for conveiently removing injectors.

Multiple injectors with the same loot table name will be merged, applying the pools from each of them.