Loot Patcher
🪄Introduction
This mod is mainly made for modpacks and is used to inject new loots into existing loot tables.
⚙️Configuration
The initial configuration file looks like:
{
  "patches": []
}
This mod is configured via the config/loot-patcher.json file. By default, this mod will not inject any loot tables.
This mod is compatible with ModMenu, which you can install in order to configure the mod in-game via the configuration screen. After modifying the config you will need to reload the datapack (in-game by typing the /reload command) to apply the changes.
📜Example Usage
It is obvious that there should be no ellipses or comments in the JSON format file, and this case is only for the sake of explanation.
Configuration file:
loot-patcher.json
{
    "patches": [
        {
            "target_tables": [
                "minecraft:chests/ancient_city",
                "^(?!.*xxx).*entities.*" //Support regular expressions.
            ],
            "extra_tables": [
                "xxx:entities/common_drop",
                "xxx:entities/rare_drop"
            ]
        },
        {
            "target_tables": ...
            "extra_tables": ...
        },
        ...
    ]
}
Consequence
The above configuration indicates that two loot pools will be added to the loot table with ID minecraft:chests/ancient_city and to all loot tables with IDs that contain entities but not xxx, with the only loot entry in the pools being those of the loot table type (xxx:entities/ common_drop and xxx:entities/rare_drop).
🚨Warning
You should try to avoid infinite loops in the loot table during the configuration process.
~~Even if you don't, there won't be any serious consequences...~~
{
  "patches": [
    {
      "target_tables": [".*"],
      "extra_tables": ["minecraft:entities/zombie"]
    }
  ]
}
In this case, the target loot tables include the extra tables. If you kill a zombie, the zombie's loot table will attempt to drop itself, which causes infinite recursion.
✉️Feedback
If there are any bugs or suggestions, please provide feedback to the issue page.