Minecraft 1.21.2+

Automatic Migration

This tool can only migrate data that was already updated for the changes in Minecraft 1.20.4+. If you have older data, try using the previous migrator first.

Accepted formats: .json

Market Presets

"Presets" have been replaced by Defaults, which are hierarchical and managed through a farmingforblockheads/defaults.json file in a datapack.

Defaults go from generic to specific, with each part separated by a period.

For example, a modded seed market recipe may specify the default default.seeds.farmersdelight, which will lookup a default in order from right-to-left:

  • If defaults.json defines a default for default.seeds.farmersdelight, that will be used.
  • Otherwise, if defaults.json defines a default for default.seeds, that will be used.
  • Otherwise, it will fall back to the default key that comes shipped with Farming for Blockheads (cost: 1 emerald)

Similarly, you can now enable a whole set of items (e.g. all mushrooms) by adding default.mushrooms to your includedPresets config option.

Farming for Blockheads will additionally read defaults from the config folder at config/farmingforblockheads/defaults.json as an easier alternative to datapacks.

Minecraft 1.20.6+

Item Components

Minecraft 1.20.6 and above have replaced NBT in items with components. Reference the Minecraft Wiki for a list of components.

This example adds an enchantment as well as a localized custom name to an enchanted book:

{
  "type": "farmingforblockheads:market",
  "result": {
    "item": "minecraft:enchanted_book",
    "components": {
      "minecraft:stored_enchantments": {
        "levels": {"minecraft:wind_burst": 3}
      },
      "minecraft:custom_name": "[{\"translate\": \"enchantment.minecraft.wind_burst\"}, {\"text\": \" 3\"}]"
    }
  }
}

Minecraft 1.20.4+

Automatic Migration

This tool only migrates data that from versions prior to Minecraft 1.20.4 to the format required by Minecraft 1.20.4 up until including 1.21.1. If you have data that was already migrated to 1.20.4 but need to use it in 1.21.2+, try using the next migrator instead.

Accepted formats: .json

Group Overrides

"Groups" have been replaced by presets, which included a renaming to be more consistent and guessable.

Instead of "Pam's HarvestCraft 2 Trees Saplings" which has a million different ways of spelling and capitalizing it, the preset that represents this group is now called "pamhc2trees:saplings", where pamhc2trees is the mod id.

If you want to simply enable or disable a preset, you can do so without an override now by adding it to either enabledOptionalPresets or disabledDefaultPresets.

If you want to change the default price of a preset's items, you can override the preset's data just like you would override any other data in a data pack, i.e. by placing a json file at the same location.

Entry Overrides

Market Items are now defined using Minecraft's recipe system, with each item being defined in its own individual file.

That means you can easily override these in a data pack by placing a file at the same location, or using a mod like CraftTweaker and its addJsonRecipe() function.