1
Mixing and Reactions
flan edited this page 2026-07-16 03:13:22 +00:00

Mixing and Reactions

This is the Noita layer. A vessel holds a weighted blend, and pouring one fluid into another does not just stack them — some pairs react. Mixing is addition; reactions are chemistry on top of the addition. Both resolve in place, by volume, so ratios decide the outcome.

If you have not read it yet, Vessels and Substances covers the blend model (Capacity, Headroom, Fraction) this page builds on.


Volumes add; the container decides the ceiling

Pour a measure of a substance into a vessel and the amounts add:

250 ml urine  +  pour in 250 ml hooch  →  { urine: 250, hooch: 250 }  (a 50/50 jar)

Two rules govern the add:

  1. You cannot overfill. Only up to the headroom is taken. Pour a full jar of hooch into a half-full jar of piss and the jar ends up piss-and-hooch, filled to the brim and no more — the excess never enters. A vessel with no headroom takes nothing at all until some is poured out.
  2. The blend re-balances, then reactions resolve. Amounts add, shares shift, and then the reaction pass runs on the new blend — so what comes out may not be the sum of what went in.

Because every consequence scales by share (see Vessels and Substances), changing the ratio changes the weapon. A jar that is mostly piss with a splash of hooch barely burns; tip the ratio the other way and it is a firebomb. Nobody re-tags the item — the blend simply is the weapon now.


Pouring: the one action pawns take

The only thing a pawn does with vessels is pour between containers. It moves liquid from a source into a target, capped three ways at once:

moved = min( requested,  source.TotalVolume,  target.Headroom )

Contents transfer in their current ratios — pour half of a 60/40 jar and the destination receives 60/40. The destination then reacts (a hooch jar poured into a water bucket is doused on arrival). The UI (right-click a vessel-carrier onto another vessel or a liquid fixture) offers "Pour X into Y"; a pour job walks to the target, works for 120 ticks with a progress bar, then empties the carried vessel.

The tipping rule. You cannot pour out of a bolted-down furniture vat — you cannot tip a fixed drawer the way you tip a jar. To take liquid out of a fixture you dip a carryable into it instead. See Furniture Vats.


The reaction: water douses fire, 1:1

The first and most intuitive reaction — and the anchor for the whole reaction layer — is water versus an incendiary. An "incendiary" is any substance whose splash burns (its damageDef points at vanilla Flame): in the shipped catalogue that is hooch and chemfuel.

When both water and one or more incendiaries share a vessel, they cancel one another volume-for-volume until one runs out:

doused = min( water_ml,  total_incendiary_ml )
  • Each incendiary is reduced by its share of doused; any that hits zero is removed.
  • The water is spent putting it out — reduced by the same doused; if it hits zero it is removed too.
  • Whichever runs out first, the other survives with the remainder.

Ratios are everything:

Blend before Result
100 ml water + 4900 ml chemfuel (carboy) ~100 ml chemfuel neutralised — barely a dent; still a firebomb
4000 ml water + 500 ml hooch (bucket) hooch gone; ~3500 ml plain water left; inert
250 ml water + 250 ml hooch both cancel out exactly; an empty-of-either, doused vessel

This is genuinely useful in play, not just flavour:

  • Defuse a firebomb by pouring water into it before it is thrown.
  • Sabotage a captured or looted incendiary in storage.
  • Botch a mix: an autonomous mixer or a careless pour that lands water on hooch quietly destroys the weapon — the vessel still reads full, but its bite is gone.

Reactions run everywhere a blend can change: on pour-in, on dip, and inside a furniture vat. The resolver is a single local transform on the amount table, so new pairs (acid + base, oil feeding fire, and so on) slot in beside WaterDousesFire without touching anything else.


The headroom rule, restated

Every mixing interaction routes through the same gate: a container needs headroom to receive.

Situation What happens
Pour into a full vessel nothing moves — no headroom
Pour more than the target can hold only the headroom's worth transfers; the rest stays behind
Pour more than the source holds capped at what the source actually has
Dip a carryable into a fixture capped by the fixture's contents and the carryable's headroom

The consequence for play: to build a specific cocktail you often have to empty first, then mix. The autonomous mixers do exactly this — they set the vessel to half its capacity of one substance, then top it up with a second, so the result is a controlled 50/50 rather than an overflow. (See Furniture Vats for the autonomous cocktail.)


Foul Play is part of the Institution suite — one install with a checkbox per layer (Core, Contraband, Policing, Corrections, Gangs, Ward) about what an institution does to the people inside it. It bridges to the Contraband layer when Institution is installed.