Customization (1.20.4 - 1.21.1)
Table of Contents
Market Presets
Market Presets are somewhat comparable to data packs - they control whether a set of Market Items should be available, and control their default payments.
Farming for Blockheads ships with a set of market presets for various supported mods, some of which are disabled by default.
You can enable additional presets or disable default presets in the config file.
Creating your own Market Presets
If you’re creating a data pack, it’s a good idea to bundle a market preset with it so that users can easily override payment items for your whole set of items.
Market Presets are stored in a folder called market_presets
and behave like any other data resource, i.e. they are namespaced and must be referenced as such.
For mod compatibility packs, the namespace should be the mod id, while the path should describe the content of the presets, e.g. minecraft:animal_eggs
.
Example:
{
"enabled": false,
"payment": {
"ingredient": {
"item": "minecraft:diamond"
},
"count": 1
}
}
Market Categories
Each Market Category adds a new tab to the Market menu. You can add your own categories by creating a data pack.
Market Categories are stored in a folder called market_categories
and behave like any other data resource, i.e. they are namespaced and must be referenced as such.
Farming for Blockheads ships with four default categories: farmingforblockheads:seeds
, farmingforblockheads:saplings
, farmingforblockheads:flowers
and farmingforblockheads:other
.
Example:
{
"tooltip": {
"translate": "category.farmingforblockheads.flowers"
},
"icon": {
"item": "minecraft:dandelion"
},
"sortIndex": 30
}
Market Items
Market Items are the items that are available for purchase in the Market. You can add your own purchaseable items by creating a data pack.
As these items are defined using Minecraft’s recipe system, you can also easily use a mod like CraftTweaker to define them via CraftTweaker’s addJsonRecipe()
.
Farming for Blockheads’ default recipes are located within recipes/market/<modId>/<itemId>
, but this is just convention to avoid accidental recipe collisions.
Example:
{
"type": "farmingforblockheads:market",
"category": "farmingforblockheads:other",
"preset": "minecraft:animal_eggs",
"result": {
"item": "minecraft:cat_spawn_egg"
}
}
NBT / Components and Enchanted Items
Minecraft 1.20.6 and above
{
"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
{
"type": "farmingforblockheads:market",
"result": {
"item": "minecraft:enchanted_book",
"tag": {
"StoredEnchantments": [
{
"id": "minecraft:wind_burst",
"lvl": 3
}
]
}
}
}