COWMODSКаталог модов

Patched

Allows data/resource packs and mods to modify parts of json files instead of completely replacing them.

Автор: EnderTurret72,3 тыс.79обновлён 24 мар. 2026 г.
Утилиты

Описание

Patched is a mod that provides the ability for data/resource packs (and mods!) to modify parts of json files, allowing them to avoid outright replacing them. This mod can be used for patching biomes, loot tables, models, and most other json files in the game. Whenever Mojang finally makes entity models data-driven (something that feels more distant with each update), Patched will be able to patch those too, providing a lightweight alternative to OptiFine's CEM (Custom Entity Models).

Here's a list of a few different things one can achieve using Patched:

  • Removing or adding world gen features to biomes
  • Removing or adding criteria to advancements
  • Removing or adding loot to loot tables
  • Modifying recipes
  • Modifying all files that match a pattern (e.g., modifying all biomes)
  • Conditional modifications based on loaded mods or configuration options
  • And much more!

Patched is intended to reduce conflicts between data/resource packs as well as between other mods. It's also intended to ease the maintenance of these files, as you don't have to worry about other parts of the file becoming out of date (such as Minecraft updates that modify a biome you're changing an unrelated part of).

Patched comes with a few commands to inspect the state of the game (/patchedc for resource packs):

  • /patched list packs shows a list of packs that have patches
  • /patched list patches <pack> shows a list of patches provided by a given pack
  • /patched dump patch <pack> <name> shows the contents of the patch provided by a specified pack
  • /patched dump file <name> shows the contents of a file, with comments indicating changes made to the file and by who

How it works

Patched allows creating these so-called "patch" files with the same name as the file being patched. These patches follow the syntax of RFC 6902, with extra features to make it better in a modding context. The mod's documentation details how to write these patches (and what other features are available). For example, to remove gravel from the plains biome:

{
  "op": "find",
  "path": "/features/6",
  "test": {
    "path": "",
    "value": "minecraft:ore_gravel"
  },
  "then": {
    "op": "remove",
    "path": ""
  }
}

This patch would then be placed in a data pack at the location data/minecraft/worldgen/biome with the name plains.json.patch.

In order to avoid performance issues, Patched only looks for patches in packs that say they have any (i.e., it's on an opt-in basis). This is to avoid looking in all 200 some mods in your modpack even though only one actually has patches in it. A pack can enable patching by having this in its pack.mcmeta:

{
  "pack": {
    // ...
  },
  "patched": {
    "format_version": 1 // Indicates to Patched that this pack uses Patched, and therefore contains patches.
  }
}

For mods, this information may be placed in the loader-specific metadata file. See the documentation for details.

As another example, this patch adds a custom biome to the "adventuring time" advancement:

[
  {
    "op": "add",
    "path": "/criteria/mydatapack:mybiome",
    "value": {
      "conditions": {
        "player": [
          {
            "condition": "minecraft:entity_properties",
            "entity": "this",
            "predicate": {
              "location": {
                "biome": "mydatapack:mybiome"
              }
            }
          }
        ]
      },
      "trigger": "minecraft:location"
    }
  },
  {
    "op": "add",
    "path": "/requirements/-",
    "value": [ "mydatapack:mybiome" ]
  }
]

Compatibility

Patched hooks into the base resource loading code, allowing any json file to be patched — even other patches (in theory). This will be compatible with the majority of mods, as they will have no need to modify this code, and any mod using Minecraft's resource loading (which is kind of a requirement) will gain the benefits of Patched. However, some mods may also change this resource loading code. In newer versions attempts have been made to be compatible with such mods — should they exist — but this also relies on them to perform similarly compatible changes.

Limitations

Unfortunately, some limitations apply to 'merged' resources. To clarify, a merged resource is any resource that Minecraft merges at runtime — most notably tags. In addition to tags, there are a handful more of these resources (all client-side): language files, sounds.json, texture atlas sources, block states, and fonts. The limitation imposed on these files is that only the pack providing them may patch them. The reason for this is that otherwise Patched doesn't know which of the 30 some files the patch should apply to.

In addition to this, on versions older than 1.19.3, vanilla biomes cannot be (directly) patched. This is because in these versions those biomes are hard-coded — that is, there is no file to patch. This can be worked around by having a data pack with lower priority that adds the biomes from say, the world gen export here, but I would just recommend updating to 1.19.3 or higher.

Последние версии

Все версии →
release

9.0.0+26.1-neoforge

9.0.0+26.1-neoforge
24 мар. 2026 г.321Minecraft: 26.1, 26.1.1, 26.1.2, 26.2neoforge
Скачать
Что нового
## Changes * Updated to 26.1. * Support for reading the legacy Patched metadata (which has been deprecated since 1.21.1) has been withdrawn. Packs that aren't yet using the `patched { ... }` format will need to be updated to use it.
release

9.0.0+26.1-fabric

9.0.0+26.1-fabric
24 мар. 2026 г.732Minecraft: 26.1, 26.1.1, 26.1.2, 26.2fabric
Скачать
Что нового
## Changes * Updated to 26.1. * Support for reading the legacy Patched metadata (which has been deprecated since 1.21.1) has been withdrawn. Packs that aren't yet using the `patched { ... }` format will need to be updated to use it.
release

9.0.0+1.21.11-neoforge

9.0.0+1.21.11-neoforge
6 мар. 2026 г.155Minecraft: 1.21.11neoforge
Скачать
Что нового
## Breaking Changes * Patched is now multi-version: this means that future bug fixes and features will propagate to all supported versions, not just the latest. With this came some major re-architecturing which **will have broken pretty much any mod with a compile-time dependency on Patched**. In other words, mods that interface directly with Patched's code. Data/resource packs and mods that don't touch Patched's code at all will be perfectly fine. Mods that use (Neo)Forge's IMC feature to communicate with Patched will also be fine. I'm not currently aware of any mods that touch Patched's code, but any that do exist will need to adapt to these changes to work with the new version(s). * Patched (the library) has been updated to version 2.0.0. This will almost certainly impact anyone touching the library (or the mod) directly. One can read about the changes [here](https://github.com/EnderTurret/Patched/releases/tag/v2.0.0). ## New Features * Added the `/patched trace <file>` command (also works with `/patchedc`), which allows "tracing" the trail of patches/overrides applied to a specified file. This can be used to find out whether a given patch is *actually* applying to a file without needing to read through a (possibly massive) json file from `/patched dump file`. As a bonus, it'll list the overrides of files that have had no patches applied. For example, did you know that NeoForge replaces the bucket recipe? (I already did, but maybe you didn't — and now you can know all that and more with this command!) * Added absolute paths and placeholders. See also the updated path documentation [here](https://github.com/EnderTurret/PatchedMod/wiki/JSON-Paths). * Packs with dynamic patches no longer need a file in the namespaces they're targeting for their patches to apply. One can now get rid of their `_dummy.json` files, if present. ## New Features (for mod developers) * On Fabric, custom test conditions and data sources can now be registered using `ObjectShare`. See the documentation for details. ## Changes * Patches dumped using the wrong-sided command (e.g. `/patched dump ...` on a patch in `assets`) will now dump normally rather than cryptically failing. * Fixed errors about malformed or missing dynamic patches being logged with more detail than they should (and only once). * The "Applying patch ... from ..." and "Built PatchTargetManager ..." messages are no longer logged by default, as they're usually not necessary (and add a lot of noise to the logs). If you need either for whatever reason, you can turn them back on by adding `-Dpatched.debug` to your JVM arguments. * Fixed `pack_enabled` test condition erroring when no dynamic patches are present.
release

9.0.0+1.21.11-fabric

9.0.0+1.21.11-fabric
6 мар. 2026 г.543Minecraft: 1.21.11fabric
Скачать
Что нового
## Breaking Changes * Patched is now multi-version: this means that future bug fixes and features will propagate to all supported versions, not just the latest. With this came some major re-architecturing which **will have broken pretty much any mod with a compile-time dependency on Patched**. In other words, mods that interface directly with Patched's code. Data/resource packs and mods that don't touch Patched's code at all will be perfectly fine. Mods that use (Neo)Forge's IMC feature to communicate with Patched will also be fine. I'm not currently aware of any mods that touch Patched's code, but any that do exist will need to adapt to these changes to work with the new version(s). * Patched (the library) has been updated to version 2.0.0. This will almost certainly impact anyone touching the library (or the mod) directly. One can read about the changes [here](https://github.com/EnderTurret/Patched/releases/tag/v2.0.0). ## New Features * Added the `/patched trace <file>` command (also works with `/patchedc`), which allows "tracing" the trail of patches/overrides applied to a specified file. This can be used to find out whether a given patch is *actually* applying to a file without needing to read through a (possibly massive) json file from `/patched dump file`. As a bonus, it'll list the overrides of files that have had no patches applied. For example, did you know that NeoForge replaces the bucket recipe? (I already did, but maybe you didn't — and now you can know all that and more with this command!) * Added absolute paths and placeholders. See also the updated path documentation [here](https://github.com/EnderTurret/PatchedMod/wiki/JSON-Paths). * Packs with dynamic patches no longer need a file in the namespaces they're targeting for their patches to apply. One can now get rid of their `_dummy.json` files, if present. ## New Features (for mod developers) * On Fabric, custom test conditions and data sources can now be registered using `ObjectShare`. See the documentation for details. ## Changes * Patches dumped using the wrong-sided command (e.g. `/patched dump ...` on a patch in `assets`) will now dump normally rather than cryptically failing. * Fixed errors about malformed or missing dynamic patches being logged with more detail than they should (and only once). * The "Applying patch ... from ..." and "Built PatchTargetManager ..." messages are no longer logged by default, as they're usually not necessary (and add a lot of noise to the logs). If you need either for whatever reason, you can turn them back on by adding `-Dpatched.debug` to your JVM arguments. * Fixed `pack_enabled` test condition erroring when no dynamic patches are present.
release

9.0.0+1.21.1-neoforge

9.0.0+1.21.1-neoforge
6 мар. 2026 г.1,6 тыс.Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10neoforge
Скачать
Что нового
## Breaking Changes * Patched is now multi-version: this means that future bug fixes and features will propagate to all supported versions, not just the latest. With this came some major re-architecturing which **will have broken pretty much any mod with a compile-time dependency on Patched**. In other words, mods that interface directly with Patched's code. Data/resource packs and mods that don't touch Patched's code at all will be perfectly fine. Mods that use (Neo)Forge's IMC feature to communicate with Patched will also be fine. I'm not currently aware of any mods that touch Patched's code, but any that do exist will need to adapt to these changes to work with the new version(s). * Patched (the library) has been updated to version 2.0.0. This will almost certainly impact anyone touching the library (or the mod) directly. One can read about the changes [here](https://github.com/EnderTurret/Patched/releases/tag/v2.0.0). ## New Features * Added the `/patched trace <file>` command (also works with `/patchedc`), which allows "tracing" the trail of patches/overrides applied to a specified file. This can be used to find out whether a given patch is *actually* applying to a file without needing to read through a (possibly massive) json file from `/patched dump file`. As a bonus, it'll list the overrides of files that have had no patches applied. For example, did you know that NeoForge replaces the bucket recipe? (I already did, but maybe you didn't — and now you can know all that and more with this command!) * Added absolute paths and placeholders. See also the updated path documentation [here](https://github.com/EnderTurret/PatchedMod/wiki/JSON-Paths). * Packs with dynamic patches no longer need a file in the namespaces they're targeting for their patches to apply. One can now get rid of their `_dummy.json` files, if present. ## New Features (for mod developers) * On Fabric, custom test conditions and data sources can now be registered using `ObjectShare`. See the documentation for details. ## Changes * Patches dumped using the wrong-sided command (e.g. `/patched dump ...` on a patch in `assets`) will now dump normally rather than cryptically failing. * Fixed errors about malformed or missing dynamic patches being logged with more detail than they should (and only once). * The "Applying patch ... from ..." and "Built PatchTargetManager ..." messages are no longer logged by default, as they're usually not necessary (and add a lot of noise to the logs). If you need either for whatever reason, you can turn them back on by adding `-Dpatched.debug` to your JVM arguments. * Fixed `pack_enabled` test condition erroring when no dynamic patches are present. ## Backported Changes * Fixed patches not being detected from data/resource packs that contain overlays.
release

9.0.0+1.21.1-fabric

9.0.0+1.21.1-fabric
6 мар. 2026 г.1,2 тыс.Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10fabric
Скачать
Что нового
## Breaking Changes * Patched is now multi-version: this means that future bug fixes and features will propagate to all supported versions, not just the latest. With this came some major re-architecturing which **will have broken pretty much any mod with a compile-time dependency on Patched**. In other words, mods that interface directly with Patched's code. Data/resource packs and mods that don't touch Patched's code at all will be perfectly fine. Mods that use (Neo)Forge's IMC feature to communicate with Patched will also be fine. I'm not currently aware of any mods that touch Patched's code, but any that do exist will need to adapt to these changes to work with the new version(s). * Patched (the library) has been updated to version 2.0.0. This will almost certainly impact anyone touching the library (or the mod) directly. One can read about the changes [here](https://github.com/EnderTurret/Patched/releases/tag/v2.0.0). ## New Features * Added the `/patched trace <file>` command (also works with `/patchedc`), which allows "tracing" the trail of patches/overrides applied to a specified file. This can be used to find out whether a given patch is *actually* applying to a file without needing to read through a (possibly massive) json file from `/patched dump file`. As a bonus, it'll list the overrides of files that have had no patches applied. For example, did you know that NeoForge replaces the bucket recipe? (I already did, but maybe you didn't — and now you can know all that and more with this command!) * Added absolute paths and placeholders. See also the updated path documentation [here](https://github.com/EnderTurret/PatchedMod/wiki/JSON-Paths). * Packs with dynamic patches no longer need a file in the namespaces they're targeting for their patches to apply. One can now get rid of their `_dummy.json` files, if present. ## New Features (for mod developers) * On Fabric, custom test conditions and data sources can now be registered using `ObjectShare`. See the documentation for details. ## Changes * Patches dumped using the wrong-sided command (e.g. `/patched dump ...` on a patch in `assets`) will now dump normally rather than cryptically failing. * Fixed errors about malformed or missing dynamic patches being logged with more detail than they should (and only once). * The "Applying patch ... from ..." and "Built PatchTargetManager ..." messages are no longer logged by default, as they're usually not necessary (and add a lot of noise to the logs). If you need either for whatever reason, you can turn them back on by adding `-Dpatched.debug` to your JVM arguments. * Fixed `pack_enabled` test condition erroring when no dynamic patches are present. ## Backported Changes * Fixed patches not being detected from data/resource packs that contain overlays.
release

9.0.0+1.20.1-forge

9.0.0+1.20.1-forge
6 мар. 2026 г.709Minecraft: 1.20, 1.20.1, 1.20.2forge
Скачать
Что нового
## Breaking Changes * Patched is now multi-version: this means that future bug fixes and features will propagate to all supported versions, not just the latest. With this came some major re-architecturing which **will have broken pretty much any mod with a compile-time dependency on Patched**. In other words, mods that interface directly with Patched's code. Data/resource packs and mods that don't touch Patched's code at all will be perfectly fine. Mods that use (Neo)Forge's IMC feature to communicate with Patched will also be fine. I'm not currently aware of any mods that touch Patched's code, but any that do exist will need to adapt to these changes to work with the new version(s). * Patched (the library) has been updated to version 2.0.0. This will almost certainly impact anyone touching the library (or the mod) directly. One can read about the changes [here](https://github.com/EnderTurret/Patched/releases/tag/v2.0.0). * **Removed full Quilt support**. There is now only partial Quilt support in the Fabric version of the mod. It'll apply patches from data packs and resource packs but not from mods. (There aren't any Quilt exclusive mods that contain patches anyway.) If you do need patches from mods to apply then consider migrating to Fabric instead. ## New Features * Added the `/patched trace <file>` command (also works with `/patchedc`), which allows "tracing" the trail of patches/overrides applied to a specified file. This can be used to find out whether a given patch is *actually* applying to a file without needing to read through a (possibly massive) json file from `/patched dump file`. As a bonus, it'll list the overrides of files that have had no patches applied. For example, did you know that NeoForge replaces the bucket recipe? (I already did, but maybe you didn't — and now you can know all that and more with this command!) * Added absolute paths and placeholders. See also the updated path documentation [here](https://github.com/EnderTurret/PatchedMod/wiki/JSON-Paths). * Packs with dynamic patches no longer need a file in the namespaces they're targeting for their patches to apply. One can now get rid of their `_dummy.json` files, if present. ## New Features (for mod developers) * On Fabric, custom test conditions and data sources can now be registered using `ObjectShare`. See the documentation for details. ## Changes * Patches dumped using the wrong-sided command (e.g. `/patched dump ...` on a patch in `assets`) will now dump normally rather than cryptically failing. * Fixed errors about malformed or missing dynamic patches being logged with more detail than they should (and only once). * The "Applying patch ... from ..." and "Built PatchTargetManager ..." messages are no longer logged by default, as they're usually not necessary (and add a lot of noise to the logs). If you need either for whatever reason, you can turn them back on by adding `-Dpatched.debug` to your JVM arguments. * Fixed `pack_enabled` test condition erroring when no dynamic patches are present. * Fixed broken `FilePackResources` handling on 1.20.2. * Fixed patches not being detected from data/resource packs that contain overlays on 1.20.2.
release

9.0.0+1.20.1-fabric

9.0.0+1.20.1-fabric
6 мар. 2026 г.743Minecraft: 1.20, 1.20.1, 1.20.2fabric
Скачать
Что нового
## Breaking Changes * Patched is now multi-version: this means that future bug fixes and features will propagate to all supported versions, not just the latest. With this came some major re-architecturing which **will have broken pretty much any mod with a compile-time dependency on Patched**. In other words, mods that interface directly with Patched's code. Data/resource packs and mods that don't touch Patched's code at all will be perfectly fine. Mods that use (Neo)Forge's IMC feature to communicate with Patched will also be fine. I'm not currently aware of any mods that touch Patched's code, but any that do exist will need to adapt to these changes to work with the new version(s). * Patched (the library) has been updated to version 2.0.0. This will almost certainly impact anyone touching the library (or the mod) directly. One can read about the changes [here](https://github.com/EnderTurret/Patched/releases/tag/v2.0.0). * **Removed full Quilt support**. There is now only partial Quilt support in the Fabric version of the mod. It'll apply patches from data packs and resource packs but not from mods. (There aren't any Quilt exclusive mods that contain patches anyway.) If you do need patches from mods to apply then consider migrating to Fabric instead. ## New Features * Added the `/patched trace <file>` command (also works with `/patchedc`), which allows "tracing" the trail of patches/overrides applied to a specified file. This can be used to find out whether a given patch is *actually* applying to a file without needing to read through a (possibly massive) json file from `/patched dump file`. As a bonus, it'll list the overrides of files that have had no patches applied. For example, did you know that NeoForge replaces the bucket recipe? (I already did, but maybe you didn't — and now you can know all that and more with this command!) * Added absolute paths and placeholders. See also the updated path documentation [here](https://github.com/EnderTurret/PatchedMod/wiki/JSON-Paths). * Packs with dynamic patches no longer need a file in the namespaces they're targeting for their patches to apply. One can now get rid of their `_dummy.json` files, if present. ## New Features (for mod developers) * On Fabric, custom test conditions and data sources can now be registered using `ObjectShare`. See the documentation for details. ## Changes * Patches dumped using the wrong-sided command (e.g. `/patched dump ...` on a patch in `assets`) will now dump normally rather than cryptically failing. * Fixed errors about malformed or missing dynamic patches being logged with more detail than they should (and only once). * The "Applying patch ... from ..." and "Built PatchTargetManager ..." messages are no longer logged by default, as they're usually not necessary (and add a lot of noise to the logs). If you need either for whatever reason, you can turn them back on by adding `-Dpatched.debug` to your JVM arguments. * Fixed `pack_enabled` test condition erroring when no dynamic patches are present. * Fixed broken `FilePackResources` handling on 1.20.2. * Fixed patches not being detected from data/resource packs that contain overlays on 1.20.2.
release

9.0.0+1.19.2-forge

9.0.0+1.19.2-forge
6 мар. 2026 г.88Minecraft: 1.19.1, 1.19.2forge
Скачать
Что нового
## Known Issues * ModernFix's `mixin.perf.resourcepacks` option breaks Patched's resource scanning, causing mod resources to not be suggested in `/patched dump` and `/patched trace`. If you need those suggestions, then set `mixin.perf.resourcepacks=false` in `modernfix-mixins.properties`. * Fabric API breaks Patched's vanilla resource scanning, causing vanilla's assets and data to not be suggested in `/patched dump` and `/patched trace`. This is not something I can fix or work around. ## Breaking Changes * Patched is now multi-version: this means that future bug fixes and features will propagate to all supported versions, not just the latest. With this came some major re-architecturing which **will have broken pretty much any mod with a compile-time dependency on Patched**. In other words, mods that interface directly with Patched's code. Data/resource packs and mods that don't touch Patched's code at all will be perfectly fine. Mods that use (Neo)Forge's IMC feature to communicate with Patched will also be fine. I'm not currently aware of any mods that touch Patched's code, but any that do exist will need to adapt to these changes to work with the new version(s). * Patched (the library) has been updated to version 2.0.0. This will almost certainly impact anyone touching the library (or the mod) directly. One can read about the changes [here](https://github.com/EnderTurret/Patched/releases/tag/v2.0.0). * **Removed full Quilt support**. There is now only partial Quilt support in the Fabric version of the mod. It'll apply patches from data packs and resource packs but not from mods. (There aren't any Quilt exclusive mods that contain patches anyway.) If you do need patches from mods to apply then consider migrating to Fabric instead. ## New Features * Added the `/patched trace <file>` command (also works with `/patchedc`), which allows "tracing" the trail of patches/overrides applied to a specified file. This can be used to find out whether a given patch is *actually* applying to a file without needing to read through a (possibly massive) json file from `/patched dump file`. As a bonus, it'll list the overrides of files that have had no patches applied. For example, did you know that NeoForge replaces the bucket recipe? (I already did, but maybe you didn't — and now you can know all that and more with this command!) * Added absolute paths and placeholders. See also the updated path documentation [here](https://github.com/EnderTurret/PatchedMod/wiki/JSON-Paths). * Packs with dynamic patches no longer need a file in the namespaces they're targeting for their patches to apply. One can now get rid of their `_dummy.json` files, if present. ## New Features (for mod developers) * On Fabric, custom test conditions and data sources can now be registered using `ObjectShare`. See the documentation for details. ## Backported Features * Patches can now be applied to tags/sounds json/blockstates(?)/etc. or so-called "merged files". These only work for files defined *in the same pack*. That is, you cannot patch a tag defined by Minecraft (although you could patch your own contributions to it). This opens up the possibility for configurable tags, among other things. * Added a new `test` type: `patched:pack_enabled`, which allows checking for the existence of data/resource packs. See the documentation for details. * Added the `include` operation, which allows effectively including the contents of a patch inside another patch. This is intended to reduce patch duplication. * Added "patch targets" (also called "dynamic" patches), which allow applying a single patch to any number of files. * Added two new test types: * `patched:registered`, which allows testing for the existence of something in a registry * `patched:item_registered`, which is a simplified version of the above ## Backported Features (for mod developers) * Added the `paste` patch type, which allows 'pasting' arbitrary code-defined data in json files. The intended purpose of this patch type is to make it possible to get config values into otherwise-unconfigurable things like biomes. For example, making a feature's spawn rate configurable without needing data packs. See the documentation and `SingleDataSource` for more information. * On (Neo)Forge, mods may now use IMC (InterModComms) to register data sources (for the `paste` operation) and test conditions (for `test` patches with a `type` field). See the documentation for details. * The patch datagen stuff now supports `Codec`s in all of the methods taking `Object`s, and also now allows providing an alternate `Gson` for serialization in the `Object` versions. There's also been some minor javadoc improvements in that area. * Patched now supports reading its metadata from the loader-specific mod metadata files! This means that modders can finally ditch their `pack.mcmeta`s and move this data to their `fabric.mod.json`/`quilt.mod.json`/`mods.toml`! ## Changes * Patches dumped using the wrong-sided command (e.g. `/patched dump ...` on a patch in `assets`) will now dump normally rather than cryptically failing. * Fixed errors about malformed or missing dynamic patches being logged with more detail than they should (and only once). * The "Applying patch ... from ..." and "Built PatchTargetManager ..." messages are no longer logged by default, as they're usually not necessary (and add a lot of noise to the logs). If you need either for whatever reason, you can turn them back on by adding `-Dpatched.debug` to your JVM arguments. * Patched now names packs using the format from 1.20.1 and up. In other words, instead of `<folder name>` it's `file/<folder name>`, instead of `Default` it's `vanilla`, and instead of `Programmer Art` it's `programmer_art`. This allows data/resource packs using the `patched:pack_enabled` test condition to work on 1.19.2 and 1.18.2 without needing to account for these names. (Side note: this change doesn't break anything because the `patched:pack_enabled` test condition didn't exist on this version yet.) ## Backported Changes * Rewrote Patched's primary mixin for better compatibility with mods that cause re-entrant resource queries, such as Tiny Skeletons. * **The Patched metadata in `pack.mcmeta` files has been modified** to reflect Mojang's changes to pack metadata sections over the past several updates. In short: `patched:has_patches` is no more, and instead there's a patched section. **Patched will still load old-style packs.** * Fix packs that take advantage of Minecraft's filtering causing Patched to throw countless errors. * On Fabric, give custom builtin packs better names. ## Backported Changes (for mod developers) * Custom test registration has changed — they are now registered using `Patched.registerTestCondition()` and `Patched.registerSimpleTestCondition()`. * Patched's library sources are now included in the mod's sources jar. * Patched's internals (or most of them) are now in an `internal` package, rather than spread out all over the place. This will break code using or mixing into these internals, but you shouldn't be doing that anyway.
release

9.0.0+1.19.2-fabric

9.0.0+1.19.2-fabric
6 мар. 2026 г.71Minecraft: 1.19.1, 1.19.2fabric
Скачать
Что нового
## Known Issues * ModernFix's `mixin.perf.resourcepacks` option breaks Patched's resource scanning, causing mod resources to not be suggested in `/patched dump` and `/patched trace`. If you need those suggestions, then set `mixin.perf.resourcepacks=false` in `modernfix-mixins.properties`. * Fabric API breaks Patched's vanilla resource scanning, causing vanilla's assets and data to not be suggested in `/patched dump` and `/patched trace`. This is not something I can fix or work around. ## Breaking Changes * Patched is now multi-version: this means that future bug fixes and features will propagate to all supported versions, not just the latest. With this came some major re-architecturing which **will have broken pretty much any mod with a compile-time dependency on Patched**. In other words, mods that interface directly with Patched's code. Data/resource packs and mods that don't touch Patched's code at all will be perfectly fine. Mods that use (Neo)Forge's IMC feature to communicate with Patched will also be fine. I'm not currently aware of any mods that touch Patched's code, but any that do exist will need to adapt to these changes to work with the new version(s). * Patched (the library) has been updated to version 2.0.0. This will almost certainly impact anyone touching the library (or the mod) directly. One can read about the changes [here](https://github.com/EnderTurret/Patched/releases/tag/v2.0.0). * **Removed full Quilt support**. There is now only partial Quilt support in the Fabric version of the mod. It'll apply patches from data packs and resource packs but not from mods. (There aren't any Quilt exclusive mods that contain patches anyway.) If you do need patches from mods to apply then consider migrating to Fabric instead. ## New Features * Added the `/patched trace <file>` command (also works with `/patchedc`), which allows "tracing" the trail of patches/overrides applied to a specified file. This can be used to find out whether a given patch is *actually* applying to a file without needing to read through a (possibly massive) json file from `/patched dump file`. As a bonus, it'll list the overrides of files that have had no patches applied. For example, did you know that NeoForge replaces the bucket recipe? (I already did, but maybe you didn't — and now you can know all that and more with this command!) * Added absolute paths and placeholders. See also the updated path documentation [here](https://github.com/EnderTurret/PatchedMod/wiki/JSON-Paths). * Packs with dynamic patches no longer need a file in the namespaces they're targeting for their patches to apply. One can now get rid of their `_dummy.json` files, if present. ## New Features (for mod developers) * On Fabric, custom test conditions and data sources can now be registered using `ObjectShare`. See the documentation for details. ## Backported Features * Patches can now be applied to tags/sounds json/blockstates(?)/etc. or so-called "merged files". These only work for files defined *in the same pack*. That is, you cannot patch a tag defined by Minecraft (although you could patch your own contributions to it). This opens up the possibility for configurable tags, among other things. * Added a new `test` type: `patched:pack_enabled`, which allows checking for the existence of data/resource packs. See the documentation for details. * Added the `include` operation, which allows effectively including the contents of a patch inside another patch. This is intended to reduce patch duplication. * Added "patch targets" (also called "dynamic" patches), which allow applying a single patch to any number of files. * Added two new test types: * `patched:registered`, which allows testing for the existence of something in a registry * `patched:item_registered`, which is a simplified version of the above ## Backported Features (for mod developers) * Added the `paste` patch type, which allows 'pasting' arbitrary code-defined data in json files. The intended purpose of this patch type is to make it possible to get config values into otherwise-unconfigurable things like biomes. For example, making a feature's spawn rate configurable without needing data packs. See the documentation and `SingleDataSource` for more information. * On (Neo)Forge, mods may now use IMC (InterModComms) to register data sources (for the `paste` operation) and test conditions (for `test` patches with a `type` field). See the documentation for details. * The patch datagen stuff now supports `Codec`s in all of the methods taking `Object`s, and also now allows providing an alternate `Gson` for serialization in the `Object` versions. There's also been some minor javadoc improvements in that area. * Patched now supports reading its metadata from the loader-specific mod metadata files! This means that modders can finally ditch their `pack.mcmeta`s and move this data to their `fabric.mod.json`/`quilt.mod.json`/`mods.toml`! ## Changes * Patches dumped using the wrong-sided command (e.g. `/patched dump ...` on a patch in `assets`) will now dump normally rather than cryptically failing. * Fixed errors about malformed or missing dynamic patches being logged with more detail than they should (and only once). * The "Applying patch ... from ..." and "Built PatchTargetManager ..." messages are no longer logged by default, as they're usually not necessary (and add a lot of noise to the logs). If you need either for whatever reason, you can turn them back on by adding `-Dpatched.debug` to your JVM arguments. * Patched now names packs using the format from 1.20.1 and up. In other words, instead of `<folder name>` it's `file/<folder name>`, instead of `Default` it's `vanilla`, and instead of `Programmer Art` it's `programmer_art`. This allows data/resource packs using the `patched:pack_enabled` test condition to work on 1.19.2 and 1.18.2 without needing to account for these names. (Side note: this change doesn't break anything because the `patched:pack_enabled` test condition didn't exist on this version yet.) ## Backported Changes * Rewrote Patched's primary mixin for better compatibility with mods that cause re-entrant resource queries, such as Tiny Skeletons. * **The Patched metadata in `pack.mcmeta` files has been modified** to reflect Mojang's changes to pack metadata sections over the past several updates. In short: `patched:has_patches` is no more, and instead there's a patched section. **Patched will still load old-style packs.** * Fix packs that take advantage of Minecraft's filtering causing Patched to throw countless errors. * On Fabric, give custom builtin packs better names. ## Backported Changes (for mod developers) * Custom test registration has changed — they are now registered using `Patched.registerTestCondition()` and `Patched.registerSimpleTestCondition()`. * Patched's library sources are now included in the mod's sources jar. * Patched's internals (or most of them) are now in an `internal` package, rather than spread out all over the place. This will break code using or mixing into these internals, but you shouldn't be doing that anyway.