Skip to content

Fluid Basin and Cauldron Crafting

The Fluid Basin workstation archetype (type: "FLUID_BASIN") transforms vanilla cauldrons into dynamic in-world alchemical reaction basins. Unlike static menu workbenches, Fluid Basins feature physical item tossing, thermodynamic heat simulation, and contamination mechanics.


1. Mechanics Overview

+-----------------------------------------------------------------------------+
| FLUID BASIN MECHANICS |
+-----------------------------------------------------------------------------+
| |
| [Physical Item Ingestion] |
| Players toss items directly into the cauldron. CraftingEngine intercepts |
| the entity on the exact server tick it enters the fluid volume. |
| |
| [Environmental Thermodynamics] |
| Heat is supplied by the block underneath the basin (Lava, Campfire, Fire). |
| Temperature rises dynamically and dissipates when heat sources extinguish. |
| |
| [Hopper & ClearLag Protection] |
| Tossed ingredients are ingested into memory immediately, preventing |
| external hoppers or entity sweepers from clearing crafting items. |
| |
| [Sludge Contamination] |
| Throwing incorrect ingredients or letting a craft overheat ruins the |
| concoction, turning the water into toxic green sludge. |
| |
+-----------------------------------------------------------------------------+

2. Station Definition (stations/alchemical_cauldron.yml)

id: "alchemical_cauldron"
name: "<gradient:#8a2be2:#4b0082>Alchemical Cauldron</gradient>"
type: "FLUID_BASIN"
blocks:
- "WATER_CAULDRON"
- "CAULDRON"
# Heat and thermodynamics
requires_heat: true
min_temperature: 80.0 # Minimum temperature in °C to maintain reactions
max_temperature: 150.0
# Capabilities granted when boiling
capabilities:
- "boiling"
- "alchemy_tier_1"
# Item tossed handling
item_ingestion:
sound: "entity.generic.splash"
particle: "SPLASH"
on_wrong_item: "CONTAMINATE" # REJECT | CONTAMINATE | IGNORE

3. Thermodynamic Heat Sources

When requires_heat: true is enabled, CraftingEngine continuously inspects the block at y - 1:

Heat Source BlockHeating RateEquilibrium TempNotes
CAMPFIRE (Lit)+2.5 °C/s95 °CIdeal for gentle brewing and simmering.
SOUL_CAMPFIRE (Lit)+4.0 °C/s130 °CHigh heat for mystical concoctions.
FIRE / SOUL_FIRE+5.0 °C/s160 °CFast heating; risk of overheating if untended.
LAVA+8.0 °C/s250 °CExtreme heat for metallurgical transmutations.
(Air / Cold Blocks)-1.5 °C/s20 °CNatural ambient cooling decay.

4. Cauldron In-World Recipe Flow

In your blueprint (processes/*.yml), use mode: "ITEM_INSERTION" or mode: "WAITING_FOR_CONDITION":

id: "healing_elixir"
name: "Elixir of Vitality"
station_id: "alchemical_cauldron"
requirements:
capabilities:
- "boiling"
inputs:
- resource: "minecraft:glistering_melon_slice"
quantity: 1
mode: "CONSUME"
- resource: "minecraft:ghast_tear"
quantity: 1
mode: "CONSUME"
stages:
- id: "await_boil"
mode: "WAITING_FOR_CONDITION"
condition: "capability.temperature >= 90"
- id: "add_ingredients"
mode: "ITEM_INSERTION"
timeout: "15s"
failure_transition: "ruined_sludge"
- id: "brewing"
mode: "PASSIVE"
duration: "5s"
on_tick:
- action: "spawn_particle(BUBBLE_POP, 3, 0.2, 0.1, 0.2)"
outputs:
- resource: "minecraft:potion"
display: "<gradient:#ff80ab:#ff4081>Elixir of Vitality</gradient>"
quantity: 1

5. Sludge and Cleaning

When a recipe is contaminated:

  1. The cauldron water turns into murky brown/green sludge.
  2. An extinguish sound plays with heavy smoke particles.
  3. Players cannot brew further recipes until they bail out the basin using an empty bucket (minecraft:bucket).

Next Steps