Skip to content

Custom Potion Workshop Reagents

DaFuqs edited this page Feb 7, 2025 · 11 revisions

When using the Potion Workshop to brew Potions, the player can add up to three reagents. These can not only mimic the same functionality as addons in the vanilla Brewing Stand, but have the ability to enhance the brewed potions in a wide variety of ways. When using multiple reagents, all of the reagents will be summed up.

Potion Workshop Reagents

Properties

Entry Type Default Description
group string empty A string that represents a recipe group. Recipes with a common group will only trigger a single unlock popup, if multiple are unlocked at once. Add a localization string "recipeGroup.spectrum.<<your_group_string>>" so the toast popup is properly localized
secret boolean false If true, the recipe will never be listed in recipe listing mods, like REI
required_advancement advancement_identifier empty The advancement a player needs to have to be able to craft this recipe. Spectrum will automatically show a toast to the player when this advancement has been unlocked and reached the set tier
item item_identifier The item that is getting used as reagent
modifiers modifier / modifier list See below

Available Modifiers

You can define as many of them in a single reagent recipe as you want. For not-whole numbers (like additional potency of 0.5) a dice will be rolled. Values can be negative, so you can use negative entries to balance powerful ones.

Entry Type Description
flat_duration_bonus_ticks int Fixed amount of ticks that gets added to duration
flat_potency_bonus float Fixed increase in potency
duration_multiplier float Multiplies the potions duration with this
potency_multiplier float Multiplies the potions potency with this
flat_potency_bonus_positive_effects float Fixed increase in potency, positive effects only
flat_potency_bonus_negative_effects float Fixed increase in potency, negative effects only
flat_duration_bonus_ticks_positive_effects int Fixed increase in duration, positive effects only
flat_duration_bonus_ticks_negative_effects int Fixed increase in diration, negative effects only
additional_random_positive_effect_count float Count of additional positive effects, that will be rolled at random
additional_random_negative_effect_count float Count of additional negative effects, that will be rolled at random
chance_to_add_last_effect float Chance in percent to add the main effect of the last brewed potion
last_effect_potency_modifier float If an effect was selected using chance_to_add_last_effect, multiply that's potency with this
last_effect_duration_modifier int If an effect was selected using chance_to_add_last_effect, multiply that's duration with this
flat_yield_bonus float Increases or decreases the amount of potions brewed (default: 3 potions)
make_splashing boolean Creates splash potions
make_lingering boolean Creates lingering potions, if make_splashing is set via any (other) used reagent. If true the player can use Arrows to create tipped arrows
base_yield int The default yield when brewing potions (default: 3). x4 when creating Tipped Arrows.
no_particles boolean Makes the potions effects not spawn particles while active
unidentifiable boolean Colors the potion completely black and hides it's effect tooltip
make_effects_positive boolean Converts all negative effects that have a positive counterpart to the beneficial variant
potent_decreasing_effect boolean Makes the potions effects much more powerful at the start, but decreasing in potency over time
negate_decreasing_duration boolean Removes the duration penalty of splashing and lingering potions
additional_drink_duration_ticks int Makes the potion's drink animation take longer. Negative values decrease drinking time, making it be consumed faster (down to a cap of 8 ticks)
random_color boolean Gives the potion a random color. Supersedes black color of unidentifiable
additional_effects list List of effect definitions that mirror Potion Recipes, with an additional added chance property. (see example below)

Recipe viewer Support

Each recipe will be visible via Recipe Viewers (REI, EMI), if installed. Each reagent will display a description text in the format "spectrum.rei.potion_workshop_reacting.<<minecraft / mod_id>>.<<item_id>>" that you should add to your language file. Feel free to keep this description a bit vague and not list exact numbers.

Example: Replicating the Splash Potion mechanic

{
  "type": "spectrum:potion_workshop_reacting",
  "item": "minecraft:gunpowder",
  "modifiers": {
    "make_splashing": true
  }
}

Example: Using a list of modifiers

You can also define a list of modifiers. When a potion is brewed, one of those will be selected at random. This Reagent will only be viewable in REI when the player got the specified advancement. They, however, would be able to use the reagent regardless before that, if they got hold of that item.

{
  "type": "spectrum:potion_workshop_reacting",
  "item": "spectrum:four_leaf_clover",
  "modifiers": [
    {
      "flat_duration_bonus_ticks": 1200
    },
    {
      "flat_potency_bonus": 2.0
    },
    {
      "multiplicative_duration_modifier": 2.0
    },
    {
      "multiplicative_potency_modifier": 2.0
    },
    {
      "flat_yield_bonus": 2.0
    }
  ],
  "required_advancement": "spectrum:collect_four_leaf_clover"
}

Example: A modifier that adds an additonal effect

Using Sand as a reagent has a 50% chance to add the glowing effect to the potion.

{
  "type": "spectrum:potion_workshop_reacting",
  "item": "minecraft:sand",
  "modifiers": {
    "additional_effects": [
      {
        "effect": "minecraft:glowing",
        "base_duration_ticks": 1800,
        "potency_modifier": 0.0,
        "ink_color": "green",
        "ink_cost": 1,
        "chance": 0.5
      }
    ]
  }
}

Available Modifiers (Spectrum 1.6.x and lower)

Entry Type Description
flat_duration_bonus_ticks int Fixed amount of ticks that gets added to duration
flat_potency_bonus float Fixed increase in potency
multiplicative_duration_modifier float Multiplies the potions duration with this
multiplicative_potency_modifier float Multiplies the potions potency with this
flat_potency_bonus_positive_effects float Fixed increase in potency, positive effects only
flat_potency_bonus_negative_effects float Fixed increase in potency, negative effects only
additional_random_positive_effect_count float Count of additional positive effects, that will be rolled at random
additional_random_negative_effect_count float Count of additional negative effects, that will be rolled at random
chance_to_add_last_effect float Chance in percent to add the main effect of the last brewed potion
last_effect_potency_modifier float If an effect was selected using chance_to_add_last_effect, multiply that's potency with this
flat_yield_bonus float Increases or decreases the amount of potions brewed (default: 3 potions)
additional_drink_duration_ticks int Additional time in ticks the potion takes to drink. Can be negative to make drinking faster
make_splashing boolean Creates splash potions
make_lingering boolean Creates lingering potions, if make_splashing is set via any (other) used reagent. If true the player can use Arrows to create tipped arrows
no_particles boolean Makes the potions effects not spawn particles while active
unidentifiable boolean Colors the potion completely black and hides it's effect tooltip
make_effects_positive boolean Converts all negative effects that have a positive counterpart to the beneficial variant
potent_decreasing_effect boolean Makes the potions effects much more powerful at the start, but decreasing in potency over time
negate_decreasing_duration boolean Removes the duration penalty of splashing and lingering potions
random_color boolean Gives the potion a random color. Supersedes black color of unidentifiable
Clone this wiki locally