Skip to content

Brewmaster Home Page

Scouter456 edited this page Aug 1, 2024 · 8 revisions

Brewmaster

Brewmaster is a Minecraft mod that allows you to define, add, remove, or replace potion recipes, container mixes, or containers using a datapack.

The datapack entries need to be added to data/<id>/brewmaster/potion_recipe/

The mod also adds a command to generate recipe files for all the current potions in the game, which can then be used to to change them this can be found under the command /brews

Potion Recipes

Adding potions mixes

Below is an example of what the JSON file should look like for adding a new potion mix:

{
  "value": {
    "input_potion": "minecraft:harming",
    "ingredient": {
      "item": "minecraft:acacia_boat"
    },
    "output_potion": "minecraft:healing",
    "type": "brewmaster:add_potion_mix"
  }
}

This JSON defines a new recipe for a healing potion from an acacia boat and a potion of harming

The item item key can also be changed with tag to allow for tags to be used instead of a single item as ingredient

Below is an example of what the JSON file should look like for removing a potion mix:

{
  "value": {
    "recipe_to_remove": {
      "input_potion": "minecraft:awkward",
      "ingredient": "minecraft:blaze_rod",
      "output_potion": "minecraft:strength"
    },
    "type": "brewmaster:remove_potion_mix"
  }
}

This JSON checks for the items and potions defined in the recipe list and if it finds them it will remove the recipe.

Below is an example of what the JSON file should look like for replacing a potion mix:

{
  "value": {
    "old_recipe": {
      "input_potion": "minecraft:awkward",
      "ingredient": "minecraft:blaze_rod",
      "output_potion": "minecraft:strength"
    },
    "new_recipe": {
      "input_potion": "minecraft:awkward",
      "ingredient": {
        "item": "minecraft:emerald"
      },
      "output_potion": "minecraft:strength"
    },
    "type": "brewmaster:replace_potion_mix"
  }
}

This JSON checks for the items and potions defined in the recipe list and if it finds them it will replace it with the recipe defined.

This is essentially a remove and add operation added together.

The item item key can also be changed with tag to allow for tags to be used instead of a single item as ingredient

Below is an example of what the JSON file should look like for adding a potion start mix:

{
  "value": {
    "ingredient": {
      "item": "minecraft:ice"
    },
    "output_potion": "minecraft:slowness",
    "type": "brewmaster:add_potion_start_mix"
  }
}

This JSON adds a base mix with a potion of water and awkward.

water -> mundane.

awkward -> result.

Item Mixes

Adding container mixes

Below is an example of what the JSON file should look like for adding a new container mix:

{
  "value": {
    "input_item": "minecraft:diamond",
    "ingredient": {
      "item": "minecraft:acacia_boat"
    },
    "output_item": "minecraft:emerald",
    "type": "brewmaster:add_container_mix"
  }
}

This JSON defines a new recipe for an emerald from an acacia boat and a diamond

The item item key can also be changed with tag to allow for tags to be used instead of a single item as ingredient

Below is an example of what the JSON file should look like for removing a container mix:

{
  "value": {
    "recipe_to_remove": {
      "input_item": "minecraft:potion",
      "ingredient": "minecraft:gunpowder",
      "output_item": "minecraft:splash_potion"
    },
    "type": "brewmaster:remove_container_mix"
  }
}

This JSON checks for the items defined in the recipe list and if it finds them it will remove the recipe

This one looks for a potion item, gunpowder and splash potion result

Below is an example of what the JSON file should look like for replacing a container mix:

{
  "value": {
    "old_recipe": {
      "input_item": "minecraft:potion",
      "ingredient": "minecraft:gunpowder",
      "output_item": "minecraft:splash_potion"
    },
    "new_recipe": {
      "input_item": "minecraft:diamond",
      "ingredient": {
        "item": "minecraft:acacia_boat"
      },
      "output_item": "minecraft:splash_potion"
    },
    "type": "brewmaster:replace_container_mix"
  }
}

This JSON checks for the items defined in the list and if it finds them it will replace it with the recipe defined.

This is essentially a remove and add operation added together.

The item item key can also be changed with tag to allow for tags to be used instead of a single item as ingredient

This one looks for a potion item, gunpowder and splash potion result and replaces it with a recipe that uses a diamond and acacia boat to give a splash potion

Containers

Adding containers

Below is an example of what the JSON file should look like for adding a new container:

{
  "value": {
    "container": {
      "item": "minecraft:diamond"
    },
    "type": "brewmaster:add_container"
  }
}

This JSON defines a new container for a diamond

Below is an example of what the JSON file should look like for removing a container:

{
  "value": {
    "container": {
      "item": "minecraft:splash_potion"
    },
    "type": "brewmaster:remove_container"
  }
}

This JSON checks for a splash potion as container and if it finds it, it will remove it, preventing any splash potions

Below is an example of what the JSON file should look like for replacing a container:

{
  "value": {
    "old_container": {
      "item": "minecraft:splash_potion"
    },
    "new_container": {
      "container": {
        "item": "minecraft:chest"
      }
    },
    "type": "brewmaster:replace_container"
  }
}

This JSON checks for a splash potion and if it finds it, it will replace it with a chest as container

This is essentially a remove and add operation added together.

Clone this wiki locally