PotionCombine Documentation
This page covers installation, player controls, recipes, config, commands, permissions, and the 1.2 chaining system.
Installation
- Use Paper 1.20.4 - 1.21.x with Java 17.
- Put the jar into your server's
folder.
- Restart the server.
- Edit files in
Code (Text):
plugins/PotionCombine/
.
- Run
Code (Text):
/potioncombine reload
after config or recipe changes.
Spigot and CraftBukkit are not supported.
Player Controls
- Shift + left-click a water cauldron to insert the held ingredient.
- Shift + right-click to retrieve the last inserted ingredient, if enabled.
- Right-click a finished floating potion to collect it.
- Use a brush on polluted cauldrons if pollution is enabled.
Recipes
Recipes live in
. They are shapeless: order does not matter.
Example:
Code (Text):
simple_glow:
display_name: "&aGlow Brew"
brew_time_ticks: 100
color: "#a0ffa0"
base_potion: AWKWARD
ingredients:
- { material: REDSTONE }
- { material: GLOWSTONE_DUST }
effects:
- { type: NIGHT_VISION, duration: 1800, amplifier: 0 }
- { type: SPEED, duration: 1200, amplifier: 0 }
Recipe ingredients can be vanilla items, potion variants, or another PotionCombine recipe:
Code (Text):
ingredients:
- { material: GHAST_TEAR }
- { material: POTION, potion_type: HEALING }
- { recipe: phoenix_elixir }
The bundled recipes are examples. Replace them with your own server recipes.
Important Config Options
Code (Text):
settings.grace_period_ticks
How long the cauldron waits after the last inserted item before checking the recipe.
Code (Text):
brewing.default_brew_time_ticks
Fallback brew time if a recipe does not define its own.
Code (Text):
brewing.overbrew_time_seconds
How long a finished potion can hover before spoiling. Set to 0 to disable.
Code (Text):
automation.hopper_extract
Lets a hopper directly under the cauldron collect finished potions automatically.
Code (Text):
pollution.enabled
Turns on the grime mechanic. Disabled by default.
Code (Text):
heat.enabled
Makes configured blocks speed up brewing or reduce pollution risk.
Code (Text):
synergy.enabled
Turns on 1.2 multi-cauldron brewing chains. Disabled by default.
Brewing Chains
When
Code (Text):
synergy.enabled: true
, a finished brew can pour into a neighbouring cauldron instead of hovering.
Rules:
- Only the four horizontal neighbours are checked.
- The target cauldron must need exactly that finished potion to complete a recipe.
- The result is never poured into a random partial recipe.
- A hopper under the source cauldron takes priority.
Code (Text):
synergy.max_hold_seconds
controls how long a cauldron that is one ingredient short can wait for a
neighbouring brew.
Area Heat
By default, heat checks the block directly under the cauldron.
Enable
Code (Text):
heat.area.enabled
if nearby heat sources should count too. The strongest source in range wins;
sources do not stack.
Commands
Code (Text):
/potioncombine help
- command list
Code (Text):
/potioncombine info
- version, recipe count, active brews, hooks
Code (Text):
/potioncombine reload
- reload config, recipes, and locale
Code (Text):
/potioncombine give <player> <recipe_id> [amount]
- give a finished custom potion
Aliases:
,
Permissions
Code (Text):
potioncombine.use
- basic player access, default true
Code (Text):
potioncombine.admin
- reload and give commands, default op
Code (Text):
potioncombine.cooldown.bypass
- skips brew cooldown, default op
PlaceholderAPI
If PlaceholderAPI is installed, PotionCombine registers automatically.
Code (Text):
%potioncombine_active_brews%
%potioncombine_recipe_count%
%potioncombine_cooldown%
%potioncombine_cooldown_ready%
%potioncombine_pollution_here%
Known Notes
- Live brewing timers do not survive a hard server crash yet.
- Pollution persists across restarts.
- Normal shutdown safely drops active ingredients and ready results.
- Hopper extraction bypasses the spoil timer.
- Reloading does not interrupt active brews.