[ WITNESS // RESTRICTED CLINICAL ARCHIVE ]

THIS FILE DOCUMENTS AN ACTIVE BIOLOGICAL SIMULATION OPERATING ON A LIVE HOST.
THE SUBJECT OF THIS FILE IS THE READER.

ACCESS TIER: UNRESTRICTED - DECLASSIFIED IN FULL
FILE INDEX: DOOMEDMATU
PLATFORM: MINECRAFT 1.20.1 / FORGE 47.3.0
DISCLOSURE STATUS: COMPLETE

DOOMED

Clinical Archive - Complete Systems Reference

Internal Summary

WITNESS maintains a knowledge archive for every character. It is an observational record, not a list of unlocks: it holds what that body has personally survived, and a body that has never been opened has nothing written in it. Most players never see the majority of it.

This document is the unredacted copy. It describes every system the simulation runs, including the ones it never announces, the thresholds it never displays, and the interactions between them that are only visible from inside the code.

Where this file states a number, that number is the one the game uses.

PART I - THE SUBJECT

SUBJ-01

Pain, Consciousness and Death

In Doomed you do not die when your health bar empties. You die when your brain reaches zero, and nothing else ends a character. Everything lethal in the mod - bleeding, a stopped heart, suffocation, sepsis, cold, poison - works by driving that one number down, which is why a body with no pulse and no blood is still technically alive and still savable. Between full alertness and brain death sits a long, playable middle: pain that eats your consciousness, a consciousness ceiling built from a dozen competing caps, a collapse state you crawl in, and one borrowed minute that the mod will offer you exactly once per life.

The triage screen during an uncontrolled bleed. Circulating volume is down to 3.9 L and leaving at 6.39 L/min externally
PLATE SUBJ-01.1The triage screen during an uncontrolled bleed. Circulating volume is down to 3.9 L and leaving at 6.39 L/min externally and 4.77 L/min internally at the same time. Pain is at 80 percent, consciousness at 22 and falling, mood at -62. The thorax is a fractured deep-wound carrying five pieces of shrapnel with no infection detected yet. Heart 139, blood pressure 143/95, brain still at 98. The speech above the figure is the character's, not the interface's.Capture: 2026-08-20_21.59.05.png
The same screen roughly one minute later. Brain function has fallen far enough that the interface itself stops being rea
PLATE SUBJ-01.2The same screen roughly one minute later. Brain function has fallen far enough that the interface itself stops being readable: characters are substituted, whole rows are occluded, and the header now reads XRITIC#L // SYSTEM FAILUXE. Mood has bottomed at -100 and fibrillation is at 64 percent. Nothing here is a rendering fault. The text corruption is the brain damage, rendered through the font itself, and it gets worse as the organ does.Capture: 2026-08-20_22.00.17.png

Brain death

One line in the entire mod is lethal. DeathHandler asks the same question every tick: has brain health reached zero with no last stand running. If it has, the run ends. Anything short of that is a living character, however ruined.

That single gate is what makes a Doomed body behave the way it does. A stopped heart, 0.1 litres of blood, both legs gone, lungs full of fluid - a character in that state is alive, because lethality is asked about the brain and about nothing else. The rest are upstream causes. Each drains the brain at its own rate, and the drain is what kills. A transfusion five seconds before the brain empties saves the character completely. The same transfusion a second after it empties saves nothing; the check has already fired.

So the survival clock is always the brain readout on the tablet rather than whichever vital is loudest. Two players at 0.8 litres of blood sit on different clocks if one of them is still haemorrhaging, because the drain rate scales with the bleed. Read the brain number, work out which drain is open, close that one.

The vanilla health bar was cut out of the lethality question deliberately. Every single incoming hit is capped to leave at least 1 hp, with two exemptions: the /kill command and falling out of the world. A modded projectile that advertises itself as bypassing invulnerability gets capped like everything else and still has to bleed you out. Should something slip past both cap layers and fire a real death event, that event is cancelled, health is restored, and the player is routed into the ordinary Doomed death sequence carrying the violent cause.

In game, this reads

NEURAL FAILURE

doomedmatu.vitals.neural_failure

The vitals ring draws this label over a circle filled from brain/100, so the one number that ends a run is the one the terminal readout is actually drawing.

Concealed

The vanilla health bar is not connected to death at all

Every single incoming hit is capped to leave you at 1 hp, at two separate layers, and only the /kill command and falling out of the world are exempt. A lethal event that somehow still fires is cancelled outright, your health is restored to full, and you are routed into the bleed-out model instead. Nothing you can be hit by will kill you in one blow.

FRAGMENT 13-B - CERTIFICATE, FINAL LINE

SUMMARY: The clinical record as a body goes down and stops. One entry per kind of event, not per occurrence: the first time each happened, and a count of every time after.

RESPONSE: "Unconscious." Then "Agonal." Then "Blood under 2.5 L." Then, appended by the death itself and always last, "Brain death."

FINAL NOTE: From the enum's own header: "A kind ships with ALL of its write sites or it does not ship. A line that fires from two of fourteen paths is worse than no line at all, because an absence on this screen reads as 'nothing happened' and the whole claim of the certificate is that it records what did." The ids are permanent and are never reused, even for a kind that gets deleted.

~/body/ClinicalKind.java - constants DOWNED(16), AGONAL(19), BLOOD_FLOOR(13), CLOSED(20); written from DeathHandler.java:74

The clocks

One gate means the survival game is really a question of which drain is currently open. There are several. They run at wildly different speeds, and two of them refuse to stack on purpose.

Oxygen starvation is the slow one. It keys on oxygen DELIVERY rather than saturation, and delivery is saturation multiplied by red cell mass and by perfusion, so a saline-filled body reads 100 percent on a pulse oximeter while it starves. Below 33 percent delivery the brain loses 0.28 percent per minute for every point under the line. At total delivery failure that is about 9.2 per minute, roughly eleven minutes from a full brain to death.

Circulatory collapse is the fast one. Systolic pressure under 10 with consciousness under 5 takes 1.5 per second, a little over a minute from full. Almost every fatal chain in the mod ends here.

Critical exsanguination sits between them. Below the knockout blood line the brain drains at up to 50 percent per minute, scaled by how far below the line the body has fallen, then multiplied by up to 2.5 times by how hard it is still bleeding. A body torrenting from open stumps dies far faster than one that merely went quietly low, at identical blood volume.

The hypoxia drain and the exsanguination drain both switch themselves off while circulatory collapse is running, so three clocks never share a body at once. Stroke takes 0.025 per second while it progresses. Radiation, liver toxaemia, prion disease and severe overheating each take their own share. Against all of that, the brain heals passively at 0.008 per second, about an hour and three quarters to climb from 50 back to 100.

In game, this reads

IV volume expander; adds blood, thins it, eases thirst.

tooltip.doomedmatu.saline

The tooltip sells volume. The hypoxia drain reads delivery, which counts red cell mass, so the litres saline adds are not the thing the drain is measuring.

The exsanguination drain and its haemorrhage multiplier are both computed inside BloodHandler off the live bleed rate, so anything that slows the leak - a pressure hold, a clotting agent - moves this brain clock directly rather than by way of blood volume. Blood and Circulation

The clocks - exact values
QuantityValue as shippedDefined in
Critical oxygen delivery threshold33 percent~/body/RespirationHandler.java:73
Hypoxia brain loss0.28 %/min per point below 33~/body/RespirationHandler.java:79
Brain death time at zero oxygen deliveryabout 11 minutes~/body/RespirationHandler.java:246
Circulatory-collapse brain drain1.5 %/s at systolic <10 and consciousness <5~/body/CardiovascularHandler.java:65-67
Exsanguination brain drain at empty50 %/min, x1 to x2.5 by bleed rate~/body/BloodHandler.java:57-61
Bleed rate that maxes the haemorrhage multiplier1.5 L/min~/body/BloodHandler.java:59
Passive brain regeneration0.008 %/s~/body/ConsciousnessHandler.java:54
Stroke brain drain0.025 %/s while progressing~/body/CardiovascularHandler.java:75

The agonal drain

There was once a reachable state where a player could not act, could not recover and could not die. The agonal drain closes it.

Unconscious - consciousness at or below 30 - and physiologically failing at the same time costs the brain 0.35 percent per second. Roughly five minutes from a full brain. About 43 seconds from the brain value where the last stand is offered.

Failing is doing real work in that sentence. The drain runs only where at least one of these holds: a bleed faster than 0.25 litres per minute, blood oxygen saturation under 70, systolic pressure under 60, blood volume under 1.8 litres, sepsis over 60, or liver toxaemia over 60. A body that is merely knocked out and otherwise stable stays untouched by it. Concussion sleeps itself off. A treatable cap holding someone under leaves them alive to be treated.

Sleeping and napping are exempt outright. Rest forces consciousness down to 10, and the exemption is what keeps an ordinary night in bed with a scratch from registering as an agonal collapse.

The drain resolves through the ordinary brain-death gate rather than through a kill of its own. That matters. The last stand can still fire out of an agonal collapse, the death receipt still names a real cause, and the bled-out achievement still applies.

Concealed

Sleeping is exempt from the drain that ends a hopeless collapse

Sleep and napping force consciousness to 10, which is well below the agonal drain's unconscious threshold of 30. Without an explicit exemption an ordinary night in bed with a minor untreated injury would count as an agonal collapse and quietly kill you in your sleep. The exemption is checked before anything else in the drain.

The ceiling

Consciousness rises only as far as the lowest cap currently imposed on it. Every system that can cloud a head computes its own maximum, the lowest of them wins, and actual consciousness eases toward that. Raise a value that is not the binding cap and nothing moves. That is the single most common mistake players make over an unconscious teammate.

The caps, and what each is worth. Blood loss draws a straight line between the two configured blood lines: at the grace line (2.5 litres by default) the cap is 60 and the body still functions, at the knockout line (1.5 litres) the cap is 20 and locked out, and the line continues to zero a little below that. Head trauma caps at head muscle health times 1.6, floored at 20, so a beaten head concusses without pinning anyone at zero forever. Oxygen delivery caps at delivery times 1.2. Sedative caps at 100 minus the sedation load. Exhaustion caps at energy times 4.2, floored at 31, and that floor keeps tiredness alone short of a full faint. A bad rest caps at 70. Severe nausea caps at 150 minus sickness. Radiation caps at 100 minus 0.7 per point. Brain damage caps at the brain value directly. Sleeping or napping caps at 10. Terminal kuru carries its own cap.

On top of the caps, pain above 75 subtracts from the target point for point. Systolic pressure under 60 caps at 18 while blood is still above the knockout line, and at a flat 0 once it is not. Pain-shock past 0.66 forces the target to zero outright and overrides everything above it.

The movement is asymmetric on purpose. Consciousness falls at 12 per second and rises at 3, so a character blacks out four times faster than they come round.

Consciousness reads as a percentage on the tablet. Three values on that scale gate anything.

At 30 a character stops counting as conscious. Below it they collapse, and they stay down. The agonal brain drain reads the same line, and the HUD marks it with the Incapacitated moodle.

At 20 your hands stop. Below 20 the server cancels block placement, block breaking, block use, entity interaction, item use and attacks; movement is zeroed separately. Exactly one item is exempt, and it is Revivol, the smelling salts, precisely so you can fumble it out as you go under. The same line takes the screen to a near-solid black at 96.5 percent opacity, and starts the timer that bounds self-treatment.

At 5, combined with a systolic pressure under 10, the body is in perfusion collapse and the brain is being taken at 1.5 percent per second. The vitals widget paints that one red.

The grey-out below full alertness is cubed rather than linear, which was a deliberate fix. It reaches 21 percent at consciousness 40 and 49 percent at 30, so vision fails hardest across the last few points before the drop instead of blinding a player who is still standing and fighting.

The ceiling - exact values
QuantityValue as shippedDefined in
Consciousness at the grace blood line60, at 2.5 L default~/body/ConsciousnessHandler.java:27
Consciousness at the knockout blood line20, at 1.5 L default~/body/ConsciousnessHandler.java:86
Head-trauma caphead muscle x 1.6, floored at 20~/body/ConsciousnessHandler.java:39-41
Oxygen-delivery capdelivery x 1.2~/body/ConsciousnessHandler.java:43
Exhaustion capenergy x 4.2, floored at 31~/body/ConsciousnessHandler.java:45-47
Sleep cap10~/body/ConsciousnessHandler.java:49
Bad-rest cap70~/body/ConsciousnessHandler.java:51
Pain penalty thresholdabove 75, point for point~/body/ConsciousnessHandler.java:33
Circulatory-collapse cap18 above knockout blood, 0 below~/body/ConsciousnessHandler.java:31, 201-206
Fall and rise rates12/s down, 3/s up~/body/ConsciousnessHandler.java:74-75
Conscious thresholdabove 30~/body/DownedStateHandler.java:268
Hands-stop thresholdbelow 20~/body/IncapacitationGate.java:28
Only item usable below 20Revivol~/body/IncapacitationGate.java:60
Blackout opacity below 200.965~/client/hud/VisionEffectsOverlay.java:245
Grey-out at consciousness 40 / 3021% / 49%~/client/hud/VisionEffectsOverlay.java:991-1001
Perfusion collapsesystolic <10 and consciousness <5~/client/ClientDoomedData.java:1144

Pain

Pain is computed per limb and then aggregated, and the two halves of that behave differently.

Each limb eases toward a resting target every tick. The target starts at 15 and is adjusted from there: minus 0.15 per point of intact skin, plus 0.1 per point of infection, plus 0.35 per point of active bleed, plus 0.6 per point of burn, plus 0.8 per point of frostbite above 40, plus up to 18 for a retained arrow, and plus 28 for an unsplinted fracture or 10 for a splinted one. A limb lying open on a surgical table adds its own ache. The whole target is clamped to the 0 to 100 range.

Acute injuries land outside that target. A dislocation adds 40 to 80 on the spot, a fracture adds 60 to 100, a burn adds its own spike, and each spike then decays back down toward the resting figure. Pain falls at 1 per second and rises at 0.6, so a spike drains away noticeably faster than a slow ache builds. Deep cold below 32 degrees subtracts 5 per second from every limb. A freezing body stops feeling its wounds.

Moving on an unsplinted broken leg adds 12 pain per second on top of everything else, multiplied by 1.8 while sprinting and scaled by how fast the ground is actually going past. Standing still stops it climbing.

The number on screen is the worst single limb rather than the average, taken against transformation spurt pain, amputation pain and kuru pain, whichever of them is highest. A septic rigor adds up to 18 over that as a whole-body term. Adrenaline is subtracted last.

The HUD moodle appears above 10 as Sore, becomes Pain above 30, Severe Pain above 55, and Agony above 80.

In game, this reads

Right-click to pull about 4 C of core heat out of yourself. It works in any climate, and it stops at 34.5 C, which is already cold enough to be its own problem.

tooltip.doomedmatu.cold_pack

The item stops itself at 34.5 C, comfortably above the 32 C line where every limb starts shedding 5 pain per second.

The 32 degree numbing line reads core temperature from the survival temperature model, which also supplies a separate consciousness cap curve on the same value - a body cold enough to stop feeling its wounds is already being dulled twice. Needs and Survival

Pain - exact values
QuantityValue as shippedDefined in
Resting pain target base15~/body/PainHandler.java:27
Bleed contribution to resting pain0.35 per point~/body/PainHandler.java:33
Unsplinted vs splinted fracture ache28 vs 10~/body/PainHandler.java:53-54
Pain fall / rise rate1.0/s down, 0.6/s up~/body/PainHandler.java:63-64
Cold numbing-5/s below 32 C~/body/PainHandler.java:66-67
Moving on an unsplinted broken leg+12 pain/s, x1.8 sprinting~/body/PainHandler.java:58, 136
Septic rigor whole-body acheup to 18~/body/PainHandler.java:21
Moodle thresholds10 / 30 / 55 / 80~/client/hud/DoomedHudOverlay.java:1618-1632
Concealed

Cold silently deletes your pain, and your ability to read your own injuries

Below 32 degrees core temperature every limb loses 5 pain per second, on top of the resting target it was easing toward. A badly hurt body in deep cold reports almost nothing. The wounds are still bleeding, still infected and still driving the consciousness caps.

The mask

Felt pain is the worst limb minus 0.35 per point of adrenaline. A full 100 adrenaline is 35 points of relief, which dulls a bad wound and leaves it legible. The mod deviated down from its source material here on purpose, so that a real injury still breaks through mid-fight.

The timing is the important part. The mask reads a smoothed adrenaline value that chases the raw one at 4 points per second. A sudden spike of 80 from a landmine or a compound fracture therefore numbs nothing at the moment it arrives. The pain flashes at full strength at the instant of the hit, the screen reddens, and only then does the numbing take hold over the following seconds. Wire the mask to raw adrenaline and the landmine never reddens the screen at all.

Adrenaline decays at 1.7 per second, so a spike is worth about a minute at most. Melee hits add a small amount. A dislocation adds 75. An amputation, a limb torn off by a fall, or being recognised by a deep predator all push it near or to the ceiling. Epinephrine adds 1.5 per millilitre. A runner's high raises the floor.

The mask is subtracted from the same number that feeds the consciousness penalty and pain-shock, which makes adrenaline genuinely protective. It can hold you under the pain-shock threshold long enough to finish what you were doing. Then it decays, and everything it was holding back arrives at once.

In game, this reads

A combat auto-injector.

Slam it in (right-click) for an instant hit of stimulant,

adrenaline and oxygen - to push through a crisis.

Do not redose while the first pen is active: the second

stacks directly onto it and crosses into stimulant overdose.

tooltip.doomedmatu.combatpen

The adrenaline arrives instantly. The relief does not - the mask chases the raw value at 4 points per second, so the pen's numbing lands seconds behind the pen.

ThreatEncounterHandler writes the floor directly: 85 once a Deep Maw has recognised you, 90 once you have taken it past the focus damage fraction, so the mask deepens as the encounter escalates and lifts hard when the thing leaves. Threats

Adrenaline is kept in DrugHandler alongside the opioids, so its 1.7 per second decay and the last stand's +5 per second pin are tuned in the same file as opioid reception, tolerance and the epinephrine restart roll. Drugs and Pharmacology

The mask - exact values
QuantityValue as shippedDefined in
Adrenaline pain mask0.35 pain per point~/body/PainHandler.java:71
Mask ramp rate4 points/s toward the raw value~/body/PainHandler.java:75
Adrenaline decay1.7/s~/body/DrugHandler.java:55
Dislocation adrenaline spike+75~/body/CombatRouter.java:686
Deep Maw encounter adrenaline floorsDeep Maw encounters only, in three tiers. FOCUSED (it has recognised you and you have already taken off FOCUS_DAMAGE_FRACTION of its health) raises adrenaline to at least 90.~/body/ThreatEncounterHandler.java:130
Opioid pain relief0.3 pain/s per point of reception~/body/DrugHandler.java:33
Non-opioid analgesic relief0.1 pain/s per point of level~/body/NsaidHandler.java:26
Concealed

The pain flash lands before the numbing does

The adrenaline pain mask uses a smoothed adrenaline value that chases the raw one at 4 points per second, not the raw spike. A landmine or a compound fracture therefore reddens the screen at full strength at the instant of the hit, and the numbing only takes hold over the following seconds as the smoothed value catches up.

Two shocks

Two separate systems with separate consequences, and the tablet names them differently for a reason.

Pain-shock is a 0 to 1 meter. It builds while felt pain sits above 75 and ebbs while it does not, at a rate that takes 30 seconds to fill or to clear completely. Past 0.66 it forces the consciousness target to zero regardless of every other cap in the stack, so a character blacks out from pain alone on perfectly good blood, oxygen and pressure. Roughly 20 seconds of sustained agony will do it. This is the knockout Revivol exists to break: clearing it costs nothing but the item, and the deep causes Revivol leaves alone are the ones that would put you straight back down.

Motor-shock is a 0 to 100 value, and it governs standing rather than awareness. Pain above 99 floors it at 100. Stamina below 1 sets it to 60. Collapsing floors it at 20, which puts a gap between going down and popping back up. It bleeds off at 10 per second while conscious and only while conscious, which is the reason an unconscious body waits on the floor for consciousness to return before it gets up.

Above 10 motor-shock, nobody stands. Six seconds of recovery from a fresh collapse, ten from a stamina crash, assuming nothing else is holding you under.

In game, this reads

Smelling salts in a crack-vial.

Right-click to jolt yourself back from a faint, or

right-click a downed teammate to rouse them. Clears

pain-shock and grogginess and snaps you awake.

It will NOT fix the real cause - if blood loss or

suffocation is putting you down, the jolt just fades.

The whiff stings.

tooltip.doomedmatu.revivol

The tooltip and the code agree exactly, and it is the only string in the mod that names pain-shock out loud.

Concealed

Pain-shock knocks you out with perfect vitals

Pain above 75 builds a separate meter that fills over 30 seconds. Past 0.66 it forces the consciousness target to zero, overriding every other cap in the stack. Roughly 20 seconds of sustained agony blacks you out on full blood, full oxygen and normal pressure. Revivol clears it instantly and costs nothing but the item.

The floor

Three conditions each drop a standing body on their own: unconsciousness (consciousness at or below 30, or a brain at zero), leg capability under 0.25, or motor-shock above 10. Collapsing floors motor-shock at 20.

A downed player is forced into the vanilla crawl pose. Other players see a prone body on the ground, and only a genuine high-speed fling swaps in a ragdoll puppet. Your own hop is cancelled while an actual launch from an explosion or a jump pad survives, because being thrown is the whole point of being ragdolled. Movement drops to a crawl at 0.22 of base speed while conscious, and to zero otherwise.

Standing again needs four things true at once: conscious, motor-shock below 10, leg capability back at or above 0.25, and settled - on the ground or in water with almost no horizontal movement. Motor-shock recovers only while conscious, so an unconscious body waits on the floor until whatever is capping its consciousness improves.

Sleeping and napping are never read as a collapse. Sleep forces consciousness to 10, and before the exemption existed that ragdolled the sleeper and shook the camera over the bed view.

Being downed leaves your hands working until consciousness also crosses 20. A conscious crawling player can bandage, inject and drag themselves to their bag. That is the survivable band, and it is worth knowing exactly where it ends.

Every treatment committed on yourself routes through one check, and that check has a hard time limit.

A counter starts the moment consciousness drops below 20 and resets to zero whenever it rises back above. Self-treatment stays open for 180 ticks after passing out - nine real seconds. After that the server refuses every self-directed commit and tells you your hands will not answer you. This is the fumble-the-AED-onto-your-own-chest window, and it was sized to stop right there rather than stretch to defibrillating yourself forty seconds into an arrest.

The nine seconds are counted in real ticks and left unscaled by the server's pace factor, because the window bounds a human's reaction time rather than a simulation rate.

An active last stand overrides all of it. Through the walk and crawl phases you may treat yourself however long you have been under, because using your own items to save yourself is the entire purpose of the window. Through the final numb phase you may not. The arms are gone.

A second player treating you sits outside this system altogether. A conscious medic can work on a patient who has been out cold indefinitely, which is exactly why the self-treatment grace can afford to be so short. A matching consent system runs alongside it: treatments that would normally need the patient's agreement proceed automatically on a body that cannot answer, and a patient who explicitly refused keeps that refusal after they black out.

In game, this reads

A muffled drone

subtitles.doomedmatu.criticalloop_unconscious

The audio swaps to this muffled bed on the same consciousness-above-30 test that decides whether a body is standing, so the soundtrack changes at the exact moment the collapse does.

Every treatment commit in the mod, yours or a medic's, resolves through CoopMedical first, so the consciousness line that stops your hands is the same line the entire treatment layer checks before it will do anything at all. Injury and Treatment

The floor - exact values
QuantityValue as shippedDefined in
Collapse: consciousness30 or below~/body/DownedStateHandler.java:268
Collapse: leg capabilitybelow 0.25~/body/DownedStateHandler.java:238
Collapse: motor-shockabove 10~/body/DownedStateHandler.java:278
Crawl speed0.22 of base~/body/MovementCapabilityHandler.java:130
Upward velocity treated as a cancelled hop0.45 or below~/body/DownedStateHandler.java:233
Self-treatment grace after blackout180 ticks (9 s)~/body/CoopMedical.java:130
Consciousness that starts the counterbelow 20~/body/ConsciousnessHandler.java:86, 243
Healer reach for co-op treatment6 blocks, with line of sight~/body/CoopMedical.java:77, 118-121
Revivol consciousness jolt+40, plus 40 adrenaline~/item/RevivolItem.java:43-44
Concealed

You have nine real seconds to treat yourself after blacking out

A tick counter starts when consciousness drops below 20 and every self-directed treatment commit checks it. At 180 ticks the server refuses. The counter is deliberately not scaled by the server's pace factor, because it exists to bound a human's reaction time rather than a simulation rate. An active last stand ignores this entirely during its walk and crawl phases.

FRAGMENT 09-A - HANDS

SUMMARY: A self-directed treatment commit arrived from a body that had been under consciousness 20 for more than 180 ticks. The server resolved the patient id, found it pointing back at the sender, and refused. The same refusal fires whether the packet named the self path or forged the sender's own entity id.

RESPONSE: One action-bar line, dark red, one per attempt: "Your hands won't answer you any more." Nothing else was sent. The item stayed in the hand and the minigame never opened.

FINAL NOTE: The line is per attempt rather than per tick, so it reads as feedback and never as spam. It has no counterpart on the other side of the body. A second player standing over the same patient may work on them for as long as they like and will never see it. Nothing on screen counted down to it.

~/body/CoopMedical.java:94 and :109, gated by canSelfTreat at :142-152

The roll

The last stand is offered once per life, and only under a precise set of conditions. The brain must be at or below 15 and strictly above zero, consciousness must be at or below 30, the roll must be unspent for this life, and the server config must have it enabled. Miss the window and it is gone. Fail the roll and it is spent for the rest of that life either way.

The odds come from somewhere else entirely. They are read off your mood from roughly nine minutes ago. The mod keeps a ten-slot rolling history of mood, pushed once every 60 seconds, and the roll evaluates the oldest slot - how the character was doing before the collapse rather than during the panicked moment of it. That value goes through a smooth curve running from a 10 percent chance at the most despairing mood to a 70 percent chance at the most hopeful. Neutral mood lands on exactly 40 percent.

Two consequences follow. A character who has been miserable for ten minutes is far less likely to get up than one who has been doing well, which makes looking after your mood before a dangerous descent a real investment. And a fresh life starts with the history slots at zero, which reads as neutral, so the first ten minutes of any life sit at a flat 40 percent however the character has actually been feeling.

An injury that sets the brain to zero in a single step skips the roll, because the check requires the brain to still be above zero when it fires. An obliterating explosion, a head torn off, or a head-first landing on a server with lethal head trauma enabled kills without ever offering the stand.

The odds come out of MoodHandler's ten-slot happiness ring through getDelayedHappiness, so the mood system is the roll's only input and every other vital is ignored by it. Psychology

Concealed

The last stand rolls on your mood from nine minutes ago

The survival chance is evaluated against the oldest slot of a ten-slot mood history that is pushed once every 60 seconds - how you were doing before the collapse, not during it. The curve runs from 10 percent at the most despairing mood to 70 percent at the most hopeful, landing on 40 percent at neutral. Looking after your mood before a dangerous descent is a genuine survival investment with a nine-minute lead time.

Concealed

A fresh life is always exactly 40 percent for the first ten minutes

The mood history slots are zeroed when a life begins, and zero reads as neutral mood. Until real samples have rolled through all ten slots, which takes about ten minutes of play, the last stand roll is a flat 40 percent no matter how well or badly the character is actually doing.

Concealed

Anything that zeroes your brain in one step skips the last stand

The last-stand branch requires the brain to be strictly above zero at the moment of the check. Obliteration by an explosion, a head torn off, and a head-first landing on a server with lethal head trauma enabled all set the brain to zero directly, so the roll is never offered even on your first death of the life.

Borrowed time

A successful stand restores nothing - no blood back, no heart restarted, and the bleed runs exactly as fast as it did. What it does is hold death at the door and make the body obey while the door is held.

The window is 1260 ticks. The first 60 are a three-second recognition sequence, unskippable, and they do not come out of your 60 seconds. The remaining 1200 ticks are those 60 seconds, under your control, split into three phases measured from the end.

For the first 30 actionable seconds you walk, at 0.9 of base speed. With one leg and no blood and a stopped heart, the body answers anyway. From 30 seconds down to 15 you crawl, and your hands still work. In the final 15 seconds the arms go: dragging yourself still works, using an item or attacking anything does not. The HUD labels the three MOTOR OVERRIDE, OVERRIDE DECAY and DISTAL FAILURE.

The movement phases are a floor rather than a ceiling. Walking and crawling GRANT a capability to a body that has lost it, and they take nothing from a body that still has it. When the grant decays at the 30-second mark it stops holding you up rather than forcing you prone, so legs that are genuinely wrecked drop out from under you while a body dying of something else keeps walking. The arms are the deliberate exception, and they are absolute - the final phase takes your hands whoever you are and however awake you feel.

Consciousness is pinned at a minimum of 45 for the whole window, which is the only reason the window is usable at all; every cap in the stack would otherwise hold you under the blackout line. Adrenaline is pinned climbing at 5 per second for exactly 63 seconds, so pain does not spend the minute for you. Everything underneath stays exactly as dead as it was. The moment the window closes, whatever was true resolves.

In game, this reads

A monitor strikes once

subtitles.doomedmatu.laststand_chime

One strike, played on the activation packet, for a recognition beat that is deliberately a single event and never retriggered by the countdown.

Borrowed time - exact values
QuantityValue as shippedDefined in
Total window1260 ticks (63 s)~/body/LastStand.java:53-55
Non-skippable opening beat60 ticks (3 s)~/body/LastStand.java:54
Actionable time1200 ticks (60 s)~/body/LastStand.java:53
Crawl phase begins600 ticks remaining (last 30 s)~/body/LastStand.java:57
Arms go300 ticks remaining (last 15 s)~/body/LastStand.java:58
Granted walk speed0.9 of base~/body/LastStand.java:60
Pinned consciousness floor45~/body/ConsciousnessHandler.java:20, 235-237
Adrenaline gain during the window+5/s to a cap of 100~/body/DrugHandler.java:57, 194-196
Concealed

The last stand's movement phases can only ever give, never take

Walking and crawling are granted as a floor. The game takes the maximum of what your body can naturally do and what the window grants. When the grant decays at 30 seconds it does not force you prone; it stops holding you up, so a body whose legs are genuinely fine keeps walking for the full minute. The arms going in the final 15 seconds is the deliberate exception and applies to everyone absolutely.

The stopped heart

Nothing sets a cardiac arrest flag. Arrest is derived every tick from heart rate: below 20 beats per minute is arrest, and it ends the moment the rate genuinely recovers. Fibrillation reaching 100 stops the heart, and a stopped heart holds at zero until something restarts it.

Arrest drains nobody directly. It collapses blood pressure, the pressure caps consciousness, and circulatory collapse takes the brain. That chain is the killer, and it is why the pressure deserves as much attention as the rhythm.

Chest compressions are a bridge. A valid cadence - one press every 8 to 14 ticks - holds systolic pressure at a floor of 30 while it continues; a late press between 14 and 24 ticks holds a weaker floor of 22, and only for 12 ticks instead of 20. Past 24 ticks the run breaks and starts over. Heart rate, fibrillation, blood volume and oxygen saturation all sit outside what compressions touch. They buy time against the brain clock. That is the whole of it.

A defibrillator is violent whichever way it goes. Every shock tears the chest skin by 5, spikes that limb's pain by 20, drops the patient into a collapse and crashes systolic pressure to 40, win or lose. The manual unit's success chance is 1 minus the distance between the dialled power and twice the fibrillation percentage, divided by 120, so the ideal power is exactly double the fibrillation and a 60-joule error roughly halves the odds. An AED's completed cycle converts fibrillation with certainty. Against a fully arrested heart both units top out at 20 percent, because a defibrillator corrects a rhythm rather than starting one from nothing.

Epinephrine starts one. An injected dose gives 6 active ticks per millilitre, and each of those ticks rolls a 3 percent chance to restart the heart at 60 beats per minute. A full 100 millilitre syringe is 600 ticks and close to certain. The restart hands back a fibrillation of 50, so the heart that comes back is not a steady one.

In game, this reads

Apply pads to the chest to shock a stopped heart.

tooltip.doomedmatu.defibrillator

The tooltip names the stopped heart as the use case. Against a fully arrested heart the shock lands 20 percent of the time, and the drug is what the code relies on for the rest.

The stopped heart - exact values
QuantityValue as shippedDefined in
Cardiac arrest definitionheart rate below 20~/body/CardiovascularHandler.java:89, 97
Fibrillation that stops the heart100~/body/CardiovascularHandler.java:263
Good compression cadenceevery 8 to 14 ticks~/body/CprService.java:25-27
Systolic floor from good compressions30, held 20 ticks~/body/CprService.java:28-30
Systolic floor from late compressions22, held 12 ticks~/body/CprService.java:29-31
Ideal defibrillator power2 x fibrillation percent~/body/DefibService.java:97
Defibrillator error tolerance120 joules to zero odds~/body/DefibService.java:41
Arrest restart chance per shock20 percent~/body/DefibService.java:38
Systolic pressure after any shock40~/body/DefibService.java:44
Epinephrine restart chance3 percent per tick, 6 ticks per ml~/body/DrugHandler.java:59; DrugService.java:62
Fibrillation left after an epinephrine restart50~/body/DrugHandler.java:61
Concealed

Compressions can never restart a heart

CPR provides a temporary systolic pressure floor of 30 on a good cadence, which slows the brain clock. It touches nothing else - not heart rate, not fibrillation, not blood volume, not saturation. A defibrillator or epinephrine is what restarts a stopped heart, and a defibrillator only manages it 20 percent of the time because it cannot start a heart that has already stopped outright.

Concealed

A full syringe of epinephrine is near-certain, but hands you a fibrillating heart

Each injected millilitre grants 6 active ticks, and each tick rolls a 3 percent chance to restart the heart. A 100 millilitre dose is 600 rolls and will almost always succeed, but a successful restart sets fibrillation to 50 and heart rate to 60, so the rhythm you get back is unstable and can re-arrest.

What survives

The brain reaching zero puts up the death screen, and the real vanilla death is committed at that same moment. Items drop immediately according to the server gamerules. Disconnecting on the death screen saves nobody - the kill has already landed, and the screen's continue button only respawns you.

The receipt names a cause, and it derives that cause from real state rather than decorating it. Drowning wins if the body is underwater. A violent death wins if the bleed was still above 0.02 litres per minute or the blood is under 2.5 litres, and a violent death scatters the body into harvestable flesh limbs and lootable prosthetics. Failing those, the most specific cause wins: terminal prion disease above 78, hepatic encephalopathy above 50 toxaemia, a named disease above 55, sepsis above 60, hypothermia below 30 degrees core, then cardiac causes. Dying with blood under 2.5 litres also grants the Mossified achievement, awarded a moment before the death commits.

A lethal blow landing while a transformation finishes kills nothing. Past 95 percent progress, or once the final growth stage has begun, the death is intercepted and becomes the Refusal Sequence.

Almost everything resets on respawn. Blood, brain, consciousness, pain, every wound, every amputation, hearing loss, radiation, nausea, lung tar and the last-stand roll all return to baseline, and a fresh life gets a fresh chance at the stand. Psychological trauma carries - it is a mind attribute and it stays with the character. Nicotine dependence and your smoking history survive on purpose, so respawning is closed off as a cure for addiction. Skills reset only where the server has that option enabled.

In game, this reads

DEATH ENVELOPS YOU

doomedmatu.vitals.dead

Translated into zh_cn and never read by any code path - the vitals overlay only ever asks for dying, neural_failure, sleeping or unconscious.

DoomedDeath checks transformation progress before it commits anything, and past the final growth stage or 95 percent the kill is intercepted and becomes the Refusal Sequence. Transformation

The receipt's ordering reads straight off the disease meters - prion load past 78, toxaemia past 50, the worst named pathogen past 55, sepsis past 60 - so whichever was highest on the last tick picks the picture you are shown. Disease and Infection

What survives - exact values
QuantityValue as shippedDefined in
Blood volume for the bled-out death and achievementbelow 2.5 L~/body/DeathHandler.java:25, 120
Bleed rate that reads as a violent deathabove 0.02 L/min~/body/DeathHandler.java:173
Hepatic death thresholdtoxaemia above 50~/body/DeathHandler.java:148
Prion death thresholdprion load above 78~/body/DeathHandler.java:149
Hypothermic death thresholdcore temp below 30 C~/body/DeathHandler.java:152
Transformation progress that intercepts deathstage 4, or past 95 percent~/body/DoomedDeath.java:141-143
Trauma across deathpersists~/capability/DoomedData.java:97-98
Nicotine dependence across deathpersists~/capability/DoomedData.java:3787-3789
FRAGMENT 13-C - MOSSIFIED

SUMMARY: Brain-death reached with under 2.5 litres of blood in the body. The grant is issued one line before enterDeath, while the character is still technically alive.

RESPONSE: Advancement, challenge frame, toast and chat announcement. Title: "Mossified". Description: "Survive the wall. Bleed out anyway."

FINAL NOTE: The datapack file carries its own note: "you didn't die to the big thing, you died to the leak. Rare enough that announcing it can't spam chat." Its criterion is minecraft:impossible, so nothing in the datapack can ever award it. One line of Java is the only route in.

res/data/doomedmatu/advancements/mossified.json; granted at ~/body/DeathHandler.java:119-121

Notes

  • The last stand's odds curve is a stand-in. The original evaluates an AnimationCurve stored in a Unity prefab inspector, and inspector values never made it into the decompile - DeathHandler says so in its own comment and marks the smoothstep from 10 to 70 percent as a faithful-spirit approximation the author signed off on. Whether 40 percent at neutral mood is anywhere near what the original did stays unanswerable unless the keyframes surface.
  • Nothing automated exercises any of this. No gametest names DeathHandler, ConsciousnessHandler or PainHandler, and the only test in the repo that mentions the last stand checks the keyframes of the client-side glass-fracture overlay. Every rate on this page was verified by reading the constant rather than by timing a body.
  • IncapacitationGate takes the hands during the stand's final phase, and GunItem.canOperate never asks about it. That gate reads downed, refusal-pending, Corebound and consciousness at or below zero, and the trigger arrives through FirearmServerController rather than through the interact event the gate listens on - so a held firearm still fires while DISTAL FAILURE is on the HUD. Whether guns were meant to be spared the numb phase was never written down either way.
  • The agonal drain's numbers came out of an audit, not out of the source. The 0.35 percent per second, and five of the six failing thresholds - the 0.25 L/min bleed, saturation 70, blood 1.8 L, sepsis 60, toxaemia 60 - carry no source citation; only the systolic 60 does. Nothing records how they were chosen, or that anyone ever sat through a hopeless collapse to see whether five minutes is the right length.
  • Extreme pain floors motor-shock at 100, and a bottomed-out stamina then overwrites it to 60, in that order. A body in agony that is also exhausted therefore gets back up sooner than a body in agony alone. The mod reproduces the ordering on purpose, because in the original the later assignment won. Whether the original meant that, or simply wrote the two lines in that sequence, the decompile cannot say.
SUBJ-02

Blood and Circulation

Blood is the mod's main kill chain. You carry five litres, you lose them through per-limb wounds that each keep their own bleed rate, and death arrives as brain death once circulating volume can no longer perfuse the brain. Almost every treatment in the game touches this system somewhere: a bandage masks flow, a tourniquet masks a whole limb chain, a transfusion buys volume and cells back, and saline buys volume alone. The numbers below are read out of the running code, which is not always what an in-game tooltip or a design note says.

Five litres

A healthy body holds 5.0 L. The stored value is clamped to the range -5.0 to 7.5 L, and the negative half is real: it is the exsanguination window. Perfusion, oxygen saturation and blood pressure all read off volume, so a body at 0 L keeps falling, and the pressure collapse finishes it.

Regeneration is slow and conditional. Below 5.0 L the body rebuilds at a base 0.05 L per minute, multiplied by a tissue-repair factor (food, energy and wasting) and by a hydration factor running from 1.0 at thirst 60 down to 0.30 at thirst 0. A dehydrated, starving body rebuilds blood at a small fraction of an already slow rate. Full nutrition still means a hundred minutes from empty to full. Regeneration answers nothing while a wound is open.

Two configured lines shape the bleed-out. graceFunctionalBlood (2.5 L by default) is where consciousness starts being capped, at 60. knockoutBlood (1.5 L by default) is where the cap reaches 20 and the unconscious lockout band begins. The cap runs on a straight line between them, and the server holds knockout at least 0.25 L below grace whatever the config file says, because closing that gap turns the whole survivable window into a single-frame drop.

Below the knockout line the brain begins an agonal drain: 50 percent per minute at zero blood, scaled down toward the line, and multiplied by up to 2.5 depending on how fast the body is currently bleeding. A body torrenting from four stumps dies far faster than one that merely went quietly low.

In game, this reads

Smelling salts in a crack-vial.

Right-click to jolt yourself back from a faint, or

right-click a downed teammate to rouse them. Clears

pain-shock and grogginess and snaps you awake.

It will NOT fix the real cause - if blood loss or

suffocation is putting you down, the jolt just fades.

The whiff stings.

tooltip.doomedmatu.revivol

The "real cause" here is the consciousness cap: 60 at the grace line, 20 at knockout.

Heat takes volume the same way a wound does but on the plasma path: an overheating body sweats blood volume off through a direct write (TemperatureHandler.java:315), so the litres fall without costing a single red cell. Needs and Survival

Five litres - exact values
QuantityValue as shippedDefined in
Baseline blood volume5.0 L~/body/BloodHandler.java:22
Stored volume clamp-5.0 to 7.5 L~/capability/DoomedData.java:652
Regeneration at full nutrition0.05 L/min~/body/BloodHandler.java:24
Hydration multiplier on blood recovery0.30x at thirst 0, 1.0x at thirst 60~/body/PhysiologyFactors.java:12
Functional / knockout blood lines2.5 L / 1.5 L (config defaults)~/config/DoomedConfig.java:1925,1974
Consciousness cap at those lines60 at grace, 20 at knockout~/body/ConsciousnessHandler.java:26,86
Agonal brain drain at zero blood50 %/min, up to 2.5x by bleed rate~/body/BloodHandler.java:57,62,63

Bleed units

Bleeding is per limb. Each limb carries its own bleed value in source units on a 0 to 100 scale, and each unit is worth 0.015 L per minute of blood loss. The whole-body rate on the HUD and the tablet is the sum of every limb's units converted to litres per minute.

A limb bleeds only as hard as its skin is torn. The cap is 100 minus skin health, applied every tick, so a wound that has knitted its skin back loses the ability to hold a heavy bleed along with it. Bandaging a limb tends to make its bleed value stick low afterwards rather than snapping back.

What opens a bleed depends on the damage. A generic melee hit adds 2.0 units per point of damage, a claw or blade 3.0, a projectile 3.0, an explosion 1.5. A fracture opens a flat 12 units. Fire and freezing add none at all, and the generic fallback used for magic, thorns and suffocation adds none either - those tear skin and leave the blood where it is.

The HUD moodle tiers are worth learning, since they are the rate readout most players have. Anything above 0.005 L/min shows light bleeding, above 0.09 shows bleeding, above 0.225 heavy bleeding, and above 0.45 the catastrophic bleed icon.

One rate signal is deliberately dishonest about your safety. The whole-body bleed rate is tapered by perfusion: between 0.75 L and 0 L of blood, the reported and drained rate scales down to zero. The wound is exactly as open as it was; what has changed is how much is left to push out. The number falls as you empty.

Radiation drains blood with no wound anywhere on the body - above sickness 10 the handler removes rad x 0.00025 L a second (RadiationHandler.java:41,90-91), so the volume falls while every bleed readout, drip and pool sits at zero. Disease and Infection

Excision bills its blood on a different channel entirely: taking an organ out subtracts a flat 1.0 L directly and writes only 0.45 bleed units to the abdomen (ExcisionService.java:44,49,91,101), so the largest single loss in the mod barely moves the external bleed line. Organs

Bleed units - exact values
QuantityValue as shippedDefined in
Bleed unit to blood loss1 unit = 0.015 L/min~/capability/DoomedData.java:1028
Per-limb bleed cap100 - skin health~/body/LimbData.java:512
Melee / sharp / projectile / explosion bleed2.0 / 3.0 / 3.0 / 1.5 units per damage~/body/CombatRouter.java:70,73,78,132
Fracture bleed12 units~/body/CombatRouter.java:201
Moodle tiers0.005 / 0.09 / 0.225 / 0.45 L/min~/client/hud/DoomedHudOverlay.java:691-694
Perfusion taper bandfull rate at 0.75 L, zero at 0 L~/capability/DoomedData.java:1040,1041
Concealed

Your reported bleed rate falls as you empty, and that is not improvement

The whole-body bleed rate is multiplied by a perfusion term that scales from 1 at 0.75 L of blood down to 0 at 0 L. The wound's stored units are unchanged and the limb icons still show the tear. Below about three quarters of a litre, the HUD moodle drops tiers, the tablet's external bleed reading falls, the drips slow and the pools stop forming - while the agonal brain drain accelerates.

Clotting

A wound closes on its own, and the rate depends on how bad it is. At 2 units or below a capillary bleed clots at 0.050 units per second. At 8 units or above a serious tear clots at 0.017 units per second, and the rate blends linearly between those two points. The slow end is deliberate: at 0.017 an untreated serious wound stays open long enough to actually kill you, where the earlier faster rate made a single wound survivable forever.

Five modifiers multiply into that rate, and they apply to internal clotting as well.

A fragment still in the wound suspends natural clotting completely. Suspends, not slows. A limb with shrapnel in it weeps until the fragment is pulled, and waiting helps by exactly nothing.

Venom is an anticoagulant. Clotting is multiplied by 1 minus venom divided by 20, so it reaches exactly zero at a venom level of 20 or above. Venom also thickens the blood toward its own level over time.

A non-opioid painkiller thins the blood. The penalty scales with the drug level and tops out at halved clotting. Medicating the pain of a bleed makes the bleed last longer.

Cold hurts. Below 35 C clotting falls linearly and bottoms out at 60 percent by 30 C. It never turns off entirely.

Warmth helps a little. A body held in the comfortable 36.5 to 37.5 C band earns up to an 8 percent bonus. The two temperature terms are exclusive - one or the other, never both together.

The Bleeder trait sits on top of all of it at 0.55x, which is close to doubling how long everything bleeds.

In game, this reads

A non-opioid painkiller.

Weaker than the opioids, but no breathing risk, no

overdose, no addiction - and doses stack. Also fights

fever and inflammation.

The catch: it thins your blood (wounds clot slower)

and upsets your gut. Don't pop it while you're bleeding,

and don't chain doses or you'll start a stomach bleed.

tooltip.doomedmatu.nocifen

String and code agree. The penalty behind "clot slower" tops out at halved clotting.

The fragment that suspends clotting is the same foreign body that re-tears the limb it sits in, adding 0.35 units plus 0.45 per unit of depth every time it shifts (ForeignBodyAggravationHandler.java:50,51,170). Injury and Treatment

Deep wounds

Past 20 bleed units - 0.30 L/min from one limb - a wound is promoted to DEEP. Promotion also wipes any stitched or reopen bookkeeping the limb was carrying, because a fresh heavy tear is a new wound and wants treating again.

A bandage's effect scales with how far the wrap actually got. The bleed multiplier lerps from 1.0 at no wrap down to the specific dressing's floor at full wrap. Complete the wrap to 90 percent or more and the bleed is set to zero outright. On a deep wound that has not been stitched, that same completion arms a reopen countdown of 3600 server ticks - three minutes - after which the wound tears itself back to the deep-wound threshold or whatever the current skin cap allows, with an audible squelch and no text warning.

A suture is the only thing that clears the deep state properly, and only if the stitching minigame scores 0.55 or better. A clean close knits skin by up to 25, stops the bleed dead, marks the limb stitched and writes a real closure to the record. A ragged stitch below 0.55 closes nothing: the wound stays deep and unstitched, the reopen timer arms exactly as if it had been bandaged, the suture is still consumed, and below quality 0.5 it also works dirt into the wound and marks the limb infected.

A stapler is the guaranteed mediocre alternative. It closes instantly with no minigame, knits skin by 15 instead of 25, zeroes the bleed and clears the deep flag, and costs 22 pain against a neat stitch's 12.5.

Cauterizing with a held flame sears the bleed to zero, and charges 30 burn, 45 pain and a 40 percent chance of seeding infection at 20.

The deep and stitched flags clear once the limb is at zero bleed with skin at 99 or above.

In game, this reads

Surgical thread and needle.

Drag onto a wounded limb to stitch it shut: restores

skin and sharply cuts the bleeding (the stitching stings).

Disinfect first: filth can seed infection during closure.

tooltip.doomedmatu.medicalsuture

The warning about filth is accurate. The quality gate is not mentioned: below 0.55 the thread is spent and the wound is still deep.

Despair writes wounds of its own: the standard self-harm cut adds 6 to 10 units, the severe one 45 to 60, and the violent head sequence 60 to 90 (DespairHandler.java:64,75,81) - all of them past the 20-unit deep threshold, and the last of them equal to an open amputation stump. Psychology

Deep wounds - exact values
QuantityValue as shippedDefined in
Deep wound threshold20 units (0.30 L/min)~/body/LimbData.java:41
Reopen delay3600 ticks (3 min)~/body/LimbData.java:43
Wrap that fully staunches0.9 or more~/body/TreatmentService.java:1706
Suture clean-close quality0.55~/body/TreatmentService.java:878
Suture skin knit+6 to +25 by quality~/body/TreatmentService.java:880
Staple skin knit / pain+15 skin, +22 pain~/body/TreatmentService.java:951,960
Cauterize cost+30 burn, +45 pain, 40 % infection at seed 20~/body/TreatmentService.java:750-753
Concealed

A ragged suture is not a closure at all

Below stitching quality 0.55 the suture is consumed, the skin knits a little, and the wound stays deep and unstitched. That state is byte-for-byte identical to a bandaged deep wound, so the three-minute reopen countdown arms and the wound tears back open later. Below quality 0.5 it also seeds infection.

Internal bleeding

Internal bleeding is stored per limb directly in litres per minute and drains blood alongside the external channel. It sits out of reach of every dressing in the game.

The drain is soft-saturated rather than clipped. Up to a summed 0.9 L/min it drains one for one; above that it curves toward a hard ceiling of 3.0 L/min. Multiple internally bleeding limbs stack, with diminishing returns.

It resolves on its own at 0.003 per second, halved to 0.0015 for any single limb above 0.25 L/min. A bruise clears in minutes. A serious tear takes far longer and wants a drug.

The early-game answer is stillness. While the body is genuinely not moving - under 0.03 blocks per tick horizontally, not sprinting, not swinging - it tamponades at an extra 0.0025 units per second. Crouching multiplies that by 1.7. So does being downed, so dragging an unconscious teammate somewhere quiet is worth the trip. Adrenaline works against it: the rate is multiplied by 1 minus adrenaline over 150, floored at 0.30, so a frightened body clots badly and still clots. All the external clot modifiers apply here too, shrapnel included - a fragment suspends internal clotting exactly as it suspends external clotting.

Procoagulant is the systemic answer. It reduces internal bleeding by 0.06 L/min per ml across every limb, cuts external bleed by 40 percent at a full 100 ml, and raises blood viscosity by 0.35 per ml.

Regenex injected into the chest multiplies thoracic internal bleeding by 0.45 at a full 25 ml dose. Anywhere else in the body, internal bleeding ignores it.

Every one of these routes goes through the wound ledger. A treatment that wrote the limb value directly used to be silently reverted the next time that limb was touched, which is the bug behind years of reports that internal bleeding simply never went down.

In game, this reads

Clots internal and external bleeding; thickens blood.

tooltip.doomedmatu.procoagulant_syringe

Three effects in one line, and accurate. The number behind "thickens" is 0.35 viscosity per ml.

Internal bleeding - exact values
QuantityValue as shippedDefined in
Internal drain soft ceiling0.9 L/min~/body/BloodHandler.java:36
Internal drain hard ceiling3.0 L/min~/body/BloodHandler.java:38
Natural decay0.003/s, x0.5 above 0.25 L/min~/body/BloodHandler.java:43,48,56
Stillness clot rate0.0025/s~/body/BleedHandler.java:57
Crouched or downed bonusx1.7~/body/BleedHandler.java:59
Stillness speed gate0.03 blocks/tick~/body/BleedHandler.java:61
Adrenaline suppressionfloor 0.30, span 150~/body/BleedHandler.java:64,65
Procoagulant-0.06 L/min internal per ml, -40 % external at 100 ml, +0.35 viscosity per ml~/body/DrugService.java:68,70,72
Regenex thoracic internalx0.45 at a full 25 ml~/body/DrugService.java:403
Concealed

Adrenaline blocks the only field treatment for internal bleeding

Internal bleeding tamponades only while the body is genuinely still, and the rate is multiplied by 1 minus adrenaline over 150 with a floor of 0.30. Fighting, running or being frightened suppresses it to a third of an already slow rate, and any real locomotion switches it off entirely. Being unconscious on the floor counts as still and gets the same 1.7x bonus crouching does.

Tourniquets

A tourniquet goes on a non-vital region only. Head, neck, eyes, thorax and abdomen are refused - there is nothing above them to tie against.

Once fastened it stops external blood loss from the anchor limb and everything distal to it. The stored wound is unchanged; only its contribution to the drain is masked. The wound icons stay exactly as bad as they were.

The strap hurts immediately. Anchor-limb pain ramps at 2 per second up to a cap of 40.

At 540 seconds - nine minutes - the safe window closes. Every cut-off limb in the chain loses 2 percent muscle per second. Any limb that falls below 5 percent muscle has its infection floored at 10 and is flagged infected, which puts it on the sepsis path.

At 840 seconds - fourteen minutes total - the limb is gone. It comes off by the necrotic path rather than the saw path, so the stump is dry: tissue that died on the body does not haemorrhage the way tissue cut off it does. That leaves five full minutes after visible necrosis begins in which taking the strap off still saves the limb.

Applying one costs 1 of the strap's 8 condition points, and the source strap is consumed - it lives on as the limb's stored condition and is handed back at that condition when removed. Removal unblocks the limb and it resumes bleeding from wherever clotting left it.

With nothing in inventory a wound can still be pressed by hand. Both hands must be empty, the panel routes it, and the server revalidates every tick.

Pressure masks flow the same way a tourniquet does - the stored wound is untouched. On an ordinary wound the limb's flow is multiplied by 0.35. On a deep wound the floor is 0.7, because a hand cannot close an artery. It never reaches zero, so a bandage always beats a hand.

One limb carries the benefit at a time. One pair of hands, and the code enforces that as a single slot covering both the active hold and the fading credit afterwards.

Holding banks credit. Ten seconds of real, still, paid-for pressing earns the full release credit, which then decays back to open flow over twenty seconds. A partial hold drains proportionally sooner, and a tap banks nothing.

It costs stamina at sprint drain rate. Below 0.5 stamina the press stops helping and starts grinding instead, adding 2 pain per second to the limb toward a ceiling of 60.

The movement gate is positional and server side. Move faster than 0.12 blocks per tick horizontally and the hold releases, whatever the client claims. Pressure is refused on a dismembered limb, on a limb already tourniqueted, and on a limb that is not actually flowing. In co-op the hands belong to the helper and the wound to the patient, and one wound accepts one helper.

In game, this reads

Clamp a limb to stop all bleeding below it.

tooltip.doomedmatu.tourniquet

Accurate for the first nine minutes.

Tourniquets - exact values
QuantityValue as shippedDefined in
Anchor pain ramp+2/s to a cap of 40~/body/TourniquetHandler.java:23,24
Safe window540 s (9 min)~/body/TourniquetHandler.java:26
Muscle loss past the window2 %/s per cut-off limb~/body/TourniquetHandler.java:28
Necrosis to sepsismuscle < 5 %, infection floored at 10~/body/TourniquetHandler.java:30,32
Total time to lose the limb840 s (14 min)~/body/TourniquetHandler.java:44
Strap condition cost1 of 8~/body/TreatmentService.java:111
Flow multiplier while held0.35 normal, 0.7 deep~/capability/DoomedData.java:1084,1085
Full credit earned after10 s~/capability/DoomedData.java:1087
Credit fade20 s~/capability/DoomedData.java:1090
Exhaustion thresholdstamina <= 0.5~/body/PressureHold.java:41
Exhausted grind+2 pain/s to a cap of 60~/body/PressureHold.java:43,44
Movement release gate0.12 blocks/tick~/body/PressureHold.java:47
Concealed

The tourniquet has a second clock at fourteen minutes

Nine minutes is where necrosis starts and the muscle drain and sepsis begin. Eight hundred and forty seconds is where the limb is simply taken, by the necrotic path, leaving a dry stump. There are five minutes between the two, so a strap you notice going bad can still be saved.

Concealed

Procoagulant can throw a pulmonary embolism

Each ml of procoagulant adds 0.35 blood viscosity, so a full 100 ml syringe adds 35. Viscosity relaxes toward neutral at only 0.05 per second, which is about twelve minutes to shed one full dose. Above viscosity 90 the body rolls at 1.66 percent per second to throw a clot to the lungs, which then eats thoracic muscle until viscosity falls back below 50. Three full doses inside twenty minutes clears the throw line.

Concealed

You keep bleeding while logged out

On login the server settles the gap using the exact same per-tick arithmetic the live tick uses, charging up to ten minutes of absence however long you were away. Blood cannot be taken below 1.2 L by catch-up alone, and the brain not below 20, so you wake up in a terrible state rather than dead.

FRAGMENT 09-C - STRAP TIMEOUT

SUMMARY: One line, on the action bar, at fourteen minutes: "The strap was on too long. There was nothing under it left to save."

RESPONSE: By the time it prints the limb is already gone. TourniquetHandler takes it through necroticLoss rather than the saw path, so the stump comes off dry and the strap falls away with the limb it killed. The message is the only notice the system ever gives. The nine-minute mark that started the 2 percent per second muscle drain and floored infection at 10 across the whole cut-off chain printed nothing whatsoever.

FINAL NOTE: The tourniquet timer is displayed nowhere. A player who has never lost a limb this way has no reason to suspect two clocks were running.

body/TourniquetHandler.java:68-76,79-95

FRAGMENT 02-D - LEGALLY DEAD

SUMMARY: An advancement, announced to chat, framed as a challenge: "Walk around with less than a quarter of your blood."

RESPONSE: The grant is a float compare in the body tick against 1.2 L, with a single gate - death must not already be pending. Nothing checks whether you are moving, and nothing checks whether you are conscious. At 1.2 L the consciousness ceiling computes to 8 on the straight line between the two config blood lines, well inside the unconscious band, so what usually earns the toast is a body on the floor. A quarter of 5.0 L would be 1.25.

FINAL NOTE: Offline catch-up floors blood at exactly 1.2 L, so a player who logs out bleeding and logs back in can never earn it that way. Whether the two constants were meant to be the same number is not recorded anywhere.

data/doomedmatu/advancements/legally_dead.json; body/DoomedAdvancements.java:45,76; body/ConsciousnessHandler.java:86,114,115; body/OfflineCatchUp.java:36,103

Stumps

A severed limb does not bleed - it is gone. What bleeds is the amputation boundary, and it is counted separately from any limb's stored bleed value.

Each amputation boundary adds a flat 60 bleed units. At the standard conversion that is 0.9 L per minute of arterial loss per severed chain. The source comment beside that constant claims 1.5 L/min. The arithmetic in the code gives 0.9, and the code is what runs.

Only the boundary counts. A whole arm off at the shoulder is one open stump rather than three, so upper arm plus forearm plus hand bleed as a single wound. Losing all four limbs bleeds twice as hard as losing two, which the older stump-slot counting got wrong.

Three things close that channel, and all three are things a player can actually do:

  • a tourniquet anywhere proximal to the amputation, since the block check walks up the chain
  • dressing or cauterizing the open stump the amputation left on the parent segment, until that stump's own bleed drops to 0.5 units or below
  • fitting a prosthetic, whose socket seals the stump

A saw amputation leaves the stump bleeding at full rate with 100 contamination and a 300 second disinfect window. A limb lost to necrosis instead - deep frostbite, or a tourniquet left on past fourteen minutes - has its stump wound written to zero bleeding and marked clotted, with contamination floored at 45. Dry, but dirty.

In game, this reads

Drag onto an arm or leg to amputate it.

tooltip.doomedmatu.saw

Eight words. The boundary it opens is worth 60 bleed units, or 0.9 L per minute.

Stumps - exact values
QuantityValue as shippedDefined in
Bleed per amputation boundary60 units = 0.9 L/min~/capability/DoomedData.java:1032, 1028
Stump counted as closed atbleed <= 0.5 units~/capability/DoomedData.java:1030
Saw stump muscle loss / pain-50 muscle, 100 pain~/body/DismemberService.java:38,39
Stump disinfect window300 s~/body/DismemberService.java:40
Necrotic stump contamination floor45~/body/DismemberService.java:415

Shock

Bleeding out can stop your heart before anything else has failed, and nothing in game announces it.

Below 2.0 L of blood, each second rolls a chance to seed fibrillation. The odds ramp from zero at 2.0 L up to a cap of 6 percent per second at 1.0 L and below. The seed is non-forced, so a transfusion that rebuilds volume lets the rhythm settle back down on its own.

A separate acute-trauma seed fires at 4 percent per second whenever motor shock is above 70, which happens on extreme pain with bottomed stamina. Shock bleeds off at about 10 per second, so that is a brief window after a hit rather than a standing risk.

The general begin-gate also seeds fibrillation whenever oxygen delivery is under 50, systolic pressure under 82, heart rate over 200, viscosity over 95, or body temperature under 28 C. A body that is merely anaemic can sit under the oxygen-delivery line permanently, and the anaemia floor is placed where it is for exactly that reason.

What kills you is the collapse chain rather than the rhythm. Below systolic 20 every limb loses 0.6 percent muscle per second. Below systolic 10 with consciousness under 5 the brain itself drains at 1.5 percent per second. The agonal low-blood drain deliberately steps aside while that is running so the two never stack.

Blood pressure itself is driven by volume through two terms: a target that subtracts a quarter of the volume deficit, and a multiplicative factor of 1 plus 1.1 times the deviation from full. Dehydration multiplies pressure by as little as 0.72 at deeply negative thirst.

In game, this reads

A battery-powered blood-pressure regulator.

Wear it on your chest front: while it has charge it props

your blood pressure back up whenever it sags. It drains

its battery as it works.

tooltip.doomedmatu.autopump

Pressure is the number the collapse chain reads. The tooltip names no lines; the muscle line is systolic 20 and the brain line is systolic 10.

Shock - exact values
QuantityValue as shippedDefined in
Haemorrhage fib seed band2.0 L down to 1.0 L~/body/CardiovascularHandler.java:46,47
Haemorrhage seed cap6 %/s~/body/CardiovascularHandler.java:48
Acute shock seedshock > 70, 4 %/s~/body/CardiovascularHandler.java:49,50
Fibrillation begin gateO2 delivery < 50, systolic < 82, HR > 200, viscosity > 95, temp < 28 C~/body/CardiovascularHandler.java:44, 336-338
Muscle collapse linesystolic < 20, -0.6 %/s all limbs~/body/CardiovascularHandler.java:66,67
Brain collapse linesystolic < 10 and consciousness < 5, -1.5 %/s~/body/CardiovascularHandler.java:69-71
Cardiac arrest definitionheart rate < 20~/body/CardiovascularHandler.java:96

Red cells

Volume and carriage are tracked as two different numbers, and that is the single most confusing thing about blood in this mod.

Red-cell fraction starts at 1.0 and is clamped between 0 and 1.5, so repeated transfusion can bank a modest reserve above baseline. Losing whole blood removes cells in proportion to the current concentration. Adding compatible whole blood adds litres divided by 5 to the fraction.

Oxygen delivery is arterial saturation multiplied by red-cell fraction multiplied by a perfusion term of systolic pressure over 80, capped at 1. A pulse oximeter can read a perfectly normal saturation while the organs are starving. Saturation says nothing about how many cells there are to saturate.

Cells rebuild far more slowly than volume: 35 percent of the volume regeneration rate, expressed as a fraction of baseline. At best that is roughly 0.35 percent of your normal red-cell mass per minute. The Anaemic trait cuts it to 0.45x on top of that.

Iron gates it. Each litre of blood lost spends 22 iron, and simply being alive spends 10 per in-game day. Above an iron store of 45 the rebuild runs unrestricted. Below it, both the rebuild rate and the ceiling fall away, down to a marrow floor of 0.12 on the rate and a red-cell ceiling of 0.68 at empty stores.

That 0.68 floor is deliberate. A fully saturated body at 0.68 sits at about 66 oxygen delivery, which clears both the 50 seeding line and the 60 rising line for fibrillation. Iron starvation is meant to leave you fragile and slow to recover. It is not meant to execute you.

Brain damage hangs off delivery rather than volume: below an oxygen delivery of 33 the brain loses 0.28 percent a minute for every point under the line (RespirationHandler.java:73,79,254-257), and that drain deliberately stands down while the terminal circulatory collapse is running so the two never stack. Pain, Consciousness and Death

Red cells - exact values
QuantityValue as shippedDefined in
Red-cell fraction clamp0 to 1.5~/capability/DoomedData.java:666
Oxygen delivery formulaSpO2 x red-cell fraction x min(systolic/80, 1)~/capability/DoomedData.java:713
Cell regen vs volume regen0.35x~/body/BloodHandler.java:26
Iron spent per litre lost22~/body/NutrientHandler.java:32
Iron spent per in-game day10~/body/NutrientHandler.java:30
Iron store restriction band45 down to 5~/body/NutrientHandler.java:45,46
Anaemia red-cell floor0.68~/body/NutrientHandler.java:43
Anaemic traitred-cell rebuild x0.45~/body/Trait.java:319
Concealed

Saline restores volume and no red cells at all

A blood bag calls addWholeBlood, which raises circulating volume AND red-cell fraction. Saline calls setBloodVolume directly, so it raises the litres and adds nothing to carriage - and because the fraction is now spread over more litres, it actively dilutes what you had. Your tablet's blood volume line recovers, and oxygen delivery, which is saturation times red-cell fraction times perfusion, does not move. Consciousness is capped by oxygen delivery, so a fully saline-resuscitated body can still be woozy with a normal-looking volume readout.

Concealed

Each litre of blood you lose costs 22 iron, and iron caps how fast you get it back

Blood loss debits the iron store directly. Below a store of 45 both the red-cell rebuild rate and its ceiling fall away, down to a rate floor of 0.12 and a red-cell ceiling of 0.68 at empty stores. Repeated haemorrhage therefore compounds: each bleed makes the next recovery slower, and a transfusion can hand back volume that your marrow cannot follow.

The reaction

A wrong bag does two separate things. It raises a symptom level, and it banks a hemolysis debt in litres.

The symptom level is added, not maxed, and capped at 100. A second wrong bag onto a reaction already running pushes it toward the ceiling. It decays at 0.70 per second, so a full ABO reaction runs about two and a half minutes.

The debt is uncapped, and that is the point. It is computed as 0.75 L multiplied by how much of the bag you actually pushed multiplied by 1.2 plus the raw severity over 100. A fully pushed ABO bag therefore owes about 1.65 L against the 0.75 L it delivered. A fully pushed Rh-mismatched bag owes about 1.24 L. Both scale with the plunger, so an incompatible transfusion costs blood at every depth and every tier.

The debt burns at 0.016 L per second scaled by symptom strength, with a floor of 30 percent of that rate. Symptoms fade; hemolysis finishes the job afterwards. Waiting a mild mismatch out still ends in the red.

While the reaction runs it adds 1.5 sickness per second, 0.08 fibrillation per second, a slow temperature climb, and pain to the thorax and abdomen. You are told when the worst passes, at symptom level 25.

One thing the tablet says that the code does not do: the readout labels an active reaction as "further blood restricted". Nothing anywhere gates a further transfusion on the reaction level. Another bag goes in whenever you want it to - it just adds its own severity and its own debt.

Transformation is the other source of severity. As a body diverges from human, banked human blood stops being yours. Divergence contributes nothing below transform factor 0.25, then ramps to 70 at full transformation. It adds to any ABO or Rh clash and the total is capped at 100. Saline is untyped, so a transformed character always keeps a volume expander even after blood bags stop working for them.

Every Doomed character carries an ABO and Rh(D) group. It is drawn once when you commit to the run, on realistic population weights rather than a flat eight-way roll: O+ 37 percent, A+ 34, B+ 9, O- 7, A- 6, AB+ 4, B- 2, AB- 1. Old saves that pre-date typing get theirs derived from the player UUID, which is stable across every reload, so relogging rerolls nothing.

The type belongs to the character rather than the life. It survives death and respawn - resetVitals never touches it.

Compatibility is checked on packed red cells. Donor cells are refused if the donor carries an A antigen the recipient lacks, or a B antigen the recipient lacks, or if Rh-positive blood is going into an Rh-negative recipient. O- can donate to everyone. AB+ can receive from everyone. The tablet spells out both lists, and a labelled bag's tooltip names exactly which recipients its cells are safe for.

The severity of getting it wrong is tiered. An ABO mismatch scores 100. An isolated Rh mismatch scores 45 - serious, and slower. An unlabelled bag would score 70, though that branch is never reached during a transfusion, because an untyped bag has its type rolled and permanently written at the moment it is pushed.

That is the real risk of the plain, unlabelled Blood Bag. It is a gamble whose odds are your own type against the population table. The Human Blood Bag found as loot or drawn from a person is typed and labelled up front. The Experiment trader's emergency blood is always a fixed O-.

In game, this reads

Whole blood taken out of somebody else.

Drag onto a limb to put about 0.75 L back into your veins.

Check the donor type against your own first. Get it wrong

and the reaction comes for you hours later.

tooltip.doomedmatu.bloodbaghuman

"Hours later" is not what runs. The symptom level goes up on the push and decays at 0.70 per second, about two and a half minutes for a full ABO reaction, with the hemolysis debt burning off behind it.

The reaction - exact values
QuantityValue as shippedDefined in
Symptom decay0.70/s, full reaction about 143 s~/body/TransfusionReactionHandler.java:81
Hemolysis debt formula0.75 L x fraction pushed x (1.2 + severity/100)~/body/DrugService.java:966
Debt burn rate0.016 L/s x strength, floored at 0.30 of that~/body/TransfusionReactionHandler.java:22,25
Per-second symptoms at full strength+1.5 sickness, +0.08 fibrillation, +0.30 thorax pain, +0.35 abdomen pain~/body/TransfusionReactionHandler.java:70-79
"Worst is passing" noticesymptom level 25~/body/TransfusionReactionHandler.java:28
Transformation divergencefree below factor 0.25, up to 70 at full~/body/DoomedBlood.java:44,52
Type weightsO- 7, O+ 37, A- 6, A+ 34, B- 2, B+ 9, AB- 1, AB+ 4~/body/BloodType.java:32
ABO mismatch severity100~/body/BloodType.java:79
Rh-only mismatch severity45~/body/BloodType.java:82
Unlabelled bag severity (unreached in transfusion)70~/body/BloodType.java:76
Trader emergency bloodalways O-~/inventory/TradeMenu.java:179
Concealed

An unlabelled blood bag has no type until the moment you push it

The plain Blood Bag carries no type tag. When it is transfused, ensureType rolls a group on the population weights and writes it to the stack permanently. So the gamble is not "this bag will react" - it is a weighted draw against your own group. An O- recipient has a roughly 7 percent chance of a clean bag; an AB+ recipient can never have a bad one.

Concealed

Your blood type is fixed for the character and survives death

The group is drawn once when you commit to the Doomed run, or derived deterministically from your UUID on an old save. resetVitals clears blood volume, red cells, transfusion reaction and transfusion debt, but never the type. Dying does not reroll it, and neither does relogging or moving the save.

FRAGMENT 07-A - DELAYED REACTION NOTICE

SUMMARY: Three separate records describe the hemolytic reaction as delayed. The Human Blood Bag tooltip reads "Get it wrong and the reaction comes for you hours later." The plain Blood Bag tooltip calls it a "delayed reaction". The changelog entry that introduced blood types announces "a delayed hemolytic reaction - sickness, fever, pain, fresh blood loss, and a heart that can tip into fibrillation".

RESPONSE: The alert fires on the same tick as the push. DrugService scores the mismatch and calls TransfusionReactionHandler.start, which prints "That blood is wrong - your body is attacking it" immediately whenever no reaction was already running. Symptoms then decay at 0.70 a second, so a full ABO reaction has burned out in about two and a half minutes. What genuinely arrives late is the hemolysis debt, which keeps destroying blood at the tail rate long after the symptoms have faded.

FINAL NOTE: Either the tooltips describe an older build, or they describe the debt and call it the reaction. Nothing in the commits separates the two readings.

res/assets/doomedmatu/lang/en_us.json:630,670; CHANGELOG.md:813; body/TransfusionReactionHandler.java:42,81; body/DrugService.java:960

Bags and saline

One full blood bag restores 0.75 L. Right-clicking it only tells you to open the health panel and apply it to a limb, which runs the syringe minigame. Push less than the full plunger and the rest is spoiled, and you are told the percentage you managed.

Saline restores 0.5 L, thins the blood by 40 viscosity, and adds 60 thirst. Critically, saline writes blood volume directly rather than adding whole blood, so it contributes zero red cells. It fixes the volume number on the tablet, leaves oxygen delivery exactly where it was, and dilutes what carriage was left.

Blood bags spoil. Default shelf life is 12 hours of charged time, tracked on the stack so it survives saves, chests and trades. A powered freezer charges time at 0.1x and an icebox at 0.2x. Neither ever charges zero for blood - whole blood is refrigerated, not preserved. A mined freezer's contents are charged their full carried interval at room rate before they can be placed again.

Saline works the other way round. A sealed bag keeps forever, so loot and trader stock never age. Spiking it starts a 24 hour clock, and running a day-old open bag into somebody dirties the injection site and gives you the infection instead of the fluid.

An empty blood bag draws 0.75 L from you, or from another player when you right-click them with it. It refuses if the draw would leave the donor under 3.25 L, and it refuses if the donor's red-cell fraction is below 0.80 - a saline-expanded body has volume to spare but not cells. The donor is told who did it.

A transfused bag comes back as a used empty, marked contaminated, carrying the pathogen masks of both bloodstreams it touched. Refilling it does not wash it out. Pushing a contaminated bag dirties the injection site and rolls a blood exposure for every agent it carries.

In game, this reads

IV volume expander; adds blood, thins it, eases thirst.

tooltip.doomedmatu.saline

"Adds blood" means litres only. Saline writes volume directly and contributes zero red cells, so oxygen delivery does not move.

The 0.1x rate belongs to a freezer that is actually drawing power - an unpowered one settles its contents as AMBIENT and ages blood at the full room rate (FreezerBlockEntity.java:86,112), so a brownout on the machine row is a spoiled bag rather than a paused clock. Machines, Power and Fluids

Bags and saline - exact values
QuantityValue as shippedDefined in
Blood bag volume0.75 L~/item/BloodBagItem.java:33
Saline effects+0.5 L volume, -40 viscosity, +60 thirst, no red cells~/item/SalineItem.java:21,23,25 and DrugService.java:989-991
Blood bag shelf life12 h default~/config/DoomedConfig.java:2082
Cold storage multipliersfreezer 0.1x, icebox 0.2x~/item/BloodBagItem.java:266-268
Opened saline shelf life24 h~/item/SalineItem.java:37
Donation refusalsblood after draw below 3.25 L, or red cells below 0.80~/item/EmptyBloodBagItem.java:32,34

Drips and pools

The visuals are server-authoritative so every player sees the same blood, and they are keyed off the same whole-body rate the drain uses.

Drips start at 0.05 L/min. They come off the worst-bleeding limb's rough position on the body, biased downward, roughly two thirds of the time, with the remainder scattered across whatever else is bleeding. Heavier bleeding produces more frequent drips.

Floor pools need 0.35 L/min and both feet on the ground. That threshold sits much higher than the drip threshold on purpose - a scraped shin drips and fades, and only a wound that genuinely needs treating paints the floor. A pool lasts 50 seconds, holding solid for the first three quarters of that and fading out over the last quarter. It also checks the block underneath it twice a second and vanishes if that block is removed.

Colour has two independent layers. The base is a per-player choice, defaulting to 0xFF0907, sent to the server and baked into every particle and pool that player spawns, so other people see your blood in your colour rather than their own.

On top of that, transformation shifts blood from red toward orange 0xFF5500. The factor is your transform stage divided by 4, or 1 outright once you are Corebound. That is the same factor that drives transfusion divergence. A character whose blood has visibly changed colour is a character whose body has started rejecting human blood.

The colour factor is transform stage divided by 4, or 1 outright once you are Corebound (DoomedBlood.java:33-36), and it is the same number feeding transfusion divergence, so the orange in the pool on the floor is a direct readout of how badly human blood now fits you. Transformation

Notes

  • The amputation constant reads 60 units, and the javadoc sitting directly beside it says 1.5 L/min. Sixty units converts to 0.9. FIXBATCH_AUDIT records the constant as 100 back when the double-count bug was found, and 100 does give exactly 1.5, so the number was cut at some point and the comment was left behind. Only one commit in the history touches that constant and it is a whole-version squash, so the reason for 60 was never written down.
  • HEALTH_AUDIT asks for the blood regeneration rate to be 0.0525 L/min to match the source game's 0.035 units per second. BloodHandler still runs 0.05. Nothing in the commits says whether the figure was rejected or the item was simply never picked up. The same audit line also asks for a downward pull whenever blood sits above 5.0 L, and that was never added, so a body transfused up to the 7.5 L clamp keeps the surplus until something takes it off him.
  • Cutting out an organ subtracts a flat 1.0 L by writing blood volume directly, and the javadoc on removeWholeBlood reserves that direct write for plasma-only losses. So a surgical litre costs no red cells and spends no iron, where a litre lost through a wound costs both. Every other whole-blood loss in the mod, blood vomit included, routes through removeWholeBlood. Whether the surgeon's litre was judged to be plasma or the call site was just wrong, the record does not say.
  • The tablet prints an Estimated Hct line with its own alarm colours at relative 0.60 and 0.82. Nothing mechanical reads that figure. getRelativeHematocrit is called by the tablet screen and by the co-op patient scan, and every handler that matters uses the raw red-cell fraction instead, so those two thresholds correspond to no line anywhere in the sim. Whether the relative number was meant to gate something, or was always a readout, is not recorded.
  • Transfusion divergence is computed from the recipient's transform factor alone, and nothing writes a donor's transformation onto a bag. Blood drawn out of a Corebound player is stored as an ordinary human group, so it carries the full divergence penalty when it runs into another Corebound player. Two changed bodies with identical blood cannot give to each other. The design note beside DIVERGENCE_MAX is careful about what a transformed recipient should suffer and says nothing at all about a transformed donor.
SUBJ-03

Organs

You have eleven internal organs. None of them helps you - a healthy organ does nothing you can feel, and its only job is to stop being a liability. Damage to one degrades the sim through a channel that already exists: a failing liver poisons your blood, failing kidneys back potassium up into your heart, lost lung caps how hard you can breathe. Since 0.2.9 organs recover, one step per dawn and only on a day they were left alone, but every injury past a certain depth leaves permanent loss and an organ can never be repaired above what is left of it. Real death is the only thing that clears that.

The set

The set is fixed and its order is frozen into the save format: heart, left lung, right lung, liver, left kidney, right kidney, stomach, pancreas, spleen, intestines, bladder. Each one lives in a body region. The heart and both lungs sit in the thorax, everything else in the abdomen, and that is where a wound to it is routed from.

An organ carries one number that matters to everything else. Function runs from 1 down to 0, and it is condition divided by 100, except that a removed or ruptured organ reads 0 outright and a transplanted one is cut further by how far rejection has climbed. Every downstream handler reads that single fraction, which is why setting an organ's condition with a command runs the entire cascade below it.

The source states the design rule plainly, and it is worth knowing before you go looking for upside. An organ is only ever a liability. Health in one buys nothing. Every failure ends through a death channel that already existed before organs did - toxaemia into brain-death, hyperkalaemia into cardiac arrest - so an organ kills you only in a way you have already seen.

Tissue

Every organ carries two numbers that say what kind of tissue it is. Fibrosis is the fraction of an injury's depth that tissue keeps forever. The dawn step is how many condition points it can convalesce on a day that earned it, and 0 means it stays where it is for life.

  • Heart: fibrosis 1.00, dawn step 0. Cardiac muscle does not divide. A heart scar is a heart scar for the rest of that life.
  • Lungs: 0.85, step 6. The lining relines over days. The alveoli stay lost.
  • Liver: 0.55, step 20. The fastest recovery in the body and the lowest fibrosis, which is why a survived episode heals back nearly whole.
  • Kidneys: 0.90, step 5. The highest fibrosis of any organ and a mean recovery rate. Nephrons are fixed before birth and only ever fall.
  • Stomach and intestines: 0.25, step 25. Mucosa is the fastest tissue in the body.
  • Pancreas: 0.85, step 4.
  • Spleen: 0.70, step 3.
  • Bladder: 0.30, step 20.

Multiply fibrosis by 60 and the product is the deepest permanent mark that tissue can ever carry, which fixes the worst ceiling each organ can be driven to. A liver can never be capped below 67. A kidney can be capped as low as 46, a lung 49, and a heart 40.

The liver

Four things wear the liver, each at a rate per second per unit of the stressor: sustained Nocifen at 0.0016, radiation sickness at 0.0022, sepsis at 0.0030, and blood alcohol at 0.00015. The alcohol term is threshold-gated, so only the part of blood alcohol above 20 reaches the liver at all. That is just under one 400 mL bottle. A single drink grazes the organ and a habit is what scars it. All four rates diminish as the organ fails, scaling by 0.3 plus 0.7 times current function, so a wrecked liver gets worse slowly.

What a failing liver does is poison you. Toxaemia eases toward what the liver and kidneys cannot clear, rising at 10% of the remaining gap per second. Above 15 it tops up your nausea at 0.6 per point. Above 55 it starts eating your brain at 0.05 percent per second per point over the line, which is hepatic encephalopathy, and it ends at brain-death through the gate that already kills you.

Jaundice trails liver failure at 5% of the gap per second. It is bilirubin rather than an illness, and it yellows the skin where other players can see it. Anything applied to the skin runs straight past it.

A working liver clears toxaemia at 6 per second scaled by function. Clearance takes the lower of liver and renal function, so a pristine liver with dead kidneys leaves the blood dirty.

In game, this reads

A non-opioid painkiller.

Weaker than the opioids, but no breathing risk, no

overdose, no addiction - and doses stack. Also fights

fever and inflammation.

The catch: it thins your blood (wounds clot slower)

and upsets your gut. Don't pop it while you're bleeding,

and don't chain doses or you'll start a stomach bleed.

tooltip.doomedmatu.nocifen

The catch the tooltip names is clotting and the gut. The catch the handler applies is 0.0016 off the liver and 0.0011 off each kidney per second, plus an insult flag that costs all three organs their dawn step.

Nocifen level and blood alcohol are the pharmacology layer's own fields, read here unchanged, so the painkiller you take for a fracture and the drink you take for your mood both bill the same organ. Drugs and Pharmacology

The liver - exact values
QuantityValue as shippedDefined in
Blood alcohol below which the liver is untouched20~/body/OrganHandler.java:45
Sepsis liver wear0.0030 condition/s per point~/body/OrganHandler.java:39
Toxaemia nausea threshold15~/body/OrganHandler.java:52
Toxaemia brain-drain threshold55, then 0.05 brain %/s per point over~/body/OrganHandler.java:54-55
Toxaemia clearance6/s x min(liver, renal function)~/body/OrganHandler.java:49,140
Concealed

A perfect liver cannot clean your blood if your kidneys are dead

Toxaemia clearance takes the lower of liver function and mean renal function, not the liver alone. The liver converts the ammonia and the kidneys excrete it, so the slower filter governs. A player with a pristine liver and two failed kidneys watches toxaemia climb toward the encephalopathy threshold and cannot work out why the organ responsible for it reads healthy.

The kidneys

There are two, and renal function is their mean, so losing one leaves about half capacity and that is survivable. Losing the second is a different kind of event.

Both take the same stressors independently. Thirst below 25 counts as dehydrated and wears them at 0.0022 per point below that line per second, which makes running dry the signature renal killer and one of the few organ failures that comes from neglect rather than from injury. Radiation adds 0.0020, sepsis 0.0026, and Nocifen 0.0011. The painkiller is nephrotoxic as well as hepatotoxic.

Serum potassium eases toward what the remaining renal capacity can excrete: 4.0 mmol/L healthy, 8.5 with no function at all, moving at 4.5% of the gap per second. That is hours, not seconds. Above 6.0 the heart's electrics destabilise and hyperkalaemia can seed fibrillation, with the odds reaching their cap at 8.0. Above 6.5 an existing fibrillation keeps climbing on its own, so untreated renal failure ends at the heart, through arrest.

Failed kidneys also feed the shared toxaemia channel by up to 12 points, standing in for metabolic acidosis.

The dialysis rig is the standing answer, and by design it buys time instead of curing anything. Worn and charged, it pulls toxaemia down 1.4 per second and potassium 0.09 per second toward 4.0, spending one charge of 150 per second of filtering. That is roughly two and a half minutes of battery. The organ itself is untouched.

In game, this reads

A battery-powered blood filter worn on your back.

While it has charge it scrubs out the poison a failed

liver or kidney can no longer clear. It does NOT repair

the organ - the moment the battery dies, the poison

comes straight back. Heavy, and thirsty for power.

tooltip.doomedmatu.dialysisrig

The string and the handler agree exactly, down to the reason for the capital NOT.

Thirst is read straight out of the survival layer here - the same 0-100 bar that governs hydration is what sets the dehydration insult, so a run of days spent slightly dry is a renal problem before it is a thirst problem. Needs and Survival

The potassium number leaves this system entirely: CardiovascularHandler reads it every tick and seeds fibrillation off it, so renal failure arrives as a heart rhythm the circulation chapter owns. Blood and Circulation

The kidneys - exact values
QuantityValue as shippedDefined in
Dehydration thresholdthirst below 25~/body/OrganHandler.java:60
Potassium range4.0 healthy to 8.5 fully failed~/body/OrganHandler.java:66-67
Fibrillation seed / cap6.0 / 8.0 mmol/L~/body/CardiovascularHandler.java:51-53
An existing fibrillation keeps rising above6.5 mmol/L~/body/CardiovascularHandler.java:54
Dialysis rig scrub rate1.4 toxaemia/s, 0.09 potassium/s~/body/WearableEffects.java:232-234

The lungs

Mean lung function is a hard ceiling on respiratory drive. Pain, fever, adrenaline and panic all push respiration up, and the ceiling holds every one of them. It runs from 8 at no lung function to 100 at full, so one lung alone caps you near half. Survivable, permanently short of breath, and you will never sprint out of trouble again.

Chest wounds leave the lungs alone. Trunk trauma routes only to organs the sim actually models, and that list is the liver and the two kidneys. A round through the thorax gives you the internal-bleed channel and a wrecked chest wall instead.

Disease is what takes lung. Rot Lung floods a section, and a flooded section left undrained past its sixty-second window organises: 11 points come off both lungs as permanent loss rather than as damage. Surviving Rot Lung as a carrier leaves both lungs pinned at 82 with a matching permanent ceiling, and that scar is the only way anyone will ever tell a carrier from a clean survivor. Late-stage kuru aspiration takes 0.8 off both lungs each time it fires, alongside a sepsis bump.

Two datapack damage profiles also reach the lungs directly: dragon breath at 0.55 per point of damage to each, and wither at 0.10.

In game, this reads

Clears a viral disease such as Rot Lung. Antibiotics do nothing to a virus.

tooltip.doomedmatu.antiviral

Clearing the disease stops the flooding. The 11 points an organised consolidation already took are permanent loss and stay taken.

Every route into a lung is a disease route: ContagionHandler deposits the 11 points of permanent loss when a Rot Lung consolidation organises, and KuruHandler takes 0.8 off both lungs each time late-stage aspiration fires. Disease and Infection

The lungs - exact values
QuantityValue as shippedDefined in
Respiratory ceiling at zero lung function8~/body/RespirationHandler.java:75,143
Drain window before a consolidation sets1200 ticks (60 s)~/body/ContagionHandler.java:556
Cost of one organised consolidation11 condition and 11 permanent, both lungs~/body/ContagionHandler.java:558,629-630
Carrier lung pin82~/body/ContagionHandler.java:552,365-366
Dragon breath lung damage0.55 per point of damage, each lungres/data/doomedmatu/doomed_damage_profiles/vanilla.json
Concealed

No wound in the game can damage a lung or a heart

Trunk trauma only picks from the organs whose failure the sim models, and that list is the liver and the two kidneys. A thorax hit finds nothing eligible and returns immediately. So a bullet through the chest never touches a lung, and nothing anywhere in combat touches the heart. Lungs are only reached by Rot Lung, by late-stage kuru aspiration, by the wither and dragon-breath damage profiles, and by a graft.

The unread six

Be clear about this, because the body panel is not. The heart, stomach, pancreas, spleen, intestines and bladder have no consumer in the physiology. Their function is a number nothing reads. They hold state, they save and load, they sync to your client, they show on the status panel, and the WITNESS tablet raises findings on them. Every one of those is a display.

The spleen is the one with a real event attached. Landing on your side hard enough bursts it: past 9 blocks of residual core load on a side landing there is a 35% chance the spleen ruptures. Its function drops to 0 and it becomes excisable, which is the actual operation. The ruptured flag has exactly one reader, the saw, so a burst spleen sits there without bleeding you.

The heart is a special case for a different reason. Its dawn step is 0 and its fibrosis is 1.00, so if anything ever did drive its condition down, that loss would be exactly as permanent as it sounds. Nothing does.

Treat all six as substrate wired for a future the mod has not shipped. The WITNESS tablet will happily report an abdominal organ injury at under 50% and a cardiac organ failure at under 60%, and both findings are true readings of a value nothing acts on.

Concealed

The transplant screen opens on organs the graft can never target

The client-side check that decides whether to open the theatre accepts any organ under 65% - including the spleen, stomach, pancreas, intestines and bladder. The server's target selection only ever considers the liver, the kidneys and the lungs. So a ruptured spleen will happily open the surgery screen, and the commit at the end refuses with "Nothing in there is failing badly enough to replace" after you have already been opened up and bled.

Routes in

There are four routes in.

Chemistry is the slow one, covered above: painkillers, radiation, sepsis, drink and thirst grinding the liver and kidneys down over minutes and hours.

Trauma is the fast one. A penetrating or crushing hit to the thorax or abdomen picks one organ homed in that region and wrecks it, drawing from the shortlist of organs whose failure the sim models, which is the liver and the two kidneys. The wound must be worth at least 4 after armour, and even then there is a 45% chance it finds an organ at all, because the trunk is mostly other tissue. What it finds loses 2.2 condition points per point of wound magnitude. Trauma stops at 22 on those organs, on purpose. A gut shot is meant to be a debt you have to manage, and an unavoidable death with no counterplay is the thing the floor was written to prevent.

Disease is the third, and it goes to the lungs.

The fourth is a datapack. A damage profile can carry a physiology block naming organs and a coefficient per point of damage, and the shipped file uses it for wither and dragon breath and for toxic magic, which takes 0.25 off the liver and 0.08 off each kidney per point.

The whole organ layer is gated behind enableOrgans, which is on by default.

Routes in - exact values
QuantityValue as shippedDefined in
Minimum wound to reach an organ4~/body/CombatRouter.java:167
Chance a trunk hit finds an organ45%~/body/CombatRouter.java:168
Organ damage per point of wound2.2 condition~/body/CombatRouter.java:169
Floor trauma cannot cross22~/body/CombatRouter.java:172
Organs trauma can reachliver, left kidney, right kidney~/body/CombatRouter.java:173-174

Scarring

Each organ carries a second number beside its condition. Scar is a high-water mark of the worst state that organ has ever been in, and the most it can ever be repaired to again is 100 minus that scar.

The deposit is automatic and it happens inside the setter rather than at the injury sites, so every existing way of hurting an organ scars correctly and so will every future one. Only a decrease scars, which leaves restoration free of any mark. Only depth past 60 scars, so ordinary wear genuinely heals away: above 60 an organ is bruised, below it tissue is being destroyed. What gets deposited is the depth past that line multiplied by the organ's fibrosis.

Work an example. Drive a liver to 30 and it takes (60 - 30) x 0.55 = 16.5 of permanent loss, so it will never exceed 83.5 again. That figure is not a balance number. It is where living liver donors actually plateau. Drive a kidney to the same 30 and it takes 27, capping it at 73 forever, because kidneys do not do that.

Scar is clamped at 60 times fibrosis wherever it is written, including the additive deposits Rot Lung makes. That clamp is what stops four consolidations plus a carrier scar from stacking a lung into an unwinnable body.

The game displays this number nowhere. Not the status panel, not the WITNESS tablet, not the sync packet. The only signal you get is one action-bar line the day an organ finishes healing.

Real death hands you fresh organs. Condition goes back to 100, the scar clears, ruptures and removals clear, and a graft reverts to native tissue with no rejection. That is the one hard reset in the mod, and it is deliberate. The body is new, so its history goes with the old one.

A dimension change settles nothing. Organ state is explicitly copied across, scar included, so a portal hands you back exactly the body you walked in with.

The convalescence day clock and the insult flags also reset on death, so the first day back owes nothing to the life before it. The day you log in on pays nothing either: the first dawn tick after a login clears the flags and returns without paying a step.

Turning enableOrgans off restores every one of your organs to whole, scar included. Freezing them where they stand would be worse. A failed organ is a permanent multiplier on breathing, potassium and consciousness, and with the handler off nothing could ever repair it. Potassium and jaundice are read by the heart and the skin ungated, so a frozen kidney would be an untreatable heart attack. The day clock is zeroed too, so re-enabling the system starts fresh instead of paying out a free day for a period it was not running.

Scarring - exact values
QuantityValue as shippedDefined in
Depth past which damage becomes permanentcondition below 60~/body/OrganState.java:95,111
Permanent loss deposited(60 - new condition) x fibrosis~/body/OrganState.java:112
Hard cap on scar60 x fibrosis~/body/OrganState.java:83
Repair ceiling100 - scar~/body/OrganState.java:64-66
Scar sent to the clientnever - only function 0-100 syncs~/network/DoomedNetwork.java:1097-1106
Cleared by real deathcondition, scar, rupture, removal, graft, rejection~/body/OrganState.java:165-172
Carried across a dimension changeall of the above, unchanged~/body/OrganState.java:174-181
Behaviour with enableOrgans offevery organ restored to 100 and unscarred~/body/Quiesce.java:118-133
Credit for your login daynone~/body/OrganHandler.java:196,204-206
Concealed

Your organ ceiling is never shown to you anywhere

Scar is a server-side field. The sync packet sends only function as a 0-100 byte, the WITNESS patient snapshot sends the same, and neither the status panel nor the tablet has a line for permanent loss. You can be at 100% on a liver whose true ceiling is 67 and nothing will say so. The single signal in the entire game is one action-bar line - "Your liver has healed as far as it is going to" - fired once, only on an organ that actually has a scar, and only for the first such organ on that dawn. If five organs top out on the same morning you see one message and the other four are silently overwritten.

Concealed

Trauma cannot rupture anything, despite the code path for it

The rupture branch requires the struck organ to be in the rupturable set - spleen, stomach, intestines, bladder - but the organ was already chosen from the modelled set, which is liver and kidneys only. The two sets do not overlap, so the branch is unreachable. Every trauma-struck organ takes the vital floor of 22 instead. The only rupture that actually happens in the game is a spleen bursting on a hard side landing.

Concealed

Excision maxes out that organ's permanent loss

Cutting an organ out sets its condition to 0, and the automatic scar deposit fires on the way down: (60 - 0) x fibrosis, which is the deepest mark that tissue can carry. A removed kidney is capped at 46 forever. That matters only if you later graft, because a graft clears the scar outright - but if you never find a donor, the slot is at its worst possible ceiling in addition to being empty.

Concealed

A graft is the only thing that clears a scar without dying

Installing a donor organ sets the target's scar to zero, because it is new tissue. The order of writes matters and is deliberate: condition is written first, then the scar is cleared, because a graft landing at 48 on an organ that was at 64 would otherwise be a decrease past the scar depth and would deposit fresh permanent loss onto the tissue it is meant to be replacing. So the newly grafted organ is genuinely uncapped, and every organ you never graft carries its history to the grave.

Concealed

The immunosuppressant clock runs even when the organ system is off

The countdown is advanced above the enableOrgans kill-switch on purpose, because the immunity penalty it pays for is read ungated by the infection handler. On a server with organs off and infection on, the pill would otherwise dock 85 immunity for the rest of your life with nothing able to clear it - and the transplant that would justify it is refused outright in that configuration. Only the rejection maths is gated; the clock is not.

FRAGMENT 09-B - ONE LINE ABOUT A NUMBER YOU ARE NEVER SHOWN

SUMMARY: "Your liver has healed as far as it is going to." An action bar line, fired at a dawn boundary and at no other moment.

RESPONSE: It fires only for an organ that finished climbing to its ceiling that morning and that carries a scar above 0.01, and only for the first such organ in enum order. An organ healing cleanly back to 100 says nothing - the line used to fire there too, which told the player their liver would never recover further at the exact moment it had fully recovered.

FINAL NOTE: A body topping out five scarred organs on the same dawn shows one line and silently overwrites four. Scar is never put on the wire; the sync packet carries function as a 0-100 byte and the tablet carries the same. So this sentence is the only sight of the ceiling anywhere in the game, and it is gone in a few seconds.

~/body/OrganHandler.java:232-242; the sync path at network/DoomedNetwork.java:1097-1106

Convalescence

Recovery arrives all at once. It is granted at the dawn boundary, in a single step, and only for organs that earned it. The reasons are practical: a per-second rate would be multiplied by paceFactor while organ damage is not, so a fast server would heal the same wounds ten times over, and any rate slow enough to leave the chemical wear standing would be too slow to perceive.

At dawn the day that just ended is settled from flags accumulated across it. An organ is skipped if its dawn step is 0, if it is removed or ruptured, if it is a graft, or if its own insult bit was set at any point that day. Otherwise it gains its dawn step, multiplied by the organRegenMultiplier setting, up to its ceiling.

The insult flags are sampled every tick and settled at dawn. That matters more than anything else here. One tick of Nocifen at 05:59 costs the liver its whole day, and blood alcohol above 20 at any hour does the same. For the kidneys the flags are Nocifen and thirst under 25. Sepsis above 1 or radiation sickness above 1 blocks every organ in the body, systemically.

There is also a whole-body gate. Let tissue repair capacity drop under 0.55 at any point in the day and nothing knits at all. Repair capacity is food times energy times wasting: with energy at or above 60 and no wasting, hunger has to stay at roughly 30 or above all day, and a lower energy level raises that requirement sharply.

Setting organRegenMultiplier to 0 restores the pre-0.2.9 rule where organ damage was permanent for life.

Convalescence - exact values
QuantityValue as shippedDefined in
Recovery cadenceonce per in-game day, at the dawn boundary~/body/OrganHandler.java:192
Tissue repair needed for any recovery0.55~/body/OrganHandler.java:166,263
Systemic block on every organsepsis above 1 or radiation sickness above 1~/body/OrganHandler.java:275-276
Liver insult flagsNocifen above 1, or blood alcohol above 20~/body/OrganHandler.java:279
Kidney insult flagsNocifen above 1, or thirst below 25~/body/OrganHandler.java:280
Starvation flagbit 31 of the insult mask, blocks everything~/body/OrganHandler.java:247,263-265
Config to restore permanenceorganRegenMultiplier = 0 (default 1.0, max 8.0)~/config/DoomedConfig.java:2065-2072
Concealed

One tick of an insult costs the whole day

The insult flags are sampled every tick and settled at dawn. Swallow one Nocifen at any moment of the day and your liver and both kidneys bank nothing that dawn. Let your thirst dip under 25 once and the kidneys lose the day. Drink past blood alcohol 20 at any hour and the liver does. Sepsis over 1 or radiation sickness over 1 blocks every organ in the body at once. And if your tissue repair capacity drops under 0.55 at any point - roughly, hunger under 30 with good energy, higher with poor energy - nothing in your body knits at all that day.

Harvest

Organs come from two places, a crate or a body. A violent death scatters the trunk as a cadaver torso item, stamped with the moment of death, who it was, and what their own organs were worth. That last figure is the best condition among the donor's liver and kidneys, so a body that was failing before the saw arrived yields accordingly.

From the stamp the corpse is on a clock. Under two minutes it is still warm and can yield up to 90% quality. Under five, cooling, capped at 60%. Under ten, going grey, capped at 35%. Ten minutes is the end of it. Cold slows the clock and always leaves it running: a powered freezer takes it to 15% speed and an icebox to 35%, and the code holds a floor of 5% so a body can only ever be delayed.

Opening it needs the bone saw in your inventory and Intelligence 20, ten levels above the baseline every character starts at and past what any other content in the mod asks for. The procedure runs in three stages: open the trunk in one straight pass, press and hold each of three vessel stumps, then trace the ring around the organ while keeping the blade off it.

The yield multiplies four things and skips none of them: the corpse's freshness cap, your procedure score, your cleanliness (filth costs up to 60% at dirtiness 100), and the donor's own cap. A perfect extraction from a ten-minute corpse is still a marginal organ.

Your own remains are off limits, and a donor can be opened once every 30 real minutes. Doing it costs you happiness and nausea, and it costs the same to every player within 8 blocks who watches. Each act desensitises you by 10%. A harvest that yielded more than 15% teaches you 15 Intelligence XP. Butchery teaches nothing.

The moment it comes out, it starts dying. A donor organ has 600 real seconds of ambient life, which is ten minutes. That is a sprint rather than a shelf. Viability falls linearly across the window and the tooltip names the band it is in: fresh, fading, failing, almost gone, then DEAD.

The cold chain here works differently from the corpse's. A chest is not a hospital and gets no enclosed-container mercy at all. An icebox runs the clock at 20%, stretching ten minutes to fifty. A powered freezer runs it at zero and genuinely holds the organ indefinitely. It is the one thing in the harvest chain that stops time.

The number that matters when you install it is effective quality: the harvest quality the extraction earned, multiplied by how alive it still is. A 90% organ that has been carried around for five minutes is a 45% organ.

Organs found in a crate or bought from a trader carry no tags, so they read as a flat 55% preserved quality, and their clock starts the first time the server actually looks at them rather than retroactively. That figure was chosen against the harvest curve on purpose. A clean fresh extraction lands around 69% or better, so loot stays the fallback and never the ceiling. The tooltip shows you both numbers, and the displayed viability includes the time that has passed since anything last settled the stack, so a chest-aged organ reads its real age at you.

In game, this reads

Drag onto an arm or leg to amputate it.

tooltip.doomedmatu.saw

The saw's whole tooltip is that one line. It never mentions that the same tool opens a cadaver torso, that the work wants Intelligence 20, or that crouching with it in hand cuts an organ out of you.

The act runs through seeCorpse(), the desensitisation model on DoomedData, so the happiness and nausea it costs the surgeon and every witness within 8 blocks are the mood system's numbers scaled by how many bodies that person has already opened. Psychology

The cold chain is machinery: a torso or an organ only gets the FREEZER_POWERED multiplier while the Freezer block entity actually has power, so an unpowered freezer stores a corpse at room rate. Machines, Power and Fluids

Harvest - exact values
QuantityValue as shippedDefined in
Freshness bands120 s / 300 s / 600 s~/item/CadaverTorsoItem.java:40-42
Quality caps by band0.90 / 0.60 / 0.35~/item/CadaverTorsoItem.java:43-45
Intelligence required20~/item/CadaverTorsoItem.java:32
Corpse clock in a powered freezer15% speed (icebox 35%)~/item/CadaverTorsoItem.java:195-200
Filth penalty at dirtiness 10060% of the yield~/network/C2SHarvestOrganPacket.java:29
One harvest per donor per36000 ticks (30 real minutes)~/network/C2SHarvestOrganPacket.java:36
Witness radius8 blocks~/network/C2SHarvestOrganPacket.java:33
Cost of seeing it done-3.5 happiness, +6 nausea, both x your desensitisation~/capability/DoomedData.java:2867-2871
Ambient shelf life600 s~/item/TransplantOrganItem.java:81
Icebox / powered freezer20% speed / fully held~/item/TransplantOrganItem.java:195-200
Loot and trader organ quality0.55~/item/TransplantOrganItem.java:79
Effective qualityharvest quality x viability~/item/TransplantOrganItem.java:147-149
Time on the floor before it despawns12 minutes~/item/TransplantOrganItem.java:133-135
Concealed

Cold holds an extracted organ but never a corpse

A powered freezer runs a donor organ's clock at zero, genuinely stopping it. The same freezer runs a cadaver torso at 15% and an icebox at 35%, with a hard floor of 5% in the code so that no storage can ever pause a body. The practical consequence is that the ten minutes between a death and the extraction are the real constraint, and everything after the organ is in your hand can be banked indefinitely.

Concealed

Loot organs start their clock when the server first looks at them

A crate or trader organ carries no NBT, so it reads as 55% quality and full viability until something authoritative settles it, at which point the stamp is written at the current time rather than backdated. Sitting in an unloaded chest costs nothing. The displayed viability, unlike the stored one, includes the unsettled gap at ambient, so the tooltip tells you the truth even when the stored value has not caught up.

Concealed

Harvesting is capped at one organ per donor per half hour

The server keeps a map of donor UUID to the game time of the last harvest and refuses any torso from that donor for 36000 ticks. It is what stops a consenting partner dying on a loop from being an organ printer. The map is server-lifetime, so a restart forgives it, and a negative gap - a stamp from a different world's clock - is dropped rather than trusted. Harvesting your own remains is refused outright, and with the default skillsResetOnDeath your own death also costs you the Intelligence the saw demands.

FRAGMENT 11-A - THE SAW'S FOUR REFUSALS

SUMMARY: The harvest packet can return one of four lines when nothing in your inventory can be opened, in the order it tests them: "That was YOU. Some doors stay shut." / "You have taken from this one too recently - the flesh remembers." / "Too long dead - whatever was in there is meat now." / "There is no body here to open."

RESPONSE: The server ranks every cadaver torso you carry by its freshness cap multiplied by what the donor's own liver and kidneys were still worth, then refuses only if none of them survived that pass. The wording explains why the whole bag failed rather than why one body did. An earlier version picked the freshest torso first and then refused it, with no way to choose the other one.

FINAL NOTE: The cooldown behind the second line is a map of donor UUID to game time, held for the server's lifetime. A restart forgives it. The line names no duration; the constant is 36000 ticks, which is thirty real minutes.

~/network/C2SHarvestOrganPacket.java:134-140, and the ranking loop at 96-133

FRAGMENT 13-C - TWO REFUSALS THAT SAY ALMOST THE SAME THING

SUMMARY: The client pre-check speaks a lang key, message.doomedmatu.transplant.none: "Nothing in there is failing badly enough to be worth replacing." The server commit speaks a hardcoded literal: "Nothing in there is failing badly enough to replace."

RESPONSE: They guard different lists. ClientHooks.canTransplant returns true for any organ under 65, all eleven of them; the server's worstFailing only ever looks at the liver, both kidneys and both lungs. A ruptured spleen therefore opens the theatre, and the refusal arrives after the abdomen has already been bled at the transplant rate.

FINAL NOTE: Only the client half has a translation key. A zh_cn client gets refused in Chinese before the surgery and in English after it. The excision messages are all translatable - but the organ name substituted into "%s - 取出。" comes from Organ.displayName(), which is hardcoded English, so a Chinese client reads "Left Kidney - 取出。"

~/client/ClientHooks.java:360-370, item/TransplantOrganItem.java:53-58 and 170-181, body/TreatmentService.java:1215-1218, assets/doomedmatu/lang/en_us.json:796-799, lang/zh_cn.json:782-785

The graft

Right-clicking a donor organ opens the theatre. It targets whichever of the liver, either kidney or either lung is worst, and only if that organ is below 65% function. Anything healthier than that is not worth the surgery.

This is the only procedure where the patient can die on the table. The abdomen is held open at roughly three and a half times the bleed of a prosthetic fit, up to a cap, and the old organ has to come out before the new one goes in. Four stages: open along the line, clamp all four vessels, seat the graft, sew each vessel back on. From the first clamp the clock is running, and courage buys no time off it. Your own blood volume sits on screen the whole time, and under 1.9 L the theatre closes itself. Being open adds 62 to that limb's pain target before sedation, scaled away entirely at sedation 70, which is why this is the procedure that makes a second player and a sedative worth having: the screen aborts below consciousness 12, so sedating yourself and then operating is out.

The graft lands between 48 and 88 condition depending on quality, where quality is your procedure score capped by the organ's effective quality. It clears the old tissue's scar outright, which is the only in-life reset there is. A botched join starts with up to 34 rejection already on the clock.

Rejection then climbs 0.055 per second forever, which fully rejects an organ in about half an hour. Lungs reject 2.4 times faster, so a lung graft is gone in under thirteen minutes. Immunosuppressants walk it back at 0.03 per second, and only 0.45 of that for a lung. Function is cut by up to 90% as rejection climbs, so a fully rejecting graft fails fast while still sitting there.

The drug is the trade. One dose covers ten minutes and costs 85 immunity for every tick of it, in a world with airborne plague, wound infection and sepsis. Doses set the timer rather than stacking it.

In game, this reads

Stops your body destroying a transplanted organ.

While it is in you, rejection is held back - and your

immune system is switched off with it. Infection,

sepsis and plague become far more dangerous.

tooltip.doomedmatu.immunosuppressant

"Held back" is the honest word. At 0.03 per second against a 0.055 climb the drug wins on a kidney, and on a lung it recovers 0.0135 against 0.132.

The immunosuppressant's 85-point immunity penalty is applied by InfectionHandler rather than by anything here, ungated by the organ switch, so the cost of keeping a graft is paid entirely inside the infection system. Disease and Infection

The graft - exact values
QuantityValue as shippedDefined in
Eligible for a graft below65% function~/item/TransplantOrganItem.java:172
Graft starting condition48 to 88 by quality~/body/TreatmentService.java:1290-1291
Botched-join rejection head startup to 34~/body/TreatmentService.java:1293
Rejection climb0.055/s, lungs x2.4~/body/OrganHandler.java:73,77
Rejection walked back while suppressed0.03/s, lungs x0.45~/body/OrganHandler.java:74,79
Immunosuppressant dose12000 ticks (10 minutes)~/item/AntimicrobialItem.java:36
Immunity cost while it is in you-85~/body/InfectionHandler.java:31,114-115
Theatre self-closes below1.9 L blood~/client/screen/surgery/TransplantScreen.java:32-33
Open-abdomen bleed0.055/s x 1.85, capped at 1.10~/body/SurgeryManager.java:37,39,46
Concealed

A lung graft loses ground faster than the drug can win it back

Rejection on a lung climbs at 0.132 per second unsuppressed and only falls at 0.0135 per second under immunosuppressants, and one dose covers exactly ten minutes. Ten covered minutes recover about 8 points; ten uncovered minutes add about 79. Doses set the timer rather than stacking it, so taking a second pill early buys nothing. A lung graft is only survivable if you never let the cover lapse at all.

Excision

Crouch and right-click with the bone saw and it takes out the organ most worth losing. There is no minigame. You are opening your own abdomen with a bone saw, and the price is the point.

Three things can be excised: either kidney, or the spleen. The liver is deliberately absent from that list and always will be, since it has no pair and no substitute, so the knife refuses it. The mod hands out no unavoidable deaths and it will not let you give yourself one either. The saw also refuses to take a second kidney once the first is gone.

An organ only qualifies if it is a graft that has passed 25 rejection, or if it is ruptured. A merely damaged kidney is not a candidate, and the message you get says as much. A rejecting graft outranks a rupture, because rejection is the one failure that keeps getting worse on its own.

It costs a litre of blood, 85 pain, 45 pain-shock, and an abdomen left open at 55 skin damage with 0.45 bleed and 30 infection seeded, which is a real wound that will go septic if you leave it. Below 2.6 L of blood the saw refuses outright, because opening yourself up at that point is just suicide.

What you are left with is zero function on that organ and a rejection clock that has stopped. That is not a cure. For a kidney the survivor carries you at about half capacity while you go and find another donor.

In game, this reads

Nothing in there is worth cutting out.

message.doomedmatu.excise.none

The same line covers three different refusals: no graft past 25 rejection, no rupture, and a liver the knife will not consider at all.

What the saw leaves is an ordinary abdominal wound in the injury system - 55 skin damage, 0.45 bleed and 30 infection seeded, with a CaseNotes INFECTED entry filed - so the aftercare is the same antisepsis and dressing as any other open belly. Injury and Treatment

Notes

  • CombatRouter still holds ORGAN_RUPTURE_MIN at 18 and a rupturable set of spleen, stomach, intestines and bladder, while the organ a trunk hit selects is drawn from a modelled set of liver and the two kidneys. The sets never overlap, so the branch has never run once. Directly above the modelled set sit two javadoc comments in a row, the upper one describing a field that no longer exists. Whether the four rupturable organs were meant to join the modelled set later or the branch was meant to be cut is recorded nowhere in the source or in reference/.
  • reference/ORGAN_HARVEST_SPEC.md, decision 7, says an attempt below the Intelligence gate BOTCHES - destroys the organ, worse mood hit. The shipped code refuses to open the screen and charges nothing at all: "You know where the organs ARE. You do not know how to take one." Nothing in the spec, the changelog or the code comments records the change of mind.
  • Phase 2 of that same spec lists an operating-theatre requirement, a field transport cooler, and per-organ selection instead of one generic donor organ. None of it is in the tree. The organ item stays generic and its tooltip still reads "Someone else's liver or kidney, kept cold" although lungs were later added to the graft target list on Matt's call. Whether that tooltip is simply stale or the fiction intends a generic organ was never written down.
  • Organ wear runs on paceFactor-scaled seconds. Convalescence is a fixed step at a dawn boundary that arrives on the vanilla day clock, and the config comment says outright that pace does not scale it. A server running pace above 1 therefore grinds organs down faster while healing them at exactly the same rate per day. That ratio reads as the product of two different clocks rather than a number anybody chose, and nothing in reference/ mentions the dawn step at all - the whole convalescence design lives in one javadoc block and one changelog paragraph.
  • One gametest touches this domain: suppressantCoverageExpiresBeforeOfflineRejection, and it covers the offline rejection clock only. The dawn boundary, the scar deposit, the trunk trauma router and the entire harvest chain are unexercised by any test or preflight checker. A single dawn step is also the smallest observable unit of the 0.2.9 recovery rule, so how it actually reads in play is not established anywhere in the repo.
  • Excision needs a graft past 25 rejection or a rupture, ExcisionService is the only writer of the removed flag, and trauma cannot rupture a kidney. So a native kidney can never be taken out - every excisable kidney is one somebody donated first. The guard that refuses to take the second kidney is only reachable by a player who has grafted twice and lost both grafts. Whether that was the intent or a consequence of the rupture set never being wired up is not stated.
SUBJ-04

Injury and Treatment

Every injury in Doomed is stored per body region and treated per body region, through the paper-doll panel. A wound is not a number that ticks down on its own: bleeding, deep tears, embedded objects, burns, cold injury and infection all interact, and several of them silently switch each other off. This page covers what each treatment actually does to the numbers, what the thresholds are, and which of them the game never tells you about.

Storage

Every region carries one set of aggregate values - skin health, muscle health, bone state, external bleed, internal bleed, pain, infection, burn, frostbite - plus up to four individual wound records. The records are the real injuries: a laceration, a gunshot entry, an amputation stump. The aggregates are a projection summed back out of them.

That distinction decides what a treatment has to touch. A value written straight onto the region survives only until the next time that region is touched, when the projection rebuilds the aggregate by summing the records again. Every treatment that means to change a bleed permanently changes the record instead. It is why a coagulant that only lowered the region's number appeared to do nothing.

A fifth wound landing on a region that already holds four merges into the nearest compatible record rather than opening its own. A limb opened eleven times reads as a small number of wounds carrying the accumulated damage.

Skin health caps how much a region can bleed. The ceiling is 100 minus skin, so a region at 80 skin holds at most 20 bleed units, and as skin knits back the ceiling tightens and squeezes the bleed down with it. Muscle health is capped at 50 while the bone is fractured. A missing region is made completely inert - pain, infection, wound records and lodged objects are all cleared off it. A limb that is gone stops simulating anything at all.

Storage - exact values
QuantityValue as shippedDefined in
Wound records kept per region4~/body/WoundLedgerService.java:17
Maximum bleed a region can hold100 - skin health~/body/LimbData.java (maxBleedForSkin)
Muscle ceiling while fractured50 of 100~/body/LimbData.java:37
Maximum internal bleed per region2.0 L/min~/body/LimbData.java:33

Clotting

External bleed is measured in source units. Each unit of summed, unmasked bleed drains roughly 0.015 litres per minute of blood, and a full body holds about 5 litres.

Natural clotting is slow on purpose. A small bleed at or under 2 units clots at 0.050 units per second. A serious bleed at or above 8 units clots at 0.017, and the middle blends between them. At that rate a serious untreated wound stays open long enough to kill you. The figure was deliberately lowered from a faster one that made a single wound survivable forever.

Several modifiers scale clotting at once. Venom is an anticoagulant and reduces clotting to zero at venom 20. Nocifen, the non-opioid painkiller, thins the blood and drags clotting down with it, so a medicated wound bleeds longer. Cold below 35 C degrades clotting on a straight line to 60 percent at 30 C. The comfortable temperature band buys a small 8 percent bonus instead, and the two can never both apply.

An embedded fragment suspends clotting entirely. Not slows - suspends. A wound with shrapnel in it weeps until the fragment comes out, however long you wait and whatever you wrap over it.

Blood loss also tapers as the body empties. Below 0.75 litres the flow rate falls toward zero, because there is nothing left to lose. The wound is unchanged and still reads as open.

Internal bleeding is a separate channel measured directly in litres per minute, and no dressing reaches it. Procoagulant works anywhere. Regenex is thoracic only.

The field answer with no drugs at all is holding still. While a body is genuinely not moving, an internal bleed clots at 0.0025 units per second. Crouching counts as deliberate pressure and multiplies that by 1.7. Being unconscious on the floor counts too, which is why dragging a downed friend somewhere quiet is worth doing. Any real locomotion stops it outright, and so does sprinting or swinging.

Adrenaline suppresses it, scaling down to a floor of 30 percent, so a frightened body clots badly. A moderate internal bleed is minutes of doing nothing in a game that will not pause for you, and it is far too slow to outrun a serious haemorrhage. An embedded fragment suspends internal clotting the same way it suspends external clotting.

Direct pressure is the bare-handed answer to an external bleed. Both hands empty, kneeling on the wound. It multiplies the region's flow by 0.35 while held, and floors at 0.7 on a deep wound, because a hand cannot close an artery. It masks flow exactly like a tourniquet: the stored wound is untouched, you are standing on the hose.

Pressure costs stamina at sprint rate. Below 0.5 stamina it stops helping and starts grinding the raw tissue instead, pushing that region's pain toward 60. Ten seconds of real pressing banks a full release credit, which then drains back to open flow over 20 seconds. A tap banks nothing. You get one benefit slot: one pair of hands, one wound.

In game, this reads

A non-opioid painkiller.

Weaker than the opioids, but no breathing risk, no

overdose, no addiction - and doses stack. Also fights

fever and inflammation.

The catch: it thins your blood (wounds clot slower)

and upsets your gut. Don't pop it while you're bleeding,

and don't chain doses or you'll start a stomach bleed.

tooltip.doomedmatu.nocifen

The tooltip is the only place the anticoagulant side of Nocifen is stated, and it states it as advice rather than a rate. It does not say the drug shares a multiplier chain with venom, cold and warmth.

The cold clotting penalty reads the same core temperature the survival layer drives, and wet clothing on a frozen peak settles that near 26 C - far under the 30 C floor, so clotting sits at 60 percent for as long as you stay up there. Needs and Survival

Clotting - exact values
QuantityValue as shippedDefined in
Bleed unit to blood loss1 unit = 0.015 L/min~/capability/DoomedData.java:1028
Clot rate, serious wound (8+ units)0.017 units/s~/body/BleedHandler.java:26
Clot rate, small wound (2 units or less)0.050 units/s~/body/BleedHandler.java:29
Clotting reaches zero at venom20~/body/BleedHandler.java (venomClotFactor)
Cold clotting penaltystarts below 35 C, floors at 60% by 30 C~/body/BleedHandler.java:33
Warmth clotting bonus+8% at full comfort~/body/BleedHandler.java:36
Clotting while a fragment is embedded0~/body/BleedHandler.java (hasShrapnel gate)
Internal clot rate while still0.0025 units/s~/body/BleedHandler.java:64
Crouch bonusx1.7~/body/BleedHandler.java:66
Adrenaline floor on internal clotting30%~/body/BleedHandler.java:72
Direct pressure flow multiplier0.35 (0.7 on a deep wound)~/capability/DoomedData.java:1085
Pressure hold to bank full credit10 s~/capability/DoomedData.java:1088
Pressure credit fade after release20 s~/capability/DoomedData.java:1091
Stamina at which pressing starts hurting instead0.5~/body/PressureHold.java:39
Pain added while pressing exhausted2.0/s, capped at 60~/body/PressureHold.java:41
Concealed

Anything embedded in a wound suspends clotting completely

While a fragment is in a region, both external and internal clotting are multiplied by zero on that region. Natural healing is blocked as well. A bandage will still staunch it, but the moment the wrap comes off or the deep wound reopens the bleed is exactly where it was, and it will never settle on its own.

Concealed

Holding still is a real treatment for internal bleeding

Internal bleeding tamponades at 0.0025 units per second while you are genuinely stationary, multiplied by 1.7 while crouched, and being unconscious on the floor counts. Adrenaline scales it down to a floor of 30 percent, so a frightened body clots badly. Any real locomotion, sprinting or swinging stops it dead. A 0.40 internal bleed takes roughly 2.7 minutes of lying up.

Closure

Once a region's bleed reaches 20 units the wound is promoted to deep, and any earlier stitch bookkeeping is thrown away. It is a new tear and it needs treating again. Some wound types are deep on creation however hard they are bleeding: an avulsion, an amputation stump, a gunshot entry or exit. A laceration, puncture or bite is deep only if the tract went at least 75 percent of the way into the tissue.

A bandage does not close a deep wound. A full wrap staunches it to zero bleed and arms a 3-minute countdown. When that expires the wound weeps again, back up to the deep-wound threshold or whatever the open skin can sustain, announced by a wet squelch and the moodle returning. Until it is properly closed, the flesh knits at one fifth of normal speed.

Four things close a wound for good. A clean suture is the best close in the game. A wound stapler does it instantly with no minigame, at a rougher skin restore and a sharper pain spike. Cauterisation welds it shut under a held flame. And a botched suture does not close it at all.

That last one is worth reading twice. The stitching minigame scores from 0 to 1 on the entry knots, the exits and the line of the thread. At 0.55 or better the wound is shut for good and the bleed stops dead. Under 0.55 the thread tears through the edges: the suture is spent, the skin knits a little, the bleed is pinched, and the wound is still deep and still unstitched. It is measurably worse than a staple.

In game, this reads

A spring-loaded surgical stapler (about 12 staples).

Drag onto a deep wound to close it INSTANTLY like a

suture - faster and dirtier: it stings hard and knits

the skin rougher. A clean stitch still heals best.

tooltip.doomedmatu.woundstapler

True for a clean stitch. The comparison the tooltip makes is against the stitch that lands, and under quality 0.55 the thread tears through and closes nothing, which puts the guaranteed staple ahead of the suture the player actually got.

Closure - exact values
QuantityValue as shippedDefined in
Bleed at which a wound becomes deep20 units~/body/LimbData.java:41
Reopen delay after a bandage3600 ticks (3 min)~/body/LimbData.java:43
Healing rate on an unstitched deep wound20% of normal~/body/LimbHandler.java:42
Suture quality needed for a clean close0.55~/body/TreatmentService.java (cleanClose)
Suture skin restore+6 to +25 by quality~/body/TreatmentService.java (applyLimbMed SUTURE)
Suture pain+8 to +24 by quality~/body/TreatmentService.java (applyLimbMed SUTURE)
Staple: skin, bleed, pain+15 skin, bleed to 0, +22 pain~/body/TreatmentService.java (applyLimbMed STAPLE)
Staples per stapler12~/registry/DoomedItems.java:165
Tract depth that makes a laceration or puncture deep0.75~/body/WoundLedgerService.java:22
Concealed

A ragged suture is not a closure at all

The stitching minigame reports a quality from 0 to 1. At 0.55 or better the deep wound is shut for good. Below that the thread tears through: the suture is consumed, the skin knits a little and the bleed is pinched, but the wound remains deep and unstitched, which is byte-for-byte the state a bandage leaves. The 3-minute reopen countdown arms and the wound weeps again. A botched suture is measurably worse than a wound stapler's guaranteed mediocre close.

FRAGMENT 03-B - PINCHED, NOT CLOSED

SUMMARY: The message the server sends when a stitch on a deep wound scores under 0.55. Recovered because it is the only notice a player gets that the closure failed.

RESPONSE: "You stitch the deep wound in the Left Forearm, but the thread tears through the edges. It is pinched, not closed." The clean version, for comparison: "You stitch the deep wound in the Left Forearm neatly closed; it will heal properly now."

FINAL NOTE: The line names the failure and withholds the number. The wound is left in the exact state a bandage leaves - deep, unstitched, three minutes on the reopen countdown - and the suture item is gone. The clinical record writes no closure for it, correctly, since nothing was closed.

~/body/TreatmentService.java, applyLimbMed case SUTURE, the botch branch around line 930.

Dressings

Every dressing goes on through the same wrap minigame and carries its own potency, all of it scaled by how much of the wrap was completed. A wrap of 0.9 or better staunches the bleed to zero outright. Below that the bleed is multiplied toward the dressing's floor.

The plain bandage restores 30 skin and cuts bleeding to 10 percent at a full wrap. The adhesive bandage is nearly useless on a real wound. The ripped dressing is improvised cloth with modest bleed control and real pain relief. The sterilized bandage adds a 45-second antiseptic window. Analgesic gauze kills limb pain hard and pushes a systemic opiate dose in with it, which matters on an already medicated body. The plastic dressing is an occlusive seal with near-total bleed control. Alginate is the best wrap available: full skin restore, all but stops the bleed, and a 60-second disinfect window.

The two herbal dressings are early-game and stay early-game. The herbal poultice halves bleeding. The bittermoss wash barely wraps at all, but carries a 90-second disinfect window, which is the early answer to an infection.

Dressings are durable rather than consumed. Each carries a condition pool, and a full wrap costs 56 points on a large region, 40 on a medium one, and 28 on a small one. A partial wrap costs proportionally less, with a floor of one point. When the pool runs out the dressing is gone.

An antiseptic dressing used on an infected region with no open wound performs a wash instead: the disinfect window alone, with no minigame and no gauze left behind, at a flat cost of 4 condition. That exists because an infection outlives the wound that started it, and refusing to treat one on closed skin used to strand people.

A completed wrap stays visible on the body for 2 to 10 minutes depending on how complete it was.

In game, this reads

An early antiseptic made from cold-grown moss.

Wrap a wound, or wash an infected limb directly - no open

wound needed. Its skin and bleed control are weak, and its

disinfect is far shorter than real antiseptic.

tooltip.doomedmatu.bittermoss_wash

This is the one dressing tooltip that tells the player the wash path exists. The others carry disinfect windows and route the same way, and say nothing about it.

Analgesic gauze writes its 28 points straight into the systemic opiate level, so a wrap counts toward tolerance and stacks on top of anything already injected. Drugs and Pharmacology

The bittermoss wash starts as worldgen: bittermoss scatters in cold biomes, harvests double with the foraging knife, and has to be ground to pulp before it is a dressing at all. Items, World and Trade

Dressings - exact values
QuantityValue as shippedDefined in
Wrap that fully staunches0.9~/body/TreatmentService.java (applyBandage)
Bandageskin +30, bleed x0.10, 64 condition~/registry/DoomedItems.java:104
Adhesive bandageskin +3, bleed x0.90, pain -5, 24 condition~/registry/DoomedItems.java:108
Ripped dressingskin +8, bleed x0.78, pain -40, 32 condition~/registry/DoomedItems.java:112
Sterilized bandageskin +30, bleed x0.44, pain -60, 45 s disinfect, 48 condition~/registry/DoomedItems.java:116
Analgesic gauzeskin +20, bleed x0.375, pain -300, +28 opiate, 48 condition~/registry/DoomedItems.java:120
Plastic dressingskin +60, bleed x0.10, pain -100, 56 condition~/registry/DoomedItems.java:124
Alginateskin +100, bleed x0.09, pain -80, 60 s disinfect, 56 condition~/registry/DoomedItems.java:128
Herbal poulticeskin +18, bleed x0.50, pain -20, 20 s disinfect, 20 condition~/registry/DoomedItems.java:249
Bittermoss washskin +5, bleed x0.85, 90 s disinfect, 20 condition~/registry/DoomedItems.java:253
Condition cost of a full wrap56 large / 40 medium / 28 small~/body/TreatmentMath.java:17
Condition cost of a wash4~/body/TreatmentService.java:99

The strap

A tourniquet goes on a non-vital arm or leg segment and stops all blood loss from that segment and everything below it, instantly. The wound's stored bleed is unchanged. Only its contribution to blood loss is masked, and the mask walks the whole chain downward from the anchor.

Applying one spends a single point of the strap's eight and consumes the strap itself, which now lives only as the stored condition on the limb. Removing it hands the strap back at that condition. A strap that reached zero returns nothing.

The strap then starts a clock, and the clock is the whole mechanic. The anchor segment's pain ramps at 2 per second up to a cap of 40. At 540 seconds, nine minutes, every cut-off segment starts losing muscle at 2 per second. A starved segment that drops below 5 muscle has its infection floored at 10 and turns septic.

At 840 seconds, fourteen minutes, the limb is simply gone. It comes off through the necrotic loss path, so the stump is dry - tissue that died on the body does not gush like a saw cut. That leaves five full minutes after necrosis visibly begins in which taking the strap off still saves the limb, on top of the nine before it starts. You have to ignore it to lose it.

A tourniquet on a limb that is later blown off falls away with it.

In game, this reads

Clamp a limb to stop all bleeding below it.

tooltip.doomedmatu.tourniquet

Accurate, and it is the whole of what the game tells you. The nine-minute muscle death, the sepsis floor and the loss of the limb at fourteen minutes appear nowhere in the item text.

Concealed

An overtight splint is a tourniquet, and nothing warns you

The splinting minigame's tension stage has a target band between 0.55 and 0.78. Past 0.88 you have bound the limb hard enough to shut off its circulation, and the server sets the same tourniquet flag a real strap sets. The brace inherits the entire ischaemia clock: pain ramping to 40, muscle death across the whole cut-off chain at nine minutes, and limb loss at fourteen. It stores zero strap condition, so removing it returns nothing.

Splints

A fractured segment produces no useful force worth the name until it heals, and it caps that segment's usable muscle at 50. On a hand-chain segment, an unsplinted fracture multiplies that link's function by 0.38, and splinting it raises that to 0.58. A dislocated or unstable joint in the region multiplies by a further 0.42, and pain scales the whole thing by 1 minus pain over 145, floored at 0.3.

Splinting is a two-stage minigame with two opposed failure modes. Stage one is traction: the distal fragment is hauled back into line, and the score is how collinear it is at the moment of commitment. Your own pain tremble is directly in the way, so setting a bone while you are wrecked genuinely sets it worse. Stage two is tension: the strap tightens toward a target band between 0.55 and 0.78 on the gauge.

Alignment scales the brace's durability between 35 percent and 100 percent, and scales how much seating it hurts. A slack brace keeps 30 percent of that durability and will not hold.

A splint sheds 0.02 durability per tick, so a perfectly aligned brace lasts about four and a quarter minutes. A splinted fracture mends in 75 seconds of pace time. An unsplinted one still knits on its own, over about 30 minutes. Progress made under a brace survives the brace wearing out.

The bone welding tool is the brutal shortcut. It mends a fracture instantly at the cost of 30 pain, 25 skin, 26 muscle and a fresh 5 units of bleed, and it has four uses.

In game, this reads

Stabilises a fractured limb so it can heal.

tooltip.doomedmatu.splint

Seven words that describe the good outcome. The tension stage is what decides whether the brace holds, and past 0.88 the same screen binds the limb hard enough that the server flags it as a tourniquet.

Splints - exact values
QuantityValue as shippedDefined in
Hand function multiplier, unsplinted fracturex0.38~/body/HandFunctionService.java:177
Hand function multiplier, splinted fracturex0.58~/body/HandFunctionService.java:177
Splint tension target band0.55 to 0.78~/client/screen/SplintScreen.java:53
Tension above which the brace strangles0.88~/client/screen/SplintScreen.java:55
Splint durability by alignment35% to 100% of 100~/body/TreatmentService.java:52
Durability kept by a slack brace30% of that~/body/TreatmentService.java:54
Splint wear0.02/tick (about 4.2 min from full)~/body/LimbHandler.java:44
Splinted fracture mend time1500 ticks (75 s)~/body/LimbHandler.java:46
Unsplinted fracture mend time36000 ticks (about 30 min)~/body/LimbHandler.java:49
Splint seating pain25 x (1 + 1.2 x misalignment)~/body/TreatmentService.java:46
Bone welding tool cost+30 pain, -25 skin, -26 muscle, +5 bleed~/body/TreatmentService.java (applyLimbMed BONE_WELD)

Foreign bodies

Anything embedded in a region blocks all natural healing there and suspends clotting, so the wound weeps until it comes out.

Shrapnel is the simpler case. Fragments come out bare-handed or with tweezers, and the panel refuses either while that region's pain is at 60 or above - numb it first. A clean pull costs nothing. A slip tears the wound for 5 skin, 12 pain and a unit of bleed, and on the head it takes a little brain with it four times out of five.

A whole arrow is different. It is barbed, and it has a depth: how far through that region's meat it sits, rolled on the hit. About a quarter of hits sit barely in, a third are buried halfway, a quarter are buried deep, and the rest go through-and-through with the head out the far side. The extraction screen draws the region as a cross-section to its real thickness, so a forearm is a thin slab and the torso is a deep one.

Removal is entirely manual. You wiggle an end off, or push the shaft through, or pull it back, and each has its own price. Snapping the shaft flush is the cheap, safe move, and it leaves the barbed head in you as a fragment to dig out later. Drawing the shaft out after a snap, or a shallow straight pull, removes it for a moderate cost. Hauling the whole barbed arrow back out rakes the channel on the way, and the deeper it sat the worse the rake. Botching a pull-back means the barbs catch, the arrow stays, and it lodges deeper.

A vital core region - chest, gut, neck, head - has no safe route out at all. Driving the head out through what is behind it is near-fatal, and the shattered head stays lodged anyway. Even a clean pull from a core region drags a shaft through organs and adds internal bleeding. Snap the shaft flush and live with the head.

While an arrow stays in, using the pierced anatomy jostles the tract. Mining, swinging and hard landings each roll for a jolt of pain at most once every four seconds, and much more rarely reopen some bleeding.

In game, this reads

Hold and click an embedded limb to extract foreign material.

Disinfect first: filth can seed infection during extraction.

tooltip.doomedmatu.tweezers

Written for shrapnel. A lodged arrow opens its own cross-section screen instead, and the pain gate at 60 that refuses the click either way is stated nowhere.

The panel will not offer a fragment pull while that region's pain is 60 or above, so an analgesic or an ice pack is a prerequisite for the extraction rather than a comfort alongside it. Pain, Consciousness and Death

Foreign bodies - exact values
QuantityValue as shippedDefined in
Pain gate on shrapnel removal60~/client/screen/StatusPanelScreen.java:100
Shrapnel slip cost-5 skin, +12 pain, +1 bleed~/body/TreatmentService.java:86
Arrow: snap the shaft+15 pain, +4 bleed, -3 skin, head stays as a fragment~/body/TreatmentService.java:613
Arrow: draw the shaft out (limb)+22 pain, +14 bleed, -5 skin~/body/TreatmentService.java:616
Arrow: barbs catch (fails, stays)+42 pain, +36 bleed, -12 skin, depth +0.15~/body/TreatmentService.java:619
Arrow: whole barbed pull-back (limb)+32 pain, +26 bleed, -9 skin, scaled 0.25x to 1.35x by depth~/body/TreatmentService.java:629
Arrow: forcing one out of a core region+0.7 L/min internal, +55 pain, +36 bleed~/body/TreatmentService.java:624
Arrow: clean pull from a core region+0.45 L/min internal, +35 pain, +24 bleed~/body/TreatmentService.java:634
Arrow depth roll25% barely in, 33% halfway, 26% deep, 16% through~/body/CombatRouter.java:740
Aggravation cooldown while an arrow stays in80 ticks pain, 400 ticks bleed roll~/body/ForeignBodyAggravationHandler.java:43

Burns

A burn is tracked per region as a percentage, built at 6 points per point of fire damage. It does not bleed. It festers and leaks instead.

Any burn above 40 on a region will infect it, seeded at 8, unless an antiseptic window is already open there. Burns also ache: the resting pain target carries 0.6 pain per point of burn, which means painkillers can actually ease it.

The dangerous part is area. Once total burn across all regions passes 120, plasma starts leaking and blood volume falls. That loss scales with how much of the body is burned, reaching four times the base rate at a total of 400. This is burn shock, and it is what kills people who stand in lava rather than the damage itself. Treat it with blood or saline, not with a bandage.

Burns recover on their own at 0.15 per second, which is slow. Burn gel is the real answer: it takes 60 points off the burn, halves that region's pain, restores 25 skin and lays down a 5-minute antiseptic window so the burn does not fester. Aloe gel is the gentle version - 25 points off, pain to three quarters, 10 skin back - and it is deliberately weaker. It is comfort, not a cure.

A burn treated to zero leaves no scar.

Cauterisation deserves its own note here, because it is a burn you inflict on yourself. A sustained flame pressed to a bleeding wound stops the bleed dead and crudely welds a deep wound closed with no thread needed. It costs 30 burn, 45 pain, and a 40 percent chance the wound festers at an infection of 20. A spark does not count - flint and steel is excluded, while a torch, campfire or lantern is not.

Frostbite only accrues below a core temperature of 31 C. That is genuine deep hypothermia, well past ordinary cold. It thaws above 35.5 C.

Only limbs freeze, and they freeze on a gradient from the warm core outward. Hands and feet accrue at full rate. Forearms and shins accrue at 0.6. Upper arms and thighs at 0.35. The head, neck, eyes, chest and abdomen never frostbite at all. How far below 31 C the core has fallen scales the rate further.

Thawing runs the other way: proximal segments thaw fastest, so the cold recedes outward and the tips are last to come back. A heat pack floods the core with 5 C of warmth and pulls frostbite off every affected limb, most from the proximal ones.

At 85 percent frostbite the tissue starts dying, at 1.2 skin and 0.8 muscle per second. That same threshold blocks all natural healing on the segment, so it cannot regrow what is being destroyed. Below that threshold, a thawed segment regrows normally.

If a segment reaches 99 percent frostbite with both skin and muscle at or under 1, it is lost. It and everything distal to it come off together and splat free, with a dry stump - frozen black tissue does not gush like a saw cut. There is no warning text. The doll, the moodles and the stump are the notification.

Frostbite also makes bone brittle. A frozen segment keeps 55 percent of its tolerance in a fall.

In game, this reads

Cool gel pressed from a cactus.

Drag onto a limb - soothes burns, dulls the ache, restores a little skin.

Comfort, not a cure.

tooltip.doomedmatu.aloe_gel

The item text and the numbers agree here. Aloe is weaker than burn gel on every axis and carries no antiseptic window, so a burn treated with it can still fester above 40.

Burn shock is a blood problem wearing a burn's clothes: it drains volume directly at up to 0.04 litres per second with no bleed unit anywhere in the arithmetic, so it answers to transfusion and saline and ignores every dressing in your pack. Blood and Circulation

Body traits scale the freezing before anything else touches it - WARM_BLOODED multiplies frostbite accrual by 0.6 and POOR_CIRCULATION by 1.6 - so two characters standing in the same storm lose their hands on different clocks. Transformation

FRAGMENT 06-A - THE STRAP, PAGE FOUR

SUMMARY: A field journal page recovered on a body, filed under BODY, titled "The strap". Three earlier pages track the same tourniquet going on, biting, and coming off. The fourth page unlocks only on a specific event, and the reader had reached it.

RESPONSE: The page reads: "The strap came away with it. There was hardly any blood. The place where the limb ended looked dry, dark and old, as if it had been dead much longer than the rest of me knew." The server's own line at that instant is shorter: "The strap was on too long. There was nothing under it left to save."

FINAL NOTE: Page four is gated on the loss actually happening. A player who takes the strap off in time owns pages one through three and will never see the fourth. The dryness in the writing is mechanical - necrotic loss seals the stump as it kills, so nothing gushes.

res/data/doomedmatu/doomed_journal_entries/the_strap.json, page 4; the action-bar line and the page-3 unlock both fire from ~/body/TourniquetHandler.java at 840 seconds.

Infection

A region can only become infected once its skin drops below 80. From then on it rolls to start an infection every 40 seconds, at a chance set by your immunity, the wound's own contamination, and whether anything is still lodged in it. Once the infection flag is set, the percentage climbs on a curve driven by immunity. Clear the percentage to zero and the flag clears with it.

An antiseptic window is the source-control treatment. While one is open the infection regresses instead of progressing, at roughly 8.6 percent per minute at typical immunity. A pour of proper antiseptic opens a 10-minute window and strips 55 contamination and 18 infection off the wound record directly. Iodine gives 8 minutes. Antiseptic mush gives 5, plus 4 minutes on the segment above it, and stings for 10 pain. Bittermoss wash gives 90 seconds, which is the early-game answer and is meant to stay one.

Antibiotics are systemic and slower, stripping about 7 percent per minute off every infected region while a course runs. Repeated courses build resistance, which halves their effect at 40 and decays only while you are off them. Using a topical and a course together is properly strong, because that is the correct medical answer.

Past 75 percent infection the wound rots. It eats muscle at 0.05 per second, and - this is the part that catches people - the region stops healing entirely. Skin does not knit back over a rotting wound. Before that rule existed, a fed player's regeneration outran the rot and infection could never actually damage anything. Above 90 percent it can seed a neighbouring region.

Any invasive procedure done with a filthy body contaminates the wound just manipulated. It starts at dirtiness 35 and rises to an 8 percent infection chance at maximum grime. An existing disinfect window removes 90 percent of that risk.

In game, this reads

Apply to a wounded or infected limb to disinfect it.

Use before invasive care to sharply reduce infection risk.

tooltip.doomedmatu.antiseptic

"Sharply" is 90 percent of the procedure risk, and the window it opens is the longest in the mod at 10 minutes. Neither number is anywhere in game.

Crafted liquids reach the wound record through the same disinfect call the bottled antiseptic uses: a 100 mL pour of alcohol strips 22 contamination and buys 350 seconds of cover, while bleach strips 44, grants no window at all, and charges 20 skin and 15 muscle for the privilege. Reagents and Routes

Concealed

A wound rotting past 75 percent infection stops healing entirely

Skin and muscle regeneration are switched off completely on any region whose infection is above 75. This is not a slowdown. It exists because natural regeneration at default rates is strictly larger than infection's own rot rate, so before this rule a fully infected limb net gained muscle every tick and the whole rotting-wound mechanic was decorative.

Amputation

Only the arm and leg chains can be amputated. Cutting a segment takes it and everything below it, and leaves an open stump on the segment above. Cutting the upper arm takes the forearm and hand with it, and the stump lands on the chest.

The cut needs something that goes through bone. A bone saw anywhere in your pack is the clean cut and the numbers the system was tuned around. An axe works and charges you for it: nearly double the immediate blood loss, nearly double the muscle taken off the stump, a third more pain and trauma, and 55 extra contamination on the stump wound with the surgical disinfect wiped. The saw is worth carrying.

The cut itself is not a checklist item. Each amputation dumps 0.35 litres of blood on the spot with a saw, adrenaline floors at 60, and a motor shock of 30 slams through you, which is above the collapse line. Doing all four in a row means repeated collapses and a stacking blood deficit.

Then the stump. It takes skin to zero, 50 muscle off, pain to 100, and it bleeds at the full rate. An open amputation channel is worth 60 bleed units, which the conversion turns into roughly 0.9 litres per minute. Exactly three things close it: a tourniquet anywhere proximal, dressing or cauterising the open stump wound on the parent segment, or fitting a prosthetic whose socket seals it. Without one of those, an unbandaged amputee exsanguinates.

Sawing your own neck takes the head off. There is no confirmation and no minigame.

A violent death bursts the body apart. Each arm and leg is flung free as a harvestable severed piece, and any fitted prosthetic drops as its own item carrying the wear it had.

In game, this reads

Drag onto an arm or leg to amputate it.

tooltip.doomedmatu.saw

Eight words for the operation that dumps 0.35 litres on the spot, floors adrenaline at 60 and opens a channel bleeding 0.9 litres a minute until one of three specific things closes it. The tooltip also never says an axe will do the same job at a penalty.

The Deep Maw calls the same dismember path a saw does, so a limb it tears off opens the identical 60-unit stump channel and shuts through the same three exits. Threats

Amputation - exact values
QuantityValue as shippedDefined in
Axe penalty vs saw1.9x blood, 1.85x stump muscle, 1.35x pain and trauma, +55 contamination~/body/DismemberService.java:139
Blood lost on the spot per cut (saw)0.35 L~/body/DismemberService.java:44
Motor shock per cut30~/body/DismemberService.java:47
Adrenaline floored at60~/body/DismemberService.java:41
Stump muscle loss50~/body/DismemberService.java:38
Stump disinfect window300 s~/body/DismemberService.java:40
Open amputation channel60 bleed units (about 0.9 L/min)~/capability/DoomedData.java:1032
Bleed at which a stump counts as closed0.5 units~/capability/DoomedData.java:1030
Trauma, self-amputation+30 then -20 for completing it yourself~/body/DismemberService.java:42
Concealed

The stump keeps bleeding at 0.9 litres a minute until you do one of three specific things

An open amputation boundary contributes 60 bleed units, roughly 0.9 litres per minute, and that channel keys off the permanent missing-limb state rather than any wound you can see. It closes only if there is a tourniquet anywhere proximal, or the open stump wound on the parent segment is dressed or cauterised below 0.5 bleed, or a prosthetic is fitted and seals the socket. A shoulder or hip disarticulation cannot be tourniqueted at all, since there is nothing above it to tie.

Concealed

An axe amputation hands you an infection to treat afterwards

Cutting with an axe adds 55 contamination to the stump wound and wipes the surgical disinfect window that the saw path leaves behind, on top of 1.9 times the blood loss, 1.85 times the stump muscle loss and 1.35 times the pain and trauma. A saw anywhere in your pack automatically beats an axe in your hand.

Prosthetics

A prosthetic seats on the stump, meaning the highest missing segment of that limb, and fills every missing segment below it. Fitting to a lower portion while the segment above is also gone is impossible; the game walks the fit up to the real stump.

A stump has to be ready. It must be healed to at least 65 percent, bleeding at 8 or less, infected at 5 or less, with systemic sepsis under 8. Stump healing runs at 0.13 per second, gated by nutrition and immunity, and only while the stump is stable.

Three tiers. Improvised restores 45 percent of limb function, mechanical 88 percent, titanium 98 percent. None of them beat healthy tissue at everything. Fitting is a real operation: improvised is two stages, mechanical adds a bolt ring that must be brought up in a star pattern, and titanium adds a nerve weave held at each junction. The stump bleeds on the server's clock the whole time the screen is open, so a titanium fit genuinely costs blood an improvised one does not.

Effective function is the tier's ceiling scaled by condition rather than the tier alone. At zero condition a fitted limb is dead weight at 10 percent of its tier. Fit quality can only take away from what the item was worth - a perfect operation cannot make a scavenged limb better than it is - and it floors at 45 percent of the item's condition.

Prosthetics wear instead of healing. Idle wear is 0.012 per second always. A prosthetic leg loses 0.060 per second while you move; a prosthetic arm loses 0.050 per second while swinging. Tier changes the appetite: mechanical is the reliable workhorse at 1.0, improvised is crude at 1.4, and titanium's neuromechanics are the thirstiest at 1.6. Combat impacts batter one fitted segment at a time, and there the expensive tiers resist better.

Upkeep is two-tier. Prosthetic lubricant is a right-click that puts 40 condition back into every running prosthetic at once, and refuses a seized one. A seized limb needs a wrench plus tier-appropriate material - leather, an iron ingot, or netherite scrap - which restores it to 100.

Missing tissue itself feels nothing, but the flesh the hardware is seated in does. A poor fit adds up to 24 socket irritation immediately, and movement grinds more in depending on fit quality, how immature the stump is and how worn the limb has become. Resting eases it. Phantom pain runs on its own clock with episodes of 12 to 40 seconds, and adaptation and mirror therapy lower the frequency without ever curing it.

In game, this reads

Right-click to grease your fitted prosthetics, restoring their condition.

Routine upkeep - prosthetics wear down as you use them.

A fully seized prosthetic needs a wrench + parts instead.

tooltip.doomedmatu.prosthetic_lubricant

This is the one tooltip in the domain that matches its code exactly, including the two-tier split and the refusal on a seized limb.

The fitting gate reads whole-body sepsis rather than the stump alone and refuses above 8, so an infection anywhere else in you blocks the operation. Disease and Infection

Prosthetics - exact values
QuantityValue as shippedDefined in
Tier functionimprovised 45%, mechanical 88%, titanium 98%~/body/ProstheticTier.java:5
Effective functiontier x (0.10 + 0.90 x condition/100)~/body/LimbData.java (prostheticFunction)
Stump healing needed to fit65%~/body/AmputationHandler.java:13
Stump bleed and infection limits for fittingbleed 8 or less, infection 5 or less, sepsis under 8~/body/AmputationHandler.java:14
Stump healing rate0.13/s, scaled by nutrition and immunity~/body/AmputationHandler.java:95
Fit quality floor on condition45% of the item's condition~/body/TreatmentService.java:50
Idle wear0.012/s~/body/WearableEffects.java:167
Leg wear while moving0.060/s~/body/WearableEffects.java:168
Arm wear while swinging0.050/s~/body/WearableEffects.java:169
Wear multiplier by tierimprovised 1.4, mechanical 1.0, titanium 1.6~/body/WearableEffects.java:205
Impact resistance by tierimprovised 0.75, mechanical 0.45, titanium 0.25~/body/WearableEffects.java:148
Lubricant restore+40 condition to every running prosthetic~/item/ProstheticLubricantItem.java:25
Wrench repair materialsleather / iron ingot / netherite scrap, restores 100~/body/TreatmentService.java:574
Socket irritation from a bad fitup to +24~/body/AmputationHandler.java (noteFit)
Phantom pain episode length12 to 40 s~/body/AmputationHandler.java:117
Open-stump bleed during a fitting operation0.055/s x 0.55~/body/SurgeryManager.java:37
Concealed

Fit quality is permanent and can only subtract

A prosthetic is seated at the item's own condition multiplied by (0.45 + 0.55 x fit quality). A clean operation seats it at whatever the item was worth; a rushed one leaves it sitting at as little as 45 percent of that, and the socket ache charges you for it every second you wear it. A perfect fit cannot make a scavenged limb better than it is. The fit quality is also stored and drives ongoing socket irritation and adaptation gain.

Treating others

Right-click a Doomed player while holding the right item and a treatment starts on them. The item comes from your inventory and the feedback comes to you; their body is what gets treated and re-synced. You have to be within 6 blocks with line of sight, and awake enough to work.

The division is strict and it is the point. Your own hand does the minigame, with your own pain tremble and your own cursor lag. Their body takes the result. A steady medic gets a clean stitch on a wrecked patient.

Self-treatment stays open for 9 seconds after you pass out. That grace exists so fumbling the AED onto your own chest as you black out still lands. Treating yourself deep into an arrest you have been in for the better part of a minute does not. Another player treating you is untouched by that limit, which is exactly why the window can afford to be short.

Some cross-player treatments ask first, because they can hurt: applying or removing a tourniquet, disinfecting, chest drains, limb meds and amputation. The ask lasts 4 seconds. Crouching after the ask refuses it instantly and locks that healer out for 30 seconds. Silence is only consent if the patient actually holds still for most of the window - fleeing or fighting is not a yes. A patient who cannot answer gets implied consent, because an unconscious femoral bleed is the reason the cross-player tourniquet exists.

Implied consent has teeth. Nobody pulls someone else's strap while what it is holding back would gush; the check measures the whole masked chain including the amputation channel, and refuses above 5 bleed units. A patient who genuinely wants a gushing strap off can do it themselves - their own click has no gate. An ice pack is refused on an unconscious patient, because stacked cold on a body that cannot say enough walks core temperature into arrest. Iodine and antiseptic mush are refused on an unconscious patient whose region pain is already 55 or above.

Amputating another player needs the limb selected on a WITNESS scan first, so nobody amputates by walking into a friend with an axe. A limb that is already lost - deep frostbite at 80, infection at 75, or skin and muscle both at 4 or under - can be taken from a patient who cannot answer, because that is the case the feature exists for. A limb that could still be saved needs them awake and consenting.

In game, this reads

Select a region for the next applicable treatment on this patient. Live anatomy is rechecked by the server.

screen.doomedmatu.witness_scan.target_help

The scan target is a soft convenience for most treatments and a hard requirement for amputating another player, and the text draws no line between the two.

Organ installation rides this same router on the same quality channel, so anhedonia degrades a graft you perform on yourself exactly as it degrades a wrap - but INSTALL_ORGAN sits outside the consent group, so putting an organ into another player asks them nothing first. Organs

Past anhedonia 80 nobody sitting with you can land any of it, and the clinical record keeps a line for that alone: "Nothing got through." Psychology

Concealed

Deep anhedonia degrades your self-treatment, but not a friend's

Past anhedonia 55, every treatment you perform on yourself is multiplied by a reluctance factor scaling down to 0.55 at anhedonia 100. Your wrap is worse, your stitch is worse, your fit is worse. It applies only to self-treatment. Someone else's hands are not numb, so a friend can still fix what you cannot make yourself care enough to fix properly. Past anhedonia 80 nobody sitting with you can land any of it.

Concealed

Hand function silently gates every treatment at 0.12

A hand's function is the weakest link in its chain: muscle over 100, times 0.38 for an unsplinted fracture or 0.58 for a splinted one, times 0.42 for an impaired joint, times max(0.3, 1 - pain/145). Below 0.12 the hand is unusable and the server refuses treatments outright. One badly hurt arm at high pain lands around 0.118 - under the line - which is exactly the state where you are hammering the panel hardest. Prosthetic servicing and tourniquet removal are deliberately exempt so a body cannot lock its own toolbox inside itself.

FRAGMENT 12-C - THE ENTRY FOR A LIMB

SUMMARY: What the death certificate writes when a limb comes off. One entry per kind of event rather than per occurrence, so four amputations produce one line and the number four.

RESPONSE: The template is "%s gone." Formatted, that is the whole entry: "Left Foot gone." Chat gets more words than the record does, because any dismemberment grants the advancement "'Tis But a Scratch - Lose a limb and keep walking", and that one announces.

FINAL NOTE: The saw, the axe, an explosion, the Deep Maw's teeth, the strap left on too long and deep cold all write the same two words. The certificate cannot distinguish a limb you cut off from one that died on you. The advancement is withheld if death is already pending, on the grounds that dying with it does not count.

~/body/ClinicalKind.java:30 for the template; the four write sites are in DismemberService.java (amputate, dismember, necroticLoss, the co-op path); res/data/doomedmatu/advancements/limb_lost.json for the chat line.

Notes

  • The open amputation channel is 60 bleed units, and the constant's own comment in DoomedData.java calls that "1.5 L/min of arterial loss". The conversion sitting eleven lines above it is 0.015 L/min per unit, which makes 60 units 0.9. Whether 60 was chosen against an older conversion, or the comment simply went stale, is recorded nowhere.
  • A suture closes for good at quality 0.55 and picks up its infection-and-extra-pain penalty below 0.50. Both are bare literals typed inline, neither has a named constant, and nothing explains the gap between them. A stitch landing at 0.52 fails to close the wound and escapes the mangling charge entirely.
  • Deep anhedonia multiplies the normalised quality channel, so it reaches the bandage, the suture, the prosthetic fit and the shrapnel pull. Splinting, dislocation reduction and arrow extraction consume the raw encoded amount instead and never see the multiplier. Nothing in the code says whether that exemption was chosen or inherited from those three kinds using a different channel.
  • The shrapnel branch reads wrap >= 1f, and the client sends exactly 1.0 for a clean pull. Past anhedonia 55 the multiplier makes that comparison impossible to satisfy, so every fragment you dig out of yourself is forced onto the slip path, and on the head that carries an 80 percent chance of losing brain each attempt. The reluctance is documented as changing how well a thing lands rather than whether it happens, and here it flips a boolean.
  • Driving an arrow out through a core region prints "straight through what's behind it" and adds internal bleed, pain, external bleed, and brain loss on the head. The organ substrate is untouched by that path. Whether the organs were meant to be in it is not written down anywhere.
  • The tourniquet's 540-second safe window carries a "// src:" tag and came from the source game. The 840-second limb-loss endpoint carries a player's remark about keeping track of the time and no derivation at all. Why fourteen minutes rather than twelve or twenty was never recorded, and the endpoint has no gametest.
SUBJ-05

Disease and Infection

Doomed splits "getting sick" into two separate machines. One is wound infection: a real, per-limb number that climbs on open skin, eats muscle, spreads to neighbouring parts, and ends in sepsis. The other is contagion: four named pathogens with silent incubation periods, person-to-person spread, and specific medicines that only work on the right agent. Both read the same whole-body immunity score, which is built out of food, water, warmth, blood volume and how filthy you are. Radiation sits alongside them as a third clock that only ever counts down, but poisons everything else while it runs.

The switches

Two server config options sit under everything in this document. enableInfection owns wound infection, sepsis, immunity and the antibiotic window. enableContagion owns the four named diseases and kuru. Contagion rides on the infection substrate, so switching infection off takes the disease layer with it.

The values are not frozen when a switch goes off. A frozen sepsis score would be unkillable, and a frozen infected limb would read INFECTED forever with nothing able to heal it. So the disabling code scrubs state actively, every tick. Infection off zeroes sepsis, the rigor, every limb's infection and disinfect window, the antibiotic course and the resistance it taught, and pins immunity to its default. Contagion off clears every pathogen load, timer and peak, clears carriage, wipes the Rot Lung consolidation record, and cures kuru outright rather than pausing it.

One thing survives both switches. Acquired immunity to a pathogen already beaten counts as player progress rather than residue, so it sits inert while the layer is off and is still there when it comes back on.

Radiation has its own switch, enableRadiation. Turning it off clears the dose.

Concealed

Kuru is not cleared by death

When you die, the reset wipes pathogen loads, timers, peaks, carriage and the cyst spore burden. It deliberately does not touch prion load, the prion onset time, the kuru stage or the stage clock. A character who died in the terminal stage of kuru comes back with terminal kuru still running, still eating brain at 0.15 per second. The only things that clear it are turning the contagion config off, which cures it outright, or a console command.

Immunity

Immunity is recomputed from scratch every tick on a 0 to 200 scale. It is a live readout of how well the body is being kept.

The build starts at 100. Hunger above 70 adds up to 10 more, and hunger below that subtracts at 0.75 per point down to a floor of -75. Thirst contributes 0.3 per point above 60, so a fully hydrated character is worth +12. Body temperature is worth 8 points per degree away from 37 C in either direction. Blood volume is worth 4 points per litre away from a full 5 L, so bleeding out costs 20. Filth past 50 subtracts one for one. Nausea subtracts at 0.8 per point and radiation at 0.5 per point. Low energy costs 0.45 per point below 60, and sustained wasting costs 0.40 per point of weight offset past -10.

Do the arithmetic on a perfectly maintained body with no traits and no drugs and it lands around 122. 120 is the break-even at which a body starts beating a named disease on its own. Two points of headroom. The Strong Gut trait adds 18 and Sickly subtracts 20, so trait choice is the difference between comfortably clearing diseases and never clearing one.

An antibiotic course adds a flat 70. An immunosuppressant, the only thing holding a transplanted organ back from rejection, subtracts 85.

In game, this reads

Stops your body destroying a transplanted organ.

While it is in you, rejection is held back - and your

immune system is switched off with it. Infection,

sepsis and plague become far more dangerous.

tooltip.doomedmatu.immunosuppressant

The tooltip says switched off. The code subtracts 85 from a score whose break-even is 120, on a body that tops out around 122 maintained.

Every term in that build except the drugs is read straight out of the survival loop: hunger, thirst, core temperature, blood volume and accumulated filth are the same fields the needs system writes each tick, so letting any one of them slip is a disease decision as much as a survival one. Needs and Survival

Immunity - exact values
QuantityValue as shippedDefined in
Immunity scale0 to 200, clamped~/body/InfectionHandler.java:124
Base immunity100~/body/InfectionHandler.java:99
Hunger contribution(hunger - 70) x 0.75, clamped -75 to +10~/body/InfectionHandler.java:102
Thirst contribution(thirst - 60) x 0.3~/body/InfectionHandler.java:103
Temperature contribution(bodyTemp - 37) x 8~/body/InfectionHandler.java:104
Blood contribution(bloodVolume - 5) x 4 per litre~/body/InfectionHandler.java:107
Antibiotic bonus+70 while a course runs~/body/InfectionHandler.java:29
Immunosuppressant penalty-85 while a course runs~/body/InfectionHandler.java:31
Nausea dragsicknessAmount x 0.8~/body/InfectionHandler.java:55
Radiation dragradiationSickness x 0.5~/body/InfectionHandler.java:56
Filth dragmax(0, dirtiness - 50), one for one~/body/InfectionHandler.java:57
Energy penaltymax(0, 60 - energy) x 0.45~/body/PhysiologyFactors.java:45
Wasting penaltymax(0, -weightOffset - 10) x 0.40~/body/PhysiologyFactors.java:50
Trait offsetsStrong Gut +18, Sickly -20~/body/Trait.java:329-339

Wound infection

Any undismembered limb whose skin health is under 80 runs a hidden infection roll once every 40 seconds. Prosthetic and missing segments are skipped, having no flesh to fester.

The base odds come from how open the wound is, and active bleeding pushes them up. At skin 79 the raw chance is under half a percent per roll. At skin 0 it is 23 percent. That figure is then multiplied by the wound's own contamination risk, which is where the variance lives. A wound starts at 0.65 and gains contamination over 55. A bite adds 0.9, a puncture or crush 0.45, an avulsion or stump 0.7, and retained fragments 0.18 each up to 0.8. A definitively closed wound multiplies the whole thing by 0.35 and a dressed one by 0.48. Grime transfers into the record on every roll, scaled by dirtiness past 25, and an active antiseptic cuts that transfer to a tenth.

Once a limb is infected the percentage moves at a rate read off an immunity curve. The normal column runs from 18 percent per minute at zero immunity down to 1.08 at 195, turning negative only past 195. Read that plainly: untreated, an established infection essentially never heals. Even a perfectly maintained body at immunity 122 is still gaining about 6.4 percent a minute.

A topical antiseptic flips the limb onto the disinfected column, which is negative from immunity 40 upward. That is source control and it is the reliable answer. Antibiotics work differently, stripping a flat 7 percent per minute off every infected limb at once, divided by a resistance term, on top of the curve. Net that is about -4 per minute, so a ten minute course removes roughly 40 percent and a bad infection needs two.

Above 75 percent the infection eats muscle at 0.05 per second. Above 90 it rolls 2 percent per second to seed a random anatomical neighbour at 5 percent. An infected limb also raises the temperature the body regulates toward. That is where fever comes from.

In game, this reads

Apply to a wounded or infected limb to disinfect it.

Use before invasive care to sharply reduce infection risk.

tooltip.doomedmatu.antiseptic

The string sells antiseptic as preparation before invasive care. In the rate curve it is also the only reliable way to make an established infection fall.

The contamination number the onset roll multiplies by belongs to the wound ledger rather than to this system, along with the closed and dressed multipliers, so how a wound was handled in the minute it was opened is what decides whether it turns hours later. Injury and Treatment

Wound infection - exact values
QuantityValue as shippedDefined in
Skin health below which a limb can infect80~/body/InfectionHandler.java:58
Onset roll intervalevery 40 seconds~/body/InfectionHandler.java:65
Onset formulanum2 = skin x 0.0125 + (1 - skin x 0.0125) x 0.77 - bleed x 0.007; chance = 1 - num2~/body/InfectionHandler.java:153-154
Wound risk multiplier base0.65 + contamination / 55, clamped 0.15 to 4~/body/WoundLedgerService.java:301,308
Bite / puncture / avulsion modifiers+0.9 / +0.45 / +0.7~/body/WoundLedgerService.java:302-304
Closed and dressed multipliersx0.35 closed, x0.48 dressed~/body/WoundLedgerService.java:306-307
Grime transfer threshold and antiseptic effectdirtiness above 25; x0.10 while disinfected~/body/InfectionHandler.java:69-70
Normal rate at immunity 0 / 100 / 195+18 / +7.2 / +1.08 percent per minute~/body/InfectionHandler.java:81-82
Disinfected rate at immunity 40 / 100 / 1600 / -5.04 / -8.64 percent per minute~/body/InfectionHandler.java:81,83
Antibiotic strip rate-7 percent per minute per infected limb~/body/InfectionHandler.java:47
Resistance termdivided by (1 + resistance / 40); +22 per oral course; decays 0.04 per second while off~/body/InfectionHandler.java:49,51,201; ~/item/AntibioticItem.java:25
Muscle rot threshold and rateabove 75 percent, -0.05 muscle per second~/body/InfectionHandler.java:60-61
Spread threshold, chance and seedabove 90 percent, 2 percent per second, seeds at 5 percent~/body/InfectionHandler.java:62-64
Uninfected decay-0.5 percent per second~/body/InfectionHandler.java:66
Disinfect window10 minutes per application~/body/TreatmentService.java:93

Sepsis

Sepsis is driven by the TOTAL infection summed across every limb, not by the worst one. At or above a total of 100 it climbs at total x 0.00028 per second. Below that it falls at 0.07 per second. One limb at a full 100 is enough to start it. A single neglected wound goes systemic on its own.

Above sepsis 20 the body begins to fit. A rigor is a violent whole-body convulsion in three parts: a three second prodrome that is the warning, a five second peak you cannot act through, and a four second climb-down. The prodrome is identical every time, so it becomes something to react to.

The gap between fits is the instrument. It tightens from four minutes at onset down to twenty-five seconds by sepsis 95, with plus or minus 15 percent of jitter over the top, so the countdown can never be timed exactly. During a fit above 0.6 strength sprinting is gone, top speed is cut by up to 45 percent, and pain rises by up to 18. Convulsing also burns energy and dumps heat.

Past sepsis 78 the fever setpoint inverts. The thermostat stops regulating warm and starts regulating cold, down to 3.2 degrees below neutral at sepsis 100. At almost the same point the fits collapse toward a trace shudder. The shaking stopping and the fever breaking both feel like recovery. Neither is.

Sepsis above 60 counts a body as failing rather than merely unconscious, which qualifies it for the agonal brain drain that ends in brain death.

In game, this reads

Cuts sepsis, adds blood, boosts immunity, disinfects limb.

tooltip.doomedmatu.antiserum_syringe

Sepsis is also a circulatory event: CardiovascularHandler drops the pressure target by 0.4 mmHg for every point of it and multiplies cardiac output by one minus sepsis times 0.00525, so a body at sepsis 100 is perfusing at under half output before anything else has gone wrong. Blood and Circulation

Sepsis - exact values
QuantityValue as shippedDefined in
Sepsis rise thresholdtotal infection across all limbs at or above 100~/body/InfectionHandler.java:76
Sepsis rise ratetotal x 0.00028 per second~/body/InfectionHandler.java:77
Sepsis fall rate-0.07 per second below threshold~/body/InfectionHandler.java:78
Rigor onsetsepsis 20~/body/SepsisHandler.java:38
Interval range240 seconds down to 25 seconds, fully tightened at sepsis 95~/body/SepsisHandler.java:40-43
Interval jitterplus or minus 15 percent~/body/SepsisHandler.java:45
Fit shape3 s prodrome, 5 s peak, 4 s decay~/body/SepsisHandler.java:48-50
Full fit violence atsepsis 60~/body/SepsisHandler.java:58
Fits collapse fromsepsis 97 downward over a span of 17, floor 0.12~/body/SepsisHandler.java:53-56
Cold shock threshold and depthsepsis 78, up to -3.2 C setpoint at sepsis 100~/body/TemperatureHandler.java:575-576
Fever setpoint sources+2.2 C at 100 percent limb infection, +1.8 C at sepsis 100, capped +3.5 C~/body/TemperatureHandler.java:113-117
Rigor speed loss and painup to -45 percent speed, up to +18 pain~/body/MovementCapabilityHandler.java:250; ~/body/PainHandler.java:21
Blood pressure target loss-0.4 mmHg per point of sepsis~/body/CardiovascularHandler.java:127
Cardiac output multiplier1 - sepsis x 0.00525 (x0.475 at sepsis 100)~/body/CardiovascularHandler.java:216
Agonal qualifying thresholdsepsis above 60~/body/DeathHandler.java:44

The four agents

Contagion is a fixed set of four agents, each carrying its own incubation, transmission weights, virulence and cure. The set is entirely a cost. Its one reward is surviving Marrow Fever, which grants permanent immunity to Marrow Fever and to that alone.

Marrow Fever is the bacterial baseline. It incubates for two minutes, cures to antibiotics, immunises on recovery, and its symptom is pushing sepsis directly. It is the disease the system is learned on.

Rot Lung is the viral one and the worst. It incubates for three minutes, spreads hardest through the air, and answers only to an antiviral. Antibiotics do nothing at all to it. A third of survivors keep shedding it silently for the rest of their life.

Kuru is a prion. It runs its own clock instead of an incubation entry in the table, and its cure entry is NONE. It enters one way: eating human flesh.

Marrow Worm is a parasite with a five minute incubation. It cures to an antiparasitic. Its damage is indirect. It steals food and weight while the body's defences sag.

Load runs 0 to 100 in all cases. Above 75 the fever costs brain at 0.06 per second regardless of which disease it is, and mood falls the whole time.

In game, this reads

Clears a viral disease such as Rot Lung. Antibiotics do nothing to a virus.

tooltip.doomedmatu.antiviral

The four agents - exact values
QuantityValue as shippedDefined in
Marrow Fever incubation2400 ticks (2 minutes)~/body/PathogenType.java:25
Marrow Fever vectors (air / contact / blood / food / bite)0.30 / 0.35 / 0.20 / 0.15 / 0.10~/body/PathogenType.java:26
Marrow Fever virulence / immunising / carrier chance1.0 / yes / 5 percent~/body/PathogenType.java:27
Rot Lung incubation3600 ticks (3 minutes)~/body/PathogenType.java:35
Rot Lung vectors (air / contact / blood / food / bite)0.45 / 0.20 / 0.25 / 0.05 / 0.05~/body/PathogenType.java:36
Rot Lung virulence / immunising on recovery / vaccine-preventable / carrier chance1.15 / yes / no / 33 percent~/body/PathogenType.java:37
Marrow Worm incubation6000 ticks (5 minutes)~/body/PathogenType.java:54
Marrow Worm vectors (air / contact / blood / food / bite)0 / 0.10 / 0.05 / 0.40 / 0.25~/body/PathogenType.java:55
Marrow Worm virulence / carrier chance0.75 / 10 percent~/body/PathogenType.java:56
Kuru cure and vectorsNONE; blood 0.05 only, no airborne or food route~/body/PathogenType.java:45-47
Marrow Fever symptomsepsis +0.35 per second at full load~/body/ContagionHandler.java:64,282
Rot Lung symptomsthoracic fluid +0.55 per second; blood -0.0035 L per second above load 45~/body/ContagionHandler.java:62,66,290-293
Marrow Worm symptomshunger -0.22 per second, weight -0.02 per second at full load~/body/ContagionHandler.java:65,298-299
Brain drain above load 75-0.06 per second scaled by severity~/body/ContagionHandler.java:61,304-306
Mood drain-0.08 per second scaled by severity~/body/ContagionHandler.java:63,273

Incubation

When a pathogen is seeded, load is set to 1 and a timer starts. Until that timer passes the incubation length, nothing happens at all. No symptom, no moodle, no sound, no chat message. The server withholds the load even from the infected player's own client during incubation, so there is no packet to read and nothing a modified client could surface. That silence is the mechanic.

After incubation, load moves once per second against a judged immunity figure. With a correct medicine in the blood, load falls at 1.6 per second, which clears a full-strength disease in about a minute. At judged immunity 120 or above, load falls at up to 0.30 per second, scaled by how far past 120 it sits. Below 120, load climbs at 0.45 x virulence x how far short it falls.

The practical consequence of that ceiling matters. A maintained body sits around 122, two points past break-even, so natural clearance runs at roughly 0.0075 per second. Beating a full-strength disease that way takes several hours. Medicine is the realistic exit.

There is a subtlety that keeps the whole thing from sealing shut. A running disease pins nausea to a floor of severity x 60, and nausea drags immunity at 0.8 per point. Left uncorrected, a pathogen would suppress the very score deciding whether it clears. So when judging a pathogen the handler adds back exactly the nausea that pathogen is itself causing. Nausea from anything else, such as overeating or filth, still counts against you.

Above load 45 the infected cough audibly every 3.5 seconds and throw sneeze particles. An ill person is legible across a room.

When a load reaches zero the disease resolves, and the payout depends on how bad it actually got. The handler tracks the highest load the pathogen ever reached this life. A peak under 25 pays nothing: no immunity, no carrier roll, nothing. A subclinical brush cured within a second of it incubating does not count as having survived anything.

If the peak did reach 25, and the pathogen immunises, that character is permanently immune to that one agent. The flag survives death. It is the only reward in the disease layer.

Then the carrier roll happens. Marrow Fever carries a 5 percent chance, Marrow Worm 10 percent, and Rot Lung 33 percent. A carrier has no symptoms of any kind, ever. They shed at a steady 0.35 strength forever, which is between a quarter and full strength for a symptomatic person. Their own client is told nothing about it and no screen in the mod displays it.

There is exactly one tell, and it exists only for Rot Lung. A Rot Lung carrier's lungs are scarred so that their condition can never recover above 82, and that ceiling is written as permanent scar rather than as a condition floor, specifically so a night's convalescence cannot heal it away. A medic reading lung condition on the tablet can tell a carrier from a clean survivor.

Carriage has one exit. A correct course of medicine for that pathogen clears the carrier bit even with no active infection to treat. Carriage also ends at death. Acquired immunity does not.

Concealed

Antibiotics cure exactly one of the four diseases, and the game hides that they help nothing else

A running antibiotic course adds a flat +70 to immunity. That would push a maintained player straight past the 120 break-even and quietly cure Rot Lung, Marrow Worm and anything else through the back door. So the handler strips that +70 back off before judging any pathogen an antibiotic cannot actually treat. Marrow Fever is judged with the bonus. Rot Lung, Marrow Worm and kuru are judged without it.

Concealed

Injectable antibiotics do not teach resistance; the pill does

Only the oral antibiotic item adds 22 points of antibiotic resistance per dose, and resistance halves the drug's ability to strip infection off a limb at 40 points. Ceftriaxone injected from a syringe adds up to 15 minutes of antibiotic window per full 100 ml dose with no resistance cost at all, plus a local disinfect and a painful jab. Antiserum likewise adds antibiotic ticks without resistance. The pill also SETS the window to ten minutes rather than extending it, so taking one while a course is already running throws away the remaining time and still charges you the resistance.

Concealed

Carrier status is sent to your client and never shown on any screen

The carrier bitmask is included in the sync packet and the client mirror can answer whether you are a carrier. No HUD element, moodle, status panel or tablet screen ever reads it. A carrier sheds at a constant 0.35 strength forever with no symptoms. The single readable consequence is that a Rot Lung carrier's lungs are permanently capped at 82 condition, written as scar so a night's convalescence cannot heal it away, which a medic can spot on the organ readout. Taking a correct medicine course clears carriage even with no active infection.

Concealed

A brush with a disease that never developed gives you nothing at all

Immunity and the carrier roll both require the pathogen's peak load to have reached 25 this life. A seed cured within a second of incubating, or shaken off naturally by a very healthy body, resolves without granting permanent immunity and without rolling carriage. This also means racing to take the right medicine the instant symptoms appear denies you the immunity that surviving Marrow Fever otherwise grants.

Concealed

Radiation does not decay while you are logged out

The offline catch-up settles bleeding, infection, sepsis, pathogen incubation, kuru progression, wound age and residual limb recovery. It deliberately excludes radiation, on the reasoning that the radiation handler only ever decays the dose and charging for time away would be inventing harm. The practical effect is the opposite of relief: the dose you log out with is exactly the dose you log back in with, however long you were gone, while everything else has moved on.

Concealed

A running disease makes your wound infections worse, and the game corrects for this in only one direction

A pathogen pins nausea to severity times 60, and nausea drags immunity at 0.8 per point. The contagion handler adds that self-inflicted drag back before judging whether the pathogen clears, so a disease cannot suppress the score deciding its own fate. The limb infection system does no such correction. It reads the raw, suppressed immunity. A full-strength disease therefore removes about 48 points of effective immunity from every infected wound on your body at once, which on the infection rate curve is roughly the difference between 6 and 10 percent per minute.

Concealed

The in-game wiki's Marrow Worm treatment advice is not supported by the code

The WITNESS wiki page for Marrow Worm says an improvised charcoal slurry is the field answer when there is no trader within reach. In the shipped code neither the improvised slurry nor pharmaceutical activated charcoal writes an antiparasitic window. They only clear nausea, bind swallowed opioid and open a short gut-absorption window. The only thing that clears Marrow Worm is the antiparasitic course item. Where the two disagree, the code is what ships.

FRAGMENT 08 - CERTIFICATE LINE, AGENT UNNAMED

SUMMARY: The clinical certificate a Doomed body prints on death has one entry for a fatal named disease. Its text is "A named disease." The pathogen is not on the line.

RESPONSE: The enum comment states the reason without apology: the record slot is typed to a body part, and widening it to carry a pathogen name was judged not worth a word. The load at first crossing rides along as the magnitude instead. Sepsis gets its own line, "Sepsis.", and so does the prion, "Kuru.", annotated as the one thing on the list that outlives the body.

FINAL NOTE: A survivor reading a friend's certificate learns that something named killed them, and how bad it had got before it did. Which of the three it was has to come from somewhere else.

~/body/ClinicalKind.java:41-50

FRAGMENT 05 - ADVICE, DELIVERED TO THE WRONG PEOPLE

SUMMARY: The Rot Lung moodle carries the line "A lung virus - antibiotics will do nothing. Get an antiviral, and keep away from other people." Past load 65 it escalates to "You are drowning in your own chest."

RESPONSE: Both strings are gated on the client's reported load being above 0.5. The sync packet reports a flat zero for any pathogen that is not symptomatic, which covers the whole incubation period and covers a carrier permanently. A third of Rot Lung survivors roll carriage.

FINAL NOTE: The warning to keep away from other people goes to the person coughing hard enough that the room already knows. The silent shedder is told nothing, ever, and sheds at a steady 0.35 for the rest of their life.

~/client/hud/DoomedHudOverlay.java:1889-1899; ~/network/DoomedNetwork.java:1114-1119; ~/body/ContagionHandler.java:354-358

Ambient exposure

Three of the four pathogens pass person to person only, so a fresh singleplayer world needs environmental seeding or the whole layer would be dead content. Every environmental route is gated behind a decision the player made and can see, and the odds are deliberately tiny per roll.

All of it is gated on frailty, which is one minus immunity over 120. At immunity 120 or above the entire environmental block returns immediately. A fed, watered, warm, clean, rested body catches nothing from the world at all.

Marrow Fever needs both real filth and a real open wound at the same time: dirtiness above 60 and a limb whose skin is below 75. Either one alone is safe. Together the roll is 0.035 percent per second at zero immunity, which averages out to a bit under an hour of continuous exposure.

Rot Lung needs genuinely contaminated air. The player must be below Y 50, under no sky, and standing in air whose measured respiratory risk is at least 10. Depth and darkness alone do nothing; an ordinary mine or underground base stays safe forever unless something is actually putting matter in the air. Recent geology dust from breaking stone, or authored organic spore sources, are what supply that matter. Enclosure only decides how long it stays suspended. A loaded ventilation unit sets the risk to zero outright.

Marrow Worm needs nausea above 35 and no other disease already running. That second gate exists because a running disease pins your nausea, and without it a bad fever would spontaneously hand you a gut parasite as well.

Only the infectious player's own tick writes to anybody else, so there is exactly one writer per infection event. Shedding runs once a second.

A pathogen with any airborne weight reaches 6 blocks. One with only contact weight reaches 2. The query box is a cube but the distance is clipped back to a real sphere, so the stated radius is honest. Line of sight is required. An airborne strain cannot pass through a wall, which means quarantine works and sealing someone in a room genuinely stops it.

Enclosed air multiplies the airborne term by 1.75. Open sky multiplies it by 0.45. Within 2 blocks the contact weight is added on top of the airborne one. The result falls off linearly across the radius to a floor of 0.15, is scaled by the shedder's strength and by the server rate multiplier, and then multiplied by 0.02 to give a per-second chance.

On the receiving end, immunity resists directly. The odds are multiplied by one minus immunity over 200 times 0.85, so a body at immunity 200 takes about 15 percent of the exposure a body at zero would. An active rebreather cuts an airborne strain to 5 percent of its odds.

A worked case: standing a metre from someone with full-strength Rot Lung, indoors, at immunity 120, gives roughly 0.8 percent per second. That is a couple of minutes of conversation. Outdoors the same exchange is about a quarter as dangerous.

In game, this reads

Keeps the air clean nearby. Enclosed, underground air grimes you up faster;

stay within 8 blocks of one and it won't.

tooltip.doomedmatu.ventilation

The tooltip sells the unit as a grime measure. The same unit forces measured air risk to zero, which is the gate the Rot Lung roll sits behind.

The only hard counter to contaminated air is a built block: a loaded Ventilation unit within 8 blocks forces measured risk to zero and knocks the standing dust and organic loads down to 8 percent, with no power draw, no upkeep and no filter to replace. Machines, Power and Fluids

Ambient exposure - exact values
QuantityValue as shippedDefined in
Frailty formulamax(0, 1 - immunity / 120); returns with no roll at all if zero~/body/ContagionHandler.java:151-154
Marrow Fever gatedirtiness above 60 and worst open wound above 25~/body/ContagionHandler.java:157
Marrow Fever per-second odds0.00035 x frailty x rate multiplier~/body/ContagionHandler.java:158
Rot Lung gateno sky, Y below 50, air risk at or above 10~/body/ContagionHandler.java:165-167
Rot Lung per-second odds0.00055 x airRisk x frailty x rate x breathing factor~/body/ContagionHandler.java:181
Marrow Worm gatenausea above 35 and no other active disease~/body/ContagionHandler.java:189
Marrow Worm per-second odds0.00030 x frailty x rate multiplier~/body/ContagionHandler.java:190
Air risk formulamax(dust x 0.72, organic x 0.92) x (0.48 + stagnation / 100 x 0.52)~/body/AirQualityService.java:144-146
Ventilation effectrisk forced to 0; dust and organic loads x0.08~/body/AirQualityService.java:136-146
Dust cloud strength and life24 + 22 x sqrt(hardness / 8), 90 seconds, 8 block radius, x0.25 in water or rain~/body/AirQualityService.java:42-44,71-73
Organic source weightsspore bloom 34, rooted cadaver 12, spore reeds 4, within 7 blocks and line of sight~/body/AirQualityService.java:46-47,215-218
Respirator filter draw while the Rot Lung roll runs4 units per second; a 36,000 unit particulate cartridge is about 2.5 hours~/body/ContagionHandler.java:72; ~/registry/DoomedItems.java:661-666
Protection factorsrebreather 0.03; gas mask with correct cartridge 0.03 particulate / 0.08 vapour; dust mask 0.15 / 0.72~/body/RespiratoryProtection.java:16-30
Shed intervalevery 20 ticks (1 second)~/body/ContagionHandler.java:85
Airborne radius6.0 blocks~/body/ContagionHandler.java:80
Contact radius2.0 blocks~/body/ContagionHandler.java:81
Enclosed multiplierx1.75~/body/ContagionHandler.java:83
Open sky multiplierx0.45~/body/ContagionHandler.java:84
Line of sight requiredyes; blocked exposure is skipped entirely~/body/ContagionHandler.java:412-414
Distance falloff floor0.15 at maximum range~/body/ContagionHandler.java:421
Per-tick scalarx0.02~/body/ContagionHandler.java:422
Target immunity resistancex(1 - min(1, immunity / 200) x 0.85)~/body/ContagionHandler.java:435
Rebreather against airbornex0.05~/body/ContagionHandler.java:437-439
Concealed

Marrow Worm cannot be caught while another disease is running

The environmental Marrow Worm roll requires nausea above 35 AND no other non-prion pathogen currently active. Any running disease pins nausea to a floor of severity times 60, so without that second gate a bad fever would spontaneously hand you a gut parasite as a side effect of its own symptom. The gate means the parasite is only ever caught while your nausea comes from something else, such as spoiled food or filth.

Concealed

If your immunity is at or above 120, you catch nothing from the environment whatsoever

Every ambient exposure roll is gated behind a frailty term of one minus immunity over 120. When immunity reaches 120 the frailty is zero and the entire environmental exposure block returns before any roll happens. That is a hard cutoff, not a scaling. Direct inoculation from a bite, a meal or a needle still works, because those bypass the barrier, but they scale down to a floor of 0.35 rather than to nothing.

Concealed

Airborne disease respects walls and line of sight

Before any transmission roll, the shedder must have line of sight to the target. A wall, a door or a closed hatch stops airborne spread entirely, at any distance inside the radius. Enclosure still multiplies the airborne term by 1.75 for people who share the room, and open sky cuts it to 0.45. Quarantine therefore genuinely works, and so does simply stepping outdoors to talk.

FRAGMENT 12 - VOCALISATION, THIRD PERSON

SUMMARY: Two subtitle strings exist for kuru and nothing else uses them: "Someone giggles involuntarily" and "Someone laughs involuntarily".

RESPONSE: KuruHandler plays the clip into the world at the sufferer's own block position with no excluded listener, so the afflicted player hears the episode alongside everyone in range. The giggle belongs to the ambulatory stage at 0.82 volume; the laugh belongs to sedentary and terminal and plays at full. Each episode costs stamina and adds pain to the head, and the next one is between three and twelve minutes out depending on stage.

FINAL NOTE: The subtitle says someone. It is describing you, and the game will not say so.

res/assets/doomedmatu/lang/en_us.json:863-864; ~/body/KuruHandler.java:206-232

Inoculation

Three routes exist outside the air, and each rolls only the pathogens that carry a weight on that route. A bite cannot give you Rot Lung and a meal cannot give you an airborne virus.

Direct inoculation skips the frailty gate that ambient exposure sits behind, because it bypasses the barrier the immune system defends. It scales with frailty instead, from 0.35 at full immunity up to 1.0 at zero.

Anything with a mouth that reaches you in melee applies a bite exposure, with the dose scaled by how deep the wound got, from 0.15 for a graze up to 1.0 for a mauling. A zombie's bite is separately worse: on a five second cooldown it has a 50 percent chance to seed a bite wound at 20 percent infection and 70 contamination, and a 12 percent chance on top of that to carry Marrow Fever outright.

Food exposure fires on a datapack tag of raw meat and carrion. Rotten flesh carries the full dose; the raw meats on the list carry 0.35. Cooking is the counterplay and it is one you already know.

Needles are the nastiest route because they persist. Injecting anybody marks the syringe contaminated and writes the exact blood-borne agents from that bloodstream onto the item as a bitmask, including agents carried silently by a carrier. Reusing it inoculates the next person with precisely those agents and nothing else, and also drops a local infection of at least 12 at the injection site with 35 contamination. A reused blood bag follows the same rule. The counterplay costs nothing: right-click a contaminated syringe next to an open flame and it is sterile again.

In game, this reads

The needle glows, then cools. Clean.

message.doomedmatu.syringe_sterilized

The needle route lives in DrugService, not here. Injecting anybody is what stamps the syringe contaminated and writes that bloodstream's agents onto the stack, so every shared dose of painkiller or adrenaline is a transmission event sitting in somebody's inventory. Drugs and Pharmacology

Inoculation - exact values
QuantityValue as shippedDefined in
Direct inoculation frailty term0.35 + 0.65 x max(0, 1 - immunity / 120)~/body/ContagionHandler.java:472
Bite dose scalingwounding / 8, clamped 0.15 to 1.0~/body/CombatRouter.java:420-421
Zombie wound infection chance50 percent, 5 second cooldown~/body/CombatRouter.java:109,122
Zombie Marrow Fever chance12 percent on a successful infect roll~/body/CombatRouter.java:110,974-975
Zombie bite seed20 percent infection, 70 contamination~/body/CombatRouter.java:121,967-968
Food dose1.0 for rotten flesh, 0.35 for other tagged raw meat~/body/VanillaConsumableHandler.java:247-248
Contaminated food tag contentsrotten flesh, spider eye, beef, porkchop, mutton, chicken, rabbit, cod, salmon, tropical fish, pufferfishres/data/doomedmatu/tags/items/contaminated_food.json
Dirty needle site infectionat least 12 percent, contamination 35~/body/DrugService.java:490-497,528
Needle sterilizationright-click with an open flame nearby; clears the flag and the pathogen mask~/item/FluidSyringeItem.java:215-226
Blood bag reusesame provenance mask and same per-agent exposure as a needle~/body/DrugService.java:893-905

Rot Lung

Rot Lung takes the chest in four discrete steps rather than smoothly, at loads 35, 55, 75 and 92, and each one announces itself with a distinct low choking sound that is deliberately different from the ordinary cough.

When a step lands, the section floods with 18 units of infectious thoracic fluid and a sixty second window opens. Get a chest drain into the thorax inside that window and the section comes back out as fluid. Miss it and the fluid organises into scar: both lungs lose 11 condition permanently and gain 11 scar, and organ scar is a hard ceiling that no amount of convalescence recovers within a life. Only a donor lung gets it back.

The next threshold is tracked by a monotonic history cursor rather than by scar count, so draining a section cannot re-arm its threshold and the same step cannot be farmed twice.

Separately from the steps, the disease floods the chest continuously at 0.55 per second at full load. That fluid is read by the respiration model as lost lung volume at half a point of respiration per unit, so the suffocation is real, survivable and drainable.

Then there is the quiet. Once three consolidations have set, the coughing stops. It stops because there is not enough working lung left to cough with. Every signal you have learned to read says you are recovering. It is the same lie sepsis tells when the rigors end, told by a different organ.

In game, this reads

Four sterile insertion assemblies per kit.

Drag onto the thorax to drain a hemothorax.

Disinfect first: filth can seed infection during drainage.

tooltip.doomedmatu.chest_drain

The tooltip names one indication, a hemothorax. The same kit is the entire answer to a Rot Lung consolidation, and the window is sixty seconds wide.

A missed drain window does its lasting damage through the organ system rather than through the disease: the eleven points land as organ scar on both lungs at once, and scar is the organ layer's own hard ceiling on what convalescence can ever give back. Organs

Rot Lung - exact values
QuantityValue as shippedDefined in
Consolidation thresholdsloads 35, 55, 75, 92~/body/ContagionHandler.java:554
Drain window1200 ticks (60 seconds)~/body/ContagionHandler.java:556
Permanent cost per missed step-11 condition and +11 scar on BOTH lungs~/body/ContagionHandler.java:558,623-631
Fluid dumped at consolidation18 units, infectious provenance~/body/ContagionHandler.java:593
Consolidations at which coughing stops3~/body/ContagionHandler.java:560
Continuous flooding rate0.55 units per second at full load~/body/ContagionHandler.java:66,290
Respiration cost of thoracic fluid-0.5 respiration per unit~/body/RespirationHandler.java:94,123
Natural reabsorption2 units per 60 seconds~/body/RespirationHandler.java:93
Chest drain removal35 units per charged drain~/body/TreatmentService.java:87
Lung fibrosis and daily convalescence0.85 fibrosis, 6 condition per earned dawn~/body/Organ.java:24-25
Concealed

Rot Lung goes quiet at three consolidations because there is not enough lung left to cough with

The audible cough that marks a symptomatic disease is suppressed once three of the four lung sections have permanently consolidated. Every other indicator behaves as though you are improving: the coughing ends, and if sepsis is also involved the fits fade and the fever inverts into cold shock at the same time. The disease load has not fallen and the lung damage is permanent.

Kuru

Kuru enters one way. You eat human flesh.

The risk on a portion follows the donor and the tissue, not how many meals have been eaten. Harvested flesh records who it came from and what kind of tissue it is. If that donor carried no prion, the risk is zero whatever the tissue was. If they did, the risk is the tissue's own infectivity: muscle is 1.2 percent, visceral tissue 11, ocular 52, spinal 68, and neural tissue 82. Flesh with no recorded provenance falls back to a configurable 2.5 percent. Cooking preserves the provenance exactly and never reduces the prion risk, though it does cut the ordinary nausea and sepsis a bad portion carries.

If the roll succeeds, an onset time is written two real hours into the future. Deliberately no message, no moodle, no sound. Only one seed can ever be pending; a second contaminated meal changes nothing.

When the clock expires the course begins, strictly ordered and irreversible. Prodrome runs ten minutes of headache, joint pain and weight loss. Ambulatory runs twenty-five minutes and is where movement, hand steadiness and speech start to fail. Sedentary runs fifteen minutes and takes standing and swallowing. Terminal is open-ended and eats brain at 0.15 per second, which from a full brain is about eleven minutes.

Nothing treats it. Antibiotics, antivirals, rest and surgery all do nothing. Supportive care, feeding and airway management are all anyone can offer.

In game, this reads

Harvested from a landed severed limb with a Foraging Knife or Bone Saw.

Very filling, but psychologically devastating and medically unsafe.

Every portion permanently marks the character and increases the next cost.

Cooking reduces sickness and sepsis; spoilage risk is shown above.

tooltip.doomedmatu.raw_human_flesh

The last line is accurate and incomplete. Cooking cuts the nausea and the sepsis, preserves the provenance exactly, and leaves the prion risk where it was.

The prion roll is the smaller half of what a portion costs. CannibalismService charges happiness and trauma on the same swallow, scaled by how many portions the character has eaten before, and that count outlives the body. Psychology

Kuru - exact values
QuantityValue as shippedDefined in
Prion latency2 real hours (144,000 ticks)~/body/CannibalismService.java:16
Tissue infectivitymuscle 0.012, visceral 0.11, ocular 0.52, spinal 0.68, neural 0.82~/body/HumanTissueRisk.java:86-91
Unprovenanced flesh risk0.025 per portion (config default)~/config/DoomedConfig.java:2297
Tissue class by harvested parthead neural, neck spinal, eyes ocular, thorax and abdomen visceral, everything else muscle~/entity/SeveredLimbEntity.java:238-244
Stage durationsprodrome 10 min, ambulatory 25 min, sedentary 15 min, terminal open-ended~/body/KuruHandler.java:30-32
Brain drain by stage0.0095 / 0.012 / 0.022 / 0.15 per second~/body/KuruHandler.java:105,120-122
Movement multiplierambulatory 0.88 to 0.68, sedentary 0.48 to 0.28, terminal 0.12~/body/KuruHandler.java:246-253
Hand steadiness multiplierambulatory 0.9 to 0.66, sedentary 0.55 to 0.30, terminal 0.18~/body/KuruHandler.java:255-262
Terminal consciousness cap62 falling to 12~/body/KuruHandler.java:264-267
Pain contribution by stage14 / 20 / 27 / 34~/body/KuruHandler.java:236-244
Choking chance while eating or drinkingambulatory 0.8 percent, sedentary 7.5 percent, terminal 20 percent, plus (50 - consciousness) / 400~/body/KuruHandler.java:387-393
Choke consequencesrespiration -16, SpO2 -8, nausea +3, sepsis +0.8, both lungs -0.8 condition~/body/KuruHandler.java:395-403
Eating slowdownx1.45 sedentary, x2.2 terminal~/body/KuruHandler.java:374-376
Chat scramble chanceambulatory 28 to 48 percent, sedentary 72 percent, terminal 90 percent~/body/KuruHandler.java:315-321
Cannibalism mood and trauma costhappiness -min(52, 22 + 3n), trauma +min(24, 8 + 1.5n) on the nth portion~/body/CannibalismService.java:27-28
Nausea and sepsis per portionraw and badly spoiled +40 nausea and +16 sepsis; cooked and fresh +1 and +0~/body/CannibalismService.java:34-38
Concealed

The donor prion flag only reads an online player

Harvesting flesh from a severed limb stamps the donor, the tissue class and whether that donor carried a prion. The prion check looks the donor up in the server's player list. If the donor is offline at the moment of harvest, the lookup returns nothing and the flesh is stamped as prion-free regardless of the donor's actual state. That flesh is then permanently recorded as safe, and cooking preserves the record.

Cyst spores

The gut parasite has a second, slower route in, entirely separate from bad meat: airborne spores in the Cyst jungle and the caves under it.

Standing in air near authored spore sources builds a hidden burden from 0 to 100. The scan runs once a second, weights sources by distance, and requires clear line of sight, so a solid wall between a player and a bloom stops the reading. A gas mask or a rebreather cuts the inhaled portion hard. An uncovered open wound gives the spores a smaller second route that no mask can close, and a dressing on that limb closes it.

At burden 35 the nausea starts as a slow trickle. At 100 the burden seeds Marrow Worm outright, unless the parasite is already present or an antiparasitic course is running, and then resets itself to 40 so a treated infection cannot be immediately re-seeded by burden that accumulated during treatment. Out of spore air the burden clears at 0.22 per second, so a saturated burden takes about seven and a half minutes to shed.

Drinking water taken from cyst territory adds 12 burden per sip, which respiratory protection obviously cannot help with. Boiling a full canteen on a heat source clears it. Contamination already in the bottle survives a top-up from clean water, so a tainted canteen cannot be laundered at an ordinary pond.

Severely sustained nausea has its own consequence regardless of source. At 95 or above it seeds an abdominal infection at 5 percent and arms it to fester.

In game, this reads

Kills a parasite such as Marrow Worm, which eats your food before you do.

tooltip.doomedmatu.antiparasitic

The string covers the cure. It says nothing about the second job the course does, which is to block a saturated spore burden from seeding the parasite again mid-treatment.

The Deep Maw feeds this same burden. Its breath calls the identical spore intake path at 0.42 and again at 0.18, both scaled by exposure, so walking away from the encounter can still leave you carrying a parasite that arrives minutes later with nothing to connect it to. Threats

Cyst spores - exact values
QuantityValue as shippedDefined in
Burden scale and gain0 to 100; 0.17 per cloud-second~/body/CystSporeExposureHandler.java:34
Cloud cap3.0~/body/CystSporeExposureHandler.java:33
Recovery outside spore air0.22 per second~/body/CystSporeExposureHandler.java:36
Open wound route weightcloud x 0.20 x uncovered wound fraction~/body/CystSporeExposureHandler.java:37,204
Uncovered wound fraction(worst open wound - 15) / 85, dressed limbs excluded~/body/CystSporeExposureHandler.java:242-252
Nausea onset burden35, then 0.045 x severity per second~/body/CystSporeExposureHandler.java:40,216-219
Seed threshold and post-seed reset100, then reset to 40~/body/CystSporeExposureHandler.java:41,221-231
Contaminated water dose12 burden per sip~/body/CystSporeExposureHandler.java:39
Deep Maw breath dose0.42 and 0.18 scaled by exposure, clamped to 1.5~/entity/DeepMawEntity.java:2596,5532; ~/body/CystSporeExposureHandler.java:172
Abdominal infection from nauseanausea 95 or above seeds 5 percent infection in the abdomen~/body/SicknessHandler.java:183-185,199-205
Nausea clearance0.06 per second~/body/SicknessHandler.java:181
Activated charcoal-60 nausea and a 60 second gut window; it does NOT treat Marrow Worm~/registry/DoomedItems.java:315-324; ~/body/CharcoalHandler.java:23

Radiation

Radiation sickness is a single 0 to 100 dose that only ever decays on its own at 0.033 per second, which is about half an hour from a dose of 60. There is no cure to hunt for. The question is whether you can outlast it.

While it runs it does damage on several channels at once. Nausea trails it up to 40 percent of the dose. The brain cooks at 0.0003 per second per point. Above dose 10 blood is lost at 0.00025 litres per second per point, so a dose of 50 is bleeding you at three quarters of a litre a minute with no wound anywhere. Thirst drains at 0.0002 per point. Every limb takes rising pain up to 30 percent of the dose. Muscle sloughs at 0.2 per second down to a floor of 100 minus half the dose, and above dose 30 skin does the same.

On top of that, above dose 30 the handler rolls once a minute for three separate disasters. A fresh infection on a random limb at dose x 0.25 percent. An internal haemorrhage into the thorax at dose x 0.7 percent. And, rarely, a catastrophic mutation at dose x 0.015 percent, which takes 5 brain, wrecks the chest muscle down to 3.5, pins motor shock at 100, thickens the blood by 30, and makes you vomit.

Sources are barrels and irradiated crystals. Crystals pool: connected crystals flood-fill into one cluster, only the leader emits, and both the strength and the reach scale with cluster size up to a cap of six. Intensity falls off as radAtZero divided by one plus distance squared over four, applied once per second. A large crystal formation at point blank is dosing you at 24 per second and reaches nearly twenty blocks.

Radiation also drags immunity at half a point per point. Radiation and infection compound each other badly.

In game, this reads

A hot radioactive crystal. Irradiates anyone nearby

(~8 blocks). Connected crystals pool into one field -

a lone shard is mild, a big formation is a lethal hot

zone. Doomed take radiation sickness; others, poison.

tooltip.doomedmatu.crystal_irradiated

The tooltip prints one reach, about 8 blocks. That is the lone shard. The pooling it describes in the next sentence scales the reach with the cluster, out to nearly twenty.

Radiation - exact values
QuantityValue as shippedDefined in
Decay0.033 per second~/body/RadiationHandler.java:239
Nausea trailup to 40 percent of the dose, fed at 0.45 per second~/body/RadiationHandler.java:241,275-279
Brain draindose x 0.0003 per second~/body/RadiationHandler.java:243
Blood draindose x 0.00025 L per second, above dose 10~/body/RadiationHandler.java:249-250
Skin slough thresholddose above 30~/body/RadiationHandler.java:247
Tissue slough rate and floor0.2 per second down to 100 - dose x 0.5~/body/RadiationHandler.java:245,287-294
Limb pain ceilingdose x 0.3, ramped at 2 per second~/body/RadiationHandler.java:253,309-317
Minute roll: fresh infectiondose x 0.0025~/body/RadiationHandler.java:329
Minute roll: internal haemorrhagedose x 0.007~/body/RadiationHandler.java:335
Minute roll: catastrophic mutationdose x 0.00015~/body/RadiationHandler.java:342
Mutation effectsbrain -5, thorax muscle set to 3.5, shock 100, viscosity +30, vomit~/body/RadiationHandler.java:345-349
Waste barrel field2.0 at point blank, 8 block range~/block/entity/RadioactiveWasteBarrelBlockEntity.java:39-41
Irradiated crystal field4.0 per crystal, cluster scale capped at 6, range 8 x sqrt(scale)~/block/entity/RadioactiveWasteBarrelBlockEntity.java:43-45,82-84
FalloffradAtZero / (1 + distance^2 / 4), once per second~/block/entity/RadioactiveWasteBarrelBlockEntity.java:114
Antirad-40 dose, +4 nausea~/registry/DoomedItems.java:501-507

Notes

  • PathogenType carries a vaccinePreventable flag, true for Marrow Fever and false for the other three, and nothing in the shipped mod ever calls the getter. The vaccine item the flag was written for is fully specified in reference/GRAND_EXPANSION.md under "Immunity, vaccination, quarantine", down to the mild side-effect fever and the bad batch that seeds a case. It was never built. reference/QOL_ROADMAP_2026_07_BATCH1.md lists the flag as dead substrate and proposes a tablet assay instead, and no entry anywhere records whether the vaccine tier was dropped or only deferred.
  • reference/CONTAGION_AUDIT.md, finding 5, says in as many words not to gate contagion behind infection, on the grounds that doing so would silently switch off a second system. The shipped BodySimulation gates it exactly that way, and carries its own four-line comment justifying the reversal. The audit was never amended, so the design record and the code disagree on this point and a reader who trusts reference/ will get it backwards.
  • Person-to-person spread and the carrier state have never been mechanically exercised. shed() needs a second ServerPlayer, no gametest in the repo touches it, and /doomstat can seed all three transmissible pathogens but has no setter for carriage at all. The 0.35 constant shed rate and the 33 percent Rot Lung carrier roll are therefore code that has only ever run in a live multiplayer session, if it has run at all.
  • The Ventilation unit forces measured air risk to zero and so closes the entire Rot Lung environmental route. It is a passive presence check within 8 blocks with no ticker, no energy draw and no filter to replace, and its own class documentation only ever mentions grime accrual underground. AirQualityService reused that check later as the hard counter to airborne disease. Whether the block was meant to carry the second job is not recorded.
  • A maintained body with no traits and no drugs tops out at immunity 122 against a break-even of 120, which leaves natural clearance running at roughly 0.0075 load per second. The comment on IMMUNITY_BREAKEVEN records the scale and the intent and says nothing about that two-point margin. Whether the ceiling was tuned to sit just above the line, or landed there out of two formulas written months apart, is not written down.
SUBJ-06

Drugs and Pharmacology

Doomed has two separate painkilling channels and they behave nothing alike. The opioid channel runs on a single derived number called reception, which is your active opioid level minus the tolerance your body has built against it, and everything else in the system reads that one value. The non-opioid channel is a flat level that dulls pain without ever touching reception, at the cost of thinned blood and a bad stomach. Around those sit the stimulant, the sedative, the antagonist that reverses an overdose, and a server switch that can remove the entire opioid family from the world.

Reception

The body tracks two values: the opioid level in the blood, and the tolerance built against it. Reception is level minus tolerance. Positive reception is relief and negative reception is withdrawal. Zero is a body that has learned to need exactly what it is getting.

Nothing in the mod acts on reception directly. Every effect reads a smoothed copy that chases the real value at 5 points per second, so a dose eases in over several seconds and lingers on the way out rather than snapping on and off. That smoothing is why a huge push does not kill you the instant the plunger bottoms out. It is also why a reversal is not instant.

While smoothed reception is positive it drains pain on every limb at 0.3 per second per point of reception. Pain climbs back toward its own target at 0.6 per second, so any meaningful dose outpaces the re-raise and holds pain down; a trickle dose only blunts it. Reception drops the blood-pressure target by 0.4 per point, drops the heart-rate target by a fifth of itself, and subtracts itself straight out of respiratory drive. Above reception 30 it quietly drains energy. Above reception 5, and only while mood is above -60, it pays a very small amount of real happiness.

The HUD moodle reads the raw reception instead of the smoothed one, so the chip can change a moment before the effect does.

In game, this reads

Strong injectable painkiller; risk of opioid tolerance.

tooltip.doomedmatu.morphine_syringe

The stated warning is tolerance. Reception, level minus tolerance, is the number every effect actually reads, and the tooltip does not name it.

Both painkilling channels are read together outside the drug system: TreatmentService steadies the treatment hand by (reception + Nocifen level x 0.5) / 100 x 0.18, and AmputationHandler reads the same pair as stump analgesia, so being medicated makes you better at surgery on someone else as a side effect of being medicated for yourself. Injury and Treatment

Reception - exact values
QuantityValue as shippedDefined in
Reception definitionopiate level minus opiate tolerance~/capability/DoomedData.java:3344
Smoothing rate toward true reception5 points per second~/body/DrugHandler.java:117
Pain drained per second per reception point0.3 on every limb~/body/DrugHandler.java:36
Pain re-rise rate it competes with0.6 per second (falls at 1.0)~/body/PainHandler.java:63-64
Energy drain above reception 30reception x 0.0025 per second~/body/DrugHandler.java:139-141
Blood pressure target shift-0.4 per reception point~/body/CardiovascularHandler.java:133
Heart rate target shift-reception / 5~/body/CardiovascularHandler.java:285

The barrel

Every factory syringe holds 100 ml, and the injection minigame fills at 50 ml per second at full needle depth. A full barrel goes in in about two seconds of holding.

Four of the shipped syringes are not neat drug. The fentanyl barrel is 90 ml of water and 10 ml of fentanyl, because nobody injects fentanyl neat, and the heroin barrel is roughly two parts heroin to one part water. A full push of the factory fentanyl syringe therefore delivers 420 points of opioid load. Respiratory arrest sits near 100. A quarter of that barrel stops your breathing, and the whole thing is four times a lethal dose.

The same barrel filled with neat fentanyl from your own chemistry is ten times that: 4200 points for 100 ml. Nothing special-cases it. The factory dilution was the only thing keeping the number survivable.

Morphine's full syringe is 90, which lands just under the arrest line, and that is why morphine is the drug that can actually be titrated. Opium's full syringe is 40. The factory heroin syringe delivers about 87 points of opioid and about 33 points of sickness, since heroin also churns the gut at half a sickness point per active millilitre.

On opium, morphine, fentanyl, heroin, the stimulant and the sedative, the one-click treatment shortcut is deliberately switched off. The minigame is the dose control on those six, and emptying the barrel in one click would be choosing the largest dose available on exactly the drugs that overdose.

An injection lands in a depot, a reservoir under the skin, rather than in the blood. The depot feeds the active level every tick at a per-drug fraction of whatever is left in it. Opium absorbs at 10 percent of the remaining depot per second, morphine 12 percent, heroin 18 percent, fentanyl 9 percent, and the sedative 55 percent.

That is what makes fentanyl the most dangerous thing in the game rather than the fastest. Its absorption is deliberately the slowest of the four, so an enormous dose spreads out: it hits hard, keeps coming, and stays catchable for a while. Opium is gentle and gradual under the same rule.

Mixing opioids blends the depot's absorption rate toward the new dose, weighted by size, so stacking drugs behaves sensibly instead of taking whichever rate arrived last.

As smoothed reception first climbs through 65 there is one line: "Your breathing is going shallow." At the 5-per-second slew that is roughly seven seconds of warning before respiratory drive reaches zero. It fires once per crossing, on the way up only.

Swallowed opioids and the regenerative serum skip the depot and write the active level directly.

In game, this reads

An empty, refillable syringe (100 mB).

Fill it with a drug fluid at a barrel or filler, then

inject it into a limb like any other syringe.

tooltip.doomedmatu.syringe

"like any other syringe" is the gap: the same 100 ml barrel filled with neat fentanyl carries 4200 points against an arrest line near 100, where the factory one carries 420.

One opioid arrives without a needle at all: analgesic gauze adds 28 opiate points straight to the active level at a full wrap, skipping the depot, the purity scaling and the minigame, so four wraps put a patient over the arrest line with a dressing that is not tagged as an opioid and is not counted anywhere as a dose. Injury and Treatment

The barrel - exact values
QuantityValue as shippedDefined in
Syringe capacity100 ml~/registry/DoomedItems.java:87
Injection rate at full depth0.05 ml per millisecond (50 ml/s)~/client/screen/SyringeScreen.java:41
Opium, full syringe40 opiate points~/body/DrugService.java:42
Morphine, full syringe90 opiate points~/body/DrugService.java:43
Fentanyl, neat, per 100 ml4200 opiate points~/body/DrugService.java:92
Fentanyl factory syringe mix90 ml water + 10 ml fentanyl, so a full push = 420~/item/SyringeContents.java:54-55
Heroin factory syringe mix66.7 ml heroin + 33.3 ml water; full push = 86.7 opiate, 33.4 sickness~/item/SyringeContents.java:57 with DrugService.java:428-430
Drugs where one-click auto-resolve is refusedopium, morphine, fentanyl, heroin, stimulant, sedative~/body/DrugType.java:90-95
Opium absorption0.10 of remaining depot per second~/body/DrugService.java:56
Morphine absorption0.12 per second~/body/DrugService.java:57
Heroin absorption0.18 per second~/body/DrugService.java:58
Fentanyl absorption0.09 per second~/body/DrugService.java:59
Sedative absorption0.55 per second~/body/DrugService.java:600
Pre-arrest warning thresholdsmoothed reception 65, crossing upward~/body/DrugHandler.java:57
L.R.D. / Regenex direct opioid load0.4 opiate level per ml, no depot~/body/DrugService.java:411
Concealed

The factory fentanyl syringe is 90 percent water, and yours is not

The shipped fentanyl syringe is a 1 to 9 dilution, so a full 100 ml push delivers 420 points of opioid load against a respiratory arrest line near 100. Filling the same 100 ml barrel with neat fentanyl from your own chemistry delivers 4200. The heroin syringe is likewise cut two parts to one, so its full push is about 87 points rather than the 130 a neat barrel would give.

FRAGMENT 04-B - REBOUND NOTICE

SUMMARY: Naloxone empties the blood and never touches the depot. When the antagonist decays to zero with more than 25 points of opioid still waiting under the skin, the reservoir starts feeding the level again and the respiratory danger returns behind it. The mod tells the player exactly once, at the moment the antagonist runs out.

RESPONSE: One line, verbatim: "The naloxone is spent, and there is still opioid in you". It fires from DrugHandler on the tick the antagonist hits zero, and only when the depot is still above 25. On the way up, the matching telegraph reads "Your breathing is going shallow" as smoothed reception first crosses 65, roughly seven seconds ahead of arrest at the 5-per-second slew.

FINAL NOTE: Both lines go through BodyAlert, whose own javadoc opens with "Action bar, never chat." - 0.2.9 pulled 135 messages out of chat on purpose so nothing would stack up and nothing would repeat. The consequence for these two is that the only notice a second overdose has begun is transient text above the hotbar, written to no log and recoverable from nowhere. A player looking down at their inventory when it fires gets no record that it fired at all.

DrugHandler.java lines 107-155 (RESP_ARREST_WARN, REBOUND_WARN_DEPOT) and BodyAlert.java:12-47

FRAGMENT 05-C - RECORDED SPEECH, WITHDRAWAL

SUMMARY: Below smoothed reception -15 the character starts speaking withdrawal lines aloud, typed out over the puppet. Three are authored. They are among the most direct things anyone in this mod says.

RESPONSE: Verbatim, from Quips: "My bones-they're itching-please, just one, I swear just one...", "I'm sick, I'm so sick without it-help me-!", and "I'm crawling out of my skin-please!". The line has a 720-tick cooldown and sits high in the priority walk, above the comfort complaints and below the damage lines.

FINAL NOTE: QuipHandler suppresses all speech once mood drops below -75. Withdrawal is itself a mood term at reception x 1.66, floored at -80. The withdrawal that produces the line is therefore also the thing that eventually takes it away, and past a certain depth the character stops asking. Whether the -75 speech gate and the -80 withdrawal floor were set against each other, or merely landed near each other, is not written down.

Quips.java:131, QuipHandler.java:50 and :216, MoodHandler.java:150-151

Overdose

Opioids do no direct damage. Respiratory drive starts at 100 and reception is subtracted from it, so reception near 100 drives breathing to zero, oxygen saturation collapses, and the hypoxia kills the brain. That chain is the whole of an opioid death. A body can be fully analgesic and dying at the same time, so restoring consciousness without watching ventilation only looks like a save.

Naloxone loads an antagonist at 0.5 points per millilitre. While any antagonist is present it drives the active level toward zero at 8 points per second, on top of normal decay. The antagonist itself decays at 1 point per second, so a 25 ml push buys about 12.5 seconds of clearing.

Naloxone clears the blood and leaves the depot alone. If the antagonist runs out while there is still opioid waiting to absorb, the level climbs straight back and the respiratory danger climbs with it. With more than 25 points still in the depot when that happens you are told: "The naloxone is spent, and there is still opioid in you." That is a cue to redose, not a decoration. An under-reversed fentanyl push is the classic way to die twice.

The diagnostic tablet's recommended dose is smoothed reception divided by four, capped at 25 ml. It is a conservative starting push and it makes no claim to have cleared you.

The opioid level itself decays on a tiered curve that gets faster the higher it is, from 0.059 per second below level 100 up to 0.839 per second above 300. Level is hard-capped at 500.

In game, this reads

Opioid antagonist; reverses an opiate overdose fast.

tooltip.doomedmatu.naloxone_syringe

Fast and partial. It clears the blood at 8 points per second and never removes a point from the depot, which is why the level can climb straight back when the antagonist runs out.

Overdose - exact values
QuantityValue as shippedDefined in
Respiratory drive termbase 100 minus smoothed reception~/body/RespirationHandler.java:114-121
Naloxone antagonist loaded0.5 per ml~/body/DrugService.java:83
Antagonist clearing rate8 opiate points per second~/body/DrugHandler.java:53
Antagonist self-decay1 per second~/body/DrugHandler.java:51
Rebound warning thresholddepot above 25 when antagonist expires~/body/DrugHandler.java:55
Tablet naloxone prescriptionsmoothed reception / 4, capped at 25 ml~/client/screen/DiagnosticTabletScreen.java:3749-3751
Opiate level decay tiers, per second0.059 / 0.109 / 0.179 / 0.269 / 0.379 / 0.509 / 0.659 / 0.839 at levels 100 / 130 / 160 / 195 / 235 / 260 / 300 / above~/body/DrugHandler.java:220-238
Opiate level hard cap500~/capability/DoomedData.java:2998-3001
Concealed

Naloxone clears your blood and leaves the depot untouched

An injected opioid sits in a depot that feeds your bloodstream over time. Naloxone drives the blood level toward zero at 8 points per second while its antagonist lasts, and the antagonist decays at 1 per second. It never removes a single point from the depot. If the antagonist expires with more than 25 points still waiting to absorb, the level climbs straight back and you get one line saying so. Under-reversing a fentanyl push is a delayed second overdose.

Withdrawal

Tolerance climbs whenever reception is positive, at 0.08 per second, with another 0.022 while reception is above 45. Its ceiling is the current opioid level, so it tracks a habit instead of running away. The Addictive Personality trait multiplies the climb by 1.7.

Tolerance falls whenever reception is negative, at 0.04 per second, with another 0.025 while reception is below -30. Being in withdrawal is the only thing that unwinds a habit.

Negative reception is the withdrawal. Mood takes the reception value multiplied by 1.66, floored at -80, which makes withdrawal a far heavier mood term than the high ever was a lift. Below -16 nausea accrues at 0.09 per second. Below -15 a nap or a bed ends immediately if there is any real energy left, and you cannot sleep through it.

Below smoothed reception -34 the withdrawal latches fibrillation on the heart. Latched means it stays after the withdrawal lifts. It clears at 0 or 100 percent fibrillation, or on a defibrillator or a restart. Deep withdrawal commits you to a defibrillator or an arrest. That is the actual teeth of the addiction system.

A warning stage sits ahead of all of it. Once tolerance passes 30 while reception is roughly neutral, a Dependent chip appears, because a habit otherwise stays invisible until it turns into a crash.

Dying wipes opioid level, depot, tolerance, oral load and antagonist. Respawning is a cure for an opioid habit.

In game, this reads

Basic injectable painkiller; risk of opioid tolerance.

tooltip.doomedmatu.opium_syringe

Tolerance is the whole of the stated risk. The latched fibrillation that deep withdrawal commits you to, below smoothed reception -34, is not part of the warning.

Withdrawal - exact values
QuantityValue as shippedDefined in
Tolerance rise0.08/s, plus 0.022 while reception is above 45; ceiling is current level~/body/DrugHandler.java:41-44
Tolerance fall0.04/s, plus 0.025 while reception is below -30; floor 0~/body/DrugHandler.java:45-47
Addictive Personality multiplier on tolerance gainx1.7~/body/Trait.java:355-363
Withdrawal mood termreception x 1.66, floored at -80~/body/MoodHandler.java:150-151
Withdrawal nausea0.09 sickness/s below reception -16~/body/DrugHandler.java:145-147
Forced sleep breakreception below -15 with energy above 45~/body/DrugHandler.java:148-154
Forced fibrillation latchsmoothed reception below -34~/body/DrugHandler.java:49
Dependent chip thresholdtolerance above 30~/client/hud/DoomedHudOverlay.java:734
Moodle stages, dosedreception above 5 / 20 / 50 / 80~/client/hud/DoomedHudOverlay.java:1664-1681
Moodle stages, withdrawalreception below -5 / -15 / -25 / -34~/client/hud/DoomedHudOverlay.java:1683-1699
Concealed

Deep withdrawal latches your heart into fibrillation and lifting the withdrawal does not clear it

Smoothed reception below -34 forces fibrillation and sets a latch. The latch does not release when reception comes back up. It releases only at 0 or 100 percent fibrillation, or on a defibrillator or a heart restart. Taking another dose stops the withdrawal and leaves the latched heart behind.

Pills and charcoal

A swallowed opioid raises the active level and also a second pool that tracks how much of it is still sitting in the gut. That gut pool fades at 3 points per second as absorption completes, and it is clamped so it can never exceed the total active opioid.

One Painkillers pill is 14 points. It is a single 10 ml swallow out of a bottle rather than the bottle, and it is real relief on its own. Chaining seven or eight of them crosses the arrest line. That is the intended way to die of pills.

Mushpear, an ordinary foraged fruit, carries 10 points of oral opioid per fruit. Nothing about the item announces this.

Activated charcoal instantly binds half of whatever is still in the gut pool, purges 60 points of sickness, and opens a 60-second window during which it keeps binding at 1.5 points per second. The improvised charcoal slurry binds only a fifth, purges 20 sickness, opens a 20-second window, and has a one in four chance of adding 8 sickness instead of helping.

Charcoal only ever draws down the gut pool. An injected dose, venom and radiation all sit outside its reach. Naloxone is the answer to a needle; charcoal is the answer to a bottle.

The cost is the gut. While the charcoal window is open it absorbs less of everything, and food gives half its nutrition and half its weight gain. Taking charcoal and then eating is throwing food away.

In game, this reads

A pear gone to mush. It is foul to eat and it leaves an opiate trace behind.

tooltip.doomedmatu.mushpear

The tooltip does flag the trace. The amount is not stated: 10 points of oral opioid into the same gut pool a 14-point Painkillers pill uses.

The blunting lands inside Consumption.eat itself, which multiplies both the hunger value and the weight gain by the charcoal absorption factor before either reaches the body, so no food item is exempt and nothing about a particular meal signals that the window is open. Needs and Survival

Pills and charcoal - exact values
QuantityValue as shippedDefined in
Painkillers pill+14 oral opioid per pill~/registry/DoomedItems.java:300
Mushpear+10 oral opioid per fruit~/registry/DoomedConsumables.java:204
Oral absorption fade3 points per second, clamped to total opioid~/body/DrugHandler.java:39
Activated charcoal instant bind50 percent of the gut pool, -60 sickness~/registry/DoomedItems.java:318-323
Charcoal window60 seconds, binding 1.5 opioid per second~/body/CharcoalHandler.java:22-26
Improvised slurry20 percent bind, 20-second window, -20 sickness, 25 percent chance of +8 sickness~/registry/DoomedItems.java:330-340
Food absorption while the window is openx0.5 nutrition and weight gain~/body/Consumption.java:62-64
Concealed

Charcoal halves the food you eat for the next minute

Taking activated charcoal opens a 60-second gut window. While it is open, every food you eat gives half its nutrition and half its weight gain. The improvised slurry opens a 20-second version of the same window. Charcoal also only ever binds the swallowed portion of an opioid; it cannot reach anything injected, and it does nothing for venom or radiation.

Concealed

Mushpear is an opioid

The foraged mushpear adds 10 points of swallowed opioid per fruit, into the same gut pool a Painkillers pill uses. It builds tolerance and feeds withdrawal exactly like any other opioid, and activated charcoal binds it.

Anhedonia

Anhedonia is a separate meter. It builds while mood sits at or below -55 and fades slowly once the body is genuinely clear of the pit. At full anhedonia every positive mood change is worth 15 percent of itself and the natural drift back toward baseline runs at 30 percent speed. It takes nothing away. It makes what would have lifted you stop landing.

Opioids feed it. While smoothed reception is 25 or higher, anhedonia builds at 0.012 per second on top of everything else. A habit alone can carry you to anhedonia 70 and no further; past that you have to do it to yourself.

Analgesia is untouched by any of it, and that is exactly the trap. The pain relief keeps working perfectly, so from the inside another dose stays the rational move while the thing being dosed for gets quietly harder to feel.

Above anhedonia 55 your own hands stop trying properly: self-treatment effectiveness falls from full down to 55 percent at the maximum. It is a reluctance rather than a block, and it never applies to work another player does on you. Above 80 nobody sitting with you can reach you at all.

Antidepressants are the counter, and they are not a mood button. A dose loads 20 points of depot and does nothing whatsoever for 14400 ticks, which is 12 in-game minutes. After that it lifts happiness at 0.022 per second and, far more importantly, halves how fast the numbness deepens. Tolerance builds at 0.05 per second while dosed and fades at 0.02 per second when clean, so swallowing the bottle stops working inside one session.

Anhedonia survives death, halved and capped at 40 each time.

In game, this reads

A dose lifts your mood away from despair.

tooltip.doomedmatu.antidepressant

The lift is 0.022 happiness per second and it starts 14400 ticks after the dose. The halved anhedonia gain, which is the part that matters, goes unmentioned.

Anhedonia - exact values
QuantityValue as shippedDefined in
Opioid spiral gatesmoothed reception 25 or higher~/body/Anhedonia.java:95
Spiral build rate and ceiling0.012 per second, ceiling 70~/body/Anhedonia.java:97-99
Anhedonia build gatemood at or below -55, fastest at -100~/body/Anhedonia.java:35-39
Reward multiplier at full anhedonia0.15~/body/Anhedonia.java:44
Drift multiplier at full anhedonia0.30~/body/Anhedonia.java:46
Self-care floor0.55, starting above anhedonia 55~/body/Anhedonia.java:155-159
Unreachable by othersanhedonia 80~/body/Anhedonia.java:157
Antidepressant onset14400 ticks (12 minutes), 20 depot per dose~/item/AntidepressantItem.java:28-30
Antidepressant effect0.022 happiness/s, halves anhedonia gain~/body/Anhedonia.java:51-52
Anhedonia on deathhalved, capped at 40~/capability/DoomedData.java:3952
Concealed

Opioids permanently deepen anhedonia while leaving analgesia perfect

Above smoothed reception 25 your anhedonia builds at 0.012 per second, up to a ceiling of 70. Anhedonia scales every positive mood change down to as little as 15 percent of itself and slows the natural recovery drift to 30 percent, and it survives death halved and capped at 40. The pain relief is untouched, so the drug never stops being worth taking.

Nocifen

Nocifen is a non-opioid analgesic on a completely separate channel. Reception stays untouched, so it carries none of the opioid liabilities: respiratory depression, overdose, tolerance, withdrawal. Its level stacks freely and decays at 0.07 per second, which clears a single dose in roughly 12 minutes.

One Nocifen is 50 points of level. The herbal Feverbell Chew is 12 points and costs 4 happiness because it tastes foul. Relief is 0.1 pain per second per level point, a third of the opioid rate, so a single dose blunts pain rather than masking it.

The catch is blood. Nocifen thins it: natural clotting is multiplied by a factor that falls from 1 down to 0.5 as the level approaches 100. Medicating a bleed makes the bleed last longer, and that trade stays invisible unless you know to look for it.

It also upsets the gut continuously at 0.03 sickness per second. Above level 120 a gastric bleed opens in the abdomen at 0.02 internal-bleed units per second, capped at 0.5, with extra nausea on top. Two Nocifen plus a Feverbell Chew is 112. Three Nocifen is 150, and you are bleeding into your own stomach.

On the credit side it lowers the fever setpoint and drags active infections back at 0.1 per second, which slows an infection without ever curing one.

In game, this reads

A non-opioid painkiller.

Weaker than the opioids, but no breathing risk, no

overdose, no addiction - and doses stack. Also fights

fever and inflammation.

The catch: it thins your blood (wounds clot slower)

and upsets your gut. Don't pop it while you're bleeding,

and don't chain doses or you'll start a stomach bleed.

tooltip.doomedmatu.nocifen

The tooltip names both costs and even the stomach bleed. It stops short of the number: level 120, which three doses clear and two plus a Feverbell Chew do not.

The thinning is applied where every other clotting modifier is applied: BleedHandler multiplies its natural clot rate by NsaidHandler.clotFactor in the same product as the venom factor and the cold factor, so a medicated bleed compounds with a snakebite or with hypothermia rather than replacing them. Blood and Circulation

Nocifen - exact values
QuantityValue as shippedDefined in
Nocifen dose+50 level~/registry/DoomedItems.java:307
Feverbell Chew dose+12 level, -4 happiness~/registry/DoomedItems.java:259
Pain relief0.1 per second per level point~/body/NsaidHandler.java:26
Level decay0.07 per second~/body/NsaidHandler.java:28
Clotting penaltyx1.0 down to x0.5, saturating at level 100~/body/NsaidHandler.java:95-100
Gastric bleed thresholdlevel 120~/body/NsaidHandler.java:38
Gastric bleed rate and cap0.02 per second, capped at 0.5, plus 0.06 nausea/s~/body/NsaidHandler.java:39-41
Anti-inflammatory drag0.1 infection per second on infected limbs~/body/NsaidHandler.java:34
Concealed

Nocifen thins your blood, and stacking it opens a stomach bleed

The non-opioid painkiller multiplies natural clotting by a factor falling to 0.5 as its level approaches 100, so a medicated wound bleeds for longer. Past level 120, which is three Nocifen, an internal bleed opens in your abdomen at 0.02 units per second and keeps going until the level decays back down. One dose is 50 points and the level decays at 0.07 per second.

Stimulants

The stimulant syringe buys 3.6 seconds of stimulant time per millilitre, so a full 100 ml barrel is 360 seconds. The overdose line is 220 seconds of remaining time. A full push is well past it.

While the stimulant runs, one step fires per second: 2 stamina, 2 consciousness, 0.1 energy, 7 adrenaline, a little nausea, and a small internal bleed in the abdomen from the racing circulation. The speed and attack-rate buff builds by 0.035 a step to a ceiling of 0.25 and always bleeds back toward zero at 0.02 per second.

Above 220 seconds remaining the body starts coming apart. There is a 10 percent chance each second of a 35-point stamina crash, brain damage at 0.05 a second, a thorax pain spike of 4 up to a ceiling of 60, and convulsions. A convulsion is a real ragdoll: you are thrown, and you have to get up. The first one cannot land until you have been over the line for about eight seconds, then it is a 3.5 percent chance per second with a twelve-second cooldown between flings. Nothing tells you that you have overdosed.

The crash arrives as the stimulant runs out, and only if the window ever peaked above 59 seconds. Below 30 seconds remaining you take random 25-point stamina crashes; on the final second you lose 30 energy and vomit.

Epinephrine queues 6 active ticks per millilitre and grants 1.5 adrenaline per millilitre. Each active tick on an arrested heart has a 3 percent chance to restart it, coming back at heart rate 60 with 50 percent fibrillation and a clean, unlatched rhythm. A bolus of 40 ml or more starts and latches fibrillation by itself, so a panicked full-syringe push is a heart problem you created.

Adrenaline decays at 1.7 per second, except during a last stand, where it is pinned upward at 5 per second instead. It masks pain at 0.35 of its smoothed value, and the smoothing ramps at 4 per second, so a sudden injury hurts fully for a moment before the numbing takes hold.

The combat pen is a single right-click that applies 200 seconds of stimulant, 22.5 adrenaline, 90 epinephrine ticks, and an oxygen kick, all at once.

In game, this reads

Adrenaline and stamina shot; too much overdoses you.

tooltip.doomedmatu.stimulant_syringe

"Too much" is 220 seconds of remaining duration against a full barrel's 360. The crossing itself sends nothing, so the first real signal is the convulsion.

A convulsion is not a bespoke animation: StimulantHandler floors your shock at 20 and sets a launch velocity, so DownedStateHandler collapses you on the next tick down the ordinary downed-to-ragdoll path, and getting back up costs exactly what getting up from any other collapse costs. Pain, Consciousness and Death

Stimulants - exact values
QuantityValue as shippedDefined in
Stimulant duration per ml3.6 seconds (360 s for a full syringe)~/body/DrugService.java:96
Stimulant overdose line220 seconds of remaining duration~/body/StimulantHandler.java:43
Convulsion grace, chance and cooldown8 seconds, 3.5 percent per second, 12-second cooldown~/body/StimulantHandler.java:50-53
Speed buff ceiling and decay0.25 ceiling, +0.035 per step, -0.02 per second~/body/StimulantHandler.java:41, 128-130
Crash gatepeak above 59 seconds; final second is -30 energy and vomit~/body/StimulantHandler.java:45, 156-164
Epinephrine per ml6 active ticks, +1.5 adrenaline~/body/DrugService.java:61-62
Epinephrine fibrillation bolus40 ml or more latches fibrillation~/body/DrugService.java:63
Heart restart chance3 percent per active tick; returns at HR 60, fibrillation 50~/body/DrugHandler.java:60-62
Adrenaline decay1.7 per second, or pinned +5 per second in a last stand~/body/DrugHandler.java:57-59
Adrenaline pain mask0.35 of smoothed adrenaline, ramping at 4 per second~/body/PainHandler.java:71, 75
Combat pen200 s stimulant, +22.5 adrenaline, 90 epi ticks, +5 SpO2, +5 stamina, +0.025 L blood~/body/DrugService.java:766-775
Concealed

The stimulant overdose sends you no message at all

Stacking more than 220 seconds of stimulant starts convulsions, brain damage at 0.05 per second, random stamina crashes and a thorax pain spike. The throttled warning that was meant to announce this currently sends nothing. Your first real signal is being flung to the ground about eight seconds after crossing the line.

The sedative

The sedative does not kill pain. It removes the person who was feeling it. Per millilitre it adds 1.6 sedation, 1.1 opioid to the depot at a fast 55 percent absorption, and it subtracts 0.16 respiration and 0.22 from blood pressure.

Sedation is a hard cap on consciousness: the ceiling is 100 minus sedation, applied as a cap rather than a write, so nothing can raise a body back through it while the drug lasts. It clears at 0.75 per second, which makes a 40 ml surgical dose about a minute and a half under.

A 40 ml push is a surgical dose. A 100 ml push is an apnoea somebody else has to breathe for. That judgement is the entire drug.

Because the relief rides the ordinary opioid depot, everything that already reads "how medicated is this body" picks the sedative up for free, including the pain mask, the hand tremble in the treatment minigames, and the vision fog. It also means naloxone reverses a sedative overdose, which is correct and is the counterplay.

Surgery is where it earns itself. An open limb adds 62 pain to its target during an operation, and sedation scales that away to nothing at sedation 70. Unsedated, a long procedure can put a conscious patient into pain shock on the table.

Sedating yourself is no use. The procedure screen aborts below consciousness 12, so a self-dose leaves you unconscious on the floor with your abdomen open. Self-surgery is done awake. Painless surgery requires a second person.

In game, this reads

Puts a body under. It does not stop the pain - it removes the person feeling it. For a stable adult, begin around 40 mL and reassess consciousness, breathing and pressure before adding more. You cannot operate on yourself while under.

tooltip.doomedmatu.sedative_syringe

String and code agree on the 40 mL start. Neither this nor anything else on the item says the dose rides the opioid depot, which is what lets naloxone reverse it.

The ceiling is enforced in ConsciousnessHandler, which caps consciousness at 100 minus sedation after every other term has been summed, so a stimulant, an adrenaline surge and a shout from a friend all resolve first and are then cut off at the same line. Pain, Consciousness and Death

Purity and needles

Every drug fluid carries a purity from 0 to 100 in its own data, and it rides along through tanks, pipes and syringes. Factory pharmaceutical syringes are always pure. Anything self-made is as pure as the process that made it.

Purity is the active fraction rather than a second punishment. A 100 ml push at 40 percent grade delivers the effect of 40 ml plus 60 ml of dirty inactive material. A low-grade find cannot give a pharma-strength effect and then charge extra on top.

The dirt is charged once per injection. Sickness is 0.4 per millilitre scaled by how impure it was, so 100 ml of completely filthy drug is about 40 sickness. It can also fester the injection site, seeding up to 25 points of infection at 0 percent purity, scaled by how much volume actually went in.

Every invasive dose creates a real puncture wound at the site, and process contamination from the fluid lands in that exact wound.

A needle that has been in a person is dirty from then on. Reusing one seeds 12 points of infection at the new site whether or not any disease transfers, and it carries the exact blood-borne agents from the previous bloodstream and no others - a Marrow Fever needle cannot invent Rot Lung. Blood bags work the same way and come back empty and contaminated, inheriting both bloodstreams the line ran between. The fix is one right-click at a campfire.

In the minigame, the needle's entry point locks the moment it pierces. After that the barrel only tilts with how far a shaking hand drifts off that line. Drift past 80 units and the needle tears free: 20 ml of the syringe wasted, 20 pain, a fragment snapped off inside the limb if one is not already there, and nothing delivered. A fragment in a wound suspends natural clotting until it is pulled.

A mixed solution injects proportionally - pushing 40 of a 100 ml mix delivers 40 percent of every component, not 40 ml of the first one - and its purity is the volume-weighted average of what is in it.

In game, this reads

The needle glows, then cools. Clean.

message.doomedmatu.syringe_sterilized

That line is the campfire right-click, and it is the whole of the fix for a needle that has been in a person.

All three quality tags a syringe reads - Purity, ChemicalCarryover and MicrobialLoad - are written by the Reactor and the process machines from their own equipment cleanliness and blended by volume in PurityBlendingTank, so the grade you inject is decided entirely upstream in the chemistry and carried, never rerolled. The Chemistry Engine

A reused needle sets the site's infection to 12 and the wound's contamination to 35 through the ordinary wound ledger, so the puncture then progresses under the same infection rules as any other dirty wound and can carry through to sepsis without a second injection ever happening. Disease and Infection

Nicotine

Each cigarette needs a lighter or flint and steel somewhere in the inventory. It gives up to 2 mood, adds 0.3 permanent lung tar, and adds 2 points of nicotine dependence. Addictive Personality multiplies the dependence gain by 1.7.

Dependence runs 0 to 100 with four stages at 10, 30, 55 and 80. At the ordinary rate stage I begins on the fifth cigarette. While nicotine is absent at any stage, derived mood carries a flat penalty: 4 at stage I, 9 at stage II, 16 at stage III, 25 at stage IV. That last one is a large enough mood cost to matter on a body where mood drives despair.

The reward shrinks as the dependence grows. A smoke is worth its full 2 mood at stage 0, three quarters at stage I, half at stage II, a quarter at stage III and an eighth at stage IV. Past the early stages you are no longer smoking to feel good, you are smoking to stop feeling bad.

A cigarette buys quiet for 8 minutes, and the higher stages buy less: 7 minutes at stage II, 6 at stage III, 5 at stage IV. Dependence recovers only while that quiet has run out, at 0.02 per second, which is 1.2 points per simulated minute. Clearing stage IV takes several active in-game days without smoking.

Dependence survives death on purpose. Respawning cures an opioid habit and leaves this one alone. Lung tar, which lowers the stamina ceiling, is cleared by death and by nothing else. Five hundred lifetime cigarettes earns Loyal Customer.

Blood alcohol is a single value and it clears at a flat 0.02 per second regardless of how much is in you. Almost every other decay in the mod is proportional. This one is not, and that choice is the whole mechanic: a second bottle opened before the first has cleared stacks on top of it, while the same two bottles an hour apart never reach the same peak.

A 400 ml bottle puts on 24 points and clears in 1200 seconds, one Minecraft day. Against Nocifen shedding at 0.07 per second, that is about three and a half times slower per unit. You are stuck with it.

Below 15 nothing registers at all, so a single 100 ml gulp at 6 points is free. The distortion ramps from 15 to full at 55. Visible drunkenness starts past about 35 percent of that ramp, a blood alcohol of 29 - two glasses of wine, or one spirit and some patience. Past that point the room starts moving, refreshed every two seconds.

Alcohol carries no pain relief, no mood lift, no euphoria, and it never will. It hydrates worse than water and sickens you unconditionally. The part of it above a tolerated threshold is what your liver reads. Everything alcohol does is a cost or a distortion.

Death sobers you completely.

In game, this reads

Matu Tobacco Co. - 'A small death, held between your lips.'

Needs a lighter. A little calm now; tar in your lungs forever.

tooltip.doomedmatu.cigarette

Both halves are literal. The tar clears on death and on nothing else, and the calm is down to an eighth of its original 2 mood by stage IV.

Tar is spent where you would least look for it: StaminaHandler subtracts lung tar from the stamina ceiling in the same expression as SpO2, so a heavy smoker's maximum stamina is capped by the same term that a suffocating player's is. Needs and Survival

Nicotine - exact values
QuantityValue as shippedDefined in
Dependence per cigarette+2, multiplied by 1.7 with Addictive Personality~/item/CigaretteItem.java:38
Stage thresholds10 / 30 / 55 / 80 out of 100~/capability/DoomedData.java:2005-2013
Withdrawal mood penalty by stage4 / 9 / 16 / 25~/capability/DoomedData.java:2016-2024
Reward multiplier by stage1.0 / 0.75 / 0.50 / 0.25 / 0.125~/item/CigaretteItem.java:118-126
Sated window by stage8 / 8 / 7 / 6 / 5 minutes~/item/CigaretteItem.java:40, 128-135
Dependence recovery0.02 per second, only while unsated~/body/CigaretteHandler.java:24
Lung tar0.3 per cigarette, about 330 to fully coat~/item/CigaretteItem.java:36
Persistence across deathdependence and lifetime count survive; tar is cleared~/capability/DoomedData.java:3783-3788
Clearance0.02 per second, flat regardless of dose~/body/AlcoholHandler.java:52
One 400 ml bottle24 points, 1200 seconds to clear~/body/AlcoholHandler.java:48-51
Effect onset and full15 and 55~/body/AlcoholHandler.java:55-57
Visibly drunk threshold0.35 of the ramp, a blood alcohol of 29~/body/AlcoholHandler.java:66-67
Hydration and sickness75 hydration per litre against water's 90; 70 sickness per litre~/body/AlcoholHandler.java:31-32
On deathblood alcohol reset to 0~/capability/DoomedData.java:3871
Concealed

Respawning cures an opioid habit but not a nicotine one

Death resets opioid level, depot, tolerance, the swallowed pool, the antagonist, the non-opioid level, blood alcohol and the charcoal window to zero. Nicotine dependence and lifetime cigarette count deliberately survive, so a new life inherits the habit and its withdrawal mood penalty. Lung tar goes the other way: death is the only thing that ever clears it.

FRAGMENT 11-A - CUSTOMER RECORD

SUMMARY: Nicotine dependence and the lifetime cigarette count are two of the very few numbers on the body that a death does not clear. Lung tar runs the opposite way: dying is the only thing that ever removes it. At 500 lifetime cigarettes the mod grants an advancement from code rather than from a criterion, using minecraft:impossible as the trigger so nothing else can award it.

RESPONSE: The advancement text, verbatim: "Smoke 500 Matulls. Matu Tobacco Co. thanks you for your continued patronage." It is a challenge-frame advancement, announced to chat, not hidden. Its file carries a comment saying the counter survives death on purpose. The item tooltip it hangs off reads "Matu Tobacco Co. - 'A small death, held between your lips.'"

FINAL NOTE: CHANGELOG.md:625 records the one place this rule was tested and upheld. A player found that /doomedheal wiped opiates, tolerance, painkillers and stimulants while quietly skipping nicotine, so a total-body reset left you still addicted and already withdrawing. The fix cleared the dependence and deliberately left the count alone, on the stated grounds that the number of cigarettes your character has smoked is a record of what they did rather than something wrong with them.

data/doomedmatu/advancements/loyal_customer.json, DoomedData.java:238, CigaretteItem.java:43, en_us.json:493, CHANGELOG.md:625

The opioid switch

One server config flag, opioidsEnabled, defaults to true. Set it false and the opioid family stops existing rather than merely stopping working.

The family is opium, morphine, heroin, fentanyl and oxyline. Naloxone is deliberately outside it, because removing the antidote along with the drug would be the exact wrong half to cut, so naloxone still turns up in loot.

Switched off, the whole chain goes. Syringes and every intermediate item on the synthesis chain leave loot tables, trader shelves and every creative tab, because half a chain is worse than none. Worldgen fluid barrels drop those entries from their weighted pools and keep their own proportions among what is left; before that gate existed, opium alone was 22 of the common pool's 64 weight, roughly one generated barrel in six. Wild opium poppies stop generating, and a poppy that predates the switch keeps growing while dropping nothing at all, which closes the renewable farm a single surviving seed used to be. The synthesis recipes leave the machines and the recipe viewers, and so do the reactor steps that were orphaned when their precursors went.

In the body, the depot, the level and the smoothed reception are pinned to zero every single tick. That is what makes a save that already carried a dose clear out instead of freezing. Tolerance and antagonist decay still run on those zeros, so nobody is stranded mid-withdrawal by a config flip.

Oxyline counting as an opioid surprises people. With the switch off, the oxyline syringe is gone and its effect is refused by name.

Two things sit outside the gate. The oral Painkillers pill is off the item tag, so it still generates in loot; the level pin makes it inert, and it is still there to find. And the combat pen writes its oxygen, stamina and adrenaline effects directly rather than through the drug path, so the pen keeps working exactly as before.

In game, this reads

Oxygen booster; raises SpO2, breathing and stamina.

tooltip.doomedmatu.oxyline_syringe

Nothing here reads as an opioid, and the config removes this syringe with the family and refuses its effect by name.

The switch reaches into generation as well as into loot: CaveScatterFeature drops the blocked entries from its weighted barrel pools and renormalises what is left, and OpiumPoppyBlock keeps growing a standing poppy while returning nothing at all from a harvest. Items, World and Trade

The opioid switch - exact values
QuantityValue as shippedDefined in
Config key and defaultopioidsEnabled, default true~/config/DoomedConfig.java:1885-1896
Blocked drug familyopium, morphine, heroin, fentanyl, oxyline~/body/OpioidPolicy.java:53-54
Blocked process fluidsany doomedmatu fluid whose id contains opium, morphine, heroin, fentanyl or oxyline~/body/OpioidPolicy.java:57
Item gatethe doomedmatu:opioids tag, 19 entries covering syringes, seeds, latex and every synthesis intermediateres/data/doomedmatu/tags/items/opioids.json
Body pindepot, level and smoothed reception set to 0 every tick~/body/DrugHandler.java:73-85
Poppy behavioura standing poppy keeps growing and drops nothing~/block/OpiumPoppyBlock.java:43-49
Barrel pool weight removedopium was 22 of 64 in the common pool~/worldgen/CaveScatterFeature.java:480-487
Concealed

Oxyline counts as an opioid, and the combat pen does not

The server opioid switch treats oxyline as part of the family, so switching opioids off removes the oxyline syringe and refuses its effect by name. The combat pen applies its stimulant, adrenaline and oxygen effects through its own direct path rather than the drug pipeline, so it keeps working unchanged. The oral Painkillers pill is likewise absent from the opioid item tag, so it still generates in loot; the per-tick level pin is what makes it do nothing.

Notes

  • The stimulant overdose is supposed to announce itself. StimulantHandler.warnOverdose still carries a full javadoc describing one chat line on the first crossing and action-bar repeats every two seconds after it, and the method body is a guard clause followed by an if-statement with nothing inside it. The file imports net.minecraft.network.chat.Component and uses it nowhere, which is the residue a deleted message leaves. CHANGELOG.md:854 tells players that an overdose warns them before the first convulsion. Nothing in the commit record says when the lines went, or whether anyone meant them to.
  • reference/THE_BOTTOM.md:104 is explicit that anhedonia is within-a-life and must reset on death. The shipped code at DoomedData.java carries it across instead, halved and capped at 40, with a comment saying dying is no cure. reference/GRAND_ROADMAP_2026_07.md:323 calls surviving death the single best addition that was never in the spec, so the reversal was deliberate. Where the halving came from, and why the cap landed on 40 rather than any other number, is written down in neither document.
  • One injection is assessed for dirt twice by two systems that never consult each other. Purity drives the sickness and up to 25 points of injection-site infection; the separate MicrobialLoad tag on the same FluidStack drives the puncture wound's contamination and up to 35 points of its own. Both fire on the same push, from the same fluid, out of the same tank. Whether a self-made dirty batch is meant to be charged on both axes, or whether the newer wound-ledger path was supposed to replace the older one, is not recorded anywhere in the source or in reference/.
  • The opioid mood term is floored on one side and open on the other. MoodHandler adds the smoothed reception straight into the mood total when it is positive and multiplies it by 1.66 with a floor of -80 when it is negative. Mood then clamps to 100. So any reception near 100 pins the derived mood at maximum no matter what else is wrong with the body, while no depth of withdrawal can contribute worse than -80. The asymmetry is visible in a single line of code and explained in none of the specs.
  • A habit alone builds anhedonia to a ceiling of 70. QuipHandler silences the feeling lines, which include the character's own "opiatedsad" line about being numb, at 72. The two constants sit in different files, two points apart, and the effect is that an opioid habit taken to its limit stops just short of taking away the voice that would describe it. No comment, changelog entry or spec claims that gap was measured.
  • Naltrexone is an oral pill that adds 15 to the same antagonist pool naloxone uses, alongside -15 tolerance and -25 sickness. Naloxone loads 0.5 per millilitre, so the diagnostic tablet's own capped recommendation of 25 ml is 12.5 - less antagonist than one swallowed tablet. The code comment beside the pill admits its magnitudes were reconstructed by inference from its siblings after the ported numbers were found to be off by factors of two and four. Whether the pill is meant to out-reverse the injectable antidote was never settled.
SUBJ-07

Needs and Survival

Doomed replaces the vanilla food bar with six interlocking survival tracks that all feed the same body. Hunger and thirst run on separate clocks, and behind them sits a body-weight ledger that decides how fast you heal, how much you can carry and whether your heart stays in rhythm. Temperature is a slow simulation with real thermal mass, so a place turns on you over minutes rather than instantly. Everything below is server-authoritative and per-player, and every per-second rate is multiplied by the pack's paceFactor.

Two clocks

Hunger and thirst run on separate clocks, deliberately out of phase so the two never come due at the same moment. Hunger falls a point every 33 simulated seconds, which empties a full 100 in about 55 minutes at the default pace. Thirst falls a point every 26 seconds and empties in roughly 43. Across one Minecraft day the body spends about 36 hunger and about 46 thirst. Water asks first, and asks more often.

Heat is the only thing that speeds thirst up. The divisor is 26 minus half the core temperature above 37 C, floored at 1, so a fever or a desert genuinely dries a body out faster while a cold biome leaves the rate where it was. Metabolism scales both clocks together: the run setting, the FUR trait at 1.25x and the DROWSY trait at 1.15x each multiply hunger, thirst and energy at once. RAVENOUS adds 1.45x to hunger alone. THIRSTY adds 1.45x to thirst alone.

Both bars run past zero, hunger to a floor of -50 and thirst to the same. Negative hunger is active starvation, and it strips 0.15 muscle health per second from every limb at once. Below thirst 30 a dull ache builds in your chest and eases again at 25. Below thirst 0 your blood thickens by 0.25 viscosity per second, which is the road to a clot. Dehydration also throttles plasma recovery to 30 percent and drags arterial pressure to 72 percent of normal at the floor.

Deep cold bills hunger separately. Below 32 C core the body burns 0.035 hunger per second, 2.1 a minute on top of the ordinary drain. Shivering is expensive.

In game, this reads

Dry cereal. Light food, and it leaves you thirstier than you started.

tooltip.doomedmatu.cereal

Thirst is read straight into the circulation sim, where hydrationPressure scales the circulating-volume contribution to arterial pressure and hydrationBloodRecovery throttles how fast plasma rebuilds. Blood and Circulation

Two clocks - exact values
QuantityValue as shippedDefined in
Hunger drain divisor1 point per 33 sim-seconds (~55 min for a full bar)~/body/NeedsHandler.java:29
Thirst drain divisor1 point per 26 sim-seconds (~43 min for a full bar)~/body/NeedsHandler.java:35
Heat term on thirstdivisor = max(1, 26 - (bodyTemp - 37) x 0.5)~/body/NeedsHandler.java:76
Hunger clamp-50 to 175~/capability/DoomedData.java:1724
Thirst clamp-50 to 250~/capability/DoomedData.java:1743
Starvation muscle loss0.15 muscle health/s on every limb at hunger <= 0~/body/LimbHandler.java:32
Deep-cold hunger burn0.035/s below 32 C core~/body/TemperatureHandler.java:130
Dehydration pressure floor0.72x circulating-volume contribution at thirst -50~/body/PhysiologyFactors.java:22

The weight ledger

Every food in the mod is priced against two constants. One point of vanilla nutrition is worth 1.75 hunger and 0.15 body weight, calibrated so the mod's reference burger and a vanilla cooked steak agree with each other. Divide one by the other and the exchange rate that matters falls out: a single point of hunger carries 0.0857 body weight.

Metabolism burns weight continuously, and the burn is derived from that same exchange rate rather than guessed beside it. Maintenance is exactly the weight that the food holding hunger at its station would have carried, which works out at about 9.35 weight per hour at the default pace. A deficit term sits on top of it: 1 minus hunger divided by 100, clamped between -0.5 and 1, with the final burn being maintenance multiplied by one plus that deficit times 1.5.

The consequences read straight off the formula. At hunger 100 the burn is exactly maintenance and weight holds. At hunger 0 it is 2.5 times maintenance, which is a body eating its own tissue. Above hunger 100 the deficit floors at -0.5, so a stuffed metabolism slows to a quarter of maintenance and stops there. Metabolism will never manufacture mass. Getting heavy is something done with food.

Weight itself is stored as an offset clamped between -80 and 100, with 0 as a normal frame. The moodle tiers run Lean below -15, Underweight below -30, Starving below -40 and Emaciated at or below -50. The other direction gives Well-Fed above 15, then the Overweight tiers, then Pyro Obese at 50 and above.

One trap worth naming: overeating banks only the weight the stomach accepted. A meal that overshoots the 175 ceiling spends the refused portion on sickness and returns no mass.

Body weight is a load-bearing number, not a cosmetic one on a panel. It gates four separate systems, and each of them stays quiet about it.

Repair. Tissue repair is the product of a food term, an energy term and a wasting term, and the wasting term slides from 1 down to 0.45 as the weight offset falls from -10 to -60. That multiplier covers soft tissue, stump healing, bone and blood rebuilding, so a wasted body mends at well under half speed. It also caps what brewed Regeneration can deliver, since the potion multiplies this rate rather than replacing it.

Immunity. Every point of weight offset past -10 costs 0.40 immunity. At -60 that is 20 immunity gone, and at the -80 floor it is 28, on the same scale infection rolls read.

Carrying capacity. The base ceiling is 11 kg. Wasting subtracts up to 6 kg of it, hunger under 40 costs another 1.5 kg, thirst under 40 costs 1 kg, and sickness shaves 0.025 kg per point. Sitting above hunger 100 gives 1.5 kg back. Strength and Resilience above level 10 add half a kilogram per level, taking the lower of the two.

Speed. Past 40 points of weight offset in either direction, every further point costs 0.006 of the movement cap. Hunger below 35 separately scales speed down toward a floor of 0.4 at empty, and thirst above 125 costs a flat 10 percent.

The heart. Once the absolute value of your weight offset passes 60, each second rolls to seed forced fibrillation, with odds ramping from zero at 60 to certain by about 110. Being far too thin is a cardiac event in its own right, not a milder version of being heavy.

In game, this reads

Raw organs. They fill you, and they are revolting and toxic with it.

tooltip.doomedmatu.internalorgans

"They fill you" is the hunger half of the price. The weight half is never named on any tooltip in the language file.

Wasting reaches the organs through that same repair term: OrganHandler samples tissueRepair once a day and marks the whole body STARVED below 0.55, and a marked day gives no organ its dawn regeneration. Organs

Activated charcoal sits upstream of the whole ledger: while its window is open, Consumption.eat scales both the nutrition and the weight of everything you swallow before either one is banked. Drugs and Pharmacology

The weight ledger - exact values
QuantityValue as shippedDefined in
Hunger per nutrition point1.75~/body/Consumption.java:37
Weight per nutrition point0.15~/body/Consumption.java:38
Weight carried by one hunger point0.0857~/body/Consumption.java:46
Starvation catabolism multiplier1.5 (so hunger 0 burns 2.5x maintenance)~/body/NeedsHandler.java:56
Deficit clamp-0.5 to 1~/body/NeedsHandler.java:154
Weight offset clamp-80 to 100~/capability/DoomedData.java:1904
Underweight moodle tiers-15 Lean / -30 Underweight / -40 Starving / -50 Emaciated~/client/hud/DoomedHudOverlay.java:2032
Wasting repair multiplier1.0 at -10 offset down to 0.45 at -60~/body/PhysiologyFactors.java:29
Wasting immunity penalty0.40 immunity per point past -10~/body/PhysiologyFactors.java:50
Base carry capacity11 kg~/body/EncumbranceHandler.java:33
Wasting capacity lossup to -6 kg (clamped weightOffset+15 x 0.1)~/body/EncumbranceHandler.java:31
Hunger speed curveclamp(hunger / 35, 0.4, 1)~/body/MovementCapabilityHandler.java:332
Overhydration speed penaltyx0.9 above thirst 125~/body/MovementCapabilityHandler.java:274
Extreme-weight fibrillation seed|offset| > 60, chance/s = (|offset| - 60) / 50~/body/CardiovascularHandler.java:313
Concealed

The vanilla food bar is a puppet, and it lies about how hungry you are

Doomed mirrors its own hunger onto the vanilla shank bar every tick. Below hunger 100 the bar sits under 20 so vanilla will let you start eating, and at 100 or above it pins to 20. It is floored at 7 and capped at 19, which means every hunger value from 0 to 35 renders as an identical 3.5 shanks. The floor of 7 also keeps you above vanilla's sprint requirement and stops vanilla starvation from ever firing, because the mod owns every underfed penalty itself. If you turn Doomed hunger off in the config, this handover stops entirely and vanilla gets its bar back.

Concealed

Food that never passes through an item is reconciled behind your back

Everything nutritional in Doomed hangs off the finish-using-item event, which only fires for food you use from your hand. A cake is a block, so right-clicking it calls the vanilla feed method directly and produces no item event at all. Because the mirror then overwrites the vanilla bar from the Doomed sim on the next tick, those points used to be actively erased rather than merely uncounted. The mod now watches the outcome instead of the mechanism: if the vanilla bar reads higher than the value it last wrote itself, something fed you, and the gain is converted at the standard 1.75 hunger and 0.15 weight per point. Any accompanying saturation is dropped, and micronutrients are credited from the datapack's default row.

Concealed

The metabolic burn is derived from the food economy and floors above full

Maintenance weight burn is computed every tick as the hunger you just spent multiplied by 0.0857, which is the exact weight that the food holding your hunger station would have carried. Eat what you spend and you keep your body at any hunger level, not only while stuffed. The deficit term above hunger 100 clamps at -0.5, so a stuffed metabolism slows to a quarter of maintenance rather than banking mass. Your metabolism will never make you heavier. Only food does. Overeating also only deposits the weight the stomach actually accepted, so the portion refused past the 175 ceiling costs sickness and returns nothing.

FRAGMENT 12-C - EXHAUSTION CHIP, BOTTOM RUNG

SUMMARY: At energy 7 or below the tired moodle turns critical. Its flavour line reads "You've embraced the true Matu lifestyle." The advice line on the same chip reads "You are about to pass out from exhaustion. Sleep in a bed."

RESPONSE: Both strings are Java literals in the HUD overlay rather than keys in en_us.json. No moodle text in the mod passes through the lang files at all, so zh_cn carries none of it.

FINAL NOTE: The clinical half of that chip is the half a player actually needs at energy 7, and it is the half that will never leave English.

~/client/hud/DoomedHudOverlay.java:2270-2282; no matching key exists in assets/doomedmatu/lang/en_us.json

Excess

Both bars run well past full, and both punish the excess rather than the act. Hunger caps at 175. Anything above that ceiling converts to sickness at 1.2 times the overflow, and an overflow of more than 3 points carries a 20 percent chance of vomiting on the spot. Eating with dirtiness at or above 75 adds its own 10 percent chance of 8 sickness, whatever the meal was.

Thirst is the dangerous one. Above 100 the drain above that line is taxed by the overdrink multiplier, which defaults to 2, and above 175 the tax is 2.5. Only the portion of a step spent above 100 is taxed, so crossing the line is smooth rather than a cliff.

Past 175 you are in water intoxication. Your head pain climbs toward 50, your brain loses 0.05 health per second, and each second rolls a 1.66 percent chance of seeding forced fibrillation. This is the single most common accidental death on a fresh server, and the shape of it is always the same: a full canteen drunk on top of an already full stomach. A canteen sip is worth 9 thirst and a full six-sip canteen is 54, which is safe from any normal starting point and lethal on top of 150.

The practical rule is the one the in-game record gives. Drink when thirsty. The canteen is the safe part. Chugging refills nobody needed is the part that kills you.

Mood reads both bars continuously below about 40, and above 100 for thirst they stop mattering to it. Over-eating trickles a little mood back above hunger 101, which is the only reward excess ever pays.

In game, this reads

Sweet milk. It hydrates and it cheers you, and too much of it will make you sick.

tooltip.doomedmatu.chocolatemilk

The warning is real, and it points at sickness. The thirst ceiling at 175 appears on no drink tooltip in the mod.

Excess - exact values
QuantityValue as shippedDefined in
Hunger ceiling175 (overflow becomes sickness x1.2)~/body/Consumption.java:25
Vomit roll20% when overflow > 3~/body/Consumption.java:84
Filthy-mouth sickness roll10% for +8 sickness at dirtiness >= 75~/body/Consumption.java:88
Overdrink taxx2 above thirst 100, x2.5 above 175~/body/NeedsHandler.java:82
Water intoxicationthirst > 175: head pain toward 50, brain -0.05/s~/body/NeedsHandler.java:110
Water-poisoning arrhythmia1.66% per second above thirst 175~/body/CardiovascularHandler.java:316
Canteen sip+9 thirst, 6 sips per canteen~/item/CanteenItem.java:50
Concealed

Deep misery hides your hunger and thirst readouts entirely

At mood -50 or below, both need bars are removed from the HUD and both hunger and thirst moodle chips stop appearing. Nothing about the needs themselves changes. You starve and dehydrate on exactly the same clock, you simply stop being told. This models the loss of will to bother with these things, and it means the point at which you most need to eat is the point at which the game stops reminding you. The client config option keepNeedsWhenApathetic set to true restores both.

Water

A canteen filled from open water comes out murky. Aim at a water source and use it to fill, use it again to drink, and use it on a lit heat source to boil it clean. Each murky sip adds between 6 and 14 sickness before the pack's dirty-water multiplier is applied. Clean water costs nothing.

Anything that counts as a lit fire will boil it. That covers the mod's brazier, a powered heater, any campfire, any furnace burning, and a magma block. It is what makes the temperature-tier heat blocks pull double duty as a water purifier.

Contamination survives a top-up, and this is the rule people trip over. Filling a canteen that still holds tainted water writes the whole canteen back to full and keeps the taint, so a single bad sip taken to open a slot buys nothing at a clean pond. Clean water poured into a murky canteen leaves the mixture murky. Boiling it and drinking it dry are the two ways out.

Water drawn inside Cyst territory is worse than murky. It reads as Cyst-tainted, and each swallowed mouthful adds 12 to a hidden spore burden. Three unboiled mouthfuls make the exposure clinically visible, and repeated drinking can seed the parasite outright. Swallowed water is already past anything a respirator can filter. Boiling is the entire counterplay.

Bottled and canteen liquids elsewhere in the mod share a common rate. Clean water is worth 90 thirst per litre, which is where the 9-point sip comes from. Beverages that are also meals, such as milk, cereal and soup, route their food through the same eating path, so they obey the overeating and dirtiness rules exactly as solid food does.

In game, this reads

A refillable canteen. It starts empty, so find something to put in it.

tooltip.doomedmatu.canteen

The tooltip covers filling and stops there. Murky, boiling and Cyst-tainted are all absent from it.

The swallowed dose feeds CystSporeExposureHandler, the same hidden burden the Deep Maw's exhale fills, and the whole route goes inert unless cyst exposure, infection and contagion are all switched on. Threats

Concealed

Contamination survives a top-up, so you cannot launder a canteen

Filling a partly full canteen writes the whole thing back to six sips while keeping any contamination already in it. Clean water added to a murky canteen does not purify the mixture, and Cyst-tainted water stays tainted through any number of refills at a clean pond. Boiling it on a lit fire and drinking it dry are the only two ways out. This exists specifically to close the exploit of swallowing one bad sip to open a slot and then refilling clean.

Ambient set point

The ambient set point starts from a five-band read of the biome. Hot is plus 8 C, warm plus 4, temperate 0, cold minus 4 and freezing minus 10. The band comes from the biome's base temperature, with one override: a biome cold enough to snow at that exact position is forced into the freezing band regardless of what its base number claims. The override is deliberate. A Deep Frozen Ocean has a base of 0.5, which reads as temperate, and used to report a perfectly comfortable body temperature in a place full of ice.

Four modifiers stack on top of the band, in a natural sky-lit dimension only. Thunder is minus 5 and plain rain is minus 3, with an extra minus 2 where the biome is cold enough for it to fall as snow, and weather reaches only what stands under open sky. Night is minus 3 and twilight minus 1. Altitude costs a further 1 C every 24 blocks above Y 100, down to a limit of minus 6.

Cover changes the arithmetic twice. Under a roof the night and altitude terms are cut to 30 percent of their value and a flat 1.5 C is added. Powder snow and snow are the exception: standing inside either flags the position as freezing rather than sheltered, because a cold block sits at head or feet.

Below Y 0 the set point gains 1 C every 24 blocks, up to plus 3, in any dimension. Descending genuinely escapes surface cold.

The finished offset from 37 is then scaled by temperatureSeverityMultiplier, so a pack sharpens or softens every contributor together and cannot accidentally invert one.

Roughly calibrated: an ordinary cold or snowy night settles a body near 34 C, a freezing biome exposed at night near 32 C, and it takes a freezing biome plus storm or altitude to drop under the 31 C frostbite line.

Core temperature is a slow simulation with real thermal mass rather than a readout of the block underfoot. Every rate-based thermal input is divided by 7, giving a time constant of about 44 seconds and full settling in a little over two minutes. A place can be felt turning on you while there is still time to act, and a coat put on before setting out is worth more than the same coat put on once the cold has landed.

Two pulls act at once. Homeostasis drags the body toward 37 C at 0.005 per tick before the mass divisor. The environment drags it toward its ambient set point at 0.003 per tick, divided by insulation. Insulation decides where the body ends up. Thermal mass only decides how long the journey takes.

Illness moves the target instead of fighting it. The worst single infected limb raises the regulated setpoint by up to 2.2 C at full infection, systemic sepsis adds up to 1.8 C, and the two together are capped at 3.5 C. That is why a fever actually reaches the fever bands instead of converging just above normal. An active NSAID lowers the setpoint by up to 2 C, which is what an antipyretic does. Once the body is already hotter than the setpoint, homeostasis pulls it back toward 37 exactly as normal, so a fever and a hot biome cannot stack additively.

Carrying a thermometer turns on a bottom-left gauge: the exact core temperature, plus a hollow marker for where the world is dragging it. The gap between the two markers is the whole of what the climate is doing to you, and it is the only way to confirm the shelter you just built did anything.

Herb crops sample the identical reading through LocalClimateService.suits, so a brazier lit for your own warmth also moves the climate band that a bittermoss patch or a herb bed is trying to grow in. Items, World and Trade

Ambient set point - exact values
QuantityValue as shippedDefined in
Biome bandshot +8 / warm +4 / temperate 0 / cold -4 / freezing -10~/body/LocalClimateService.java:246
Weather offsetsthunder -5, rain -3, snow extra -2 (open sky only)~/body/LocalClimateService.java:38
Night and twilight-3 and -1~/body/LocalClimateService.java:41
Altitude-1 C per 24 blocks above Y 100, floor -6~/body/LocalClimateService.java:43
Depth+1 C per 24 blocks below Y 0, cap +3~/body/LocalClimateService.java:45
Shelternight and altitude x0.3, plus a flat +1.5 C~/body/LocalClimateService.java:47
Thermal mass divisor7 (tau ~44 s, settled in ~2 min)~/body/TemperatureHandler.java:56
Homeostatic pull0.005 per tick before the divisor~/body/TemperatureHandler.java:104
Ambient exchange0.003 per tick, divided by insulation~/body/TemperatureHandler.java:117
Fever setpoint riseup to +2.2 C from infection, +1.8 C from sepsis, capped at +3.5 C~/body/TemperatureHandler.java:108
Antipyretic setpoint drop-2.0 C at NSAID level 50~/body/TemperatureHandler.java:113
Core temperature clamp0 to 60 C~/capability/DoomedData.java:2431
Concealed

Late sepsis inverts your fever into cold shock while the moodle still says fever

Illness normally raises the temperature your body regulates toward. Past sepsis 78 the sign flips: the setpoint offset falls by up to 3.2 C, bottoming out near 35.8 C, deliberately clear of the frostbite band. The heat you have been fighting drains away and frost creeps in, and every signal you have learned to read tells you that you are winning. The chip on the HUD is still a fever chip because the infection contribution is still what named it.

Concealed

A daily upkeep quietly scores four ordinary habits at dawn

Once per in-game dawn, the mod scores four anchors from the day that just ended: getting your dirtiness to 20 or below, eating something with a positive mood value rather than mere calories, sleeping a real night through in a bed, and either treating a wound or spending five minutes near another person. It is failure-tolerant. Two of four still moves you the right way, only a wholly empty day costs you, and a kept streak of three or more anchors makes each good day dig further out of the numbness, up to double after seven days. It grants no capability whatsoever. All it does is take anhedonia down.

Concealed

Metal prosthetics are thermal bridges

When the ambient is below your body temperature, each Mechanical or Titanium prosthetic limb adds 0.00025 per tick of extra pull toward ambient, scaled by thermal mass like every other rate input. A heavily prosthetic body chills far faster in cold and is unaffected in heat, because the term only bites when the environment is dragging you down.

Insulation

Insulation is a divisor on the ambient pull rather than a source of heat. It starts at 1 and adds three things: the total isolation of equipped Doomed wearables, one hundredth of the body weight offset, and worn armour value times 0.02. A full vanilla armour kit is worth about plus 0.4. A full insulation set of fur coat, insulated liner and fur hood is about 2.4 isolation, which roughly halves the drift.

Body fat is insulation, and a lean body sheds heat faster for it. That is the same weight offset that governs everything else, so a wasted body has to work its clothing harder.

Wetness is the term that kills people who thought their gear was enough. While the ambient sits below body temperature, insulation is divided by one plus wetness times 0.02, floored at 0.4. Fully soaked cuts effective insulation to a third. Drenched on a frozen peak, equilibrium falls from about 31.6 C to about 26 C, which is deep hypothermia and real frostbite, while the same drenching on a temperate night only dips to about 34 C. Wet skin also sheds heat directly, at 0.001 C per second per point of wetness.

Wetness itself rises 15 per second while you are in water and 1.5 per second in rain under open sky, capping at 75 from rain alone. It dries at 0.35 per second above 75 and 0.2 per second below. Above 37.5 C core the body sweats, raising wetness to a cap of twenty times the degrees above 37.5.

Fur is a trade rather than a gift. Dry it is worth plus 0.45 insulation, the best in the mod. Soaked it is minus 0.28, crossing over near 62 wetness. It also dries at 0.55 speed, multiplies incoming heat gain by 1.35 in warm ambient, and raises the whole metabolism by 25 percent.

Each metal prosthetic is a thermal bridge, adding 0.00025 per tick of extra cold conduction while the ambient is pulling downward.

In game, this reads

A woven rag (about 16 dry-offs).

Right-click to towel off and shed your wetness -

handy after a swim or a downpour. The cold/mood

debuff still clears the slow way; this just dries you.

tooltip.doomedmatu.dryingcloth

The wetness the rag sheds is the same number that divides insulation here, and the tooltip is honest that clearing it does not undo the cold you already took.

Wetness is a direct mood cost as well as a thermal one: MoodHandler weights it at 0.05 against total happiness, so being soaked shows on the mood chip well before the cold has reached your core. Psychology

Insulation - exact values
QuantityValue as shippedDefined in
Insulation formula1 + wearable isolation + weightOffset x 0.01 + armour value x 0.02~/body/TemperatureHandler.java:200
Wet insulation collapseinsulation / (1 + wetness x 0.02), floored at 0.4~/body/TemperatureHandler.java:225
Full insulation set~2.4 isolation (fur coat 1.2, liner 0.7, fur hood 0.5)~/registry/DoomedWearables.java:139
Wetness rise+15/s submerged, +1.5/s in rain to a cap of 75~/body/WetnessHandler.java:23
Wetness dry-0.35/s above 75, -0.2/s below~/body/WetnessHandler.java:28
Sweat threshold and capabove 37.5 C, wetness cap = (temp - 37.5) x 20~/body/TemperatureHandler.java:126
Fur insulation+0.45 dry, -0.28 soaked, crossover near wetness 62~/body/Trait.java:241

Radiant heat

Radiant sources are scanned in a 3-block cube every 10 ticks and applied straight to core temperature, bypassing insulation entirely. A fire warms through a coat. Each source is weighted by distance, falling to zero at the edge of the scan, and a solid collision block between body and source cuts it off.

Strengths are tiered. Lava and the strong tag are 8 C, the standard tag is 5, medium is 2.5 and weak is 1. The mod's brazier is 5. A powered heater is 7 and a powered cooler is minus 6. Cold sources run minus 3 for strong and minus 1.5 for standard. Any tagged block with a lit state has to be lit to radiate, so an unlit campfire or an idle furnace is worth nothing.

Sources stack, with diminishing returns. The strongest counts fully, the next at half, the next at a quarter, and so on for six entries. The series converges at exactly twice the strongest source however many get built. A well-built room genuinely warms, and a hoard of braziers still cannot cook you.

The taper is the important part. Ordinary warm sources fade out as the body approaches 41 C, so sitting by a campfire all night is comfort and stays comfort. Furnace-class sources taper toward 46 C instead, which is past the 42 C brain line, so standing beside open lava genuinely cooks you. Furnace class is decided by the dominant single source's own strength rather than by the stacked total, so a pile of braziers can never become a furnace.

Being under cover with stagnant air retains up to 25 percent more of whatever conditioning is present, and a loaded Ventilation unit in range removes that bonus.

In game, this reads

An RF heater. Feed it from a cable; while powered it

glows and warms nearby players. A full buffer runs

~4.5 min. The charge rides the block when you mine it,

so carry it charged.

tooltip.doomedmatu.heater

Doomed registers no cable of its own. This is one of seven block tooltips in the language file that tell the player to feed a machine from one.

The heater and cooler are PoweredClimateBlock instances read off their lit state, and the Ventilation unit that cancels the enclosure retention bonus needs no power and no ticker at all. Machines, Power and Fluids

Radiant heat - exact values
QuantityValue as shippedDefined in
Scan radius and interval3 blocks, every 10 ticks~/body/TemperatureHandler.java:162
Source strengthslava/strong 8, standard 5, medium 2.5, weak 1, brazier 5, powered heater 7, cooler -6~/body/LocalClimateService.java:61
Radiant rate0.12 C/s per unit of weighted strength, capped at 1.2 C/s~/body/TemperatureHandler.java:165
Stackinggeometric, 0.5 falloff, 6 deep, converging at 2x the strongest~/body/TemperatureHandler.java:456
Taper ceilings41 C ordinary, 46 C furnace class~/body/TemperatureHandler.java:302
Enclosure retentionup to +25% when sheltered and unventilated~/body/LocalClimateService.java:56
Concealed

Stacked heat sources converge at exactly twice the strongest one

The radiant scan keeps the six largest contributions and sums them geometrically: the strongest counts fully, the next at half, the next at a quarter. The series converges to twice the strongest source no matter how many blocks you place. A well-built room genuinely warms and a wall of braziers still cannot cook you. Separately, whether a warm source is furnace class, and therefore allowed to taper you toward 46 C instead of 41 C, is decided by the dominant single source's own strength rather than by the stacked total. Machines you build regulate; the world's fire kills.

The bands

The moodle tiers are the readable surface. Cold begins below 35.5 C as Chilly, then Cold below 34, Freezing below 32.5 and Hypothermia below 28. Heat begins above 38 C as Warm, then Hot above 39, Overheating above 40.25 and Heatstroke above 41.5. Where infection or sepsis is contributing, those same four chips are renamed Fever through Critical Fever, which says the temperature is a symptom rather than the weather.

The real thresholds sit elsewhere. Above 41 C blood volume falls 0.225 litres per minute. Above 42 C your brain loses 0.5 health per second. Below 32 C the body burns extra hunger and shivers a little heat back. Frostbite accrues below 31 C and thaws above 35.5 C.

Consciousness is capped by a temperature curve, flat at 100 across 33 to 40.7 C, falling to 79 at 30 C and 60 at 20 C, and on the hot side to 50 at 45 C and 27.5 at 52.2 C. Movement has its own curve, flat between 32 and 39 C and losing 4 percent of the cap per degree outside that band, down to half speed.

Cold thins clotting. The penalty starts below 35 C and bottoms at 60 percent of normal clot rate by 30 C. There is a matching reward. Hold the core between 36.5 and 37.5 C for a sustained two minutes and it banks up to 8 percent better clotting. That comfort clock fills at one tick per tick and drains at three, so warmth is banked rather than owned, and it pays for a camp rather than a passing fire.

Mood loses 0.03 per second whenever the core is under 33.5 C or over 40 C.

In game, this reads

Right-click to pull about 4 C of core heat out of yourself. It works in any climate, and it stops at 34.5 C, which is already cold enough to be its own problem.

tooltip.doomedmatu.cold_pack

The 34.5 C stop lands inside the Chilly band listed above, which is what the tooltip means by its own problem.

Both clotting terms live in BleedHandler, so a cold body and a warm camp are changes to how fast a wound seals rather than to temperature itself. Blood and Circulation

Concealed

Warmth is banked over two minutes and spent three times as fast

Holding your core between 36.5 and 37.5 C fills a comfort clock at one tick per tick, reaching full at 2400 ticks, which is two minutes. Leaving the band drains it at three ticks per tick. At full comfort your clotting improves by up to 8 percent. This is the only positive temperature effect in the mod, and it deliberately requires a camp rather than a passing fire. Note the band is narrower than the cold penalty's onset at 35 C, so it is possible to be earning nothing and losing nothing at the same time.

Frostbite

Frostbite accrues below 31 C core only, which is genuine deep hypothermia rather than ordinary cold. Head, neck, eyes, chest and abdomen are exempt. It works on a distance-from-core gradient: hands and feet freeze at full rate, forearms and shins at 0.6, upper arms and thighs at 0.35.

The base rate is 1.6 per second at the onset edge, scaled by how far below 31 C the core has fallen, reaching full depth at 25 C. The WARM_BLOODED trait multiplies it by 0.6 and POOR_CIRCULATION by 1.6.

Above 35.5 C it thaws at 2.2 per second, scaled by warmth and inverted against exposure, so proximal limbs thaw first and the cold recedes outward with the tips last. A heat pack floods 5 C into the core, capped at 38, and strips between 12 and 40 frostbite from each affected limb, weighted the same way.

At 85 frostbite the tissue starts dying. Skin loses 1.2 per second and muscle 0.8 per second, and deep frostbite blocks natural healing entirely while it stays above that line. At 99 frostbite with skin and muscle both at or below 1, the limb is lost. It comes off through the shared dismemberment path, so everything distal to it comes off too, and the stump is dry rather than gushing, because frozen black tissue bleeds nothing like a saw cut. There is no message. The doll, the moodles and the stump are the notification.

Necrosed tissue that never reached the loss point heals normally once thawed.

In game, this reads

Right-click to warm your core and thaw frostbite.

The warmth spreads from the body outward, so the

fingers and toes are the last to come back. Carry these

on long cold treks.

tooltip.doomedmatu.heatpack

The tooltip states the order the thaw runs in and matches the code. The 5 C flood, the 38 cap and the 12 to 40 stripped are not on it.

The loss runs through DismemberService.necroticLoss, the same path a saw or a crushing injury uses, so everything distal comes off with it and the stump enters the ordinary treatment model from there. Injury and Treatment

FRAGMENT 11-A - THE WARM PART, PAGE FOUR

SUMMARY: A four-page field journal entry that writes itself as your extremities freeze. Page one opens "The cold has changed." Page four is written only after a segment comes away, and records "The stump hardly bled."

RESPONSE: Page four is gated on page three, and page three only unlocks when a limb thaws from above 60 frostbite back under it with your core over 35.5 C. Page three is in turn gated on page two, which needs frostbite to have crossed 85. A player who freezes straight through to the loss without ever warming up satisfies none of that chain and gets nothing.

FINAL NOTE: The entry is the only sustained account of frostbite the game will ever give you. Freezing badly enough to lose the finger, and never once getting warm, costs you the record of it as well as the finger.

res/data/doomedmatu/doomed_journal_entries/the_warm_part.json, with the observation gates at body/FrostbiteHandler.java:69-101

Stamina

Stamina runs 0 to 100 and is spent by moving. Sprinting costs 1.2 per second and walking costs 0.1. Both are multiplied by one plus over-encumbrance, and by an armour exertion penalty of 0.017 per armour point up to a cap of plus 40 percent. That penalty applies to movement drain alone, so resting in armour recovers at the ordinary rate. Moving also warms the body by 0.04 C per second, scaled by thermal mass.

At rest recovery is 1.4 per second, multiplied by several factors at once. Energy throttles it directly with a floor of 0.2, so a drained body recovers poorly. Encumbrance multiplies it by one minus 0.7 times overload. Resilience gives a base 1.2 and a further 0.02 per level above 10, capped at 10 levels. Caffeine multiplies regen by 1.5 and cuts movement drain to 0.45.

Recovery is gated on breathing. Respiration has to be at least 2.5 breaths per minute, and underwater without a real air source recovery is zero until stamina is already under 25. Kneeling to hold pressure on a wound counts as work rather than rest: it charges the sprint rate.

The ceiling is not 100 for everyone. It is the higher of 70 and current SpO2, minus 0.30 for every point of lung tar, floored at 25. A lifetime of cigarettes shaves up to 30 off the top permanently.

Falling below 1 stamina slams motor shock to 60, which collapses you. Climbing back above 55 after bottoming out rolls, gated entirely on good mood, for a 20-second Runner's High worth 1.5 times regen and 45 adrenaline. At neutral mood the roll can never come up.

Sitting on any seat entity restores 0.4 stamina per second.

In game, this reads

A hard jolt of energy, stamina and caffeine all at once. You will feel sick for it.

tooltip.doomedmatu.energydrink

Caffeine is the x1.5 regen and the x0.45 movement drain described here. Sickness is the price the tooltip names.

Runner's High pins adrenaline at 45, five points over the level MoodHandler treats as living on fight-or-flight, so the reward for being in good spirits quietly drains mood for the twenty seconds it runs. Psychology

The ceiling is an organ readout wearing a stamina label, taking the higher of 70 and your current SpO2 and then subtracting the tar coating your lungs. Organs

Stamina - exact values
QuantityValue as shippedDefined in
Sprint and walk drain1.2/s and 0.1/s~/body/StaminaHandler.java:33
Rest regen1.4/s base~/body/StaminaHandler.java:37
Armour exertion penalty0.017 per armour point, capped at +40%~/body/ArmorReduction.java:240
Caffeineregen x1.5, movement drain x0.45~/body/StaminaHandler.java:50
Stamina ceilingmax(70, SpO2) - lungTar x 0.30, floored at 25~/body/StaminaHandler.java:155
Exhaustion collapsestamina < 1 sets shock to 60~/body/StaminaHandler.java:76
Runner's High20 s, x1.5 regen, 45 adrenaline, armed below 1 and fired above 55~/body/StaminaHandler.java:40
Exertion moodle tiers70 Tiring / 50 Winded / 35 Exhausted / 15 Spent~/client/hud/DoomedHudOverlay.java:2241
Concealed

Your stamina ceiling is not 100, and cigarettes lower it for good

Stamina is clamped each tick to the higher of 70 and your current SpO2, minus 0.30 for every point of lung tar, with a hard floor of 25. Being hypoxic caps recovery below full, and a lifetime of smoking shaves up to 30 points off the top permanently. The bar simply stops filling short of the end.

Rest

Energy runs 0 to 100 and drains at 0.049 per second while awake. That base is multiplied by an exertion factor of two minus one hundredth of stamina, multiplied again by a mood factor that reaches 2 at mood -100 and shaves up to 20 percent off for genuine happiness. The product of the two is capped at 2.5, so hard, unhappy play asks for a rest roughly every 14 minutes rather than every 8. Sickness adds one plus 0.02 per sickness point. Caffeine cuts the whole burn to 0.7. The DROWSY trait multiplies it by 1.4.

There are three rests, and where the body is lying tells them apart. A vanilla bed at night skips to morning, wakes you at energy 100 with 180 seconds of caffeination, clears any lingering grogginess and lifts mood by 3. A bed in the daytime skips no time, so the rest runs in real time at 14 times base regen and ends at energy 99 with no instant bonus. The nap-anywhere button lies the body down where it stands, and the block directly below decides everything: a bed or any wool is a comfortable nap at 12.75 times regen, waking at energy 90 and leaving only 20 seconds of grogginess, while bare ground is 1.7 times regen, gives up at energy 75, and leaves 90 seconds of it.

A nap also ends early on pain above 40, blood below 2 litres, sickness above 55, cardiac arrest, a hit taken, or a sprint.

Nightmares strike naps only, never a bed. Below mood -40 each lie-down rolls once, the chance ramping from 0 at -40 to 45 percent at -100 and doubled by the NIGHTMARES trait. A nightmare caps energy at 45, leaves 120 seconds of grogginess and costs 4 mood.

Energy also caps consciousness at energy times 4.2, floored at 31, and grogginess caps it at 70 for as long as it lasts.

In game, this reads

Hot and bitter. It quenches thirst, and the caffeine holds fatigue off a while.

tooltip.doomedmatu.coffee

Holding fatigue off is the burn cut to 0.7. The tooltip gives the duration as a while and the code gives a multiplier.

Sleep debt is also an immune penalty the sleep system never mentions: every point of energy below 60 costs 0.45 immunity through PhysiologyFactors, so running yourself down to zero hands the contagion layer 27 points before anything else is counted. Disease and Infection

Rest - exact values
QuantityValue as shippedDefined in
Awake energy drain0.049/s base~/body/EnergyHandler.java:37
Exertion drain cap2.5 combined stamina x mood~/body/EnergyHandler.java:41
Regen multipliersbed 14x, comfortable nap 12.75x, floor nap 1.7x, on a 0.4/s base~/body/EnergyHandler.java:44
Nap wake energy90 on a bed or wool, 75 on the floor~/body/EnergyHandler.java:57
Grogginess left20 s comfortable, 90 s floor, 120 s nightmare~/body/EnergyHandler.java:71
Nap wake triggerspain > 40, blood < 2.0 L, sickness > 55~/body/EnergyHandler.java:61
Nightmare chance0 at mood -40 up to 45% at -100, x2.5 with the NIGHTMARES trait~/body/EnergyHandler.java:96
Tired moodle tiersenergy 35 Sleepy / 25 Tired / 15 Drained / 7 Exhausted~/client/hud/DoomedHudOverlay.java:2270
Energy consciousness capenergy x 4.2, floored at 31; grogginess caps at 70~/body/ConsciousnessHandler.java:45
Concealed

Where you lie down is read from the block directly beneath you

The nap-anywhere button checks the block under your feet against the beds tag and the wool tag. Anything in either is a comfortable nap at 12.75 times regen that wakes you at energy 90 and leaves 20 seconds of grogginess. Anything else at all is a floor nap at 1.7 times regen that gives up at 75 and leaves 90 seconds. Throwing down a single wool block before you lie down is worth roughly seven times the recovery rate. Nightmares can also only strike a nap, never a bed.

FRAGMENT 13-B - ADVANCEMENT doomedmatu:nightmare

SUMMARY: Title: "Woah! It's a reference to... You!!" Description: "Get thrown out of bed by your own head." Icon is a red bed. It announces to chat.

RESPONSE: The grant site refuses beds. The roll happens on napStart only, and the comment beside it states that the bed is the reliable refuge that always rests you. Every player holding this advancement earned it lying on bare ground or on a wool block.

FINAL NOTE: The description was written for behaviour the code either lost or never had. Which of the two, the record does not say.

res/data/doomedmatu/advancements/nightmare.json against body/EnergyHandler.java:116-130

Grime

Grime runs 0 to 100 and accrues from four sources. The passive trickle is one point every 1500 seconds, which is glacial: about 20 hours to matter on its own. Working underground with no Ventilation unit in range adds 0.008 per second, reaching the immunity threshold in about an hour and three quarters of continuous enclosed time. Sweating adds up to 0.045 per second, but only above 37.8 C core and only while actually moving. Breaking soil barehanded adds 0.38 per block, or 0.22 for sand and gravel.

Standing in water strips 30 per second, down to a floor of 10. A Wash Station scrubs to zero anywhere, which is what makes it worth building underground, and leaves 25 wetness behind.

What grime does is the part the bar keeps to itself. From dirtiness 25 upward it transfers into any exposed open wound on a ramp that reaches full strength at 100, raising the recurring infection roll. Disinfecting a limb cuts that transfer to 10 percent. Separately, every point above 50 comes straight off immunity, which raises the risk of everything else in the contagion layer at the same time. At 75 and above, eating carries a 10 percent chance of adding 8 sickness.

Marrow Fever is the one that specifically requires both. It needs real grime and a real open wound at once plus lowered immunity, and either one on its own leaves it unseeded.

The moodles are Grimy above 50 and Filthy above 80, and both quote the live number so it can be read precisely.

Getting dirtiness to 20 or below also scores the WASH anchor of the daily upkeep, described below.

In game, this reads

Right-click to scrub off all your grime.

Works anywhere - no natural water needed, handy underground.

tooltip.doomedmatu.wash_station

Scrubs to zero and works anywhere are both accurate. The 25 wetness it leaves on you is not mentioned.

Both halves of that land squarely in the contagion layer: InfectionHandler subtracts one point of immunity for every point of grime over 50, and reads the same dirtiness figure again when it rolls wound inoculation. Disease and Infection

Notes

  • The starvation catabolism multiplier is 1.5, and the comment that sets it says outright that the eating curves behind that choice are a judgement call and want a playtest. Nothing in reference/ or CHANGELOG.md records the playtest happening, so the number that decides how fast an underfed body eats itself has only ever been checked against a simulation.
  • The reference burger is priced at exactly 0.0857 weight per hunger point, the same rate the metabolic burn is derived from. Eleven of the mod's own authored foods sit below that line and can hold your hunger without ever returning mass at any hunger level, including foliagemeal at 18 hunger for zero weight. reference/REPORT_BOARD_VERIFIED_20260810.md flagged the spread on 10 August and the values in DoomedConsumables are unchanged; whether it is deliberate food design or an unrescaled leftover was never written down.
  • The top heat tier is 8 C, and the doomedmatu:heat_sources_strong tag ships with an empty values list, so lava fluid is the only thing in the game that reaches it. Furnace class is gated on that same 8, which leaves the vanilla furnace, blast furnace and smoker two tiers below the class named after them. Nothing in the source says whether the empty tag is a datapack extension point or an unfinished one.
  • The extra grime you pick up in enclosed, unventilated air is 0.008 a second, and the constant's own comment calls its balance unverified in real play. The Ventilation unit that cancels it takes no power, has no ticker and never wears out, so the pressure ends permanently the first time one is placed.
  • Runner's High can only roll in the tick your stamina climbs back past 55 after bottoming under 1, and bottoming under 1 is what sets shock to 60 and puts you on the floor. Mood above +10 is the sole source of chance, peaking at 35 percent at mood 100. Whether a player has ever been in genuinely good spirits at the moment they got back up from an exhaustion collapse is not something the source can report.
  • reference/TEMPERATURE_DESIGN.md asked for a radiant scan of roughly 4 to 5 blocks throttled to about four times a second; the shipped scan is 3 blocks every 10 ticks. The same document leaves how punishing an exposed freezing night should be as an open question for Matt, and no later document in reference/ answers it.
SUBJ-08

Psychology

Your character's mind is simulated as two separate numbers that most players assume are one. Mood decides how much of what you try actually happens, how fast you walk, how quickly you tire, and whether your body starts hurting itself while you stand still. Underneath it sits anhedonia, a number the game never shows you, which decides whether the pit closes on its own or becomes somewhere you live. Almost everything in this domain is invisible: there is no numbness bar, no self-harm warning, and no on-screen tell that the last-stand roll is reading a mood you had nine minutes ago.

Happiness and mood

Mood is never stored. It is a display of a calculation run fresh, and underneath it sits a slow persistent baseline called happiness.

Happiness moves in fractions per second. While the character is awake it erodes from sickness above 20, from hunger, from thirst, from average pain above 50, from an open bleed, and from a core temperature outside 33.5 to 40 degrees. Standing alone under the night sky, or being anywhere in the Nether without company, costs 0.03 per second. Living above 40 adrenaline costs another 0.02 per second, so a long fight wears a body down while nothing lands on it. Overeating past hunger 101 pays a trickle back. Sleep suspends the whole set of drains, which is why a bad night in a bed is still respite.

Happiness also springs back toward neutral on its own at 0.01 per second, faster when it is negative. Another player, a villager, or one of the character's own tamed animals within 14 blocks multiplies that spring by 1.9. Company is the single largest passive mood mechanic in the mod and the game says so nowhere.

The derived total is rebuilt from scratch every tick. It takes the baseline and subtracts pain at 0.1 a point, sickness at 0.1, radiation at 0.1, hearing loss at 0.2, wetness at 0.05, trauma at 0.525, and 0.2 for every point of blood missing off a 5 litre scale. Hunger and thirst come off on a ramp worth up to 18 each. Opiates add euphoria, or in withdrawal subtract 1.66 times as hard. The whole result is then multiplied by one minus horrified level times 0.005, so a Deep Maw that has recognised you halves your mood outright.

That multiplication is why patching every wound sometimes changes nothing. The baseline is fine. A term no dressing reaches is eating the total.

In game, this reads

A woven rag (about 16 dry-offs).

Right-click to towel off and shed your wetness -

handy after a swim or a downpour. The cold/mood

debuff still clears the slow way; this just dries you.

tooltip.doomedmatu.dryingcloth

Two separate terms are in play. Wetness comes off the derived total at 0.05 a point and the total is rebuilt every tick; a core temperature outside 33.5 to 40 degrees erodes the baseline instead.

The horrified level that scales the whole derived mood is written by ThreatEncounterHandler and by nothing else, so the term you cannot bandage is the Deep Maw's recognition of you. Threats

Happiness and mood - exact values
QuantityValue as shippedDefined in
Automatic drift back toward neutral0.01 happiness per secondbody/MoodHandler.java:44
Drift multiplier with company nearby1.9x, within 14 blocksbody/MoodHandler.java:47-48
Alone at night or in the Nether-0.03 happiness per secondbody/MoodHandler.java:49
Adrenaline above 40-0.02 happiness per secondbody/MoodHandler.java:50-51
Trauma weight on derived mood0.525 per pointbody/MoodHandler.java:59
Horrified scaling of the whole moodx (1 - level x 0.005), so 0.5x at Horrified 100body/MoodHandler.java:63
Concealed

Being near almost anything alive nearly doubles your mood recovery

Another player, a villager, or one of your own tamed animals within 14 blocks multiplies the automatic drift back toward neutral by 1.9. The scan runs once a second and is cached. The same companion flag also accumulates toward the day's Tend anchor at 300 seconds of company, which is worth up to 6 anhedonia at dawn on a full four-anchor day with a streak.

Cost and payback

Mood is wired into four systems, and until recently none of them said so.

The refusal curve is the big one. At mood 0 nothing happens. From 0 to -30 the chance that an interaction simply fails ramps to 15 percent. From -30 to -100 it ramps to 90 percent, and at the floor it takes roughly ten attempts to get one click through. It applies to left-clicks inside Doomed screens and to picking items up off the floor. Keys and escape stay live, so the curve can always be walked out of, and the pickup event re-fires while a player stands on the item, so a refusal costs a fumble rather than the item.

Movement force is scaled by mood clamped into 0.2 to 1.2 and then capped at 1, so the term only ever slows. It starts biting below mood -20 and bottoms out at a fifth of walking speed.

Energy drain is multiplied by one minus mood over 100, which doubles the burn at the floor.

At mood -50 or below, apathy hides your own hunger and thirst moodles and dims the hotbar gauges. The needs themselves carry on exactly as before. You starve on the same clock, and the body panel still reads true. You simply stop being reminded. A client option restores the chips.

Good mood pays back above +10. Energy drain drops to 0.8 times at mood 100. Bottoming stamina and climbing back above 55 rolls for Runner's High at up to 35 percent, which grants 20 seconds of 45 adrenaline and 1.5 times stamina regeneration. MoodBonus also defines a positive-effect duration bonus that nothing in the code calls, so do not count on it.

GrowthSpurtScheduler drops mood through addHappiness with a negative delta every tick of a spurt, and negative deltas skip the anhedonia gate entirely, so a growth spurt lands at full weight on a body nothing else can reach. Transformation

Cost and payback - exact values
QuantityValue as shippedDefined in
Action refusal chance at mood -30 / -70 / -10015% / about 58% / 90%body/MoodRefusal.java:20-28
Movement cap from moodmin(1, clamp(mood x 0.01 + 1.2, 0.2, 1.2))body/MovementCapabilityHandler.java:280
Energy burn multiplier from miseryup to 2x at mood -100body/EnergyHandler.java:176
Apathy threshold (hunger and thirst chips hidden)mood at or below -50client/hud/DoomedHudOverlay.java:718
Runner's High chanceup to 35% above mood +10body/MoodBonus.java:47
Runner's High payout20 seconds, 45 adrenaline, 1.5x stamina regenbody/StaminaHandler.java:40-42
Concealed

At mood -50 the game stops telling you that you are hungry

Apathy removes your own hunger and thirst moodles and dims the hotbar gauges once derived mood is at or below -50. Nothing about the needs changes - they drain on exactly the same clock and the body panel still reads true. You simply stop being reminded, at precisely the point where you are least likely to check manually. There is a client option, keepNeedsWhenApathetic, that restores the chips.

Anhedonia

Before anhedonia existed, mood was derived and self-correcting: patch the wounds, eat, and the pit closed by itself in minutes. Anhedonia is what makes a depression last. It is the most important number in this domain and the game shows it nowhere.

It builds only while derived mood sits at or below -55, and it builds faster the deeper that mood goes. At the floor of -100 it gains 0.125 per second, so roughly thirteen minutes of rock bottom takes a character from nothing to fully numb. It fades once you are genuinely clear of the pit, above mood -40, and then at 0.03 per second - slower than it built. Clearing a full 100 takes the better part of an hour of being all right.

It does exactly one thing, and it was built as the deliberate opposite of a debuff. It multiplies the things that would lift you and leaves the things that hurt you at full strength. Every positive happiness change is scaled down to as little as 0.15 of itself at full numbness, applied inside the setter so every call site inherits it. And the automatic spring back toward neutral slows to 0.30 of normal, which is the load-bearing half. The pit stops closing itself.

Past anhedonia 55 your own hands stop trying. Treating yourself is multiplied down to a floor of 0.55, a reluctance rather than a block. It applies only when you are the one doing the work. Another player's hands are still their own, so a friend can fix what you cannot make yourself care enough to fix properly.

Past anhedonia 80 you are unreachable, and someone sitting with you stops being able to land any of it.

Anhedonia survives death. It is halved and capped at 40 on respawn, so each death diminishes it. Dying is not a cure. The Fragile Mind trait makes it deepen 45 percent faster.

There are two off switches and they do very different things.

/doom off is the whole-condition escape hatch and it is a deliberate two-step for the player themselves. Typing /doom off alone explains that being Doomed is meant to be permanent and tells you the real command. /doom off confirm renounces it: the body is made whole, every vital and wound resets, the body simulation switches off, and you stand back up as a clean vanilla player. An operator can lift it from others with /doom off <players> at permission level 2. On someone who is not currently Doomed it is a no-op, so a Corebound graduate keeps their flag through it.

The server option enableDespair is narrower. With it false, anhedonia is forced to zero and kept there, any lapse pose is cleared, the vigil is dropped, and the spiral's own state - the episode tier, the lockout, the stillness timer, the antidepressant course - all reset to neutral. Anhedonia is zeroed specifically because it now survives death, and with despair off it would otherwise be the one state in the mod that literally could not be removed by any means. SSRI tolerance is deliberately kept, because wiping an overuse penalty with a config toggle would be the exploit.

Happiness and mood keep running with despair off. They belong to the whole simulation rather than to this system, so the refusal curve, the speed cap and the energy burn all still apply.

The purple depression veil and its tendril overlay are gated on the same flag, and so is the tablet's psychological section, which reports DISABLED. The framebuffer shader's despair channels - the gentle colour drain that onsets the moment mood goes negative, and the harsher wobble and jaundiced grade above mood -25 - are computed from mood alone and run regardless of the flag.

For testing, /doomdespair skin, /doomdespair eye and /doomdespair violent force an episode at permission level 2, bypassing both the trigger and the lockout.

In game, this reads

They don't look up.

message.doomedmatu.vigil.unreachable

The line a vigil produces once the patient is past anhedonia 80.

The reluctance is applied in one place: TreatmentService multiplies the normalised treatment quality by Anhedonia.selfCareMult when the healer and the patient are the same player, so every wound-closing action in that domain reads this number. Injury and Treatment

Anhedonia - exact values
QuantityValue as shippedDefined in
Mood at which numbness starts building-55 or belowbody/Anhedonia.java:35
Gain at the floor of the mood scale0.125 per second, about 13 minutes to fullbody/Anhedonia.java:39
Fade rate once genuinely clear (above mood -40)0.03 per secondbody/Anhedonia.java:41
Worth of a positive mood gain at full numbness0.15 of itselfbody/Anhedonia.java:44
Drift multiplier at full numbness0.30body/Anhedonia.java:46
Self-treatment reluctancestarts at 55, floors at 0.55 quality by 100body/Anhedonia.java:157-161
Unreachable threshold80body/Anhedonia.java:159
Carried through deathmin(40, anhedonia x 0.5)capability/DoomedData.java:3952
Self-renunciation/doom off confirm (two-step, no permission needed)command/DoomCommand.java:58-62
Operator lift/doom off <players>, permission level 2command/DoomCommand.java:60-62
Config keyenableDespair, default trueconfig/DoomedConfig.java:2109-2113
What despair-off resetsanhedonia, lapse, vigil, episode tier, lockout, stillness timer, SSRI coursebody/Quiesce.java:169-202
What it deliberately keepsSSRI tolerance and base happinessbody/Quiesce.java:181-185
Early despair film onset in the shaderthe moment mood goes negative; harsher wobble from mood -25client/VisionPostProcessor.java:245-246
Concealed

Anhedonia has no readout anywhere in the game

The single most consequential psychological number - the one that decides whether the pit closes on its own, whether your own hands bother to treat you properly, and whether another player can reach you at all - has no moodle, no bar, no tablet row and no lang string. It is exposed exactly twice: the WITNESS clinical record notes a crossing labelled "Nothing got through" once you pass 80, and the accent colour of your entire interface silently desaturates toward grey of the same luminance from anhedonia 30 upward, reaching 85 percent drained at 100. Legibility and contrast are unchanged. Only the colour goes.

Concealed

Anhedonia survives death; almost nothing else psychological does

On respawn, anhedonia is halved and capped at 40 rather than cleared. Each death halves it again, so it diminishes hard and never spirals, but dying is not a cure for numbness. By contrast happiness is clamped to at most -10 with a floor of -35, trauma gains 10 up to a soft cap of 60, and the antidepressant course, its tolerance, the routine flags, the streak and every vigil counter are all wiped clean.

Concealed

Numbness makes your own hands worse at treating you, but only your own

Past anhedonia 55, every self-administered treatment's quality is multiplied down on a linear ramp to a floor of 0.55 at anhedonia 100. It is applied only when the healer and the patient are the same player. Someone else working on you is unaffected. Past anhedonia 80 you become unreachable, and a vigil held on you produces no mood, no anhedonia relief and no visible lift of your slump - while still charging the comforter their 0.10 happiness per second, because they did sit down and it did cost them.

Antidepressants and opiates

The antidepressant is a course, not a pill. One dose loads 20 into a depot and starts a 14400 tick onset clock - twelve real minutes during which it does absolutely nothing. Swallowing more inside the onset window loads more depot and leaves the wait exactly as long.

Once it takes hold the effective dose is depot minus tolerance. Tolerance rises at 0.05 per second while dosed and falls at 0.02 per second while clean, so chain-eating the bottle stops working inside one session. The depot itself decays at 0.012 per second.

What it hands over is small: a raw happiness lift of up to 0.022 per second, applied raw so the numbness it is treating cannot blunt it to nothing. The real payload is that an active course halves the rate at which anhedonia builds. It does not climb for you. It stops the ground giving way while you climb.

Opiates run the other way, and nobody tells you. While smoothed opiate reception is above 25, anhedonia gains an extra 0.012 per second, up to a ceiling of 70. A habit alone can carry a character to numb-but-not-hollow and no further. Analgesia is untouched, which is exactly why it stays worth taking, and that is the trap: the fog you are dosing for is the thing making feeling harder.

Nicotine withdrawal is a flat subtraction from derived mood by dependence stage: 4, 9, 16 and 25 points. It is present only while nicotine is absent and vanishes when you smoke, so it pulls on mood reversibly rather than draining the baseline.

Mindwipe refuses a sound mind. It goes down only if happiness is at or below -50, or trauma is at least 5, or stroke is at least 5. When it does, it zeroes trauma, stroke, mood and every limb's pain, wipes learned Intelligence, and drops the character unconscious.

In game, this reads

A dose lifts your mood away from despair.

tooltip.doomedmatu.antidepressant

Twelve real minutes pass before the dose does anything at all, and the lift itself tops out at 0.022 happiness per second. Halving the rate anhedonia builds is the effect that matters, and the tooltip leaves it out.

The spiral reads getActualOpiateReception, the same smoothed reception the opiate system computes for analgesia and withdrawal, so tolerance chasing over there quietly sets the anhedonia floor over here. Drugs and Pharmacology

Antidepressants and opiates - exact values
QuantityValue as shippedDefined in
Antidepressant onset14400 ticks (12 minutes) of nothingitem/AntidepressantItem.java:29
Depot per dose20item/AntidepressantItem.java:27
Tolerance rise vs fall0.05/s dosed, 0.02/s cleanbody/Anhedonia.java:53-54
What an active course does to anhedonia gainhalves it (0.5x)body/Anhedonia.java:51
Opiate spiral+0.012 anhedonia/s above reception 25, ceiling 70body/Anhedonia.java:95-99
Nicotine withdrawal mood penalty by stage4 / 9 / 16 / 25capability/DoomedData.java:2016-2023
Concealed

Opiates deepen the numbness while you are on them

While smoothed opiate reception is above 25, anhedonia gains an extra 0.012 per second, stopping at a ceiling of 70. A habit alone can never bottom you out - the rest you have to do yourself. Pain relief is entirely unaffected, which is why it stays worth taking.

The climb out

Three things bring anhedonia down, and one of them takes another person.

The routine scores four daily anchors once per dawn, tracked off the character's own stored day number so joining mid-day or standing in a dimension with no day cycle still behaves. Wash means getting dirtiness to 20 or below at some point today. Eat means eating something that was worth eating. Rest means a real night in a bed. Tend means treating a wound, yours or someone else's, or spending 300 seconds near another person. The dawn payout by score is +4, 0, -1, -3, -6 anhedonia for zero through four anchors, plus a small raw mood gain of +2 or +4 at three or four. Only a wholly empty day charges you.

A kept streak doubles the relief: at three or more anchors the streak grows, and at seven days each good day digs twice as far out. The deficit is never streak-scaled, so a long streak cannot be spent as a licence to stop, and a wholly empty day resets it.

The voluntary sit is the fifth anchor. Crouch, still, for 160 ticks - eight seconds - and the character sits down deliberately. While held it bleeds anhedonia at 0.06 per second, hard-capped at 9 per day, so about two and a half minutes of sitting is the whole day's worth.

The vigil takes two people. A second player has to crouch within 4 blocks with an empty main hand, keep the patient in line of sight at a facing dot of 0.85 or better, and stay there for 600 ticks - thirty real seconds - while the patient's mood is below -60. Then the patient's mood climbs at 0.55 per second and their anhedonia falls at 0.01 per second, both raw. It costs the comforter 0.10 happiness per second. A comforter whose own mood is at or below -25 has nothing to give, though the freeze on the patient's self-harm spiral still applies. It saturates hard: five minutes of accumulated vigil decays the rate to 15 percent.

In game, this reads

You stay where they can see you.

message.doomedmatu.vigil.comforter

A facing dot of 0.85 or better is what "where they can see you" means in code, held for 600 ticks from within 4 blocks.

Two of the four anchors are owned elsewhere: WASH samples dirtiness at or below 20 every tick, and EAT is marked from FoodItem only when that food's configured mood value is positive, so calories alone never count. Needs and Survival

The climb out - exact values
QuantityValue as shippedDefined in
Daily anhedonia payout by anchors kept (0 to 4)+4, 0, -1, -3, -6body/RoutineHandler.java:47
Streak to full doubled relief7 daysbody/RoutineHandler.java:44
Voluntary sit: arm time, rate, daily cap160 ticks, 0.06 anhedonia/s, 9 per daybody/LapseHandler.java:57-60
Vigil requirementswithin 4 blocks, look dot 0.85, patient mood below -60body/VigilHandler.java:44-47
Vigil arm time600 ticks (30 seconds)body/VigilHandler.java:49
Vigil payout and cost+0.55 mood/s and -0.01 anhedonia/s to the patient, -0.10 mood/s to the comforterbody/VigilHandler.java:51-53
Vigil saturation6000 held ticks decays the rate to 15%body/VigilHandler.java:57-58
FRAGMENT 05-C - VIGIL, NO RESPONSE

SUMMARY: A second player crouched within four blocks with an empty main hand and held the look past 600 ticks. The vigil armed. The patient was sitting at anhedonia 82.

RESPONSE: One line went to the comforter: "They don't look up." No mood moved. No numbness came off. The broadcast slump did not lift, so nobody else in render distance saw anything change either. The comforter's own happiness was debited at 0.10 per second for as long as they stayed down.

FINAL NOTE: The freeze on the self-harm ladder had already applied, one branch earlier, before the unreachable check. The line fires only on the arming pass. Stay another ten minutes and the game says nothing further while continuing to take the payment.

assets/doomedmatu/lang/en_us.json, key message.doomedmatu.vigil.unreachable; body/VigilHandler.java, the Anhedonia.unreachable branch.

Trauma

Trauma is a separate 0 to 100 value that feeds mood at 0.525 a point. It is carried by the character rather than by any limb, which puts it out of reach of every dressing in the mod.

It accrues while adrenaline-masked average pain is above 50 and the character is conscious, at pain times 0.0034 per second. At pain 100 that is a third of a point per second. Outside those conditions it decays at one fifteenth of a point per second, which is one point every fifteen seconds, and that rate is the only rate there is.

Dying adds 10 trauma, but only up to a soft cap of 60. A death cannot push you past that. Pain can. Death also clamps happiness to at most -10, with a floor of -35, so you never respawn cheerful and never respawn at the bottom.

Eating human flesh adds 8 trauma for the first meal and 1.5 more for each previous one, capped at 24 per meal, and costs 22 mood plus 3 per previous meal, capped at 52. The counter is persistent and survives death, so repetition makes it worse rather than cheaper.

Dismemberment adds trauma scaled by the tool. Watching an organ harvested does too, through the corpse-witness path, which costs 3.5 mood and 6 sickness scaled by a desensitisation multiplier that shrinks by 10 percent each time - gore stops landing after about nine bodies.

The moodle tiers are trauma above 25, above 45 and above 80. The last one matters mechanically: above trauma 80 the character stops speaking entirely. Silence from a badly traumatised body is the system working.

In game, this reads

Harvested from a landed severed limb with a Foraging Knife or Bone Saw.

Very filling, but psychologically devastating and medically unsafe.

Every portion permanently marks the character and increases the next cost.

Cooking reduces sickness and sepsis; spoilage risk is shown above.

tooltip.doomedmatu.raw_human_flesh

"Permanently marks the character" is the persistent counter: 8 trauma for the first meal, 1.5 more for each one after it, and it survives death.

C2SHarvestOrganPacket calls seeCorpse on the surgeon and on every other Doomed player within 8 blocks, so an organ harvest bills the whole room the 3.5 mood and 6 sickness and advances everybody's desensitisation multiplier by a tenth. Organs

Trauma - exact values
QuantityValue as shippedDefined in
Trauma accrualpain x 0.0034 per second, while pain is above 50 and consciousness is above 1. The consciousness gate is TRAUMA_CONSCIOUS_GATE = 1, so a body at consciousness 10 is unconscious by every other gate in the mod and still banks trauma.body/PainHandler.java:80-87
Trauma decay1 point every 15 secondsbody/PainHandler.java:85
Death adds+10 trauma, soft-capped at 60capability/DoomedCapabilityEvents.java:30-31
Death clamps happiness toat most -10, floor -35capability/DoomedCapabilityEvents.java:28-29
Cannibalism cost8 to 24 trauma, 22 to 52 mood, worse each mealbody/CannibalismService.java:26-28
Corpse desensitisation-3.5 mood, +6 sickness, x0.9 each timecapability/DoomedData.java:2867-2871
Speech cut off abovetrauma 80body/QuipHandler.java:57

The despair ladder

The self-harm ladder has three rungs and the lowest one barely registers as an event.

Scratching starts at mood -45. Each tick rolls a chance that scales from nothing at the threshold up to about one in a thousand at mood -90, which is roughly once every fifty seconds at the worst. It only ever picks a wound that is already open and untended: a limb that is still attached, unstitched, and either bleeding or carrying a deep wound. Each scratch adds 2.5 bleed, removes 1.5 skin health and adds 4 pain. The damage is in the drip rather than the hit, and stitching a wound removes it from the pool permanently.

The episode spiral starts at mood -70 and needs stillness. A timer builds while the character is conscious above 20 and moving less than 0.05 blocks per tick horizontally. It builds at 2.5 per second below mood -75, and 1.875 per second between -70 and -75, and it fires at 30. That is about twelve seconds of standing still at the bottom, or sixteen higher up. Moving bleeds it back at 5 to 7.5 per second, so a step is a genuine reset.

Three things stop the entire ladder dead, scratching included. A vigil held on you freezes it. So does a lapse, because the stillness the spiral watches for is exactly the stillness a lapse is made of. So does a post-episode lockout, for as long as it counts down.

You can hear it coming. The dread drone swells with the same windup the server is counting, and at windup 28 - two points under the trigger - a sharp sting fires and the drone cuts to dead air for 0.7 seconds. The screen darkens with it: a black fill ramps in from windup 20. Below mood -90 a separate radial vignette closes in from the edges even while you are fully conscious.

Stand still for 100 ticks with mood at or below -45 and the character stops holding themselves together. Their head goes down, or they sit on the ground, or they put their hands over their face, or they wrap their arms around themselves.

The lapse charges nothing. Health, stamina, speed and any action in progress all carry on untouched. It ends the instant you move, and the pose eases back out over about a tenth of a second, so the character answers immediately.

The idle check reads more than position. Sprinting, swimming, elytra flight and riding all disqualify, and so does having a Doomed screen open - a player forty seconds into suturing their own thigh is idle by any movement test, and a character who slumps over mid-surgery would be a bug. Consciousness above 20 is required, and a downed character is excluded.

Which shape a character falls into is fixed per character rather than random. Below anhedonia 45 it is only the head going down. Above it, the player UUID decides permanently between sitting, hands to the face, and arms wrapped, so a given character reads as having their own way of doing this.

Everybody in render distance sees it, because the pose rides the broadcast posture channel rather than sitting as a local effect. That channel also carries the ordinary slump, which is the worst of pain over 100, negative happiness over 100, low consciousness and stroke. A vigil held on you multiplies the despair half of that by 0.4, so your head visibly comes back up for the whole server. Other people can see that someone is sitting with you.

In game, this reads

A hopeless drone

subtitles.doomedmatu.despair

The drone is a live readout of the windup counter the server is holding. At 28 it cuts to dead air for 0.7 seconds, two points before the episode fires.

Every rung is paid in blood - 2.5 bleed per scratch onto a wound that was already open, 6 to 10 for a standard episode, 45 to 60 for a severe one and 60 to 90 plus another 20 for the raked face - all in the same 0 to 100 bleed units the circulation model drains from. Blood and Circulation

The despair ladder - exact values
QuantityValue as shippedDefined in
Scratching onsetmood -45 or belowbody/DespairHandler.java:36
Scratch cost per hit+2.5 bleed, -1.5 skin, +4 painbody/DespairHandler.java:40-42
Episode spiral onsetmood -70 or belowbody/DespairHandler.java:45
Stillness timer trigger30, built at 2.5/s below mood -75 (about 12 seconds)body/DespairHandler.java:50, 141-148
What counts as stillunder 0.05 blocks per tick horizontal, consciousness above 20body/DespairHandler.java:52-54
Audio warning thresholdwindup 28, sting plus 0.7 seconds of dead airclient/sound/DoomedAmbientAudio.java:355-360
Rock-bottom vignettemood -90 or belowclient/hud/VisionEffectsOverlay.java:1040
Idle time before the body gives up the pose100 ticks (5 seconds)body/LapseHandler.java:50
Mood at which the lapse can happen-45 or belowbody/LapseHandler.java:52
Anhedonia at which deeper poses appear45body/LapseHandler.java:54
Stillness epsilon0.015 blocks per tickbody/LapseHandler.java:63
Vigil lift on the broadcast slumpx0.4body/VigilHandler.java:66
The lapse also freezes the whole self-harm ladderscratching includedbody/DespairHandler.java:124-127
Concealed

The self-harm trigger is roughly twelve seconds of standing still

Below mood -70 a hidden stillness timer builds at 1.875 per second, or 2.5 per second once mood drops below -75, and fires an episode at 30. Standing still at the bottom therefore gives you about twelve to sixteen seconds. Moving bleeds the timer back at 5 to 7.5 per second, so a single step resets most of it. The dread drone and the darkening screen are a real-time readout of that exact counter, and the sting that fires at windup 28 lands two points before the screen opens.

Episodes

When the timer fires, the game checks the inventory first. A plushie carried anywhere in it is destroyed, you gain 15 happiness raw, and a 240 second lockout starts. No harm at all. This is the only pre-emptive counter to an episode and nothing in game mentions that it exists.

Otherwise the tier is chosen by mood. Above -90 it is a standard skin episode: one cut on a random limb other than the head or an eye, costing 35 skin health, 13 muscle, 6 to 10 bleed and 20 to 30 pain, returning 8 happiness raw and a 180 second lockout.

Below -90 it is severe. If mood is at or below -94, an eye is still present, and a coin flip comes up, an eye episode runs. With both eyes intact this becomes the violent variant: the face is raked at least ten times, head skin goes to zero, head pain goes to 100, the head takes 60 to 90 bleed plus another 20, adrenaline jumps 50, and exactly one random eye is removed. Never both. Otherwise the severe skin variant takes a major limb for 70 skin, 30 muscle, 45 to 60 bleed and 25 to 35 pain. Severe episodes carry a 300 second lockout.

The relief numbers were deliberately raised above the source values - 22 for a severe skin episode and 26 for an eye - and all of them are applied raw, bypassing the anhedonia reward gate. Scaled, self-harm would be the most reward-efficient action available to a numb body.

The episode itself is a full-screen minigame that runs to a conclusion whatever you do. A clawed hand chases your cursor and jitters. You resist by clicking, but each click only kicks the hand harder, and after about fifteen clicks it breaks and a cut lands. Sit there and the hand descends on its own every 0.8 seconds. The severe skin tier cascades five cuts.

In game, this reads

Hold it to soothe a despair episode; ruined when used.

tooltip.doomedmatu.plushie

It does not have to be held. The check scans the whole inventory, and it runs before the mood tiers, so the plushie pre-empts the episode rather than soothing one already running.

Concealed

A plushie in your inventory converts an episode into comfort

When the timer fires, the game scans your whole inventory for a plushie before anything else. If it finds one, the plushie is consumed, you gain 15 happiness applied raw, and you get a 240 second lockout. No wound, no minigame, no eye. This is checked before the mood tiers, so it works even at mood -100 where the violent both-eyes episode would otherwise run.

FRAGMENT 07-A - TOAST DURING AN EPISODE

SUMMARY: Mood -96, an eye still present, the coin flip came up. The violent variant ran: ten face rakes, head skin to zero, head pain to 100, one eye removed.

RESPONSE: DoomedAdvancements.tick watches the state and not the cause, so isEyeGone read true on the next body tick and awarded eye_lost. Its display block carries "title": "You'll Shoot Your Eye Out" and "announce_to_chat": true. Every player on the server got the line.

FINAL NOTE: The advancement was written for shrapnel and a Neural Booster. The grant path has no way to tell those apart from a despair episode, and nothing in the record shows the overlap was weighed when the episode tiers were tuned.

data/doomedmatu/advancements/eye_lost.json; body/DoomedAdvancements.java, the isEyeGone check in tick(); body/DespairHandler.java, TIER_VIOLENT.

Speech

The character talks to themselves. A shared cooldown advances every tick while conscious, and the game walks a fixed priority list of about thirty-three conditions, firing the first one whose condition holds and whose own cooldown has elapsed. Severe lines sit at the top and re-fire soonest: agony at pain above 80 with a 100 tick cooldown, suffocation below respiration 6 at 160, and the dying line at 240. Ordinary complaints sit at 600 to 2400 ticks. Feeling good is deliberately last in the walk and carries the longest silence of any line at 2400 ticks, and it re-checks the whole body rather than trusting its position.

The same line twice in a row is blocked, with agony, suffocation and the dying line exempt. After 2400 ticks of silence the memory of the last line is forgotten so it can be said again.

Speech is cut off entirely in four states: consciousness at or below 5, brain at or below 50, trauma above 80, or mood below -75. The brain gate is worth noting, because the brain-damage line fires from brain 95 downward and then the character goes silent at 50 - the complaint about not being able to think stops exactly when it becomes true.

Flat affect is the part nobody works out. As anhedonia climbs, the character stops narrating themselves from the bottom of the list up. At anhedonia 40 the comfort complaints go: tired, hungry, thirsty, cold, warm, gloomy, confused, sick, and the two lines about ruined skin and dead muscle. At anhedonia 72 the lines about how you feel go too: miserable, depressed, sad, exhausted, starving, dehydrated, very sick. Being happy is grouped with those, because a numb body can still be having an objectively good day and simply stops being the kind of person who mentions it. What survives is damage and dying. Whatever a body would still scream about is left in.

Hunger complaints are additionally scaled by mood: the thresholds are multiplied by one plus mood times 0.009, so a wretched body only mentions food when it is genuinely starving.

Speech - exact values
QuantityValue as shippedDefined in
Speech gateconsciousness above 5, brain above 50, trauma at or below 80, mood at or above -75body/QuipHandler.java:166-168
Flat affect: comfort complaints stopanhedonia 40body/QuipHandler.java:29
Flat affect: lines about feeling stopanhedonia 72body/QuipHandler.java:30
Fastest re-firing linesagony 100 ticks, suffocation 160, dying 240body/Quips.java:38-47
Silence before a line can repeat2400 ticksbody/QuipHandler.java:32
Hunger complaint scalingthreshold x clamp(1 + mood x 0.009, 0, 1)body/QuipHandler.java:221
Wakeup gaspfires 1 second after coming to, only if pain is under 21body/QuipHandler.java:110-116
Concealed

Flat affect silences your character by category, not by volume

At anhedonia 40 the comfort complaints stop firing: tired, hungry, thirsty, cold, warm, gloomy, confused, sick, and the lines about ruined skin and dead muscle. At anhedonia 72 the lines about feeling stop too: miserable, depressed, sad, exhausted, starving, dehydrated, very sick, and being happy. Lines about damage and dying are never suppressed. Separately, speech is cut off entirely at trauma above 80, brain at or below 50, or mood below -75.

FRAGMENT 09-B - ONE GOOD LINE

SUMMARY: The quip walk reached its final entry with nothing more urgent true. Mood above 45, pain under 10, no bleed at all, hunger and thirst both above 50, sickness at zero, brain at 95 or better. Cooldown 2400 ticks, the longest in the table.

RESPONSE: "Nothing hurts. I'd forgotten that was allowed." The key re-checks the whole body rather than trusting its position in the list, so a player bleeding out cannot fall through to it while a bleed line is still cooling down.

FINAL NOTE: It sits in the FEELING set, which flat affect switches off at anhedonia 72. A body most of the way out of the pit can be having a genuinely good day and never mention it. The author's comment beside it calls happiness the first thing flat affect takes, though in the code the comfort complaints go thirty-two points earlier.

body/Quips.java, the "happy" pool and FEELING_KEYS; body/QuipHandler.java, the "happy" case and FLAT_FEELING_ANHEDONIA.

Brain damage

Text corruption is a purely local render effect keyed off your own brain value. It holds at exactly zero until brain falls to 20 - that is 80 percent brain damage - and then ramps linearly to a per-character replace probability of 0.85 at brain 0. At brain 10 roughly 43 percent of letters and digits are swapped for a symbol from a small punctuation set.

Only letters and digits are corrupted, so spaces and punctuation keep word shape, and formatting codes are skipped so colours survive. It is deterministic by character position, so the same letters corrupt the same way every frame instead of flickering, and the corrupted set grows monotonically as brain falls. The underlying strings are untouched: typing and clicking still work, the text is just hard to read. It is forced off entirely during a Last Stand, because the alarm and the triage line arriving as noise would defeat the whole feature.

Separately, below brain 95 a thirty-second timer rolls a battery of afflictions. Every roll is gated on a random value exceeding brain divided by 100, so at brain 90 each is about 10 percent likely and at brain 10 about 90 percent. A confused shout at 75 percent secondary chance. Reversed movement controls at 80 percent. A fumble that drops your held slot, your offhand and the next hotbar slot at 75 percent each. And a screen flash with a sound if you are conscious above 20.

Collapse is the harsh one and it is gated separately: 0 percent above brain 60, ramping to 40 percent at brain 0. It is telegraphed 100 ticks - about five seconds - ahead with a flash and a cry before the floor comes, and it sets shock to at least 20.

The whole battery is skipped during an active Last Stand.

Brain damage also feeds the framebuffer: chromatic separation ramps at 0.012 per point below 100, and static grain has its own client slider, so it can come down without flattening every other effect.

Concealed

The last-stand survival roll reads a mood from nine minutes ago

Every 60 seconds your derived mood is pushed into a ten-slot ring buffer. When your brain reaches zero, the reprieve roll reads slot nine - your mood from roughly nine minutes earlier, not the mood you had while collapsing. That value is smoothstepped across the range from a 10 percent chance at the most despairing to a 70 percent chance at the most hopeful, with about 40 percent at neutral.

Concealed

Text only starts scrambling at 80 percent brain damage

The corruption probability holds at exactly zero until brain health falls to 20, then ramps to 0.85 at brain 0. It is deterministic by character position, so the same letters corrupt the same way every frame and the corrupted set only ever grows as your brain falls. It is forced off entirely for the duration of a Last Stand so the window's alarm and triage line stay readable.

Threat states

These are the Deep Maw states and they progress in a strict order that admits no skipping.

Impending Doom is proximity only, and it is deliberately independent of sight - stone conceals the animal, not the fact that something enormous is closing through the cave. The level runs from 2 at the outer boundary of the Maw's territory up to 50 at the redline, on a squared closeness curve. Adrenaline is floored between 30 and 68 across that range.

Horrified requires two things at once: the Maw has confirmed you as prey, and you have a real server-clipped line of sight to it. The check ignores where the camera is pointed. It sets the level to 100 and floors adrenaline at 85. Recognition latches for as long as that exact entity remains your active in-range encounter, so leaving the territory and coming back correctly restarts you at Impending Doom.

Focused is earned. You must have dealt at least 10 percent of that specific Maw's maximum health in accepted post-mitigation damage, credited per player and stored on the entity itself. Two players attacking the same Maw, or one player meeting two Maws, progress independently. It replaces Horrified rather than stacking beside it, and floors adrenaline at 90. Hitting anything else earns nothing toward it.

The hidden cost is in mood. Horrified level multiplies your entire derived mood by one minus level times 0.005, so a Horrified 100 halves whatever your mood was. All the aura levels decay by 1 per tick toward zero once you are clear, so a full 100 takes five seconds to bleed off.

Ordinary adrenaline is separate and comes from the proximity handler: three or more hostiles within 12 blocks, or one hostile with max health above 25, floors adrenaline at 45. A hostile with max health of 150 or more within 100 blocks floors it at 80. An arrow passing within 1.65 blocks of your chest floors it at 60, once per second. Remember that adrenaline above 40 costs happiness at 0.02 per second.

In game, this reads

Something commits to the hunt

subtitles.doomedmatu.deep_maw_confirm

The confirmation is half of Horrified. The other half is a real server-clipped line of sight to the animal.

Threat states - exact values
QuantityValue as shippedDefined in
Impending Doom level range2 at the boundary to 50 at the redlinebody/ThreatEncounterHandler.java:180-184
Focused requirement10% of that Maw's max health in damage, per playerbody/ThreatEncounterHandler.java:38
Adrenaline floors30-68 impending, 85 horrified, 90 focusedbody/ThreatEncounterHandler.java:133-148
Aura decay1 per tick toward zero (100 clears in 5 seconds)body/MoodHandler.java:39
Crowd and heavyweight thresholds3 hostiles within 12 blocks, or one above 25 max healthbody/ThreatHandler.java:28-31
Boss heuristicmax health 150 or more within 100 blocks, adrenaline 80body/ThreatHandler.java:29-33
Arrow near misswithin 1.65 blocks, adrenaline 60, once per secondbody/ThreatHandler.java:34-36

The imaginary friend

Taking the Schizophrenia trait gives you a voice. The trait costs zero points on purpose, because nobody has judged it yet - a friend that turns out useful would be a perk handed out as a flaw, and one that turns out miserable would be a flaw nobody could afford.

Which friend is yours is derived from your character UUID, so it never changes, survives death, and is the same answer on every server with the same datapacks. The friend speaks to your action bar rather than to chat, and its voice is sent to you alone at your own position, so anybody standing next to you hears silence. Right now the voice is the whole of it. The trait description promises other people can see yours, and the body and the entity behind that promise have yet to be built.

It will not talk more often than every 900 ticks - 45 seconds - and when it has nothing to react to it goes quiet for somewhere between 45 and 200 seconds.

It reacts to five situations, checked in order: a Deep Maw within 48 blocks, being downed, blood volume below 3.2 litres, stateful happiness at or below -50, and idle. Only one in three idle checks produces a line at all.

The hazard warning lies one time in five, and it lies in both directions. Twenty percent of the time there is no Maw within 48 blocks, it will tell you there is one. Twenty percent of the time there genuinely is one, it says nothing about it and falls through to whatever else is true about your body. It reports what it thinks rather than what it checked. A voice that is always right would be a radar.

Every friend is a single datapack file under data/<namespace>/doomed_imaginary_friends/. One file plus one sound event makes a new character exist with no code and no rebuild, and a resource pack can replace the voice of a friend somebody else wrote. One ships with the mod as the template.

Concealed

The imaginary friend is wrong one time in five, in both directions

The Deep Maw warning does not check whether it is right. Twenty percent of the time it invents a Maw that is not there, and twenty percent of the time a Maw genuinely is within 48 blocks and the friend says nothing about it, falling through to whatever else is true about your body. It also cannot warn you about anything more than 48 blocks away.

Notes

  • Below mood -70 the involuntary lapse arms after 100 ticks of stillness, and DespairHandler bails the moment it sees one, zeroing the episode timer. The timer needs 240 ticks to reach its trigger. The twelve-second countdown can therefore only complete while something suppresses the lapse and not the timer: a Doomed screen open (uiBusy blocks one handler and not the other), riding an entity, or drifting between the two handlers' different stillness epsilons of 0.015 and 0.05 blocks per tick. Both freezes are documented as deliberate. Neither javadoc mentions the other, and whether the collision was intended is written down nowhere.
  • The dread drone and the darkening screen are computed on the client from synced mood, local movement and the synced lockout. The client is never told that a vigil or a lapse has frozen the server ladder, even though lapse kind is already on the wire for the pose. So the windup keeps climbing and the sting still fires at 28 with nothing behind it. Whether anyone has heard that happen in a live session is not recorded.
  • DeathHandler says outright that the source's survival curve was a Unity prefab inspector value that never made it into the decompile, so the smoothstep from 10 percent to 70 percent is an approximation of a shape nobody has. Separately, resetVitals zeroes the ten-slot mood ring, which leaves a fresh character reading a stored 0 - a flat 40 percent - for their first nine minutes of life. Neither the curve nor that opening window can be checked against the original.
  • THE_BOTTOM specifies anhedonia rising from mood -60 at between 0.015 and 0.040 per second, falling only through the upkeep and by 0.004 per second near company. The shipped code starts at -55, peaks at 0.125 per second, fades at 0.03 per second on its own and has no company term at all. The build rate is three times the spec's ceiling. No commit message, javadoc or reference note records the retune, and the spec's own estimate of 7.5 real hours to wait back up from -80 works out at under an hour against what actually shipped.
  • The same spec makes the WITNESS tablet's NEURAL section "the one and only place the system is explained" - four filled or hollow squares, a streak count, an "Anhedonia 62 BLUNTED" row. Anhedonia is synced to the client. Its only client reader is the accent desaturation in DoomedUiTheme. The tablet page prints mood, trauma and adrenaline and says nothing about numbness or the routine, while the overview row above it reports PSYCHOLOGICAL as DISABLED whenever the server has despair off, over a mood number the same screen keeps printing live. Cut or missed is not recorded.
  • The one shipped imaginary friend names doomedmatu:vocal_friend_waits as its voice. That id appears in the datapack file and nowhere else - not in sounds.json, not in the registry - so the lookup in speak() returns null and the friend falls through to action-bar text alone. It has never made a sound. Whether the recording was never delivered or the registration was simply missed, the record does not say.
SUBJ-09

Transformation

Doomed asks you two questions before it lets you play, and the answers are permanent for that character. The first is which run you are on: Endless, where the body simulation never ends and never changes you, or C.A. #DR-01, where horns and a tail grow through you across four growth spurts and the run has an ending. The second question is only asked on Endless, and it is what your body is made of - a perk-and-flaw build where perks cost points, flaws pay them, and you start with nothing. This page covers both, plus the Refusal Sequence that closes out a #DR-01 run and the Corebound state on the far side of it.

The two runs

The mode question is asked once per character, on a screen with two buttons: Endless and C.A. #DR-01. It comes before the ritual, and it comes even when the ritual intro is skipped, on the reasoning that skipping a cutscene should quietly decide nothing.

Endless is the health simulation with no ending. Transformation progress stays at zero and the growth spurt scheduler sits idle. No stage ever steps up. The Refusal Sequence and Corebound belong to the other mode entirely. Keep the body alive until it beats you, and that is the whole of the run. It is the default, and it is what most installs are for.

C.A. #DR-01 is the finite run. Progress ticks up while you play, the body changes in four stages, and the arc terminates in the Refusal Sequence and then Corebound. It is also the only mode that can complete the Corebound subclass in the companion RPG mod, since that unlock fires off the transformation finishing.

The gate is one line in the body simulation: the growth spurt scheduler ticks only when the mode transforms. Everything downstream inherits from that. Force-write transformation progress onto an Endless character with a command and it sits where it was written, advancing nowhere.

This is the arc, not the art. The body sprites are a separate cosmetic choice in the Customization panel and both modes leave it alone. Endless keeps the anthro body available, and #DR-01 leaves it optional.

Once you are Corebound the mode is frozen for good. Before that an operator can move a character with /doom mode, and the transformation resumes or stops where it stood.

The budget

An Endless run gets a second screen after the mode question. Two columns: perks in green on the left, flaws in red on the right. Hovering anything shows the flavour line and the exact arithmetic underneath it.

The rule is one sentence. A perk costs points, a flaw gives them back, and the starting budget is zero, so every perk is paid for by agreeing to be worse at something else for the rest of that character's life. The confirm button stays dark while you owe, and it says how much: "You owe 3 - pick a flaw". An empty list is a valid answer, and the button reads "Stay as you are".

Worth stating plainly, because an older version of the system worked differently. Traits were two switches with no budget, on the reasoning that claws and fur each carry their own cost inside themselves. That reasoning collapsed the moment a straight gain like "start with more Intelligence" joined the list, so everything is priced now. The internal costs stayed on top of the point price. Fur is genuinely dangerous when wet whether or not two points were paid for it.

The budget is a server setting. traitStartingBudget defaults to 0. Raise it for a softer run where a perk or two comes free, or set it negative and players start owing flaws before they are allowed in.

The whole system has an off switch too. Disabled, the pick screen is skipped, and a character who already picked keeps the stored mask while every effect goes flat - claws that do not mine, fur that does not insulate, every multiplier back at 1. Switch the option on again and that character's exact build comes back.

Perks

Seven perks, priced 2 to 4 points. Every number below is read by a live handler; nothing on this screen is decorative.

Claws (4) tear into wood and the softer stone family barehanded, at up to 2.2x break speed, and set a floor of 2.5 damage on healthy empty-hand attacks. Both uses blunt the claws.

Fur (2) is the best insulation in the mod while dry and worse than bare skin once soaked. Details below.

Bright (3) starts a character at Intelligence +4. Intelligence gates the hardest surgery in the game and trains slowly, so four free levels are worth three points.

Hardy (3) starts a character at Resilience +4 - stamina regeneration otherwise earned through pain.

Steady Hands (3) cuts the pain tremble in every treatment minigame to 0.55x. The pain stays; only the shake comes down, so stitches and splints land closer to where they were aimed.

Strong Constitution (3) is Immunity +18, on the same 0-100 scale infection is scored against. Wounds take infection less readily and diseases have a harder time getting in.

Warm Blooded (2) accrues frostbite at 0.6x. It buys time before the extremities go, and that is all it buys - the body is no warmer for it.

Bright and Hardy are handled as real experience grants rather than display offsets, and the mod tracks exactly how much bonus experience it handed over, so removing the trait can take back that much and no more.

Fur is a straight line between two numbers rather than a switch. Dry it gives +0.45 insulation, the strongest in the mod. Soaked it gives -0.28, worse than wearing nothing at all. The value interpolates linearly with wetness from 0 to 100, so the crossover where fur stops helping and starts hurting sits near 62 wetness.

The real bite is the time spent on the wrong side of that crossover. Fur dries at 0.55x. Get wet and you stay wet for nearly twice as long as a bare-skinned character standing in the same place.

Two more costs come with the coat, and both are mandatory. Heat pushes in 1.35x harder, since it is a coat that cannot come off in a warm place, and the whole metabolism runs 1.25x, so hunger, thirst and energy all drain faster. Take Drowsy as well and the metabolism multipliers stack: 1.25 times 1.15.

The practical shape is that fur is excellent for cold, dry caving and actively bad for anything involving water, rain or a warm biome. Getting out of the water is half the fix. The drying penalty carries the negative insulation along with you for a long time afterward.

Steady Hands multiplies the tremble inside PainHand, the shared cursor every treatment screen draws from, so bandaging, stitching, arrow extraction, dislocation reduction, amputation and surgery all inherit the same 0.55x. Injury and Treatment

Fur reaches the survival layer at several separate points: TemperatureHandler reads its insulation curve and its heat-gain multiplier, WetnessHandler reads its drying rate, and NeedsHandler folds its metabolism straight into the same term the run's metabolismrate setting scales. Needs and Survival

Flaws

Twelve flaws pay points. One pays nothing yet.

Thirsty (-2) drains thirst 45% faster. Ravenous (-2) does the same to hunger. Drowsy (-2) drains energy 40% faster and runs the whole metabolism 15% hotter, so it costs food and water as well as sleep. Night Terrors (-2) makes a nightmare 2.5x likelier out of a bad sleep.

Brittle Bones (-3) leaves bones tolerating 38% less punishment, so falls other people walk away from break you. Bleeder (-3) clots at 0.55x, which is nearly twice as long bleeding and a bad wound that outruns a bandage. Anaemic (-2) rebuilds red cells at 0.45x; a transfusion still restores the litres, and the breathlessness stays long after. Sickly (-3) is Immunity -20.

Addictive Personality (-2) builds opioid tolerance and nicotine dependence 70% faster, so habits take hold sooner and withdrawal arrives earlier. Fragile Mind (-3) deepens anhedonia 45% faster - the numbness that blunts every good thing and survives your death. Poor Circulation (-2) accrues frostbite 60% faster, and stacks multiplicatively against Warm Blooded if both are somehow taken.

Missing Left Arm (-4) is the largest ordinary payout. Your left upper arm, forearm and hand are biologically absent from the first second. No stump wound, no blood, no gore, no trauma and no chat line - these parts were gone before this body became your problem. The boundary is already healed and socket-ready. That side cannot act until you fit a working prosthetic.

Severed (-5) is the biggest payout in the game. It replaces the status panel with a physical self-examination: you look, touch, test movement, check circulation and count rough vitals, and exact measurements need the WITNESS tablet. Diagnostic moodles you could not have seen or felt are hidden from you.

Schizophrenia costs nothing and pays nothing while it is being judged. It occasionally gives you an imaginary friend, drawn once from your own UUID so it is consistently yours and survives death, and other players who took the trait can see yours. It comments on a Deep Maw within 48 blocks, on being downed, on heavy blood loss and on a collapsed mood. One time in five it is wrong, in both directions. Priced at zero, it sorts into the right-hand flaw column despite paying nothing.

Sickly's -20 is a flat offset on the same 100-point immunity baseline InfectionHandler builds every wound-infection and disease roll against, and Strong Constitution's +18 lands in that identical term from the other direction. Disease and Infection

Addictive Personality is one multiplier read in two places - DrugHandler applies it to the opioid tolerance ramp and CigaretteItem applies it to nicotine gain - so both habits accelerate off a single trait bit. Drugs and Pharmacology

Fragile Mind multiplies Anhedonia's own gain term on the same line the SSRI halving sits on, so it deepens the numbness the psychology layer already tracks instead of running a second one alongside it. Psychology

The imaginary friend's only trigger that reads the world at all is a living Deep Maw inside 48 blocks; everything else it remarks on is your own body, so on a server where the Maw never spawns the friend is talking about you and nothing else. Threats

Claws

Claws want a genuinely empty main hand on a biological hand. A tool always wins the slot, and a prosthetic hand does not qualify.

What they bite into is wood and the softer stone family: logs, planks, wooden slabs and stairs, leaves, dirt, overworld base stone, and the stone ore replaceables. What they can actually harvest is a narrower list, on purpose - logs, planks, wooden slabs and stairs, plus vanilla stone and deepslate exactly. Base-stone tags carry a lot of modded material that must not become free bare-hand drops. Scratching faster and being allowed to keep the block are two different permissions.

Speed scales with condition rather than sitting flat. Condition is 0 at or below 15 claw health and reaches 1 at 100, so the 2.2x figure is the best case on perfectly intact claws, and worn claws are worth much less. The same condition value sets the empty-hand damage baseline, sliding from vanilla's 1 up to 2.5. That is a floor rather than a bonus, so Strength effects and critical hits still stack on top.

Every block broken this way costs keratin: 1.4 per rock, 0.5 per wood, charged only when the block actually breaks, so an abandoned swing is free. Every accepted punch costs 0.35, plus up to another 0.65 against armoured targets.

Regrowth runs on its own at 0.25 per second at full nourishment, scaled down by hunger to a floor of 0.2x, multiplied by 1.4 while asleep and by 3 during a keratin booster window. A full 100ml keratin booster syringe buys 2800 seconds of that boost, and dosing while more than 3600 seconds are already banked delivers only a tenth of the new dose.

So this is a rate limit, not a wall. Claw your way through a mountain and you arrive on the far side unable to defend yourself. Leave them alone and they come back. The HUD warns at two tiers: Worn Claws under 60, Broken Claws under 25.

In game, this reads

Regrows damaged nails and future claws faster, and hardens them while active.

tooltip.doomedmatu.keratinbooster_syringe

The tooltip names no window and no ceiling. The code gives 2800 seconds of x3 regrowth per 100ml, and cuts a re-dose to a tenth once more than 3600 seconds are banked.

The scratch list is vanilla block tags, but the harvest list is those tags plus Blocks.STONE and Blocks.DEEPSLATE named one at a time, so a modded stone that joins BASE_STONE_OVERWORLD breaks faster under claws and still yields nothing. Items, World and Trade

Claw regrowth time is a syringe field like any other - DrugService's KERATINBOOSTER case adds 28 seconds per millilitre and cuts a fresh dose to a tenth once more than 3600 seconds are already banked. Drugs and Pharmacology

Claws - exact values
QuantityValue as shippedDefined in
Best-case break speed2.2x at full claw health~/body/ClawMining.java:MAX_BONUS
Useless below15 claw health~/body/ClawMining.java:USELESS_AT
Wear per block1.4 rock, 0.5 wood~/body/ClawMining.java:WEAR_STONE/WEAR_WOOD
Wear per punch0.35 plus up to 0.65 vs armour~/body/ClawWearHandler.java:PUNCH_WEAR
Regrowth0.25/sec base, x1.4 asleep, x3 boosted, hunger floor 0.2x~/body/ClawHealthHandler.java:19-27
Keratin booster100ml = 2800 seconds; x0.1 if over 3600 banked~/body/DrugService.java:291-298
HUD tiersWorn under 60, Broken under 25~/client/hud/DoomedHudOverlay.java:704, 2094-2103

The pick screen

The trait screen is a hard gate on entering the run. On an Endless character with traits enabled the server holds the Doomed condition back until the build is confirmed. Close the screen without answering and you are simply not Doomed yet.

Within a life the answer is final. Running the /doom traits command after confirming gets you "You already answered. This body is what it is." The server re-validates the mask independently of the screen, so an unpaid build fails there too.

Death re-opens the question, and only the answered flag clears. The mask itself survives, so the screen comes back with the previous build already ticked, and confirming it unchanged keeps exactly what was there. Change it and the anatomy follows: a fitted prosthetic is dropped at your feet before a fresh biological arm is restored, so switching away from Missing Left Arm cannot silently delete equipment.

A C.A. #DR-01 run never sees this screen, on entry or on death. That arc decides what the body becomes on its own, and a #DR-01 character's effective trait mask is zero regardless of what is stored.

One more case. A server running autoDoomOnJoin in its silent setting applies the configured mode and locks it without asking anything, and on Endless that means the neutral zero-point body with no perks and no flaws - a setting that promises no questions must not invent a build for you. A later death still lets you pick normally.

If a balance change or a schema change ever makes a confirmed build invalid, the editor comes back rather than grandfathering it, and your existing anatomy is left untouched until you confirm its replacement.

The pick screen - exact values
QuantityValue as shippedDefined in
Entry gatesetDoomed returns early until traitsChosen is true~/capability/DoomedDataUtil.java:50-53
On deathonly traitsChosen clears; the mask survives~/capability/DoomedData.java:resetVitals
C.A. #DR-01effective mask forced to 0~/body/BodySimulation.java:77-79
Concealed

Traits are an Endless-only system, and a C.A. #DR-01 character's trait mask is forced to zero

The trait pick screen is only shown after choosing Endless. On a #DR-01 run the game skips straight to the ritual, because that arc decides what the body becomes. The body simulation goes further than not asking: it computes the effective trait mask as zero for any character not on DEFAULT mode, so even a mask written in by an operator produces no head-start skills and no missing-arm anatomy. There is no way in game to have both claws from the trait screen and horns from the transformation.

Timeline

Progress is measured in active playtime, one tick per tick, while you are Doomed and on a C.A. #DR-01 run. The shipped default is 168 hours - one full week of active play. paceFactor is not in the calculation, so a server that has sped up or slowed down the rest of the body simulation has left this exactly where it found it.

The four growth spurts fire at 25%, 50%, 75% and 100% of that timeline. At the default that is roughly 42 hours of playtime between each one. A spurt is a short window rather than a phase you live in, so the shape of a #DR-01 run is 42 hours of nothing followed by 30 to 75 seconds of everything, four times over.

One threshold sits off the milestone grid. Past 95% progress, a blow that would kill you diverts into the Refusal Sequence instead. The fourth spurt only begins at 100%, so without that rule a death at 96% would be an ordinary death that wiped the whole week.

The duration is configurable between 0.25 and 10000 hours. Changing it reinterprets the stored progress of every existing character against the new timeline, so lowering it can make the next spurt begin immediately.

Horns and tail render at the stage reached, and the stage steps up at the start of each spurt rather than at the end. The horns grow from 0.400 scale at stage 1 to 0.650 at stage 4. The tail renders 40% of its segments at stage 1, 65% at stage 2, 85% at stage 3 and all of them at stage 4. A client-side hideTransformModels option suppresses both layers and touches nothing mechanical.

Timeline - exact values
QuantityValue as shippedDefined in
Full timeline168 hours of active play (default), range 0.25 to 10000~/config/DoomedConfig.java:1784-1790
Spurt milestones25% / 50% / 75% / 100%~/transform/GrowthSpurtScheduler.java:39-43
Refusal threshold95% of the timeline~/transform/GrowthSpurtScheduler.java:34-37
Horn scale by stage0.400 / 0.465 / 0.574 / 0.650~/client/render/HornLayer.java:45
Tail extension by stage40% / 65% / 85% / 100% of 10 segments~/client/render/TailLayer.java:246-252
Concealed

The Refusal triggers at 95% progress, not at the fourth spurt

The fourth growth spurt only begins at 100% of the timeline, so a naive reading is that only the final window can produce the Refusal. There is a second, earlier gate: past 95% of the configured duration, any blow that would kill you diverts into the Refusal Sequence instead. Before that threshold there is no protection of any kind, and a death wipes the entire transformation.

Growth spurts

A spurt announces itself. Stage 1 is "Your skull splits - something is forcing its way out." Stage 4 is "Everything fails at once. This kills you - unless you endure it."

The window lengths escalate: 30 seconds, then 45, then 60, then 75. Pain follows a sine envelope across the window, rising from nothing to the stage peak at the halfway point and back down, peaking at 45, 70, 92 and 100. Happiness sheds continuously while the window is open, at 0.03, 0.06, 0.10 and 0.16 per tick.

Bleed pulses land every 30 ticks at both the head, where the horns are coming out, and the abdomen, where the tail is reshaping the lower spine, once the envelope is past 0.15. The per-pulse amount is 6, 12, 20 and 30 by stage, and the same amount is added to that limb's pain.

From stage 2 onward, spikes erupt and impale you. One salvo fires the instant the spurt begins, then more every 60 ticks while the envelope is past 0.2. Each event hits 1 to 3 random body segments with punctures worth 30 to 55 skin damage before armour, floors your shock at 50 times the stage intensity and your adrenaline at 90, and makes you scream. A stage 4 window contains roughly 23 of these.

Worth knowing before you plan around it: the spike table leaves out the head. The fiction says a horn is coming through your skull, and the wound lands on a random shin. Treating during a spurt is a poor plan for a similar reason - bleed pulses reopen two sites every 1.5 seconds and one full bandage wrap is 144 crank actions on a single limb, so the intended play inside a window is to survive it rather than to keep up with it.

Stages 1 through 3 leave the leftover transform pain to decay at 0.08 per tick between windows. Stage 4 ends only one way.

One item exists to make a spurt survivable. Right-click it and a five minute window opens during which the entire ordeal is cut to a quarter of its bite.

The quarter multiplier covers a lot. Transform pain, the mood loss per tick and the bleed pulses are all multiplied by 0.25. The spike eruptions are switched off outright rather than scaled down, including the opening salvo at the start of a stage 2 or higher spurt. The stage 3 shock climb and the stage 4 consciousness drain are suppressed the same way, entirely.

The timing detail that matters: the suppressant window is checked continuously, so a dose taken partway through a window helps from that moment onward and leaves everything that has already landed exactly where it landed. The opening spike salvo is decided on the instant the spurt begins. Skipping that salvo means already being dosed when the announcement appears.

The clock burns down whether a spurt is running or not, so a dose taken 42 hours before the next milestone is a wasted dose. Five minutes covers any single window with room to spare, since the longest is 75 seconds.

On a player who is not currently Doomed it does nothing, and it says so: "The suppressant does nothing to you."

Suppressant appears in the medical loot pool at the common weight, one per pull, so it comes out of medical caches rather than a recipe. Bank it as soon as you know you are on a #DR-01 run. Nothing else in the system mitigates any of this.

In game, this reads

Your skull splits - something is forcing its way out.

doomedmatu.alert.spurt.1

The line puts the wound in your skull. The spike table has no head entry, so the puncture the game actually writes lands on a random shin.

The spike eruptions go through TrapEffects.impaleSpurt, which returns immediately when the trapsDamage option is false, so a server that disarms its bear traps and caltrops silently disarms every growth spurt as well - and that option's own comment lists nothing but contact hazards. Threats

Transform pain reaches PainHandler as one candidate inside a maximum rather than as an added term, and the spurt's per-pulse limb pain pins the head and abdomen at the 100 cap from stage 2 onward, so the aggregate returns 100 whichever stage peak the scheduler wrote. Pain, Consciousness and Death

Growth spurts - exact values
QuantityValue as shippedDefined in
Window length30s / 45s / 60s / 75s (600/900/1200/1500 ticks)~/transform/GrowthSpurtScheduler.java:45
Peak transform pain45 / 70 / 92 / 100~/transform/GrowthSpurtScheduler.java:47
Bleed per pulse, per site6 / 12 / 20 / 30, every 30 ticks~/transform/GrowthSpurtScheduler.java:49, 58
Happiness lost per tick0.03 / 0.06 / 0.10 / 0.16~/transform/GrowthSpurtScheduler.java:51
Spike intervalevery 60 ticks, stage 2 and up~/transform/GrowthSpurtScheduler.java:60, 149-152
Spike wound1-3 segments, 30-55 skin damage before armour, adrenaline floored at 90~/body/TrapEffects.java:355-372
Spike target listthorax, abdomen, arms, hands, thighs, shins - no head~/body/TrapEffects.java:30-33
Dose duration5 minutes (6000 ticks)~/item/SuppressantItem.java:27
Bite reductionx0.25 on pain, mood loss and bleed~/transform/GrowthSpurtScheduler.java:54, 127
Spikes while suppresseddisabled entirely, not reduced~/transform/GrowthSpurtScheduler.java:113-115, 149
Loot weight"doomedmatu:suppressant 1 3" in the medical pool~/config/DoomedConfig.java:1524
Concealed

The growth-spurt bleed at the horn and tail sites is clamped away on intact skin

A spurt writes 6 to 30 bleed onto the head and the abdomen every 30 ticks, and adds the same amount to those limbs' pain. But the bleeding system caps every limb's bleed at 100 minus its skin health each tick, which on undamaged skin is zero, and that clamp runs later in the same tick than the spurt does. The pain lands and stays. The bleeding is erased before anything can read it, unless the skin at that site is already open - which in practice means unless a spike has already wounded you there, and the spike table does not include the head at all.

Concealed

Transform pain is aggregated with a maximum, not a sum, and the spurt saturates the channel it competes in

Total pain takes the largest of your worst limb pain, transform pain, and amputation pain, then adds sepsis myalgia as a term. Transform pain is a candidate rather than an addition. Meanwhile the spurt's own bleed pulses add 6 to 30 pain per pulse to the head and abdomen against a decay of about 1 per second, so from stage 2 onward those limbs pin at the 100 cap and the maximum returns 100 regardless of which stage peak the scheduler wrote. The authored ladder of 45, 70, 92 and 100 does not survive to your pain bar.

Concealed

The suppressant clock burns down whether a spurt is running or not, and the opening spike salvo is decided at the announcement

Suppressant sets a five minute window that decrements every tick from the moment you drink it, spurt or no spurt. Since spurts are roughly 42 hours of playtime apart at the default timeline, a dose taken in anticipation is a wasted dose. The stage 2 and higher opening spike salvo checks your suppressant state on the exact tick the spurt begins, so a dose taken one second after the announcement appears will blunt the pain and the bleeding but will not stop the salvo you have already taken.

FRAGMENT 09-D - SPURT ONSET BANNER, STAGE 4

SUMMARY: The fourth and final growth spurt opens with a banner sent from the server the instant the window begins. The authored line is en_us.json key doomedmatu.alert.spurt.4: "Everything fails at once. This kills you - unless you endure it."

RESPONSE: Inside the window the scheduler raises shock by 0.16 per tick and drains consciousness by 0.05 per tick, both gated on the pain envelope. ConsciousnessHandler runs seventeen lines later in the same tick, bleeds shock off at 10 a second and eases consciousness back at 3 a second toward a target of 100 on an unbled body. Net movement on both channels is the wrong way.

FINAL NOTE: The window runs its 75 seconds, expires, and calls RefusalService.begin. Whatever else stage 4 was meant to be, the banner is the part of "this kills you" that reaches the player intact.

res/assets/doomedmatu/lang/en_us.json:32; GrowthSpurtScheduler.java:150-156 against BodySimulation.java:230 and :247

Divergence

The transformation has a medical consequence outside the spurt windows, and it is easy to miss because nothing announces it.

As you change, your blood runs from red toward orange. The colour is driven by a factor derived from your stage: 0 at untransformed, 0.25 at stage 1, and 1 once you are stage 4 or Corebound. It shows in the particle bursts and in the ground pools you leave behind, and each character's blood reflects only their own transformation.

The transfusion system reads the same factor. Below 0.25 divergence - everything up to and including stage 1 - banked human blood still runs clean in you. Past that point a human blood bag adds extra hemolytic reaction severity, scaling linearly to a maximum of 70 at full transformation. For reference, that sits between the 45 of a rhesus mismatch and the 100 of a full ABO clash, so a wrong blood type on top of divergence is meaningfully worse than divergence alone.

This is deliberately a penalty rather than a hard block. The volume still goes in and you pay for it afterward. Saline is untyped and completely unaffected, so a transformed player always keeps a volume expander even once human blood has stopped fitting.

The practical version: from stage 2 onward, treat blood bags as a last resort and carry saline. From stage 3 onward the penalty is severe enough that a transfusion is a decision rather than a first-aid step.

In game, this reads

Typed whole blood. Transfuse onto a limb to restore 0.75 L; incompatible ABO/Rh blood causes a delayed reaction.

tooltip.doomedmatu.blood_bag

The tooltip knows about ABO and Rh only. Divergence adds its own severity on top of whatever the type does, and appears nowhere in the text.

Divergence is added to the ABO and Rh clash rather than replacing it, and DrugService clamps the sum at the same 100 ceiling before handing it to TransfusionReactionHandler, so a transformed body is scored on the exact severity axis a wrong bag is scored on. Blood and Circulation

Divergence - exact values
QuantityValue as shippedDefined in
Transform factorstage/4, or 1 when Corebound~/body/DoomedBlood.java:32-37
Divergence-free zonefactor at or below 0.25 (up to stage 1)~/body/DoomedBlood.java:DIVERGENCE_FREE
Peak divergence penalty70 extra reaction severity at full transformation~/body/DoomedBlood.java:DIVERGENCE_MAX
Fully transformed blood colour#ff5500~/body/DoomedBlood.java:23-26
Concealed

Your blood diverging from human is a transfusion penalty nobody mentions

Past stage 1, banked human blood starts causing extra hemolytic reaction, scaling to 70 severity at full transformation. Saline is untyped and completely unaffected. Nothing in the interface connects the orange blood you are visibly bleeding to the fact that your blood bags have started hurting you, and the penalty is a severity addition rather than a refusal, so the transfusion appears to work.

FRAGMENT 12-B - TRANSFUSION NOTICE, DIVERGENT RECIPIENT

SUMMARY: A bag of correctly typed human blood pushed into a body past stage 1 puts one line on the action bar of the patient and, in co-op, of the person holding the needle: "The blood is right. The body is not - it is rejecting human blood."

RESPONSE: The branch fires only where the ABO and Rh clash scores zero and divergence does not. The volume still went in. TransfusionReactionHandler starts on the summed severity and banks the hemolysis debt against what was delivered, so the reaction arrives after the transfusion rather than in place of it.

FINAL NOTE: The comment above these four branches records that they shipped empty - wrong blood went into a friend and nothing said anything at all. The line exists because somebody had to be told which incompatibility it was, or a correctly labelled bag failing reads as a bug.

~/body/DrugService.java:963-978, reached through DoomedBlood.divergenceSeverity

The Refusal Sequence

When the change finishes killing you, the run ends in a sequence you sit through and then type your way out of, rather than in a death screen.

It starts on either of two triggers: a lethal blow landing while progress is past 95%, or the fourth spurt's window running out at 100%. In both cases the server locks you out of death first - health is set back to maximum and nothing is allowed to finish you mid-sentence.

The first phase runs 57 seconds and it cannot be skipped, paused or exited. Escape is consumed, mouse clicks are consumed, there is no button. Text, alarms, screen fractures and interface failures pile up without stopping. Then it cuts to black and holds silence for nearly seven seconds, and the rest of the sequence is quiet lines typing themselves out one at a time.

The gate at the end is literal. A prompt reads I REFUSE DEATH with a cursor under it, and you physically type it. Wrong keys do nothing at all - no error, no reset, it simply waits. Backspace works. Enter with the phrase complete sends the confirmation.

Nothing in this times out. The world waits. Disconnect partway through and the sequence re-opens the next time you log in, because the completed fourth spurt is saved state while the pending flag is not.

One accessibility note, stated here because the sequence itself no longer states it. Every flash, strobe, static field and inversion in phase 1 multiplies by the vision intensity client setting, with no floor anywhere, so setting it to zero genuinely removes the flashing. Screen shake answers to the shake slider's strength and not only its on/off. The sequence used to open on a card explaining this and the card was removed, so the settings are the whole of the promise now.

When you confirm, every player online gets a white dome from your coordinates, a hard screen shake and a single chord, across dimensions, and the server broadcasts one line: "Something refused to be forgotten."

A death during stages 1 through 3 is a real death. Items drop under the server gamerules and the normal respawn flow takes over, exactly like any other Doomed death.

What it costs on top of the ordinary death is the transformation. On respawn, progress ticks, transform stage, spurts completed, the active spurt window, transform pain and any banked suppressant all go back to zero. The horns and the tail are gone, and the week starts over from nothing.

The Corebound flag is the one thing death never resets. It persists forever.

This is what the 95% rule is for. Dying at 96% progress - 161 hours in, past every spurt but the last - would otherwise be an ordinary death that wiped all of it. Past 95%, the killing blow diverts into the Refusal Sequence and the run ends the way it is supposed to.

Under 95%, the progress has no protection at all. Last Stand is a floor on your capabilities and lets the wipe straight through, and so does everything else.

A fresh life is also a fresh clinical file. Your case notes are closed, composed once, filed as a death certificate you can still read later, and a new ledger opens. Skills carry across the death. The body does not.

Concealed

The Refusal Sequence's only accessibility control is a client setting that no longer announces itself

Phase 1 is 57 seconds of sustained flashing that cannot be skipped, paused or exited - Escape and mouse clicks are consumed by the screen. Every flash, strobe, static field and inversion multiplies by the vision intensity client setting with no floor anywhere, so setting it to zero genuinely removes the flashing, and screen shake answers to the shake slider's strength rather than only its on/off state. The sequence used to open on a card that explained all of this before the wall hit, and the card was deliberately removed to protect the immersion of the scene.

FRAGMENT 14-A - ADVANCEMENT TEXT, ANNIHILATION

SUMMARY: On the tick a player confirms the refusal, the server awards doomedmatu:annihilation to them and announces it to everyone. The advancement carries the challenge frame, a crying-obsidian icon, and one line of description: "Every lethal blow, refused."

RESPONSE: The clamp underneath it substitutes 1.0 damage - half a heart - for any blow that would otherwise be fatal. At or below half a heart the clamp still fires, and 1.0 still kills. The effect has no tooltip. The description was never corrected.

FINAL NOTE: The line is true of every lethal blow except the ones taken at the bottom of the health bar, and those are the only ones a player is likely to be taking. The first person to learn the difference learns it from a death screen, with a permanent advancement in their book saying otherwise.

res/data/doomedmatu/advancements/annihilation.json (announce_to_chat true); the substitution is CoreboundPerks.ANNIHILATION_LETHAL_FLOOR = 1.0f

Corebound

Confirming the refusal splits you off from the run. You are a vanilla player again with every Doomed system switched off, and you keep the horns and the tail as proof.

The exit is thorough on purpose. Every vital, wound and transformation scalar is cleared to healthy defaults, the body simulation stops ticking for that player, they are stood back up at full vanilla health with fire out and effects gone, and the movement-speed and attack-speed modifiers the simulation leaves behind are stripped. Those modifiers are the reason the cleanup exists at all: a freed player used to keep a near-zero movement speed that also pinched their field of view, forever, because the handlers that would have cleared it had already stopped running.

Two permanent effects are granted, both infinite, both with particles suppressed so nobody wears a potion cloud for the rest of the save.

Spite denies harmful effects at the door. Anything in the HARMFUL category is refused before it applies. Effects already running stay running. Beneficial effects pass through untouched, and milk cannot remove Spite itself.

Annihilation does two things. Outgoing, you hit 25% harder, applied last so every other modifier has already had its say. Incoming, a blow that would kill you leaves you on half a heart instead - unless you are already at half a heart or less, in which case it kills you normally. The mortality is deliberate. Annihilation buys one more decision in every fight, not immunity.

Both effects are re-applied on login and on respawn, since vanilla death clears effects and Corebound is earned rather than granted.

The flag persists forever. It survives death, /doom mode cannot change it, and /doom off does nothing to it because that command only acts on players who are currently Doomed. If the Fantastic RPG mod is installed, the Corebound class completes at the same moment. Two advancements land together: survived Doomed, and gained Annihilation.

In game, this reads

The Doom has left you - but its mark remains.

screen.doomedmatu.corebound.line2

The mark is literal - the horns and the tail stay, and so do Spite and Annihilation.

Corebound - exact values
QuantityValue as shippedDefined in
Annihilation outgoing+25% damage dealt~/transform/CoreboundPerks.java:ANNIHILATION_OUTGOING_MULT
Annihilation lethal-hit substitutionA blow that would kill you deals 1.0 damage instead. It is a damage substitution, not a health floor, so a hit at 8 health leaves you at 7.~/transform/CoreboundPerks.java:ANNIHILATION_LETHAL_FLOOR
Spite scopeMobEffectCategory.HARMFUL, denied on application only~/transform/CoreboundPerks.java:onEffectApplicable
Persistencere-applied on login and respawn~/transform/CoreboundPerks.java:reapplyIfCorebound
Advancementsdoomedmatu:survived_doomed, doomedmatu:annihilation~/transform/CoreboundPerks.java:41-44
Concealed

Annihilation still kills you at half a heart or less

The lethal clamp checks whether the incoming damage is at or above your current health and replaces it with 1.0 - half a heart. If you are already at or below half a heart, the clamp still fires and sets the damage to 1.0, which is enough to kill you. So Annihilation guarantees you survive one killing blow from any health above half a heart, and guarantees nothing after that until you heal.

Concealed

Spite refuses effects at the door and never removes one you already have

Spite hooks the moment an effect is applied and denies it if the effect is categorised HARMFUL. Anything already running on you when Corebound is granted continues to run. Beneficial effects are untouched, which includes Spite and Annihilation themselves - they are both categorised beneficial, so they cannot deny each other. A harmful effect from a mod that categorises its effect as beneficial passes straight through.

Notes

  • Whether 42 hours between spurts is the right spacing was never decided. reference/TRANSFORMATION_STAGE_AUDIT_20260812.md closes by naming the spacing as a design question it deliberately did not touch, and nothing in the repo records a C.A. #DR-01 character actually reaching 168 hours at the shipped default. Every judgement about how that week feels is arithmetic done on constants.
  • The stage 3 shock climb and the stage 4 blackout drain both run before ConsciousnessHandler in the same tick, and that handler sheds motor shock at 10 a second and eases consciousness back toward its target at 3. The scheduler's own javadoc says the fourth spurt is meant to kill you. Nobody has watched one to see whether the screen so much as dims.
  • The bleed a spurt writes to the head and the abdomen is erased by the next tick's skin clamp unless a spike has already opened that site, and the spike target table has no head entry at all. The 2026-08-12 audit marks this verified and recommends a fix. Nothing in it has been implemented, and BleedHandler still ticks at BodySimulation:192 against a scheduler that writes at :230.
  • Schizophrenia is priced at zero on Matt's own instruction and the trait text admits it in the panel: "Costs nothing and pays nothing for now, while it is being judged." What it should cost once somebody has actually lived with the friend was never written down.
  • /doomtransform stage N writes the same field the scheduler reads as "spurts already begun", so setting a stage to look at the horns cancels every spurt below it on that character permanently. Because that command is how the transformation gets tested, some share of what has been reported about spurt behaviour may belong to the tool rather than to the system.
  • The Corebound subclass completes through a reflected call into ffrpg's DoomedClassBridge, and the command fallback sitting next to it refuses to act when the player already holds a class - which a #DR-01 graduate always does, because the ritual set "doomed" at the start of the run. Every failure on that path is caught and ignored on purpose. Whether the class completes cannot be answered from inside this repo.

PART II - CHEMISTRY

CHEM-01

The Chemistry Engine

Doomed's chemistry is a datapack-driven production chain run by eight unit-operation machines plus the Reactor. A batch is not a black box that swallows items and spits out a product: the machine locks onto one recipe, meters its energy tick by tick, records the temperature it actually ran at and every time it stopped, and rolls the finished grade and volume from that history. Nothing you make is guaranteed to be as good as the recipe says it can be, and the machine will never tell you the true number - only a measured estimate with an error bar. This page covers how a batch runs, what heat does, how grade propagates down a chain, how equipment fouls, and every way a batch can be ruined.

The batch

A progress bar is the smallest part of it. When the loaded inputs match a recipe the machine opens a batch: it records that recipe's structural key and its index in the table, and stays committed to that recipe until the batch finishes or is cancelled. Progress, energy already spent, the running thermal average, the number of ticks spent below and above the operating band, the interruption count and whether an incident has happened all persist with the block.

Inputs stay where they are. They sit in the slots and the tank and are taken on the tick the batch completes. Nothing is committed until then, so a batch at zero progress can still be re-selected freely - load a better-matching recipe before the first tick of real work and the machine switches to it. The first working tick locks the recipe.

Energy is metered exactly. The recipe's total FE is divided across its ticks with a cumulative ceiling calculation, so the batch pays precisely the recipe's total by the time it completes, no more and no less, however many times it stopped and restarted. A tick whose fractional cost rounds to zero still requires the machine to hold at least 1 FE. An empty buffer always stalls.

Mining a machine keeps the batch. The loot table copies the items, both tanks, the energy, the side configuration, the equipment condition and the batch itself onto the dropped block.

The batch - exact values
QuantityValue as shippedDefined in
Persistent batch fieldsrecipe key, recipe index, progress, energy spent, thermal ticks, heat total, below-band ticks, above-band ticks, interruptions, pause reason, starting quality, incident flag~/crafting/ActiveChemBatch.java:231-250
Inputs consumedonly on the completion tick~/block/entity/ProcessMachineBlockEntity.java:560-608
Re-selection windowwhile progress is still 0~/block/entity/ProcessMachineBlockEntity.java:115
Minimum energy to advance a tick1 FE even on a zero-cost tick~/block/entity/ProcessMachineBlockEntity.java:368

The equipment

Eight unit-operation machines share one block entity and one recipe table, filtered by machine type. Each has two input item slots, one output item slot, a 4,000 mB input tank, a 4,000 mB output tank and a 32,000 FE buffer that accepts up to 1,024 FE per tick. The Reactor is its own class: three input slots, a 64,000 FE buffer accepting 2,048 FE per tick, and a drug fluid as its only product. It has no item output slot at all.

The Drying Oven, the Kiln and the Recrystallizer show no fluid bars, since none of their recipes use fluid. They also never auto-pull a fluid, which keeps their input tanks clear of something they could never consume.

The input tank accepts only fluids some recipe for that machine consumes. The input slots take only items some recipe uses, reject the output slot entirely, and reject an ingredient already sitting in the other input slot. That last rule has a history. Forge fills the first slot to a full stack before touching the second, so a chest holding more than a stack of one ingredient used to load both slots with it and starve every two-ingredient recipe. The Recrystallizer, whose recipes are all two-ingredient, died outright.

Slot filtering compares item identity and ignores NBT. Every solid chemistry intermediate carries per-batch grade and contamination tags, so two lots of the same reagent from different batches are different stacks and will not merge in an inventory.

In game, this reads

The heart of drug synthesis. Load reagents in the 3

slots and a precursor fluid; needs FE and heat (a

brazier/heater beside it). Runs the chain raw opium ->

opium -> morphine -> heroin, and precursor + catalyst

-> fentanyl / naloxone / ceftriaxone, out as a drug

fluid. Set faces to input/output. Volatile - fumes

while running; deep syntheses can detonate over a flame

or when overheating.

tooltip.doomedmatu.reactor

The three slots and the fluid-only output match the code. "A brazier/heater beside it" reads as either being fine, but the Reactor's band is fixed at 1 to 3, and a brazier alone puts it at the floor of that band.

All eight unit operations and the Reactor sit on the ordinary Doomed machine chassis and share its per-face routing and its auto push and pull, so the machines record covers how material actually gets into one of these and back out. Machines, Power and Fluids

The equipment - exact values
QuantityValue as shippedDefined in
Unit-operation machinesDRYING_OVEN, KILN, SLAKING_VAT, FERMENTER, STILL, FILTER_PRESS, RECRYSTALLIZER, EVAPORATOR~/block/ProcessType.java:10-18
Process machine tanks / buffer4,000 mB each, 32,000 FE, 1,024 FE/tick in~/block/entity/ProcessMachineBlockEntity.java:49-51
Reactor buffer64,000 FE, 2,048 FE/tick in, 3 slots~/block/entity/ReactorBlockEntity.java:49-57
Machines with no fluid barsDRYING_OVEN, KILN, RECRYSTALLIZER~/block/ProcessType.java:25
Same ingredient in both input slotsrefused~/block/entity/ProcessMachineBlockEntity.java:664-689
Concealed

Two lots of the same reagent do not stack, and a machine will not take both

Every solid chemistry intermediate carries per-batch grade and contamination NBT written when it was made, so two stacks of the same reagent from different batches are different item stacks and will not merge in your inventory. Separately, the input slots compare by item identity and refuse to put the same item in both slots, deliberately ignoring NBT - so you cannot work around a two-ingredient recipe by loading two different lots of one reagent.

Heat

Every server tick a machine reads the best heat source among its six face-adjacent blocks. Tier 1 is a lit Brazier or vanilla open heat - fire, lava, magma or a lit campfire. Tier 2 is one running RF Heater. Two running Heaters make tier 3. Three or more make tier 4, which is over-fired and sits above every recipe's safe ceiling.

Each recipe carries a heat_min and a heat_max. Below heat_min the recipe is skipped over entirely and the console reads NEEDS HEAT. Inside the band it runs. Above heat_max it also runs, and it is being damaged.

The band grades rather than gates. Heat quality runs from 0 at heat_min to 1 at heat_max, and everything short of the ceiling costs something. The bare minimum of the band is the worst legal place to run a batch.

Default bands by machine, used when a datapack row leaves them alone: Kiln 2 to 3, Still 1 to 2, Drying Oven 1 to 2, Evaporator 1 to 3, Recrystallizer 0 to 2, Fermenter 0 to 0, Slaking Vat and Filter Press 0 to 3. The Reactor is fixed at 1 to 3 in code and ignores the datapack fields.

The practical readings: a Kiln needs at least one RF Heater to run at all and two to run well. A Still, Drying Oven or Recrystallizer wants exactly one Heater. An Evaporator or a Reactor wants two. A Fermenter wants nothing at all - see below. A machine reports its heat tier to a comparator as 0, 4, 8, 12 or 15, so 12 is the back-off threshold and 15 alone means over-fired.

In game, this reads

An RF heater. Feed it from a cable; while

powered it

glows and warms nearby players. A full buffer runs

~4.5 min. The charge rides the block when you mine it,

so carry it charged.

tooltip.doomedmatu.heater

The tooltip describes the Heater as a comfort block for players and says nothing about it being tier 2, the only way to reach the top of most bands. It also tells the player to feed it from a cable, and no cable block is registered anywhere in the mod - six other block tooltips say the same thing.

Heat - exact values
QuantityValue as shippedDefined in
Tier 1lit Brazier, fire, lava, magma, lit campfire~/block/HeatSource.java:62-68
Tier 2 / 3 / 4one / two / three or more running RF Heaters~/block/HeatSource.java:57-76
Default heat_minKILN 2; STILL, EVAPORATOR, DRYING_OVEN 1; everything else 0~/crafting/ProcessRecipe.java:65-71
Default heat_maxKILN and EVAPORATOR 3; STILL, DRYING_OVEN, RECRYSTALLIZER 2; FERMENTER 0; default 3~/crafting/ProcessRecipe.java:73-80
Reactor band1 to 3, hardcoded~/block/entity/ReactorBlockEntity.java:52-53
Comparator mappingtier 0/1/2/3/4 reads 0/4/8/12/15~/block/HeatSource.java:41-49
RF Heater draw12 FE/tick while lit, 64,000 FE buffer~/block/entity/PoweredClimateBlockEntity.java:26-28

Thermal cost

Grade is rolled at completion out of the whole batch rather than the temperature at the last tick. Four separate thermal penalties stack.

Heat quality below 1 costs up to 12 points of purity. That is the price of running at the bottom of the band rather than the top, and it lands even on a batch that never left the band.

Overshoot above heat_max costs 16 purity per whole tier above the ceiling, taken against the batch's average heat.

Time spent below the band costs up to 10 more purity, scaled by what fraction of the recipe's duration was spent cold. Time spent above the band costs up to 20, scaled the same way. Both fractions saturate against the recipe's total tick count.

On top of all of that, a random jitter of plus or minus 3 is added. The jitter is the only term that can push a number up, and it is small.

The Filter Press and the Slaking Vat are exempt. Their recipes are heat-insensitive, so the thermal terms are skipped entirely and they roll as though they ran perfectly in band.

The worked case that matters most is the Fermenter. Its band is 0 to 0, so heat quality reaches 1 only when the machine is genuinely cold. Put a lit brazier, a campfire or lava next to a Fermenter and every batch takes the 12-point band penalty, a 16-point overshoot penalty, and up to a further 20 for above-band residence. Roughly 48 points of purity off a nominal 100. The mash carries that number forward into the Still and then into every solvent made from it.

Item output counts are fixed. A recipe that makes two activated charcoal always makes two, and what varies on a solid is its grade rather than its amount.

Fluid yield varies, and only on the Fermenter, the Still and the Evaporator, or on any fluid recipe that declares a nominal purity. Everything else deposits its nominal millibucket figure exactly.

Where yield does vary it starts at a floor of 75 percent of nominal at the bottom of the heat band and ramps to 100 percent at the ceiling. Overshoot above the ceiling removes a further 22 percent per tier. Full-duration cold residence removes 30 percent, full-duration hot residence removes 40 percent, and each interruption removes 3 percent down to a floor of 65 percent. A jitter of plus or minus 5 percent is applied last.

The roll is capped at the nominal amount, which makes the machine's output-tank room check against nominal a safe upper bound. It has a floor as well: any recipe with a nominal output deposits at least 1 mB. A ruined batch leaves residue in the tank instead of eating its inputs for nothing.

In game, this reads

Ferments organics in water (FE, no heat - too hot kills

the culture). Sugar/wheat/apple + water -> mash, and

grows antibiotic broth. Harmless CO2 only.

Set faces to input/output.

tooltip.doomedmatu.fermenter

The string warns, and the warning is the only warning there is. Heat does not kill the culture in code - the batch runs to completion and finishes about 48 points down, with no stall, no fire and nothing on the console.

Thermal cost - exact values
QuantityValue as shippedDefined in
Purity lost at the bottom of the band12~/crafting/ChemConditions.java:293
Purity lost per heat tier above the ceiling16~/crafting/ChemConditions.java:301
Purity lost to full-duration cold residence10~/crafting/ChemConditions.java:360
Purity lost to full-duration hot residence20~/crafting/ChemConditions.java:361
Random purity jitterplus or minus 3~/crafting/ChemConditions.java:295
Heat-exempt machinesFILTER_PRESS, SLAKING_VAT~/crafting/ProcessRecipe.java:139-141
Yield floor at minimum heat0.75 of nominal~/crafting/ChemConditions.java:297
Yield lost per tier above the ceiling22 percent~/crafting/ChemConditions.java:303
Cold / hot residence yield multipliersdown to 0.70 and 0.60~/crafting/ChemConditions.java:376-377
Interruption yield multiplier3 percent each, floored at 0.65~/crafting/ChemConditions.java:378
Yield jitterplus or minus 5 percent~/crafting/ChemConditions.java:299
Machines with variable fluid yieldFERMENTER, STILL, EVAPORATOR~/crafting/ProcessRecipe.java:131-133
Minimum deposit1 mB~/crafting/ChemConditions.java:344
Concealed

A Fermenter next to any heat is ruined, and it never says so

The Fermenter's operating band is 0 to 0. Heat quality is 1 only when the machine is genuinely cold, so a lit brazier, campfire, lava or magma on any of its six faces means every batch takes the full band penalty of 12, an overshoot penalty of 16, and up to 20 more for above-band residence - roughly 48 points off a nominal 100 - and yields about 35 percent of nominal volume. It does not stall, does not catch fire, and shows no warning, because the Fermenter's overheat-ignition flag is off. The bad mash then caps every Still and Evaporator step downstream of it.

Concealed

Sitting at the bottom of a legal heat band still costs you 12 purity and 25 percent of your yield

Heat quality is a ramp from 0 at heat_min to 1 at heat_max, not a pass/fail check. A Recrystallizer with no heat source at all runs perfectly happily - its heat_min is 0 - and loses 12 purity and a quarter of its yield on every batch, because its ceiling is 2. A Kiln on one RF Heater runs but is at the floor of its 2-to-3 band. An Evaporator or Reactor on a single brazier is at the floor of a 1-to-3 band. Only reaching heat_max removes the penalty.

Grade

Every solid chemistry intermediate carries a 0-100 ChemicalGrade tag written when the machine made it. Every drug and process fluid carries a Purity tag on its FluidStack. Untagged legacy or raw material reads as 100, and it counts as an observed grade only once a chemistry machine stamps it.

When a batch starts, the machine reads the lowest observed grade among the inputs the recipe will actually consume - the input tank if the recipe takes a fluid, plus every graded item it will draw from. That is the charge quality. It is re-read freely while progress is 0, so topping the input tank up with purer material before work begins genuinely improves the batch. The first working tick latches it, and a same-recipe substitution afterwards can only lower it.

At completion the rolled grade is capped against the charge quality. A step may recover at most 20 percent of the gap between the charge and 100, and only up to that machine's own recovery allowance: 20 for the Recrystallizer, 12 for the Slaking Vat, 8 for the Filter Press, and 0 for everything else including the Reactor.

That cap is the single most important rule in the system. A dirty feedstock cannot be laundered clean. Recrystallizing 60 percent material returns at most 68, because 20 percent of the 40-point gap is 8. Recrystallizing 20 percent material returns at most 36. The same material through a Drying Oven or a Kiln comes out exactly as it went in, their recovery being zero.

One rolled grade is shared by every product of a batch. Hand-crafting preserves it too: the acetylating reagent and sodium lactate recipes take the lowest grade among their ingredients.

Two machines take a borosilicate flask: the Evaporator and the Reactor. Right-click either with a flask in hand and it is fitted, rather than the console opening.

The flask imposes a purity ceiling on every batch that machine finishes. Fresh glass at 100 condition allows a ceiling of 100. With no glass at all, or fully worn glass, the ceiling is 60 - street grade. Between those it scales linearly.

Condition drops by 4 per completed batch, so a flask lasts about 25 batches.

This is the most easily missed gate in the whole system, because it applies to everything those two machines make rather than to drugs alone. An Evaporator with no flask caps saline, Ringer's solution, iodine and even kelp salt at 60 percent, and that 60 then becomes the charge quality of the next step. The Reactor behaves the same: with an empty flask holder, a nominal 96 percent ceftriaxone recipe still finishes at 60.

The flask is cheap - eight glass around one quartz - and the console reports its condition. Nothing warns you when it runs out.

In game, this reads

Crude cephalosporin, extracted from the mash.

Recrystallize it with solvent up to pharma grade.

tooltip.doomedmatu.cephalosporin_crude

"Up to pharma grade" is the recovery allowance read as a promise. The Recrystallizer's allowance is 20 points and the recovery is also capped at 20 percent of the gap to 100, so crude at 60 comes out at 68 at best.

Grade - exact values
QuantityValue as shippedDefined in
Grade range0-100, untagged reads 100~/crafting/ChemicalGrade.java:419-424
Maximum recovery per step20 percent of the gap to 100~/crafting/ChemConditions.java:389-393
Recrystallizer allowance20 points~/block/entity/ProcessMachineBlockEntity.java:317-324
Slaking Vat / Filter Press allowance12 / 8 points~/block/entity/ProcessMachineBlockEntity.java:317-324
Reactor allowance0~/block/entity/ReactorBlockEntity.java:173
Charge quality latchfree while progress is 0, then minimum-only~/crafting/ActiveChemBatch.java:85-112
Grade-preserving hand recipesreagent_acetyl, sodium_lactateres/data/doomedmatu/recipes/reagent_acetyl.json
Machines using glasswareEVAPORATOR and the Reactor~/block/entity/ProcessMachineBlockEntity.java:438-440
Ceiling with no glass60~/crafting/Glassware.java:15
Condition lost per batch4, about 25 batches per flask~/crafting/Glassware.java:14
Flask recipe8 glass around 1 quartzres/data/doomedmatu/recipes/borosilicate_flask.json
Concealed

Purification can only ever recover 20 percent of the gap

The rolled output grade is capped at the charge quality plus a recovery, and that recovery is the smaller of the machine's allowance and 20 percent of the distance between the charge and 100. Recrystallizing 60 percent material gives at most 68. Recrystallizing 20 percent gives at most 36. Only three machines have any allowance at all - Recrystallizer 20, Slaking Vat 12, Filter Press 8 - and the Reactor has exactly zero, so a Reactor can never produce a drug better than its worst input.

Concealed

An Evaporator or Reactor with no flask caps everything at 60

Glassware condition imposes a hard purity ceiling on those two machines - 100 with fresh glass, 60 with none. A flask wears 4 points per completed batch, so it lasts about 25 batches and then silently stops helping. This applies to every product, not only drugs: saline, Ringer's solution, iodine and kelp salt are all capped at 60 by a flaskless Evaporator, and that 60 becomes the charge quality of the next step.

Concealed

You can improve a selected batch right up until its first working tick

Charge quality is re-read freely while progress is 0 and only latched once real work begins. A batch parked by a full output slot can sit at zero progress indefinitely, and topping the input tank up with purer material during that wait genuinely raises the grade the finished product will be measured against. After the first working tick, a substitution can only lower the charge quality, never raise it.

Stalls

Five stall states, shown on the console as text.

NEEDS HEAT means the heat tier fell below the recipe's minimum. NO POWER means the buffer cannot pay the next tick. OUTPUT BLOCKED means the output slot or tank has no room. BATCH INPUT LOST means an ingredient or the input fluid has gone missing. BATCH MISMATCH is a separate diagnosis: an attached tank has free room and the same fluid but refuses the incoming lot solely because its blendable purity or contamination record differs.

Every transition from running to stalled counts one interruption. Each interruption costs 2 purity, capped at 14 total, and 3 percent of yield down to a floor of 65 percent.

Stalls also continue to sample temperature. A batch left cold and unpowered, or hot with an ingredient missing, keeps accruing below-band and above-band residence exactly as if it were running. One stall is deliberately exempt: OUTPUT_BLOCKED samples heat not at all, because a full buffer on an automated line is a normal state and a Fermenter sitting next to a lit brazier would otherwise rot its own charge while waiting.

Deliberately emptying the recipe's inputs is the cancel gesture. Removing the last of an ingredient while the batch is paused resets the batch outright and loses its progress. Swapping one ingredient for another of the same kind only pauses it.

A recipe that vanishes from the table - a mod or datapack change - cancels the batch rather than bricking the machine, since nothing was reserved.

In game, this reads

Compatible graded batches can carry different purity and contamination records. Most ordinary tanks treat those records as different fluid stacks. Route repeated chemistry output through a Batch Blending Barrel to average them by volume before storage.

jei.doomedmatu.fluid_barrel.info

BATCH MISMATCH is this paragraph as a failure state. The JEI page describes the tank behaviour; the console names the stall.

Stalls - exact values
QuantityValue as shippedDefined in
Purity lost per interruption2, capped at 14~/crafting/ChemConditions.java:362
Stall codes1 NEEDS HEAT, 2 NO POWER, 3 OUTPUT BLOCKED, 4 BATCH INPUT LOST, 6 BATCH MISMATCH~/client/screen/MachineScreen.java:1034-1039
Stall that does not sample heatOUTPUT_BLOCKED only~/block/entity/ProcessMachineBlockEntity.java:158-160
Cancel gestureclear the recipe's inputs while it is paused~/block/entity/ProcessMachineBlockEntity.java:145-147
Concealed

Stalls keep damaging the batch, except one of them

A paused batch continues sampling temperature. Sitting cold with no power, or hot with an ingredient missing, accrues below-band and above-band residence exactly as if the batch were running, and those fractions saturate against the recipe's full duration within seconds. Every running-to-stalled transition also counts an interruption at 2 purity and 3 percent of yield. The single exemption is OUTPUT_BLOCKED, which samples nothing, because a full buffer on an automated line is normal and would otherwise rot the charge it is protecting.

Concealed

BATCH MISMATCH is not the same as a full tank

When an attached tank has free room and already holds the same fluid, but refuses the incoming lot solely because its blendable purity or contamination record differs, the machine reports BATCH MISMATCH rather than OUTPUT BLOCKED. Forge tanks treat purity NBT as fluid identity, so two otherwise identical lots at 71 and 72 percent deadlock the line. The fix is to route output through a Batch Blending Barrel, which volume-averages the records. Full tanks, filtered tanks, different fluids and different solution compositions are not misdiagnosed as this.

Incidents

A running machine rolls a hazard check every 10 ticks. The chances are per half-second of exposure rather than per batch.

A flammable step carries a base 0.1 percent chance per roll. An adjacent open flame - a lit brazier, fire, lava, magma or a lit campfire - adds 0.4 percent. Overheating past heat_max adds 0.8 percent. A non-flammable step that is overheating carries 0.15 percent on its own. Across a 30-second run those work out at roughly 6, 26 and 42 percent respectively. An ignition places fire on top of the machine, and a step that is both flammable and overheating adds a small flash blast as well.

The Reactor's high-pressure reactions are treated as violent. A reaction with a pressure rating of 2 or higher, run over an open flame or while overheating, rolls a full detonation at 0.4 percent per roll for the flame and 0.8 percent for the overheat. The blast has a 4-block radius, leaves terrain intact, and applies real wounds and knockback to you through the body sim's explosion path. The two fentanyl routes and the two naloxone routes are the shipped reactions that qualify.

A separate equipment-risk roll covers vessel compatibility and sealed pressure. Chance is the pressure rating times 0.035 percent plus the compatibility excess times 0.075 percent per roll. If either is 2 or more the result is a blast rather than a fire.

Only one incident per batch is possible. It is more than cosmetic: an incident adds four interruption-equivalents, which is 8 purity and roughly 12 percent of yield, whether or not the fire gets put out.

The controlled RF Heater is not an open flame. Using it in place of a brazier removes the largest single ignition term for a Still, an Evaporator or a Reactor.

In game, this reads

Pharma-grade fentanyl precursor, dried from the pure intermediate.

React it with catalyst in the Reactor for clean fentanyl.

That synthesis is violent - keep open flame away and don't

overheat the vessel, or it can detonate.

tooltip.doomedmatu.fentanyl_precursor_pure

This is one of the four pressure-2 rows. The string is accurate and gives no rate; the rate is 0.4 percent per roll for the flame and 0.8 percent for the overheat, rolled every 10 ticks for the length of the batch.

A Reactor detonation runs the sim's ordinary explosion path rather than a chemistry-specific one, so it sets shock to 100 outright and zeroes consciousness on a head hit - the pain and consciousness record is where the rest of that lands. Pain, Consciousness and Death

Incidents - exact values
QuantityValue as shippedDefined in
Roll intervalevery 10 ticks~/block/ChemHazards.java:24
Ignition chance per roll0.1 percent base, +0.4 open flame, +0.8 overheating~/block/ChemHazards.java:28-30
Non-flammable overheat chance0.15 percent per roll~/block/ChemHazards.java:31
Violent blast chance0.4 percent open flame, 0.8 percent overheating~/block/ChemHazards.java:32-33
Blast radius4.0 blocks, no block destruction~/block/ChemHazards.java:34
Incident penalty4 interruptions: -8 purity, -12 percent yield~/crafting/ActiveChemBatch.java:73-78
Violent reactor rowspressure 2: both fentanyl routes, both naloxone routesres/data/doomedmatu/doomed_chemistry/shipped_processes.json
Concealed

A fire or blast costs you the batch even if you contain it

An incident is recorded once per batch and adds four interruption-equivalents on top of whatever the fire did to the world - 8 purity and about 12 percent of yield. Scorched or vented material is a worse batch whether or not you put the fire out. The Reactor's pressure-2 reactions - both fentanyl routes and both naloxone routes - can detonate outright when run over an open flame or while overheating, with a 4-block wounding blast that leaves terrain intact.

Fumes

A running machine emits fumes at a potency set by the recipe or, where the recipe stays silent, by the machine. The Kiln and the Still are worst at 3. The Slaking Vat and the Evaporator sit at 2. The Drying Oven and the Recrystallizer are 1. The Fermenter and the Filter Press emit nothing.

Exposure is scanned every 10 ticks in a 3-block cube around each player. Every running machine within that cube contributes its potency scaled down by distance, and the contributions add up to a bounded ceiling of 5. Solid blocks and bulk liquids block the line entirely, so a wall between you and the machine works.

Open sky halves the concentration. A lit Fume Hood in the same connected airspace cuts it to 12 percent, which is the difference between a workable indoor lab and a room that will kill you. The hood is an RF block drawing 12 FE per tick while lit.

Unprotected, a cloud accrues 0.8 sickness per second per unit of cloud. At 1.5 or above you get movement slowdown, and without safety glasses or a gas mask a dark haze over your vision. At 2.0 or above you get nausea, and the excess above 2.0 starts doing real muscle damage to the thorax at 0.025 per second per unit.

Respiratory protection reduces what reaches the airway and spends filter life doing it. A pack can switch the whole hazard off through the chemFumes config.

In game, this reads

An RF ventilation hood. Feed it from a cable; while

powered it vents the acrid fumes from nearby chemistry

machines, so you can work indoors without a mask.

Makes no power of its own.

tooltip.doomedmatu.fume_hood

Two gaps in four lines. The hood multiplies the cloud by 0.12 rather than clearing it, so a Kiln and a Still in the same room can still reach the slowdown threshold. And the cable it tells the player to feed it from does not exist in the mod.

Past a breathed cloud of 2.0 the handler reaches into the thorax and subtracts from its muscle health directly, so chemical injury to the chest is stored, projected and healed as an ordinary limb injury - the injuries and treatment record carries it from there. Injury and Treatment

Fouling

Machines remember what they have made. Four numbers persist between batches and across saves.

Residue climbs by 9 per completed batch plus a third of the recipe's fume potency in tenths, so a fume-3 process adds 19 each time. Residue caps at 100.

Microbial load climbs by 16 for a Fermenter batch, 3 for any other wet batch, and 1 for a dry one.

Sterility is pushed down to at most 55 by a wet batch and at most 75 by a dry one.

Calibration drops by 1 per batch, and a drift value random-walks by up to plus or minus 0.35 each time, bounded at plus or minus 12.

These feed straight back into the product. Chemical carryover on the output is the greater of the input's own chemical contamination and 35 percent of the machine's residue, plus 15 per point of vessel compatibility excess. Microbial carryover is the greater of the input's microbial load and 45 percent of the machine's. An injectable product with sterility below 90 has its microbial carryover additionally floored at half the sterility deficit.

Maintenance is done from the console and revalidated server-side. Rinsing consumes one water bucket, clears residue to 0, removes 30 microbial and pushes sterility down to at most 45. Rinsing is washing, and washing makes the sterility reading worse. Sterilizing consumes one bleach and requires residue at 5 or below; on a dirty vessel it fails silently, with no sound and no message. Calibrating costs 750 FE and resets calibration to 100 with near-zero drift. All three refuse to run once a batch is past progress 0.

Fouling - exact values
QuantityValue as shippedDefined in
Residue per batch9 plus fume tenths / 3~/crafting/ChemistryEquipmentState.java:87
Microbial per batch16 biological / 3 wet / 1 dry~/crafting/ChemistryEquipmentState.java:90
Sterility ceiling after a batch55 wet, 75 dry~/crafting/ChemistryEquipmentState.java:88-89
Chemical carryovermax(input, 35 percent of residue) plus 15 per compatibility point~/crafting/ChemistryEquipmentState.java:74-76
Microbial carryovermax(input, 45 percent of machine load); invasive product floors at (90 - sterility) / 2~/crafting/ChemistryEquipmentState.java:78-82
Rinse1 water bucket; residue 0, microbial -30, sterility down to 45~/crafting/ChemistryEquipmentState.java:97-106
Sterilize1 bleach; requires residue 5 or below~/crafting/ChemistryEquipmentState.java:109-119
Calibrate750 FE~/network/C2SChemistryActionPacket.java:107
Concealed

Rinsing makes the sterility reading worse, and sterilizing a dirty vessel fails silently

Rinsing with a water bucket clears residue to 0 and removes 30 microbial load, but it also pushes sterility down to at most 45 - water is not sterilization. Bleach sterilization then requires residue at 5 or below, so the order is forced: rinse first, then bleach. Attempting to sterilize a residue-fouled vessel returns false with no sound, no message and no consumed bleach.

FRAGMENT 11-C - FIELD JOURNAL, ENTRY "CLEAR"

SUMMARY: A four-page entry the character writes for himself, one page at a time, as he works out that a clean vessel and a safe vessel are different objects. Page one unlocks the first time a rinse takes a heavily fouled vessel down and the sterility reading still sits under 90. Page two unlocks only if he has already written page one and then tries to bleach a vessel with residue still in it - the attempt fails, no bleach is consumed, and the console records "Sterilize blocked: rinse first".

RESPONSE: Page two, in full at the end: "I nearly used the vessel anyway. It had been heated. I had done the serious-looking part. That should have counted for something. It doesn't. Dirt first. Then heat. Sterilizing something filthy only makes hot filth." Page three, written after a successful bleach, notes that the glass looks exactly as it did after rinsing and that he has marked the sterile equipment separately.

FINAL NOTE: Page four is the hot injection site, and it requires page three, which requires page two, which requires page one. Someone who never works out the rinse-then-bleach order can seed an infected puncture with a filthy needle as often as he likes and will never be handed the page explaining what happened. The entry teaches the lesson only to a player who has already learned it.

res/data/doomedmatu/doomed_journal_entries/clear.json, gated by C2SChemistryActionPacket.rinse/sterilize and FieldJournalObservationTracker.observeDirtyInjection

The assay

The machine console never displays the real grade of what it made. Data slot 17 returns -1 permanently, by design - quality is disclosed by a consumed sample rather than by omniscient telemetry.

Pressing ASSAY destroys 10 mB of the output fluid, or one item from the output slot where there is no fluid, and produces an estimate with an error bar.

The reported purity is the true value plus the machine's calibration drift plus a random offset within the uncertainty band. Purity uncertainty is 14, minus 0.55 per point of Intelligence, plus a tenth of the calibration deficit, clamped to between 2 and 22. Contamination uncertainty is 20, minus 0.65 per Intelligence point, plus an eighth of the calibration deficit, clamped between 3 and 30.

Calibration drift is a bias, not noise. A drifted instrument reports consistently high or low by up to 12 points, and nothing on screen distinguishes that from the real number. Calibrating fixes the instrument. It never touches the reaction.

The reading is stamped onto whatever remains in the output, so an assayed item carries its estimate in its tooltip after it leaves the machine. Any change to the sampled material voids it: completing another batch into the same output slot, or blending a new lot into a tank, clears the assay. An item with a grade tag but no assay shows "Assay: untested".

Chemistry trains Intelligence, which is what narrows the interval. Hand-crafting a tagged reagent awards a base of 8, a machine synthesis awards 12 to the nearest player within 8 blocks, and each repeat of the same product yields 82 percent of the last, floored at 8 percent of base.

The assay - exact values
QuantityValue as shippedDefined in
Assay sample cost10 mB of output fluid, or 1 output item~/crafting/ChemistryEquipment.java:31
Purity uncertaintyclamp(14 - 0.55 x INT + (100 - calibration)/10, 2, 22)~/crafting/ChemistryEquipmentState.java:131
Contamination uncertaintyclamp(20 - 0.65 x INT + (100 - calibration)/8, 3, 30)~/crafting/ChemistryEquipmentState.java:132
Calibration drift rangeplus or minus 12, applied as a bias~/crafting/ChemistryEquipmentState.java:92
True grade in telemetrynever sent, slot 17 returns -1~/block/entity/ProcessMachineBlockEntity.java:765
Chemistry XP8 hand-craft, 12 synthesis, x0.82 per repeat, floored at 8 percent~/crafting/ChemXp.java:323-326
Synthesis XP reach8 blocks, nearest player~/crafting/ChemXp.java:327
Concealed

The console will never tell you the true grade

The machine's telemetry slot for output quality returns -1 permanently and deliberately. The only way to learn a batch's grade is to press ASSAY, which destroys 10 mB of fluid or one item and returns an estimate. The estimate is the true value plus the instrument's calibration drift plus random noise inside an uncertainty band. Drift is a bias of up to 12 points in one direction, so a drifted instrument reports consistently wrong and nothing on screen distinguishes that from the real number. Calibration decays by 1 per batch.

FRAGMENT 12-A - CONSOLE TELEMETRY, SLOT 17

SUMMARY: A machine console publishes a block of numbered readings to the screen - energy, tank levels, heat tier, progress, stall code, residue, sterility, calibration. Slot 17 is where the finished batch's quality would go. It returns -1 on every read, on every chemistry machine, permanently, with a line of justification sitting beside it in the code.

RESPONSE: The line reads: "output quality is disclosed by a consumed assay, never omniscient telemetry". Until you spend a sample, the product's own tooltip says "Assay: untested (sample it in the machine console)" and nothing else.

FINAL NOTE: What you get for the sample is the true value plus the instrument's calibration drift plus noise inside a stated band. Drift is a bias of up to 12 points held in one direction until somebody spends 750 FE, and a drifted reading and an honest one are rendered in identical text. The uncertainty is printed. The bias is not.

ProcessMachineBlockEntity data slot 17, ChemTooltips.onTooltip, ChemistryEquipmentState.assay

In the body

Purity is not a score. It is the active fraction of what you inject. A 100 mL dose at 40 percent grade delivers 40 mL of actual drug effect, and the dose calculation multiplies volume by purity before anything else touches it.

Separately, the impurity itself hurts. A dirty dose adds sickness at 0.4 per mL scaled by how impure it is, applied once per injection rather than once per component of a mix. It can also fester the injection site: the infection seed is up to 25, scaled by the impurity fraction and by how much of a full 100 mL syringe you actually pushed.

Microbial load is tracked separately from purity and does something different. Every injection creates a real puncture wound, and the process contamination is written onto that exact wound rather than onto a generic limb value. Wound contamination is 2 plus a quarter of the chemical carryover plus three quarters of the microbial load, both scaled by delivered volume. Where microbial load is present the wound also gets an infection seed of up to 35.

For a mixed solution the effective purity is the volume-weighted mean of its components, and each component's own purity scales its own effect.

This is what makes street chemistry emergent rather than flagged. A batch made in a fouled Fermenter, run over a brazier, stalled twice and drawn through an unsterilised vessel is a weaker drug that also makes you sick and infects the hole it went in through. No tag anywhere says "impure".

In game, this reads

A dirty street opioid in a syringe.

Inject into a limb (drag onto it): powerful pain relief,

but it leaves you sick. Addictive.

tooltip.doomedmatu.heroin

The tooltip is fixed text on the item, so every syringe of it reads "dirty". The sickness is rolled from the batch, so two syringes with the same tooltip can hurt you by different amounts.

Grade is applied before the drug model ever sees the dose: the injected millilitres are multiplied by purity and by the syringe's carrier fraction first, so everything the pharmacology record describes about the depot, reception and the overdose line is running on that reduced number. Drugs and Pharmacology

The puncture's infection seed is written only while the infection switch is on, so a server running with infection disabled leaves microbial load doing nothing beyond the contamination figure stamped on the wound. Disease and Infection

In the body - exact values
QuantityValue as shippedDefined in
Delivered effectmL x purity / 100 x carrier fraction~/body/DrugService.java:170
Impurity sickness0.4 per mL, scaled by (100 - purity) / 100~/body/DrugService.java:101-103
Impurity infection seedup to 25~/body/DrugService.java:104
Puncture contamination2 + 0.25 x chemical x volume + 0.75 x microbial x volume~/body/DrugService.java:509
Puncture infection seedmicrobial x volume x 0.35, capped at 35~/body/DrugService.java:516
Factory syringesalways read as 100 percent pure~/body/DrugService.java:445-450

The table

All 68 shipped operations live in one datapack file, data/doomedmatu/doomed_chemistry/shipped_processes.json - 58 unit operations and 10 Reactor reactions. The breakdown is 16 Evaporator, 11 Recrystallizer, 10 Reactor, 8 Kiln, 7 Fermenter, 6 Drying Oven, 4 Still, 3 Slaking Vat and 3 Filter Press.

Rows are validated on load and rejected individually, so one malformed row loses that row and logs it rather than deleting the table. Bounds are enforced: ticks 1 to 72,000, FE 0 to 1,000,000, fluid amounts 0 to 4,000 mB, item counts 1 to 64, heat 0 to 3, fume 0 to 4, corrosive and pressure 0 to 3. A unit-operation row with more than one output item is refused outright, since those machines have a single output slot and the second product would silently vanish.

When two recipes for the same machine match what is loaded, the most specific wins - the one asking for the most item ingredients. Ties keep file order. This is more than cosmetic: the industrial iodine batch on the Evaporator sat behind an item-free solvent row on the same fluid and could never fire once, so loading kelp and bottles into an evaporator produced reagent solvent instead.

Selection deliberately ignores whether the output has room. A full output slot is a reason to stall, not a reason to run something else.

With the opioidsEnabled server setting off, 20 of the 68 rows disappear from the machines and from JEI and EMI, and the filter then repeatedly drops any surviving row whose ingredient nothing left can produce. The naloxone chain is the live case - its first step is raw opium.

In game, this reads

Dried poppy latex - the base of the opioid line.

Dissolve it into opium fluid (Reactor or Evaporator),

or recrystallize it with acid to start the naloxone branch.

tooltip.doomedmatu.raw_opium

This item is the reason the naloxone chain is the live case for the opioid switch. With opioidsEnabled off, the rows this tooltip points at are among the 20 removed, and the naloxone branch goes with them.

The two accessors the machines read are the same ones feeding the JEI and EMI sync packet, so a recipe book on a server with opioids switched off is showing the shortened table the machine is actually running - the routes record walks what survives. Reagents and Routes

The table - exact values
QuantityValue as shippedDefined in
Shipped table68 rows: 58 unit operations, 10 reactorres/data/doomedmatu/doomed_chemistry/shipped_processes.json
Row counts by machineEVAPORATOR 16, RECRYSTALLIZER 11, REACTOR 10, KILN 8, FERMENTER 7, DRYING_OVEN 6, STILL 4, SLAKING_VAT 3, FILTER_PRESS 3res/data/doomedmatu/doomed_chemistry/shipped_processes.json
Validated boundsticks 1-72,000; fe 0-1,000,000; mB 0-4,000; heat 0-3; fume 0-4~/crafting/ChemistryProcessManager.java:343-351
Selection rulemost item requirements wins, ties keep file order~/block/entity/ProcessMachineBlockEntity.java:242-254
Rows removed by the opioid switch20 of 68, plus orphaned dependents~/crafting/ChemistryProcessManager.java:153-213
FRAGMENT 13-B - LOAD LOG, REJECTED ROW

SUMMARY: The chemistry table is revalidated on every world load and every datapack reload, row by row, and the survivors are counted out loud: "Loaded 58 unit-operation and 10 reactor chemistry recipes". A row that fails validation is dropped by itself and named in the log with its index and its file.

RESPONSE: A representative refusal, thrown while parsing: "output_items has 2 entries but a RECRYSTALLIZER has one output slot - only the first would ever be produced". The machine has one output slot and the tick loop only ever writes the first product, so the second would have vanished on every batch forever without anybody being told.

FINAL NOTE: The per-row catch used to sit outside the loop, at file scope. One typo anywhere in shipped_processes.json therefore threw away all 68 recipes at once and left eight machines and a Reactor with nothing at all to make - a mod that boots clean and appears to have no chemistry in it.

ChemistryProcessManager.apply and ChemistryProcessManager.parseProcess

Notes

  • Every completed batch writes a residue signature onto the machine - the exact recipe key that last fouled the vessel - and saves it to NBT. Nothing reads it back. Whether it was laid down for cross-product carryover, so that a Kiln caked in roasted sulfur would poison the next lot of refined salt, or whether it was only ever a debugging field, is not written down anywhere in the source.
  • Vessel compatibility is live code that no shipped recipe reaches. A row incurs it only when its corrosive rating exceeds the machine's corrosion resistance, or when its sealed pressure exceeds the machine's pressure rating, and across all 68 shipped rows neither happens once. The 15-points-per-excess contamination surcharge and the compatibility branch of the rupture roll are datapack-only in practice. No record says whether the resistance table was tuned until shipped content came out clean, or whether the content simply predates the table.
  • The heat comparator reports a tier, not a position in the band. Back off at 12, over-fired at 15 holds only for the machines whose ceiling is tier 3. A Still or a Drying Oven has already passed its ceiling at 12. A Fermenter passed its at 4. Whether an automation was ever meant to compare the signal against each machine's own band was never settled in the source.
  • The build spec and the shipped code disagree about glassware. reference/CHEMISTRY_REALISM_SPEC.md asks for a machine upgrade slot, a crude ceiling near 75, and lab glass that also lowers the hazard rate. What shipped is a flask fitted by right-click, a crude ceiling of 60, and a condition value that feeds the purity ceiling and touches no hazard roll at all. Which of the two ceilings was the intended difficulty is not recorded.
  • None of the penalty stack has been measured in play. The hazard rates carry a comment saying the previous values compounded to roughly 60-100 percent incidents across an ordinary 30-second run, and the replacements were derived by arithmetic from that; the arithmetic is in the file, a measurement is not. The seven chemistry gametests exercise the state objects only - legacy load, rinsing, sterilization, tank blending, contamination tags, datapack sourcing. None of them places a machine and runs a batch, so nothing automated has ever checked a heat penalty or the incident cost.
CHEM-02

Reagents and Routes

Chemistry in Doomed is a chain of small, dumb machines. Each one performs a single physical operation - dry, roast, slake, ferment, distil, press, recrystallize, boil down - and the Reactor sits at the end of the ladder holding the reactions that actually make an injectable drug. Every batch carries a hidden 0-100 quality number that is rolled from how the machine was run, and that number decides how much of the dose is real drug and how much is dirt that sickens you and festers the injection site. Nothing in the interface shows you that number until you spend part of the batch sampling it.

Doomed's Opium Solution sitting in a Mekanism Basic Fluid Tank at 370 mB, pumped out of a Still running over an open Bra
PLATE CHEM-02.1Doomed's Opium Solution sitting in a Mekanism Basic Fluid Tank at 370 mB, pumped out of a Still running over an open Brazier. Doomed's chemistry fluids are ordinary Forge fluids, so anything that moves or stores a fluid will move or store these, including the ones that are not supposed to leave the lab.Capture: 2026-08-20_23.44.52.png

Two tables

All chemistry recipes live in a single server datapack file rather than the normal recipe folder, and they split into two tables. Rows whose machine is anything other than REACTOR are unit operations, run by the eight process machines. Rows whose machine is REACTOR belong to the Reactor alone. Sixty-eight rows ship.

A process machine has two input item slots, one output item slot, an input fluid tank, an output fluid tank and an RF buffer. The Drying Oven, Kiln and Recrystallizer show no fluid bars at all - their recipes run solid to solid, and the reagent they consume is an item. The Reactor has three reagent slots and both tanks. Both tanks hold 4,000 mB.

A machine picks its recipe from what was loaded, ranked by how many ingredients the row asks for. The most specific row wins, and ties keep file order. Output space is deliberately left out of that decision: a full output slot stalls the machine rather than pushing it toward a different product. It used to push. That is how kelp and bottles loaded into an Evaporator came out as solvent instead of iodine.

One ingredient never occupies both input slots. Two slots mean two ingredient roles, so a Recrystallizer fed a double stack of one reagent out of a chest keeps every two-ingredient row it owns.

In game, this reads

The heart of drug synthesis. Load reagents in the 3

slots and a precursor fluid; needs FE and heat (a

brazier/heater beside it). Runs the chain raw opium ->

opium -> morphine -> heroin, and precursor + catalyst

-> fentanyl / naloxone / ceftriaxone, out as a drug

fluid. Set faces to input/output. Volatile - fumes

while running; deep syntheses can detonate over a flame

or when overheating.

tooltip.doomedmatu.reactor

The three slots and the precursor fluid are the whole Reactor interface; the eight process machines take two item slots instead.

Heat

A machine reads the best heat source among its six face-adjacent blocks. A lit Brazier, fire, lava, magma or a lit campfire is tier 1. One running RF Heater is tier 2. Two adjacent running Heaters make tier 3. Three or more make tier 4, which is over-fired and above every recipe's safe ceiling.

Each machine type carries a required minimum and a safe ceiling. The Kiln needs tier 2, so a brazier will never light one - the single most common reason a Kiln sits idle reading NEEDS HEAT. The Still, Evaporator and Drying Oven need tier 1. The rest need none.

The ceiling is where it gets expensive. Quality is rolled against how far into the band the machine actually sat, averaged over the whole batch. The bare minimum costs 12 points of grade and a quarter of the fluid yield. The ceiling costs nothing. So the Evaporator and the Kiln want exactly two Heaters, while the Drying Oven, Still and Recrystallizer want exactly one, their ceiling being tier 2 and a second Heater pushing them over it.

The Fermenter is the trap. Its safe ceiling is tier 0, so any heat at all beside a Fermenter sits above band, costing grade and mash. Put the braziers somewhere else.

The Recrystallizer is the other trap, running the opposite way. It runs with no heat, and heat still drives its quality roll: at tier 0 the roll starts 12 points down. A Recrystallizer with no Heater beside it quietly makes worse crystal than one with a Heater beside it.

The Filter Press and Slaking Vat ignore heat entirely for quality purposes.

Every row carries a total FE cost and a tick count, and the machine spends the FE evenly across those ticks. The heaviest single row is the Kiln turning catalyst ore into clinker at 4,000 FE over 300 ticks, which works out to 13.3 FE per tick. The Fermenter rows are the cheapest at about 1 FE per tick.

The mod ships exactly one generator. The Fuel Generator burns ordinary furnace fuel at a flat 20 FE per tick, which covers any single chemistry machine with room to spare and falls short of two heavy ones. A Heater draws 12 FE per tick while lit, so a Kiln plus its two Heaters is already 37 FE per tick.

A batch remembers its own history. Time spent below the band, time spent above it, and every stop-start transition subtract from the finished grade, and the arithmetic only ever runs the one way. Each interruption costs 2 grade points up to a cap of 14, and 3 percent of fluid yield down to a floor of 65 percent. A fire or a rupture during the batch counts as four interruptions at once.

A batch that has yet to tick once is committed to nothing. Reservation happens at the completion tick, so a machine parked on OUTPUT BLOCKED loses nothing, and topping up its input tank with cleaner material while it waits actually improves the finished product. A stalled full output is specifically excluded from the thermal sampling for that reason - a backed-up automation line will not rot the charge it is holding.

In game, this reads

Purifies crude solids with a solvent reagent (FE, no

heat, no tanks). Recrystallises crude morphine, heroin

and precursors, and catalyst, to a cleaner grade.

Set faces to input/output.

tooltip.doomedmatu.recrystallizer

The string says no heat, and the machine does run cold. Heat still drives the quality roll, so tier 0 starts that roll 12 points down.

Heat - exact values
QuantityValue as shippedDefined in
Heat tier sources1 open flame, 2 one Heater, 3 two Heaters, 4 three or more~/block/HeatSource.java tierAt()
Minimum tier to runKiln 2; Still, Evaporator, Drying Oven 1; all others 0; Reactor 1~/crafting/ProcessRecipe.java:309
Safe ceilingKiln and Evaporator 3; Still, Drying Oven, Recrystallizer 2; Fermenter 0; Slaking Vat and Filter Press 3; Reactor 3~/crafting/ProcessRecipe.java:317
Grade lost at minimum heat12 points, plus 16 more per tier above the ceiling~/crafting/ChemConditions.java:18,26
Fluid yield floor at minimum heat75 percent of nominal~/crafting/ChemConditions.java:22
Comparator readouttier 3 reads 12, tier 4 reads 15~/block/HeatSource.java comparatorSignal()
Fuel Generator output20 FE per tick~/block/entity/FuelGeneratorBlockEntity.java:47
Heater draw while lit12 FE per tick~/block/entity/PoweredClimateBlockEntity.java:28
Heaviest chemistry row13.3 FE per tick (Kiln, catalyst clinker)shipped_processes.json, KILN raw_catalyst_ore row
Longest row640 ticks (Reactor, fentanyl from pure precursor)shipped_processes.json, REACTOR fentanyl_precursor_pure row
Interruption penalty2 grade each, capped at 14; yield floor 65 percent~/crafting/ChemConditions.java:87,103
Fire or rupture costcounts as 4 interruptions~/crafting/ActiveChemBatch.java:77
Concealed

The Fermenter's safe heat ceiling is zero

Every other machine has a heat band you want to sit inside. The Fermenter's ceiling is tier 0, so any adjacent heat source - a lit brazier, a campfire, lava, a running Heater - puts it above band for the whole batch, costing grade and up to 40 percent of the mash yield. Its quality roll is not exempted the way the Filter Press and Slaking Vat are.

Concealed

The Recrystallizer wants heat it does not require

The Recrystallizer's minimum heat is 0, so it runs happily with nothing beside it. Its safe ceiling is 2, and heat still drives its quality roll, so running it cold starts the roll 12 points down. Exactly one RF Heater adjacent puts it at tier 2 and removes the penalty; a second Heater pushes it to tier 3 and costs 16 points instead.

The five reagents

Everything downstream runs on five generic reagents. All five are earned.

Base reagent is slaked lime. Craft calcite into limestone, kiln the limestone into quicklime, then slake the quicklime with 500 mB of water in the Slaking Vat for two base reagent. Boiling 500 mB of waste filtrate down in the Evaporator gives one, which is how the press waste from the morphine and antibiotic lines gets recycled.

Solvent comes off the alcohol chain. Ferment sugar, wheat, apples, sweet berries or cyst gall berries with water into mash, distil 1,000 mB of mash into 300 mB of ethanol in the Still, then boil 300 mB of ethanol down in the Evaporator for two solvent. Sugar is the best feedstock: two sugar and 1,000 mB of water gives a full 1,000 mB of mash in 400 ticks, where three wheat gives 800 mB in 600 ticks.

Acid reagent has a mineral route and a bio route, and the mineral route is worth twice as much. Two gunpowder crafts into two sulfur lumps; kiln a lump into roasted sulfur, kiln that into sulfur trioxide, slake the trioxide with 500 mB of water into 300 mB of acid liquor, then boil the liquor down for two acid reagent. The bio route ferments 300 mB of ethanol into 300 mB of vinegar in an unsealed Fermenter and boils that down for one acid reagent.

Acetylating reagent is a bench craft: one acid reagent plus one solvent. It uses the grade-carrying shapeless recipe type, so it inherits the lowest grade of the two ingredients rather than resetting to perfect.

Catalyst is the gate on the two hardest syntheses. Three amethyst shards craft into raw catalyst ore, the Kiln fires it into catalyst clinker at 4,000 FE, and the Recrystallizer dissolves the clinker in solvent into reaction catalyst. Fentanyl and naloxone will not run without it.

Salt starts in the sea. One dried kelp boiled with 1,000 mB of water in the Evaporator gives two crude salt. Two crude salt recrystallized with solvent gives two refined salt. Kilning refined salt gives electrolyte salts.

Saline is refined salt boiled with 900 mB of water into 1,000 mB of saline. The choice of water decides the grade outright: distilled water stamps the batch at 95, ordinary water stamps it at 70. Distilling costs 1,000 mB of water and 700 FE for 900 mB of distilled water in the Still, and it is worth doing for anything headed into a vein.

Ringer's solution takes two dry components. Kiln bone meal into mineral supplement, craft sodium lactate from two sugar plus a base reagent, then recrystallize the supplement with the lactate into Ringer's salts. Evaporate electrolyte salts plus Ringer's salts with 900 mB of water into 1,000 mB of Ringer's solution - again 95 on distilled water, 70 on plain.

One unrelated route lives on the same machine. Two dried kelp blocks, four glass bottles and 300 mB of ethanol in the Evaporator produce four iodine, against the bench recipe's one iodine per kelp block and bottle. Iodine is the long-window topical disinfectant.

In game, this reads

A rare catalyst reagent.

The hardest full syntheses - fentanyl and naloxone -

won't run without it. Refined from catalyst clinker.

tooltip.doomedmatu.reagent_catalyst

Saline and Ringer's carry their stamped grade as an active fraction, so a 100 mL syringe off the plain-water row adds 0.07 L of blood volume where the distilled-water row adds 0.095 L, and the distillation step pays for itself in the vein rather than on the recipe card. Blood and Circulation

Concealed

Turning opioids off deletes the naloxone chain too

The opioid kill-switch filters the recipe tables at the accessor rather than at load, then runs a fixpoint pass that repeatedly drops any row whose ingredients nothing can produce any more. Naloxone's first step consumes raw opium, so with opioids off the whole four-step naloxone synthesis vanishes from the machines and from JEI and EMI along with it. Naloxone still appears in loot; you simply cannot make it. Surviving poppies also keep growing but stop dropping anything.

Antibiotics

Ceftriaxone has the longest legitimate chain in the mod, with two entry points. Above ground, an antibiotic culture crafts from rotten flesh, a brown mushroom and sugar. In the cyst biome, spore caps come off spore blooms, and three of them dried in the Drying Oven make one culture - that is the reason a trip down there is worth the lungs it costs, and it is the only antibiotic source free of a mob farm.

From the culture: ferment it with 500 mB of distilled water into 500 mB of ferment broth, press the broth into ceftriaxone mash plus 400 mB of waste filtrate, run the mash with solvent through the Still into crude cephalosporin, recrystallize that with solvent into pure cephalosporin, and finish it in the Reactor with an acetylating reagent. That last step stamps 96, the highest nominal grade of anything in the mod.

There is a one-step shortcut. Antibiotic culture plus solvent straight into the Reactor gives ceftriaxone at 75 for 5,000 FE and 600 ticks. It skips five machines and costs 21 points of grade.

The antibiotic pill is a separate, cruder thing: culture plus sugar plus paper on a bench. The antiviral costs two cultures plus glow berries plus paper, deliberately dearer, because antibiotics do nothing to Rot Lung.

In game, this reads

A cultured mould broth.

Ferment it in sterile water, or take the Reactor shortcut

with solvent - the source of the ceftriaxone line.

tooltip.doomedmatu.antibiotic_culture

Both routes named here are real. The shortcut stamps 75 where the full chain stamps 96.

Injected ceftriaxone sets the antibiotic timer and disinfects the limb it entered for 180 seconds, and nothing on this line reaches a virus: Rot Lung wants the antiviral, whose recipe costs two cultures for that reason. Disease and Infection

Antibiotics - exact values
QuantityValue as shippedDefined in
Cave culture route3 spore caps -> 1 antibiotic culture, 400 FE, 160 ticksshipped_processes.json, DRYING_OVEN spore_cap row
Spore cap drop1-2 per spore bloom, Fortune applies; shears keep the plant insteadres/data/doomedmatu/loot_tables/blocks/cyst_spore_bloom.json
Full ceftriaxone grade96, at 5,500 FE and 600 ticksshipped_processes.json, REACTOR cephalosporin_pure row
Shortcut ceftriaxone grade75, at 5,000 FE and 600 ticksshipped_processes.json, REACTOR antibiotic_culture row
Ferment step1 culture + 500 mB distilled water -> 500 mB broth, 2,500 FE, 400 ticksshipped_processes.json, FERMENTER antibiotic_culture row

Opioids

It starts with the opium poppy, an eight-stage crop that grows on farmland, dirt, grass, podzol, moss or a dirt path. Harvest the mature pod for poppy latex, dry the latex in the Drying Oven for raw opium.

The bench route is long. Evaporate raw opium with 500 mB of water into 500 mB of opium solution at grade 60. Slake that with a base reagent into 500 mB of morphine slurry at 70. Press the slurry into crude morphine plus 400 mB of waste filtrate. Recrystallize the crude with an acid reagent into morphine base, dry it, recrystallize the dry base with solvent into morphine solid, then evaporate the solid with 200 mB of water into 200 mB of morphine at grade 92.

The dirty shortcut skips the last two steps: evaporate morphine base dry straight into morphine at grade 68. Twenty-four points of grade for two machine steps.

There is also a weak tap-off. Boil 500 mB of opium solution down to 100 mB of opium at grade 55, a fifth of the volume and the worst grade on the board.

Heroin repeats the pattern. Morphine solid plus acetylating reagent recrystallizes into crude heroin, which dries into heroin dry. Evaporate the dry directly for heroin at 48, or recrystallize the dry with solvent into pure heroin first and evaporate that for heroin at 90.

The Reactor carries a parallel, shorter ladder at worse grades: raw opium into 100 mB of opium at 80, then opium plus base and solvent into morphine at 65, then morphine plus acetylating reagent into heroin at 55. It is faster and it is dirtier. Dirt is not cosmetic.

In game, this reads

Dried morphine base.

Recrystallize with solvent for pure morphine solid,

or dissolve it straight for a low-grade morphine fluid.

tooltip.doomedmatu.morphine_base_dry

Low-grade is 68. The two extra machine steps the string points at are worth 92.

An injected opioid loads a depot that absorbs over time rather than landing all at once, so fentanyl's respiratory low point arrives well after the needle and can outlast a naloxone dose given in answer to it. Pain, Consciousness and Death

The deep syntheses

These are the deep syntheses, and all of them finish in the Reactor.

Fentanyl's precursor is built out of pure reagents rather than the plant. Kiln a base reagent and an acid reagent together into crude fentanyl intermediate, recrystallize it with solvent into the pure intermediate, dry that into the pure precursor, then react the precursor with a reaction catalyst. That final step is the most expensive operation in the mod at 7,000 FE over 640 ticks, and it stamps 92.

Naloxone runs off raw opium instead. Recrystallize raw opium with an acid reagent into the crude intermediate, recrystallize that with solvent, dry it into the pure precursor, and react it with catalyst for grade 94.

Both have a dirty shortcut built on an unrefined precursor item that can only be found - fentanyl precursor and naloxone precursor turn up in drop capsule loot at the rarest weight. Reacted with catalyst they give grade 70 instead of 92 or 94.

Procoagulant is the odd one out, the one Reactor row that stands clear of the chemistry chain entirely. Two clotting mush, one mineral supplement and one solvent give 100 mB of procoagulant at grade 72 for 3,500 FE. Clotting mush is cobweb and wheat on a bench, and mineral supplement is kilned bone meal. Procoagulant is the only treatment that reaches internal bleeding anywhere in the body, so this row matters more than its position on the ladder suggests.

In game, this reads

Pharma-grade fentanyl precursor, dried from the pure intermediate.

React it with catalyst in the Reactor for clean fentanyl.

That synthesis is violent - keep open flame away and don't

overheat the vessel, or it can detonate.

tooltip.doomedmatu.fentanyl_precursor_pure

Procoagulant reduces internal bleeding through the wound ledger in every limb at once and thickens the blood as it goes, so a second and third dose trade a bleed you can see for a viscosity problem you cannot. Blood and Circulation

The deep syntheses - exact values
QuantityValue as shippedDefined in
Fentanyl, full routegrade 92, 7,000 FE, 640 ticksshipped_processes.json, REACTOR fentanyl_precursor_pure row
Naloxone, full routegrade 94, 6,000 FE, 560 ticksshipped_processes.json, REACTOR naloxone_precursor_pure row
Found-precursor shortcutgrade 70 for bothshipped_processes.json, REACTOR fentanyl_precursor and naloxone_precursor rows
Procoagulant2 clotting mush + 1 mineral supplement + 1 solvent -> 100 mB at grade 72, 3,500 FE, 420 ticksshipped_processes.json, REACTOR clottingmush row
Every reactor output volume100 mB nominal, which is exactly one full syringe~/item/FluidSyringeItem.java:37

Grade

Every solid intermediate carries a hidden 0-100 grade on its NBT, and every chemistry fluid carries a purity the same way. An item with no tag reads as 100 and counts as unmeasured.

The finished number is rolled at the completion tick from the recipe's nominal grade, minus the heat penalty, minus time spent out of band, minus interruptions, plus a jitter of up to 3 points either way. Then it is capped twice.

The first cap is the input. A batch stays close to the dirtiest tracked ingredient that went in. The recovery allowed is 20 percent of the shortfall, capped again by the machine: the Recrystallizer may recover up to 20 points, the Slaking Vat up to 12, the Filter Press up to 8, and every other machine including the Reactor recovers nothing. Grade therefore only ever creeps upward, and it creeps only through recrystallization. Feed a Reactor a grade-60 precursor and no amount of careful heat lifts the drug to 92.

The second cap is glassware, covered below.

When you inject, purity is the active fraction rather than a separate punishment. A 100 mL shot at 40 percent delivers the effect of 40 mL of drug plus 60 mL of dirt. The dirt then adds sickness scaled by volume and impurity, and seeds infection at the injection site up to 25 points at zero purity. A bad batch is weak and harmful at once.

Fluid yield varies too, and only for fluids. Item outputs produce their full stated count however badly the batch ran.

The Evaporator and the Reactor stamp their batches through an installed borosilicate flask. Right-click either machine holding a flask to fit one; the flask goes in instead of the interface opening.

With no flask, or a fully worn one, the purity ceiling is 60. A fresh flask lifts it to 100 on a straight line, so condition 50 means a ceiling of 80. Each batch wears the flask by 4 points, about 25 batches per flask. The ceiling caps the roll and never raises it.

This is the quietest gate in the whole tree, because the Evaporator makes the reagents. Solvent, acid reagent, salt and iodine all come off the Evaporator, and all of them are stamped with a grade. Run a flask-less Evaporator and every reagent it produces is grade 60, the input cap carries that 60 down the entire chain, and the only thing that lifts it is a Recrystallizer creeping it up eight or ten points at a time. A player who never learned about the flask will make grade-60 drugs forever with nothing on screen to explain why.

A flask is nine glass and one quartz on a bench, so the fix is cheap once you know.

Grade is dose: DrugService multiplies the injected millilitres by purity before it applies any effect at all, so a grade-48 street batch delivers roughly half the opioid load of a grade-90 one out of the same 100 mL syringe. Drugs and Pharmacology

Grade - exact values
QuantityValue as shippedDefined in
Grade jitterplus or minus 3 points~/crafting/ChemConditions.java:20
Input cap recovery20 percent of the shortfall, capped per machine~/crafting/ChemConditions.java:114
Per-machine recovery capRecrystallizer 20, Slaking Vat 12, Filter Press 8, everything else 0~/block/entity/ProcessMachineBlockEntity.java purificationRecovery()
Impurity sickness100 mL at 0 percent purity gives about 40 sickness~/body/DrugService.java:103
Impurity infection seedup to 25 at the injection site~/body/DrugService.java:104
Blendingtanks and output stacks merge lots by volume-weighted average rather than refusing them~/fluid/PurityBlendingTank.java
Ceiling with no glassware60~/crafting/Glassware.java:230
Wear per batch4 points, about 25 batches per flask~/crafting/Glassware.java:229
Ceiling formula60 + 40 x condition / 100~/crafting/Glassware.java:236
Machines that use itEvaporator and Reactor only~/block/entity/ProcessMachineBlockEntity.java usesGlassware()
Flask recipe8 glass around 1 quartzres/data/doomedmatu/recipes/borosilicate_flask.json
Concealed

A flask-less Evaporator caps your entire chemistry tree at grade 60

The Evaporator is the machine that produces solvent, acid reagent, salt and the injectable drug fluids, and it stamps every one of them through its installed borosilicate flask. With no flask the ceiling is 60. Because the input-quality cap then limits every downstream step to roughly the dirtiest ingredient it consumed, a grade-60 solvent drags the whole chain down, and only the Recrystallizer can claw any of it back, at up to 20 points and never more than 20 percent of the shortfall. The Reactor recovers nothing at all.

Concealed

Grade only ever creeps upward, and only through recrystallization

The input-quality cap allows a batch to exceed its dirtiest ingredient by 20 percent of the shortfall, further limited by the machine: 20 points at the Recrystallizer, 12 at the Slaking Vat, 8 at the Filter Press, and 0 everywhere else. At input 90 the Recrystallizer can only add 2 points. There is no way to launder a bad feedstock clean, and the Reactor cannot improve anything at all - a grade-60 precursor produces a grade-60 drug no matter how perfectly the reaction runs.

FRAGMENT 02-A - GLASSWARE, ASSIGNED MACHINE

SUMMARY: The Borosilicate Flask carries one description in en_us.json: "Lab glassware for the Reactor.\nFit it to raise the purity ceiling toward pharma grade.\nIt clouds over with use - re-fit a fresh one when it does."

RESPONSE: Two machines take a flask. ProcessMachineBlockEntity.usesGlassware() returns true for the Evaporator, and ReactorBlockEntity keeps a glassCondition field of its own. The Evaporator is the machine that stamps solvent, acid reagent, salt, saline, Ringer's and every finished opioid fluid, so its flask governs far more of the tree than the Reactor's does. The Evaporator's own tooltip mentions the flask. The flask's tooltip never mentions the Evaporator.

FINAL NOTE: A player who reads the item and fits their one flask to the Reactor has gated nothing, because the Reactor recovers no grade in the first place and the 60-point cap has already been stamped onto every reagent upstream. The 0.2.x notes record a pass that added tooltips for every machine, block and step of the chain. Whether this string predates the Evaporator's ceiling or was simply missed in that pass is not recorded.

assets/doomedmatu/lang/en_us.json, tooltip.doomedmatu.borosilicate_flask and tooltip.doomedmatu.evaporator; ProcessMachineBlockEntity.usesGlassware(); the glassCondition field in ReactorBlockEntity.

FRAGMENT 07-C - UNWASHED CARBON, HANDLING NOTE

SUMMARY: The Kiln turns two charcoal and a base reagent into two Unwashed Activated Carbon. The item's tooltip: "Chemically activated carbon contaminated with corrosive residue.\nWash it with distilled water in a Filter Press before swallowing it."

RESPONSE: The washed product, Activated Charcoal, is registered as a MedDrinkItem and can be swallowed. The unwashed item is registered through the plain chem() helper as an ordinary Item with no use action. Nothing consumes it except the Filter Press row. The warning describes a mistake the game will not let a player make.

FINAL NOTE: Read as a safety label it is redundant. Read as a record it says somebody expected the unwashed carbon to be swallowable and to hurt, then either changed their mind or stopped before that half was built. The carbon line is also the only chemistry route in the mod that ends in something you drink rather than inject.

assets/doomedmatu/lang/en_us.json, tooltip.doomedmatu.activated_carbon_unwashed; DoomedItems.chem() against the MedDrinkItem registration for activatedcharcoal; the KILN charcoal row and the FILTER_PRESS wash row in shipped_processes.json.

Fouling

Every machine keeps four numbers that survive between batches: residue, microbial load, sterility and calibration. Finishing a batch fouls all of them. Residue climbs by 9 plus a third of the recipe's fume potency. Any wet step drops sterility to 55, and any biological step - the Fermenter - adds 16 microbial at once. Calibration falls by 1 and drifts randomly.

The payoff is real. Chemical carryover into the product is the larger of the input's contamination and 35 percent of the machine's residue, so a Kiln left uncleaned for six batches stamps 35 chemical contamination onto everything it makes. Microbial carryover is 45 percent of the machine's microbial load, and an injectable product carries a floor on top of that: below sterility 90, the product takes at least half the shortfall. A Reactor that has run one batch sits at sterility 55, so every drug it makes from the second batch onward comes out with at least 17 microbial load.

That number travels. Injecting seeds a puncture wound whose contamination is 2 plus a quarter of the chemical load and three quarters of the microbial load, and any microbial load at all seeds real infection at the site. Seventeen is enough to mark the limb infected on its own.

The cleaning cycle has an order, and it enforces the order. Rinse consumes one water bucket, wipes residue to zero, removes 30 microbial, and drops sterility to 45 - rinsing is explicitly not sterilizing. Sterilize consumes one bleach container, zeroes microbial and restores sterility to 100, and it refuses outright while residue is above 5. Dirt gets to stay visible rather than sealed under a clean surface. Calibrate costs 750 FE and only affects what the readout tells you.

Bleach is a found or bought item, craftable nowhere in the mod, and sterilizing consumes the whole container regardless of how full it is.

In game, this reads

Poison. Drinking it will nearly kill you.

A 100 mL wound pour strips contamination and a little infection,

but chemically burns skin and muscle and grants no antiseptic protection.

tooltip.doomedmatu.bleach

The tooltip covers the wound pour. A container of the same bleach is also what sterilizes a machine, and sterilizing spends the whole container.

Every invasive dose writes one puncture wound at the site it went into, and that wound's contamination is built from the machine's own carryover - 2 plus a quarter of the chemical load plus three quarters of the microbial load, scaled by volume - so a dirty vessel becomes a specific wound record rather than a general penalty. Injury and Treatment

Fouling - exact values
QuantityValue as shippedDefined in
Residue per batch9 + fume potency x 10 / 3~/crafting/ChemistryEquipmentState.java:46
Sterility after a wet batchcapped at 55; 75 for a dry one~/crafting/ChemistryEquipmentState.java:47-48
Microbial floor for injectables(90 - sterility) / 2 when sterility is under 90~/crafting/ChemistryEquipmentState.java:39
Chemical carryover35 percent of residue, or the input's own load, whichever is higher~/crafting/ChemistryEquipmentState.java:34
Rinse1 water bucket; residue to 0, microbial -30, sterility capped at 45~/crafting/ChemistryEquipmentState.java:57
Sterilize1 bleach; blocked while residue is above 5~/crafting/ChemistryEquipmentState.java:70
Calibrate750 FE~/network/C2SChemistryActionPacket.java:106
Injection wound contamination2 + chemical x 0.25 + microbial x 0.75, scaled by dose~/body/DrugService.java:509
Concealed

Your second reactor batch is already contaminated

Completing a wet batch drops the machine's sterility to 55 and cannot be undone by running more batches. For an injectable product, sterility under 90 forces a minimum microbial load of half the shortfall, which is 17. That 17 rides the fluid into the syringe, and injecting seeds real infection at the puncture site at roughly 6 points, enough to mark the limb infected. Restoring sterility takes a rinse with a water bucket followed by a sterilize with a bleach container, in that order, before every batch you intend to inject.

Concealed

Sterilizing refuses to run until you have rinsed

Sterilize checks residue and hard-refuses while it is above 5, on the principle that you cannot seal dirt under a clean surface. Rinse is the only thing that zeroes residue, and rinsing itself drops sterility to 45. The cycle is therefore always rinse first, sterilize second, and doing it in the other order accomplishes nothing.

The assay

Nothing shows a batch's grade until it is assayed. An unassayed item or syringe reads "Assay: untested" on its tooltip and stops there. The Assay button on the machine console consumes 10 mB of the output fluid, or one whole item from the output slot when there is no fluid, and writes an estimate onto whatever is left.

The estimate is not the truth. It is the true value plus the machine's calibration drift, plus a random error of up to the reported uncertainty. Uncertainty on purity starts at 14 and falls by 0.55 per point of Intelligence, with a floor of 2 and a ceiling of 22, and it widens by one point for every 10 points of lost calibration. Contamination reads worse: it starts at 20, falls by 0.65 per Intelligence, and floors at 3.

A character starts at Intelligence 10, which gives about plus or minus 8 on purity and plus or minus 13 on contamination from a freshly calibrated machine. Around Intelligence 22 the purity reading hits its floor of plus or minus 2.

Calibration drift is the nastier half, being a systematic bias rather than noise. It wanders by up to 0.35 per batch and clamps at 12 in either direction, so a machine that has run a long time can quietly report every batch up to 12 points high. Calibrating resets the drift to near zero.

The reading is discarded whenever the material changes. A new batch landing in the tank, or a lot blending in down a pipe, clears the stale assay rather than carrying it forward.

Chemistry itself trains Intelligence. Every machine synthesis awards 12 XP to the nearest player within 8 blocks, and hand-crafting anything in the chemistry tag awards 8, but each repeat of the same product pays 82 percent of the last, flooring at 8 percent of base. One cheap row will carry a character only so far.

The assay - exact values
QuantityValue as shippedDefined in
Assay sample cost10 mB of fluid, or one output item~/crafting/ChemistryEquipment.java:31
Purity uncertainty14 - 0.55 x INT + (100 - calibration) / 10, clamped 2 to 22~/crafting/ChemistryEquipmentState.java:88
Contamination uncertainty20 - 0.65 x INT + (100 - calibration) / 8, clamped 3 to 30~/crafting/ChemistryEquipmentState.java:89
Calibration drift rangeplus or minus 12, moving up to 0.35 per batch~/crafting/ChemistryEquipmentState.java:51
Starting Intelligencelevel 10~/body/Skills.java:15
Synthesis XP12 base, 8 for hand-crafted reagents, x0.82 per repeat, floor 8 percent~/crafting/ChemXp.java:183-186
XP reachnearest player within 8 blocks of the machine~/crafting/ChemXp.java:187
Concealed

The assay is a noisy estimate with a systematic bias

The number on your tooltip is the true grade plus the machine's calibration drift plus random error. Drift wanders by up to 0.35 a batch and clamps at 12 in either direction, so an old machine can report every batch it makes up to 12 points high, consistently, forever. Calibrating costs 750 FE and resets the drift to near zero. Intelligence narrows the random half only - it cannot see through the bias.

FRAGMENT 09-B - THE ONLY NOTICE

SUMMARY: A graded item or syringe with no assay tag prints exactly one line: "Assay: untested (sample it in the machine console)".

RESPONSE: Sampling consumes 10 mB of the output fluid, or one whole item out of the output slot when no fluid is present. What comes back is the true value plus the machine's calibration drift plus a random error up to the reported uncertainty, and the drift is a bias rather than noise: it wanders up to 0.35 a batch and clamps at 12 either way. Reading the number costs part of the batch and returns an estimate.

FINAL NOTE: That line is the whole of what the game volunteers about grade. A player running a flask-less Evaporator gets no line at all - their reagents simply come out at 60 forever, and the tooltip that would tell them is the one they have to spend material to see.

ChemTooltips.java, the untested line and the assay percentage line beneath it; ChemistryEquipment.assay consuming a 10 mB sample; ChemistryEquipmentState.assay and its calibrationDrift term.

Fumes and fire

A running machine emits fumes with a potency of its own. The Kiln and Still are worst at 3, the Slaking Vat and Evaporator sit at 2, the Drying Oven and Recrystallizer at 1, and the Fermenter and Filter Press emit nothing. Individual recipes can override this, and several do.

Exposure is scanned every half second in a 3-block cube around you, distance-weighted and blocked by solid geometry, summing every running machine and capping at 5. Open sky halves it. A powered Fume Hood in line of sight cuts it to 12 percent, which is what makes an indoor lab survivable. Without respiratory protection the cloud adds sickness continuously; at 1.5 it slows you and darkens your vision without safety glasses or a gas mask; at 2 it adds nausea and starts doing recoverable chemical injury to your chest muscle.

Fire is rolled every half second while a batch is moving. A flammable step - the Still, the Evaporator and every Reactor row - carries a base ignition chance that works out to about 6 percent across a 30-second run. An open flame adjacent raises that to roughly 26 percent, and overheating to roughly 42 percent. A brazier, campfire, lava and magma all count as open flame; the RF Heater counts as none. Fire is placed on top of the machine, so it spreads to a wooden base.

The fentanyl and naloxone reactor rows are sealed at pressure 2, which makes them violent. Run one over an open flame or above the heat ceiling and it can detonate rather than merely catch, and a sealed pressure-2 vessel carries a small rupture chance even when run perfectly. The blast wounds and flings, and leaves blocks intact.

The two over-dried pure precursors are shock-sensitive. Carrying pure fentanyl precursor or pure naloxone precursor means a hard wounding fall has a 50 percent chance per stack of setting the whole cache off in your inventory, and every burn tick while you are on fire has a 35 percent chance. The blast radius scales with the stack size up to 4.5 blocks. The tooltip warns you in red; that warning is the only notice you get.

In game, this reads

Pharma-grade naloxone precursor, dried from the pure intermediate.

React it with catalyst in the Reactor for clean naloxone.

That synthesis runs violent - no open flame, no overheating,

or the vessel can detonate.

tooltip.doomedmatu.naloxone_precursor_pure

The vessel warning is in the lang file. The red shock-sensitive line on the same item is written in code instead, so it is not translated with the rest.

Fumes and fire - exact values
QuantityValue as shippedDefined in
Base machine fume potencyKiln and Still 3, Slaking Vat and Evaporator 2, Drying Oven and Recrystallizer 1, Fermenter and Filter Press 0~/block/ProcessType.java fumePotency()
Fume scan3-block radius, every 10 ticks, cloud capped at 5~/body/FumeExposureHandler.java:36-41
Fume Hood ventingcuts the cloud to 12 percent; open sky halves it~/body/FumeExposureHandler.java:38-39
Harm thresholds1.5 for slowness and eye darkness, 2.0 for nausea and chest injury~/body/FumeExposureHandler.java:44-45
Ignition odds over 30 secondsabout 6 percent controlled, 26 percent over open flame, 42 percent overheating~/block/ChemHazards.java:587-589
Blast radius4 blocks, no block destruction~/block/ChemHazards.java:593
Shock-sensitive detonation50 percent per hard fall, 35 percent per burn tick~/body/ShockSensitiveHandler.java:30-31

Moving fluids

Chemistry fluids other than water have no bucket item. They move by adjacent Fluid Barrel, by pipes from another mod, or in a refillable syringe. The barrel holds 16,000 mB, blends lots of the same fluid by volume-weighted average, and is the only fluid storage in the mod.

Every machine has per-face I/O. By default the bottom face is Output and the other five are Input, with auto-push and auto-pull both on. That is convenient, and it is also how accidents happen: an Input face beside a barrel will pull whatever the barrel holds into the machine's input tank as long as some recipe for that machine consumes it.

The input tank has no exit. An Input face is fill-only, an Output face addresses the output tank, and draining by hand was never built. So a stray charge of the wrong accepted fluid pins the machine to that fluid's recipe subset until it runs out, and if less remains than any recipe consumes, it stays there permanently. This is a known open defect rather than a misunderstanding on the player's part.

The status line names most other stalls plainly. NEEDS HEAT means the tier is below the minimum. OUTPUT BLOCKED means the product will not fit, a stall rather than a loss. BATCH MISMATCH means an adjacent output destination has room for the same fluid and is refusing it over quality data.

For injection, the Syringe Filler pumps 20 mB per tick at 10 FE per mB, and a syringe holds 100 mB. The Centrifuge does the opposite job: pour a mixed solution in and it separates one component every 2 seconds at 2,000 FE a spin, each component keeping the purity it had in the mix.

In game, this reads

Homogenizes compatible fluid batches. Averages purity

and contamination by volume; ordinary tanks may reject

differing batches. Holds 16,000 mB and connects on every

side. Player-placed barrels retain their contents.

tooltip.doomedmatu.fluid_barrel

The barrel connects on every side. The machine input tank it feeds accepts on five faces and gives back on none.

The one-way input tank belongs to the shared SideConfig rather than to chemistry - Input faces fill only, Output faces address the output tank, and every Doomed machine ships with the same bottom-Output default and auto-pull switched on. Machines, Power and Fluids

Concealed

An input tank you fill with the wrong fluid can never be emptied

Input faces are fill-only, output faces address the output tank, and there is no hand drain or pipe extraction from an input tank. The tank accepts any fluid that some recipe for that machine consumes, and auto-pull is on by default, so a barrel of water beside an Evaporator will load it unasked. If the stranded amount is smaller than any recipe consumes, the machine is pinned to that fluid's recipe subset permanently and has to be broken and replaced.

Notes

  • Every one of the sixty-eight shipped rows sits at or under its vessel's corrosion tolerance, so ProcessRecipe.compatibilityRisk() returns zero for all of them. The extra 15 contamination per point and the slow rupture roll it feeds have never fired in a shipped game; only a datapack that adds a row can reach them. Whether the tolerance table was written around the recipes or the recipes around the table is not recorded.
  • RECIPE UNAVAILABLE is a status the console can draw and no code path assigns. ActiveChemBatch defines the constant and clamps it when loading a save, and nothing anywhere pauses a batch with it - a machine whose recipe disappears resets the batch instead. What was meant to raise it was never written down.
  • reference/CHEMISTRY_REALISM_SPEC.md asks for a crude purity ceiling of about 75 and an upgrade item sitting in a machine upgrade slot. What shipped is a ceiling of 60 and a flask fitted by right-clicking the machine. Fifteen points is a large move in how hard the whole tree is gated, and neither the spec nor the source says when or why it happened.
  • Chemistry has seven gametests. They cover equipment state, lot blending, the BATCH MISMATCH diagnosis and the datapack load, and preflight carries no chemistry checker at all. Nothing exercises the grade roll, the heat band, the glassware ceiling or the input cap, so the 12-point heat swing, the 20 percent recovery cap, the jitter of plus or minus 3 and the 4 points of flask wear per batch rest on reading the code rather than on a test or a recorded playtest.
  • The exemption from the heat quality roll names the Filter Press and the Slaking Vat and stops there. The Recrystallizer needs no heat to run, never reports NEEDS HEAT, and still takes the full 12-point cold penalty for running at tier 0 - and it is the one machine that can lift a batch's grade at all. Whether it was considered for the exemption and rejected, or simply not considered, is not recorded.
  • The antiviral recipe carries its own caveat in the file: "Ingredients provisional, tune off reports." Two antibiotic cultures, glow berries and paper is what shipped. No report is recorded against it since, so the price of the only cure for a viral disease is still the placeholder somebody wrote while building the contagion layer.

PART III - APPARATUS

APPR-01

Machines, Power and Fluids

Doomed runs a full Forge Energy and Forge Fluid layer under its chemistry and medical blocks. One block burns fuel and makes power; everything else only consumes it. Every machine that moves items or fluids carries a six-face routing config that decides which pipes may talk to it and which way round, and it pushes and pulls through those faces on its own even with no pipes present. Most of the frustration players hit here comes from four places: there are no cables in this mod, an input tank cannot be emptied once you put the wrong thing in it, a face set to None really does disconnect an attached hopper, and a machine stalled on a full output is still holding a live batch that can rot.

Supply

The Fuel Generator is the entire supply side of the mod. It burns ordinary furnace fuel through Forge's burn-time hook, produces a flat 20 FE per tick while an item is alight, and holds a 16,000 FE buffer. Coal burns for 1,600 ticks, so one lump is 32,000 FE, more than the buffer can hold at once.

Ignition waits on headroom. A fresh item lights only when there is room in the buffer for at least one more tick of output, so a generator sitting on a full buffer stops eating fuel rather than wasting it.

Every other energy block in the mod is a pure sink. MachineEnergyStorage's two-argument constructor sets maxExtract to zero on purpose, so a Process Machine, a Reactor or a Freezer keeps whatever it has taken in and hands none of it back. The generator is the one exception: it uses the three-argument form and states an extract limit of 256 FE per tick, which is what lets a foreign cable from another mod draw off it.

Since nothing in Doomed pulls, the generator pushes. Each server tick it walks its six neighbours and offers up to 256 FE to any block entity exposing the energy capability that reports it can receive. That is the whole distribution system. Distribution ends at contact: the mod registers no cable, conduit or wireless block, so a generator has to physically touch the machine it powers, or the pipes have to come from another mod. A ring of machines around one generator is the intended survival layout.

One trap sits in the fuel slot. A syringe of Kyntiane fuel is never burned. Putting one in arms it, and when its fuse expires the generator deletes the syringe and detonates it in place.

In game, this reads

Burns ordinary furnace fuel and pushes power into whatever it touches. The only thing in the mod that makes FE - every powered machine here needs one.

tooltip.doomedmatu.fuel_generator

This one is exact, down to the pushing. Seven other block tooltips tell the player to feed a machine from a cable, and the mod registers no cable.

Supply - exact values
QuantityValue as shippedDefined in
Generator output20 FE/tick while burningblock/entity/FuelGeneratorBlockEntity.java:47
Generator buffer16,000 FEblock/entity/FuelGeneratorBlockEntity.java:45
Push ceiling per neighbour256 FE/tickblock/entity/FuelGeneratorBlockEntity.java:49
Energy from one coal32,000 FE (1,600 ticks x 20)block/entity/FuelGeneratorBlockEntity.java:47
Extract limit on every other machine0 FE (sinks only)energy/MachineEnergyStorage.java:19-21
Concealed

There are no power cables in Doomed

The Fuel Generator is the only block that makes energy, and it distributes by pushing up to 256 FE per tick into each of its six face-adjacent neighbours. No cable, conduit or wireless block is registered anywhere in the mod. A machine that is not touching a generator gets nothing unless you supply pipes from another mod.

FRAGMENT 07-C - EQUIPMENT CARD, RF HEATER

SUMMARY: Seven block tooltips in the shipped English lang file instruct the owner to supply the unit from a cable. The Battery Recharger, the Oxygen Compressor, the Freezer, the Heater, the Cooler, the Fume Hood and the Lifepod Console all carry some form of the same line.

RESPONSE: "An RF heater. Feed it from a cable; while powered it glows and warms nearby players. A full buffer runs ~4.5 min. The charge rides the block when you mine it, so carry it charged."

FINAL NOTE: No cable, conduit or wireless power block is registered anywhere in the mod. The only supply Doomed ships is a Fuel Generator physically touching the block, or pipes borrowed from another mod entirely. The second sentence is wrong by a different route: PoweredClimateBlockEntity charges its 12 FE once every ten ticks, so a full 64,000 FE buffer runs closer to 44 minutes than 4.5. Both halves of the card have been read by every player who has ever placed a heater.

assets/doomedmatu/lang/en_us.json lines 821-837 (tooltip.doomedmatu.heater and six siblings); block/entity/PoweredClimateBlockEntity.java:26-46

Buffers and cost

Buffers are sized by how hungry the machine is, and the receive rate is how fast a generator or a foreign cable can refill one. Energy is exposed on every face of every machine regardless of the side config, so a power connection never needs configuring.

The Reactor is the greediest, with a 64,000 FE buffer and a 2,048 FE per tick intake. The Process Machines, the Centrifuge and the Syringe Filler all sit at 32,000 FE and 1,024 FE per tick. The support stations (Battery Recharger, Oxygen Compressor, Freezer, RF Heater and Cooler) hold 64,000 FE at 1,024 FE per tick.

Running costs are per recipe rather than a flat draw. A Process Machine or Reactor batch carries a total FE figure and a tick count, and spends a fraction of that total on each tick of actual progress. Some low-power recipes legitimately cost zero on a given tick, and the machine still has to be energized to advance: the stop check demands at least 1 FE even when the exact due amount rounds to nothing.

The fixed-rate machines are simpler. The Centrifuge spends 2,000 FE for each component it spins out, once every 40 ticks. The Syringe Filler pumps 20 mB per tick at 10 FE per mB, so a full 100 mB syringe costs 1,000 FE and takes five ticks. The Oxygen Compressor adds 6 ticks of breathing supply per tick at 8 FE each, filling a 900-tick rebreather in about 7.5 seconds for roughly 7,200 FE. The Battery Recharger pushes up to 256 FE per tick into each of its two slots.

Calibrating a chemistry machine costs a flat 750 FE out of its buffer.

In game, this reads

A powered refill station for a spent rebreather - feed

it FE from cables. Drop a drained rebreather in the

slot and it recompresses its air tank in ~7.5 s

(a full tank costs ~7,200 FE).

tooltip.doomedmatu.oxygen_compressor

The 7.5 seconds and the 7,200 FE are the code's own numbers. The cables are not.

The per-tick draw is not a machine property at all: a batch spends a fraction of the recipe's own declared FE across its declared tick count, so the recipe table is what sets the load, and across all 68 shipped rows the heaviest averages 13.34 FE per tick on a Kiln. The Chemistry Engine

Buffers and cost - exact values
QuantityValue as shippedDefined in
Reactor buffer / intake64,000 FE / 2,048 FE per tickblock/entity/ReactorBlockEntity.java:55-56
Process Machine buffer / intake32,000 FE / 1,024 FE per tickblock/entity/ProcessMachineBlockEntity.java:50-51
Centrifuge cost per component2,000 FE every 40 ticksblock/entity/CentrifugeBlockEntity.java:44-45
Syringe fill cost10 FE/mB, 20 mB/tick (1,000 FE per 100 mB syringe)block/entity/SyringeFillerBlockEntity.java:51-52
Rebreather refill6 O2 ticks/tick at 8 FE each, ~7,200 FE for a full 900-tick tankblock/entity/OxygenCompressorBlockEntity.java:46-47, item/RebreatherItem.java:33
Battery Recharger output256 FE/tick into each of 2 slotsblock/entity/BatteryRechargerBlockEntity.java:52
Calibration cost750 FEnetwork/C2SChemistryActionPacket.java:107

The six faces

Four machine families carry a side config: the eight Process Machines, the Reactor, the Centrifuge and the Syringe Filler. Each of their six faces holds one of four modes.

None exposes nothing at all. Input exposes an insert-only view of the input slots and the input tank, so a pipe can push material in while your reagents stay put. Output exposes an extract-only view of the output slot and output tank. Both hands out a combined view where inserting goes to the inputs and extracting comes from the outputs.

A freshly placed machine defaults to Input on all five faces and Output on the bottom. That is why a chest or hopper placed under a machine starts collecting product immediately with no setup at all, and it is also why a hopper under a machine you did not want drained is pulling from it.

Faces change from the machine screen's Configuration tab, marked Cfg. Left-click a face to cycle forward through None, Input, Output, Both, and right-click to cycle backward. Two buttons on the same tab toggle auto-input and auto-output globally for that machine, and both default to on.

The server refuses a side-cycle packet unless you actually have that machine's menu open, are within eight blocks, and your hands are functional. Wreck your hands and the machine stops answering.

Configured faces are drawn on the block itself as inset port plaques, blue for input and orange for output. A Both face gets two smaller plaques side by side rather than a third symbol. A None face draws nothing, so a machine with a bare side is a machine nothing can connect to.

The config, both auto toggles, the tanks, the slots, the buffered energy and any fitted flask all copy onto the block item when you mine the machine, so a machine you pick up and replace comes back configured and loaded.

In game, this reads

Dries wet solids. Needs FE and low heat (a brazier/

heater beside it). Turns poppy latex into raw opium and

dries damp morphine, heroin and precursors.

Set faces to input/output.

tooltip.doomedmatu.drying_oven

That closing line rides eleven machine tooltips and names two modes. The Cfg tab cycles four, and the two it leaves out are the ones that cause trouble.

Auto push and pull

Every configured face does work on its own once per server tick, with no pipes involved at all. An Output face looks at the block entity on the other side and shoves finished items and fluid into it. An Input face looks at the same neighbour and pulls raw material out of it. A Both face does both, each direction gated by its own global toggle.

The rates are fixed and per face. Eight items per tick and 100 mB per tick move across each active face. Six configured faces means six times that.

This is the reason a barrel of ethanol set beside a Still keeps it fed, and the reason a chest under any machine fills with product. It is also why a machine with a Both face pointed at another machine can drain it: auto-pull reads the neighbour's fluid capability the same way a pipe would.

Input slots are filtered before anything crosses. A Process Machine accepts only an item that some recipe for that specific machine actually uses, so auto-pull keeps junk out of the inputs even from a mixed chest. A second rule is less obvious: the same ingredient can never occupy both input slots. Two input slots means two ingredient roles, and without that rule a chest holding more than a stack of one reagent would fill both slots with it and permanently starve every two-ingredient recipe. That defect killed the Recrystallizer outright, since all of its rows take two ingredients. The machine sat charged and idle, reporting no fault at all.

The duplicate check compares items by identity and deliberately ignores NBT, because every solid chemistry intermediate carries per-batch grade and contamination tags. Two stacks of the same reagent from different batches are still the same ingredient.

Setting a face to None does two separate things, and both had to be built because either alone leaks.

First, the capability. When a face changes mode, the machine retires every handler it has already handed out and issues fresh ones. Without that, a pipe that cached the handler kept the old mode until the machine unloaded, so a face set to None went on accepting pushes from whatever was already attached. Energy is deliberately exempt from the retirement, because cables connect on every face regardless of config and dropping their handles on an unrelated item-face change would be pointless churn.

Second, the vanilla path. Hoppers do not only ask for the capability. When Forge's hook returns nothing, a hopper falls back to plain vanilla container access, and that path honours face rules only if the block entity implements WorldlyContainer. The Process Machine, the Reactor and the Syringe Filler were plain Containers, so vanilla waved hoppers straight through and let them walk the slots in index order. Slot 0 is an input slot. A hopper under a face you had deliberately set to None did not stop, it started stealing your reagents, which made None strictly worse than leaving the face as Output.

All three now implement the face gates, so a None face returns no slots to vanilla and a hopper on it does nothing.

One related detail on the Syringe Filler: its Output face releases a syringe only when the syringe is full, or when the tank can no longer top it up. Earlier it released anything with fluid in it, and because auto-push runs before the fill loop each tick, a chest under the default bottom face collected a stream of one-fifth doses.

In game, this reads

Spins a mixed drug solution back into its parts. Pipe

a solution into the input; while powered it separates

one component every ~2 s (2,000 FE each) into the

output. Set faces to input/output.

tooltip.doomedmatu.centrifuge

"Pipe a solution into the input" is optional. An Input face pulls 100 mB a tick out of an adjacent barrel with nothing between them.

Concealed

A face set to None disconnects an attached hopper, and this needed two separate mechanisms

Changing a face's mode retires every capability handle the machine has already given out, so a pipe that cached the old handler cannot keep pushing. Separately, the machine implements vanilla's per-face container gate, because a hopper falls back to plain vanilla access when the capability returns nothing, and that path only honours faces on a WorldlyContainer. Without the second half, a hopper under a None face did not stop, it started pulling out of slot 0, which is an input slot.

FRAGMENT 12-A - FUEL CERTIFICATION, LIQUID RAW ORIGINIUM

SUMMARY: A syringe of Kyntiane compound is registered as furnace fuel with a genuine burn time - kyntianeAmountMb multiplied by 20 ticks per millilitre, so a full 100 mB syringe certifies at 2,000 ticks. The item carries two tooltip lines about that rating.

RESPONSE: "Nominal fuel: %s seconds from %s mL." "UNSTABLE FUEL: inserting it arms a 3-second fuse. It will explode before burning."

FINAL NOTE: The word doing the work is "nominal". The furnace mixin's own docstring reads "Makes Kyntiane Compound an advertised fuel that can never survive long enough to be consumed" - a vanilla furnace holding one cancels its tick entirely, arms the fuse and detonates in place without smelting anything. The Fuel Generator does the same and skips it when picking fuel. Its face gate then keeps the armed syringe where it is, because the syringe reports a real burn time and only spent items are allowed out, so a hopper cannot pull it clear during the three seconds. A Brazier goes further and arms the syringe while it is still in your hand, then hands it back.

item/FluidSyringeItem.java:39-144 (getBurnTime, armKyntianeFuel, detonateKyntianeFuel); mixin/AbstractFurnaceBlockEntityMixin.java:15-35; block/entity/FuelGeneratorBlockEntity.java:78-99, 292-303; block/BrazierBlock.java:73-77; lang lines 104-105

The input tank

This is a live defect the code documents against itself, and it is worth knowing about because there is currently no clean way out of it.

An Input face is fill-only. An Output face addresses the output tank rather than the input tank. A Both face hands out a combined view whose drain also goes to the OUTPUT tank. Add those up and no configuration of any face empties a machine's input tank.

Forge's tank refuses an unlike fluid whatever the free space, so a single millibucket of the wrong liquid pins that machine to whatever recipe subset uses that fluid until the charge is run out through a batch.

There is a partial guard. Both the Process Machine and the Reactor filter their input tank against their own recipe table, so a fluid no recipe for that machine consumes is rejected rather than hoarded. The Reactor goes further and accepts only a drug fluid that some reaction actually takes as input. What the filter cannot stop is a fluid that IS valid for that machine but is not the one you wanted.

The obvious fix was tried and reverted, because it was worse. Letting a Both face drain the input tank when the output tank was empty would have quietly emptied the ingredients into whatever was attached, since a process machine's output tank is empty for almost the whole of a run. Worse, auto-pull reads a neighbour's fluid capability, so one machine with a Both face aimed at another would have siphoned that machine's charge into itself.

The practical answer for now is to keep an item-only machine for item work and to be deliberate about what you pipe into a tank. The Drying Oven, the Kiln and the Recrystallizer show no fluid bars at all and therefore never auto-pull fluid, so they cannot be jammed this way.

Right-clicking a machine with a fluid container transfers fluid instead of opening the screen. This works on the eight Process Machines, the Reactor, the Centrifuge, the Syringe Filler and the Fluid Barrel.

The transfer routes through the same per-face config the pipes use, which is what makes it predictable rather than a special case. Click an Input face with a full bucket and the input tank fills. Click an Input face with an empty bucket and nothing happens, because an Input face is fill-only. Click the Output face (the bottom, by default) with an empty bucket and you draw the product off. A None face stays shut to a hand exactly as it stays shut to a pipe.

Vanilla water buckets work, because a bucket is the first thing anyone reaches for. The mod's own chemistry fluids are container-only and have no bucket item registered, so they move by syringe, by an adjacent tank, or by pipe.

Until this existed, the only route into a machine tank was the fluid capability, which in a Doomed-only install meant an adjacent Fluid Barrel and nothing else, and the Fluid Barrel had no crafting recipe. The whole fluid layer was unreachable in survival without another mod's pipes.

A Fluid Barrel holds 16,000 mB of anything and exposes it on every side with no configuration. Its contents survive being mined, because the loot table copies the tank onto the dropped item. The exception is a barrel authored by world generation: those are tagged non-recoverable, the barrel item is stripped from the drops entirely, and the fluid goes with it. Empty a found barrel before you break it.

In game, this reads

Purifies crude solids with a solvent reagent (FE, no

heat, no tanks). Recrystallises crude morphine, heroin

and precursors, and catalyst, to a cleaner grade.

Set faces to input/output.

tooltip.doomedmatu.recrystallizer

"no tanks" reads as a limitation. It is the reason this machine is one of the three that can never be jammed by a millibucket.

The input tank - exact values
QuantityValue as shippedDefined in
Machines with no fluid tanksDrying Oven, Kiln, Recrystallizerblock/ProcessType.java:21-28
Input tank drain routesnonemachine/SideConfig.java:64-90
Fluid Barrel capacity16,000 mBblock/entity/FluidBarrelBlockEntity.java:32
Machine tank capacity4,000 mB per tank (input and output)block/entity/ProcessMachineBlockEntity.java:49, block/entity/ReactorBlockEntity.java:54
Concealed

The input tank cannot be emptied by any face configuration

An Input face is fill-only, an Output face addresses the output tank, and a Both face's drain also goes to the output tank. Forge refuses to mix unlike fluids in a tank whatever the free space, so one millibucket of a fluid you did not want locks that machine to the recipes using it until the charge is spent through a batch. The code comments record this as an open defect, with a note explaining that the obvious fix was tried once and quietly siphoned machines into each other.

Blending

Chemistry fluids carry their assay in NBT. A purity value from 0 to 100, a chemical carryover figure and a microbial load all ride along on the FluidStack through tanks, pipes and syringes. An absent tag reads as fully pure, so old or untouched fluid behaves normally.

Forge treats differing NBT as a different fluid, which would deadlock a pipe chain because one batch came out at 71 percent and the next at 72. Doomed's tanks work around that: they accept the compatible portion and stamp the volume-weighted mean of both lots. Purity, chemical carryover and microbial load are all blended by volume. Anything else in the tag counts as genuine incompatibility, and differently composed mixed solutions are refused outright because their component lists need real mixing rather than one headline average.

Blending is why topping up a tank batch after batch matters. Every merge is a weighted average, so a dirty lot poured into a clean tank drags the whole tank down and cannot be separated back out.

When an output face cannot move fluid, the machine tries to work out why. If the destination has room, accepts this base fluid, already holds the same base fluid, differs only in blendable assay properties, and still refuses the transfer, the machine reports status 6 and the screen reads BATCH MISMATCH. That is a specific diagnosis rather than a generic jam, and it tells you the neighbour is holding a graded lot that will not merge with what you are producing.

One output face succeeding is enough to clear it. The mismatch flag raises only when nothing moved anywhere that tick, so a second stale attachment does not get called a machine-wide failure while another destination is accepting.

In game, this reads

Homogenizes compatible fluid batches. Averages purity

and contamination by volume; ordinary tanks may reject

differing batches. Holds 16,000 mB and connects on every

side. Player-placed barrels retain their contents.

tooltip.doomedmatu.fluid_barrel

The tooltip and the code agree throughout, including the "player-placed" qualifier that world-generated barrels fail.

Blending - exact values
QuantityValue as shippedDefined in
Purity scale0 to 100, absent tag = 100fluid/Purity.java:20-32
Blend methodvolume-weighted mean, roundedfluid/Purity.java:84-93
Mismatch status code6, shown as BATCH MISMATCHclient/screen/MachineScreen.java:1039

Heat

Power alone does not run a chemistry machine. Almost every recipe also names a minimum heat tier, and the machine reads the best heat source among its six face-adjacent blocks every server tick.

Tier 0 is cold and nothing reacts. Tier 1 is a lit Brazier or vanilla open heat: fire, soul fire, lava, magma, or a lit campfire. Tier 2 is one running RF Heater. Tier 3 is forge grade and needs two running heaters adjacent. Tier 4 is over-fired, which takes three or more, and it is hotter than any recipe's safe ceiling.

Braziers count as open flame and RF Heaters do not, and that distinction is a safety decision rather than a cosmetic one. A flammable step run over an open flame carries several times the ignition risk of the same step on a controlled heater.

Heat is also the only thing these machines report to redstone. A comparator on a Process Machine or a Reactor reads the heat tier, not the progress or the buffer. The mapping is 0 for cold, then 4, 8, 12 for the safe ceiling, and 15 for over-fired. Twelve is the back-off threshold and fifteen alone means the vessel has gone over, so the drop from 15 to 12 is a visible recovery edge an automation can act on. The block updates its comparator the moment the tier changes rather than on a timer.

A machine's screen shows the tier it currently has, the minimum the active recipe needs, and the ceiling that recipe considers safe.

In game, this reads

A fuel-burning brazier - the early heater, no power

needed. Its basket shows the fuel actually burning.

Any furnace fuel works; a Netherite Block becomes an

eternal core and burns forever.

tooltip.doomedmatu.brazier

Sold as the cheap heater. Nothing in it says the brazier is what the code counts as open flame.

A lit Heater or Cooler is doing two jobs at once - LocalClimateService and TemperatureHandler both scan for a nearby PoweredClimateBlock as a radiant source, so the pair of heaters holding a Reactor at forge grade is also pushing the body temperature of whoever stands beside them, and a Fume Hood is deliberately excluded from that scan because it is a different block class. Needs and Survival

Heat - exact values
QuantityValue as shippedDefined in
Heat tiers0 cold, 1 open flame or brazier, 2 one RF heater, 3 two heaters, 4 three or more (over-fired)block/HeatSource.java:52-77
Comparator mapping0, 4, 8, 12, 15 by tierblock/HeatSource.java:41-49
Reactor heat bandminimum tier 1, safe ceiling tier 3block/entity/ReactorBlockEntity.java:52-53

The batch lock

A machine picks a recipe from what you loaded, never from whether the output has room. It ranks candidates by specificity, meaning the number of item requirements, so a recipe that asks for ingredients always beats one that asks for none. That ranking exists because a recipe with no item requirements silently shadowed every item-bearing recipe sharing its machine and input fluid. Loading kelp and bottles into an Evaporator produced reagent solvent and the iodine batch could never fire once.

Once selected, the batch locks. It stays re-selectable while progress is at zero, because nothing is reserved until the completion tick, and it locks for real the moment it starts moving. The lock survives a save, a reorder of the recipe table, and being mined and replaced.

Five things stop a running batch, and the screen names each one. NEEDS HEAT means the tier fell below the recipe minimum. NO POWER means the buffer cannot pay this tick. OUTPUT BLOCKED means the product will not fit. BATCH INPUT LOST means an ingredient or the input fluid went away. RECIPE UNAVAILABLE means the locked recipe no longer exists, which cancels the batch losslessly rather than bricking the machine.

The quiet part is that a paused batch keeps accruing damage. The machine samples heat while stopped and counts time spent below or above the recipe's band against the finished grade, on the reasoning that a cold stalled still or a hot unpowered vessel really is spending time at the wrong temperature. One exception is deliberate: an OUTPUT BLOCKED stall does not sample, because a backed-up buffer is the normal state of an automated line and sampling through it would have rotted the charge it was protecting. A Fermenter is the worst case there, since its heat ceiling is zero and any lit brazier nearby counts as above band.

Emptying the input slots of a stalled batch is the cancel gesture. There is no cancel button; clearing the ingredients on purpose resets the batch.

In game, this reads

Ferments organics in water (FE, no heat - too hot kills

the culture). Sugar/wheat/apple + water -> mash, and

grows antibiotic broth. Harmless CO2 only.

Set faces to input/output.

tooltip.doomedmatu.fermenter

"too hot kills the culture" understates it. The Fermenter's ceiling is tier 0, so a brazier lit nearby is already above band, and a batch stalled beside one keeps sampling that heat.

The batch lock - exact values
QuantityValue as shippedDefined in
Stall codes1 needs heat, 2 no power, 3 output blocked, 4 input lost, 5 recipe unavailable, 6 batch mismatchcrafting/ActiveChemBatch.java:14-19, client/screen/MachineScreen.java:1034-1039
Re-selection windowwhile batch progress is 0block/entity/ProcessMachineBlockEntity.java:113
Stall that does not sample heatOUTPUT BLOCKED onlyblock/entity/ProcessMachineBlockEntity.java:156
Interruption penalty2 purity per stop/start, capped at 14crafting/ChemConditions.java:86
Concealed

A batch stalled on NEEDS HEAT or NO POWER is still degrading

A paused batch keeps sampling the vessel temperature, and every tick spent outside the recipe's heat band counts against the finished purity and yield. Cold residence costs up to 10 purity and 30 percent of yield; hot residence costs up to 20 purity and 40 percent of yield. Each stop/start transition costs a further 2 purity, capped at 14. Only an OUTPUT BLOCKED stall is exempt, because a backed-up buffer would otherwise rot the charge it is protecting.

Concealed

The machine picks the most specific recipe, and ignores whether the output has room

Recipe selection ranks candidates by how many item requirements they carry, so a recipe that asks for ingredients always beats one that asks for none on the same input fluid. Selection deliberately does not consider whether the product will fit, because dropping a blocked recipe out of the ranking hands the fluid to a less specific one and makes the wrong product. A full output is a reason to stall, not a reason to pick something else.

The machines

Eight of them share one block entity, configured by the block it sits in, and all run off one recipe table filtered by machine type.

The Drying Oven dries a wet solid. The Kiln roasts at high heat. The Slaking Vat takes an item plus a fluid and makes an item. The Fermenter takes an organic solid plus water and makes a fluid over time. The Still distils a fluid into a fluid. The Filter Press separates a slurry into a solid and a filtrate. The Recrystallizer takes a crude solid plus a solvent and makes a purer solid. The Evaporator boils a fluid down to a solid. Each has two input slots, one output slot, a 4,000 mB input tank and a 4,000 mB output tank, except that the Drying Oven, the Kiln and the Recrystallizer show no fluid bars at all.

The Reactor is its own class. Three reagent slots, a filtered input tank, an output tank, and no item output at all, since its product is always a drug fluid. Multi-step syntheses chain through it.

The Centrifuge takes a mixed solution apart. Its input tank accepts solutions only. Every 40 ticks, if it has 2,000 FE and its output tank is completely empty, it spins one component out at the purity that component held inside the solution and rebuilds the input without it. That empty-output condition is a real constraint: the Centrifuge sits idle until the last component is taken or piped away.

The Syringe Filler holds two syringes under a nozzle and fills them from its tank. Only empty or partly filled syringes go in, and only full ones come out of an Output face.

Around them sit the support blocks. The Battery Recharger takes any energy-capable item, including devices from other mods. The Oxygen Compressor refills a rebreather. The Ventilation unit is passive with no power at all and simply clears stale underground air for anyone within 8 blocks, which is what stops enclosed space adding extra grime.

In game, this reads

The heart of drug synthesis. Load reagents in the 3

slots and a precursor fluid; needs FE and heat (a

brazier/heater beside it). Runs the chain raw opium ->

opium -> morphine -> heroin, and precursor + catalyst

-> fentanyl / naloxone / ceftriaxone, out as a drug

fluid. Set faces to input/output. Volatile - fumes

while running; deep syntheses can detonate over a flame

or when overheating.

tooltip.doomedmatu.reactor

Accurate down to the fluid-only output and the detonation condition.

The Ventilation unit does its work through the hygiene clock rather than through any machine: each loaded unit registers its position in a dimension-aware set and DirtinessHandler tests proximity against that set, so the 8 block sphere suppresses the extra grime enclosed air adds and touches nothing else. Needs and Survival

Glassware and fouling

The Reactor and the Evaporator hold a borosilicate flask. Right-click either with a flask in hand to fit one, and it will refuse if the fitted glass is already at full condition rather than wasting it.

The flask sets a purity CEILING, never a bonus. Fresh glass at 100 condition allows up to 100 percent purity. Empty or fully worn glass caps you at 60, which is street grade, and the machine still runs. Each completed batch wears 4 condition off, so a flask is worth about 25 batches.

Separately, every chemistry machine carries persistent vessel state that has nothing to do with the current batch. Completing work adds 9 residue plus a share of the recipe's fume potency, drops sterility to at most 55 for a wet process, adds microbial load, and shaves a point off the measuring instrument's calibration while letting its drift wander.

That state leaks into your product. Chemical carryover on the output is floored at 35 percent of the vessel's residue, and microbial load at 45 percent of the vessel's own, with an extra floor for invasive products made in a vessel below 90 sterility. A dirty machine makes dirty drugs however clean the inputs are.

Four buttons on the Chemistry tab handle it, and each needs a specific thing in your inventory. Rinse consumes a water bucket, zeroes residue and removes 30 microbial load, but it explicitly caps sterility at 45 because washing is not sterilizing. Sterilize consumes a bleach and sets microbial to zero and sterility to 100, but it REFUSES outright while residue is above 5. You cannot seal dirt under a clean surface. Calibrate costs 750 FE from the machine's own buffer and resets the instrument. Assay consumes 10 mB of product or one output item and reads back purity and contamination with an uncertainty band.

That band is the point. The assay never reveals a true number. It reports a value shifted by the instrument's drift and jittered inside a window that narrows with your Intelligence and widens as calibration decays. A machine you never calibrate lies to you about its own product.

All four actions refuse while a batch is genuinely moving, but not while one is merely selected at zero progress, so a machine backed up on a full output can still be serviced.

In game, this reads

Lab glassware for the Reactor.

Fit it to raise the purity ceiling toward pharma grade.

It clouds over with use - re-fit a fresh one when it does.

tooltip.doomedmatu.borosilicate_flask

"purity ceiling" is exactly the right word for what the glass does. The first line names only the Reactor, and the Evaporator takes one too.

The vessel's microbial floor rides out on the product and lands in a limb: DrugService reads the microbial figure off the injected syringe, scales it by dose volume at 0.35 and caps it at 35, and a seed of 3 or more flips the limb to infected and files an INFECTED case note, so a fouled machine is a source of infection several steps removed from the needle. Disease and Infection

Glassware and fouling - exact values
QuantityValue as shippedDefined in
Glassware wear4 condition per batch, about 25 batches per flaskcrafting/Glassware.java:14
Purity ceiling with no glass60crafting/Glassware.java:15
Residue added per batch9 plus fume tenths / 3crafting/ChemistryEquipmentState.java:47
Sterilize refusal thresholdresidue above 5crafting/ChemistryEquipmentState.java:70
Rinse sterility cap45crafting/ChemistryEquipmentState.java:62
Assay sample cost10 mB of fluid, or 1 output itemcrafting/ChemistryEquipment.java:32
Assay purity uncertainty2 to 22 points, narrowed by Intelligence, widened by lost calibrationcrafting/ChemistryEquipmentState.java:90
Concealed

Assay readings are deliberately wrong

The assay never reports the true purity. It shifts the value by the instrument's accumulated drift, then jitters it inside a window between 2 and 22 points wide for purity and 3 to 30 for contamination. The window narrows with your Intelligence stat and widens as calibration decays, and calibration falls by 1 with every batch. An uncalibrated machine misreports its own product, consistently in the direction its drift has wandered.

Concealed

Sterilizing is refused while residue is above 5, and rinsing caps sterility at 45

The two cleaning actions are ordered and cannot be substituted for each other. Bleach refuses to run on a fouled vessel because sterilization cannot seal dirt under a clean surface. Rinsing with water zeroes residue and takes 30 off microbial load, but explicitly drops sterility to at most 45. The only path to a clean vessel is rinse first, then sterilize.

FRAGMENT 09-B - FIELD JOURNAL, ENTRY 'CLEAR'

SUMMARY: Four pages, filed under BODY, unlocked in order and only by getting the maintenance sequence wrong at a real machine. Page 0 arrives when a rinse leaves microbial load behind on a vessel still under 90 sterility. Page 1 arrives when the Sterilize button refuses because residue is above 5.

RESPONSE: "The heat did nothing useful. There was still material baked against the inside... I nearly used the vessel anyway. It had been heated. I had done the serious-looking part. That should have counted for something. It doesn't. Dirt first. Then heat. Sterilizing something filthy only makes hot filth."

FINAL NOTE: The last page is not awarded for cleaning anything. It waits for a contaminated injection to produce a real limb infection - a microbial seed of 3 or more out of the syringe, twenty seconds elapsed, the limb genuinely flagged infected - and it also demands that page 2 has already been read. So the entry cannot close until the vessel you neglected has put something into somebody. The refusal that unlocks page 1 sends the player no message at all; the button simply does nothing.

data/doomedmatu/doomed_journal_entries/clear.json; network/C2SChemistryActionPacket.java:68-101; journal/FieldJournalObservationTracker.java:90-96, 168-183; body/DrugService.java:505-523

Hazards

A running machine rolls for hazards every ten ticks, which is twice a second. The rolls are per half-second of exposure, not per batch.

A flammable step carries a base 0.1 percent per roll, which works out to roughly 6 percent across a 30 second run. An open flame adjacent adds 0.4 percent per roll, taking the same run to around 26 percent. Overheating adds 0.8 percent, taking it to around 42 percent. A non-flammable machine pushed above its ceiling still rolls 0.15 percent for a heat incident.

The Still and the Evaporator are the flammable process machines. The Reactor is always flammable and its high-energy syntheses are also violent, which means an open flame or an overheat can produce a real blast rather than a fire.

A fire is placed on top of the machine so it persists and can spread to a wooden floor. A blast has a 4 block radius, applies wounds and knockback through the body sim, and deliberately does NOT break blocks, so it will hurt you badly without cratering your base.

There is a separate roll for the datapack's material risks. A sealed over-pressured process and an incompatible vessel each contribute, and at risk level 2 or above the result is a blast rather than a fire.

The practical rule is that an RF Heater is much safer than a brazier for any flammable step, and that three heaters around a machine is not a bonus, it is an over-fire that both damages the product and multiplies the ignition roll.

In game, this reads

A distillation still. Needs FE and heat. Distils mash

-> ethanol and purifies solvents and water. Flammable

vapour - can flash to fire over a flame or when

overheating. Choking fumes. Set faces to input/output.

tooltip.doomedmatu.still

Names both escalating conditions and leaves the per-roll odds off, which is the difference between a warning and a decision.

The blast goes through the mod's own Explosion.detonate with block breaking switched off, so what reaches you is the body sim's wound and knockback treatment rather than vanilla explosion damage, and the machine is then set alight on top for good measure. Injury and Treatment

Hazards - exact values
QuantityValue as shippedDefined in
Hazard roll intervalevery 10 ticksblock/ChemHazards.java:24
Ignition chance, controlled heat0.1% per roll, about 6% over 30 secondsblock/ChemHazards.java:28
Ignition chance, open flame+0.4% per roll, about 26% over 30 secondsblock/ChemHazards.java:29
Ignition chance, overheating+0.8% per roll, about 42% over 30 secondsblock/ChemHazards.java:30
Blast radius4 blocks, no block destructionblock/ChemHazards.java:34, 76-78
Concealed

Three RF Heaters is worse than two

Two adjacent running heaters give tier 3, which is forge grade and the safe ceiling for every recipe. Three or more give tier 4, which is over-fired. Overheating costs 16 purity per tier above the ceiling, removes 22 percent of yield per tier, and raises the ignition roll on a flammable step by 0.8 percent per half second, roughly 42 percent across a 30 second run.

The cold chain

Food ages inside containers. Chests are not ticked, so instead of scanning every loaded block the mod stamps each food stack with a game-time mark and charges the elapsed time as rot the next time the stack is seen, either when a container GUI opens on it or when it lands back in a ticked player inventory. The enclosed rate is half the carried rate, still scaled by local biome temperature: cold keeps, heat spoils. Game time runs while a chunk is unloaded, so food in a plain chest genuinely ages while you are away.

A gap of 60 ticks or less counts as actively managed and is skipped, which is what stops the freezer and the icebox double-charging their own contents.

The Icebox is the unpowered answer. One fuel slot takes snow or ice and nine slots hold food. While a charge is melting, food spoils at a flat 10 percent of its carried rate with no biome multiplier, because the ice sets the climate. A snow block lasts 5 minutes, ice 20 minutes, packed ice an hour, and blue ice three hours. The melt only runs while the chunk is loaded, and food is kept across an unloaded stretch if the box went to sleep with a live charge.

The Freezer is the powered top tier. Nine slots, a 64,000 FE buffer, and an upkeep of 2 FE per second charged only while it holds something. A full buffer off-cable is about nine hours of preservation. While powered it re-stamps ordinary food every second, so no time passes for it at all. Out of power it degrades to a plain enclosed container.

Biological perishables ignore that pinning and map cold to their own rate instead. A transplant organ is fully arrested in a powered freezer and runs at 20 percent in an icebox. A blood bag runs at 10 and 20 percent. A cadaver torso and an opened saline bag both run at 15 and 35 percent, so neither ever fully stops.

Two details bite. Both boxes charge the stale warm interval at ambient before their own cold context takes over, so restoring power cannot retroactively refrigerate the minutes a bag already spent in a chest. And both refuse anything that is not food, a blood bag, an organ, a cadaver torso or saline, which means meds have to live somewhere else.

In game, this reads

Powered cold storage - feed it FE from cables. While it

has power, food inside does not spoil at all; unpowered

it is only as good as a chest.

tooltip.doomedmatu.freezer

Both halves of the second sentence are exact for food. An organ, a blood bag, a cadaver torso and a saline bag all sit in the same nine slots and none of them are pinned. The cables are still not in the mod.

A transplant organ is the one perishable a powered Freezer arrests completely at 0.0, and it bypasses the food re-stamping entirely to get there, so organ viability is governed by TransplantOrganItem's own cold table rather than by anything the Freezer does for food. Organs

A blood bag never fully stops - 0.1 in a powered Freezer and 0.2 in an Icebox - and the settle call that runs when you place a packed cold box back down treats every perishable inside it as AMBIENT, so moving a stocked Freezer costs the bags the whole journey at room rate. Blood and Circulation

The cold chain - exact values
QuantityValue as shippedDefined in
Enclosed rot rate0.5x the carried rate, times biome temperaturebody/ContainerSpoilage.java:45, 54-58
Managed-gap threshold60 ticksbody/ContainerSpoilage.java:48
Icebox chilled rateflat 0.10x, no biome multiplierblock/entity/IceboxBlockEntity.java:45
Ice melt durationssnow 6,000 ticks, ice 24,000, packed ice 72,000, blue ice 216,000block/entity/IceboxBlockEntity.java:48-54
Freezer upkeep2 FE per second while holding contents (~8.9 h on a full 64,000 FE buffer)block/entity/FreezerBlockEntity.java:51
Organ cold rates0.0x powered freezer, 0.2x iceboxitem/TransplantOrganItem.java:195-201
Blood bag cold rates0.1x powered freezer, 0.2x iceboxitem/BloodBagItem.java:265-271
Cadaver and saline cold rates0.15x powered freezer, 0.35x iceboxitem/CadaverTorsoItem.java:202-208, item/SalineItem.java:87-94
Concealed

A powered freezer stops time entirely for food, but never for an organ

While powered, the freezer re-stamps every ordinary food stack's rot clock once a second, so no time passes for it at all. Biological perishables bypass that and map cold storage to their own rate: an organ is fully arrested at 0.0, a blood bag runs at 0.1, and a cadaver torso or an opened saline bag runs at 0.15 and never stops. Both boxes also charge the stale warm interval at ambient before their own cold context takes over, so restoring power cannot retroactively refrigerate minutes already spent in a chest.

Notes

  • The RF Heater, the Cooler and the Fume Hood all run on PoweredClimateBlockEntity, which spends 12 FE once every ten ticks. That works out to 24 FE a second, so a full 64,000 FE buffer lasts around 44 minutes. The block tooltip and the field's own comment both promise about 4.5 minutes, which is what the same 12 would mean if it were charged every tick instead. The 2026-08-17 machine audit found the disagreement and recorded it as a balance decision rather than a typo, so the code is presumably the intended half. Which of the two numbers Matt actually meant was never written down.
  • Every one of the 68 shipped chemistry rows averages under 13.34 FE per tick over its run, and the Fuel Generator makes 20, so the process machines and the Reactor are tuned to a single touching generator with headroom to spare. The Centrifuge is the one that breaks that: 2,000 FE every 40 ticks is 50 FE per tick sustained, which means one generator spins a component roughly every five seconds rather than the two its tooltip advertises. Whether the spin cadence was ever checked against the only power source in the mod is not recorded anywhere.
  • The declared intake rates - 1,024 FE per tick on most machines, 2,048 on the Reactor - are between fifty and a hundred times anything Doomed itself can deliver. They only ever matter to a foreign cable. Nothing in the source says whether those figures were sized for a modpack supply on purpose or simply carried over from the template the first machine was written against.
  • The generator's push walks Direction.values(), so DOWN is offered power first, and the offer is capped by whatever is sitting in the buffer when the sweep starts. A full buffer feeds all six neighbours at once. A generator in steady state holds about 20 FE, and the block underneath it takes that before anything else is asked. The ring of machines around one generator that the layout section describes is therefore not evenly fed once the buffer runs dry, and the ordering is nowhere discussed in the source.
  • The commit that finally made a None face stop a hopper ends with a plain instruction: hopper under an Evaporator, cycle that face to None, confirm the inputs stay put. No later commit, changelog entry or checker run records anyone having done it. The audit left two more the same way, the comparator rescale against redstone that already exists in a world, and the Syringe Filler on an intermittent supply.
  • reference/MACHINE_OUTPUT_AUDIT.md closes with "Nothing here has been changed. This is an audit." At least four of its confirmed defects have since been fixed in code - the Evaporator recipe hijack, the one-fifth syringes, saline being refused by both cold boxes, and the organ transport gap on a mined Freezer - and the document was never revised to say so. Which of its 24 minors still stand has to be re-read against the source one at a time.

PART IV - THE FIELD

FIELD-01

Items, World and Trade

Doomed adds several hundred items and about a hundred blocks, and almost none of them are craftable from a recipe book. The supply lines are worldgen scatter, four kinds of lootable container, three medicinal herbs you cut and grind yourself, and two wandering merchants who are the only source of ammunition in the game. Everything you carry has a mass, most of what you eat has a spoilage clock, and both of those numbers move whether or not you are looking at them. This page is the map: what exists, where it comes from, and which of its rules the game never tells you.

Supply

Five supply routes, and they barely overlap.

World generation runs two scatter features, one on the surface and one in caves, plus a buried trader room and a bounded underground jungle. Both scatter features touch only newly generated chunks. Switch one on mid-save and it populates nothing you have already walked over.

Loot arrives in four containers: the Locked Crate and the Sealed Pod that generate in caves, the Drop Capsule that crash-lands under a ceiling breach, and the Rooted Cadaver in the cyst jungle. The first three roll from configurable weighted tables in the server config rather than from datapack loot tables.

Crafting exists, deliberately thin. 109 shipped recipes cover the herbal medicines, the climate gear, the chemistry machines and a handful of tools. The old internal material catalogue was stripped out: DoomedMaterials registers nothing at all, so Doomed ingots, cloths and scrap are gone from the game.

Traders are the fifth route and the widest. A general shelf is built by scanning every item the mod registers and keeping the ones with a curated trade value between 1 and the wallet cap, which is how most of the food catalogue and most of the placeable traps reach a survival world at all.

The last thing to know is that everything in the inventory weighs something. Base carrying capacity is 11 kg, shifted by body composition, sickness, hunger, thirst and the Strength and Resilience skills.

The WITNESS tablet indexes an ITEMS page for any Doomed item the player has physically held. It indexes what you have touched, and nothing else.

Concealed

Worldgen-placed machines and crates do not drop themselves

Thirty-two block types are on a datapack tag called nonrecoverable_when_generated, and world generation records the exact position of every one it places into per-dimension saved data. When you break such a block, a global loot modifier looks up that position and, if it was authored by generation, strips the block's own item out of the drops. Container loot and unrelated salvage are untouched. The list covers every chemistry machine, the Freezer, the Icebox, the Battery Recharger, the Fuel Generator, the Oxygen Compressor, the Fluid Barrel, the Brazier, the Pestle and Mortar, the Heater, the Cooler, the Fume Hood, the Sealed Pod, the Locked Crate, the Radioactive Barrel, the Sound Cannon and the Lifepod Console. A block you placed yourself is unaffected, because player placement is the default and only generation opts a position in.

FRAGMENT 01 - CRAFTING CATALOGUE, EMPTY STATE

SUMMARY: The K key opens a panel headed "Crafting" and subtitled "Where Doomed gear actually comes from." The recipe registry behind it holds nothing, so the list never populates. What renders instead was written by hand for the empty case, after an earlier version promised players they could craft their way to more recipes.

RESPONSE: Doomed gear is FOUND, not crafted from a secret list: - the crafting bench: every mod recipe is in the vanilla recipe book - locked crates, sealed pods and drop capsules (bring lockpicks) - the traders - the maid and the adventurer buy and sell most medicine - the world: herbs for the knife, kelp for iodine, ferns for warmth

FINAL NOTE: Forty source-transcribed recipes remain in Recipes.java inside a method nothing calls. Some of them consume rope, canvas and scrapmetal, none of which register as items any more. The screen is the only part of that system a player will ever see, and it has been told to tell the truth.

~/client/screen/CraftingScreen.java:60-83, with the empty registry at ~/crafting/Recipes.java:49-53 and the retained bootstrap() below it

FRAGMENT 03 - DEAD ARCHIVE TERMINAL

SUMMARY: One of the six Cyst payoff structures is a flooded record room, thirteen by seven by eleven. At local position (6,2,7) it places a terminal. The terminal is a name, a facing direction and a hardness value. It has no block entity, no interaction and no screen.

RESPONSE: "Dead Archive Terminal" "Directional, deliberately inert scenery for failed Cyst-biome facilities." "The archive cannot provide readable Matu lore until canonical copy and a server-authoritative interaction are chosen. The structure therefore communicates only through its damaged environment and a non-interactive dead terminal."

FINAL NOTE: The terminal is on the nonrecoverable_when_generated tag, so the one in the archive cannot be carried home and studied either. A player who finds the room finds a machine that was already dead when the room was authored, and the archive holds exactly as much as the record does.

~/block/RuinPropBlock.java:11; the withheld-lore clause under "Deliberately unresolved in resources" in reference/CYST_PAYOFF_STRUCTURE_CONTRACT.md; placement at tools/generate_cyst_payoff_structures.py:296

Surface

One attempt per chunk, on the world-surface heightmap, in every biome the feature is added to. The cell has to be air with sturdy ground under it. Then the rolls run in a fixed order, beneficial plants ahead of hazards.

First is climate ferns at 12 percent. Which fern appears is decided purely by the biome's base temperature: Sun-Fern at 1.0 and above, Frost-Fern below 0.3. Temperate ground gets neither. A hit scatters three to six plants across a patch about five blocks wide, and each drops one or two Fern Fibre.

Second is wild opium poppies at 5 percent, in the temperate band the ferns skip. They generate fully mature, so a found patch is harvestable for latex and seeds on the spot. The roll is gated on the opioid config switch: with opioids off it still consumes the cell and places nothing.

Third is medicinal herbs at 9 percent, partitioned across the whole temperature range with no gaps. Bittermoss below 0.3, Woundwort from 0.3 up to 1.0, Feverbell at 1.0 and above. Same three to six bush patch as the ferns.

Hazards roll last, so trap density can be raised without ever costing a plant cell. A minefield is 0.8 percent and seeds 14 to 20 landmines across a 24-block spread. A grabber plant is 3 percent, and it keeps 48 blocks clear of world spawn.

In game, this reads

A warm-climate fern. Harvest it for fern fibre - the

crafting material for insulation gear and the hot-drink

/ cold-pack. Grows where the heat is worst.

tooltip.doomedmatu.sun_fern

The tooltip describes the climate by feel. The feature reads a number: base temperature 1.0 and above, or nothing.

The poppy roll reads the opioid kill switch directly rather than only the loot tables, on the reasoning written into the feature itself: the plant is the opioid supply, so the switch has to reach the ground it grows in. Drugs and Pharmacology

Surface - exact values
QuantityValue as shippedDefined in
Climate fern chance12%~/worldgen/SurfaceScatterFeature.java:43
Fern and herb patch size3 to 6 plants, 7x7 area~/worldgen/SurfaceScatterFeature.java:128-131
Wild poppy patch chance5%, 3 to 5 mature plants~/worldgen/SurfaceScatterFeature.java:48,104
Medicinal herb chance9%~/worldgen/SurfaceScatterFeature.java:67
Herb biome split (base temperature)Bittermoss below 0.3, Woundwort 0.3 to 1.0, Feverbell 1.0 and above~/worldgen/SurfaceScatterFeature.java:62-66
Minefield chance and size0.8%, 14 to 20 mines over 24 blocks~/worldgen/SurfaceScatterFeature.java:71,147
Grabber plant chance3%~/worldgen/SurfaceScatterFeature.java:79
Grabber exclusion around world spawn48 blocks~/block/entity/GrabberPlantBlockEntity.java:41

Depth

Ten attempts per chunk, between Y -58 and Y 48. Each one needs open cave air, and then splits on geometry: a floor cell with headroom gets the floor table, while a cell with a sturdy wall or ceiling beside it gets a mounted hazard.

Depth is a single fraction, 0 at sea level and 1 at the bottom of the world, and it does two separate jobs. It ramps the floor-trap chance from 12 percent up to 52 percent, and it decides which family of trap you meet. The upper third is low-tech snares: spike traps, caltrops, bear traps. The middle third is failing base tech, adding live wire, sawblades and gunmines. The bottom third is the lethal tier, where landmines and electrified coils appear.

Some things ignore depth entirely. Locked crates sit at a flat 25 percent of every floor cell, which makes them the commonest find underground at any level. Fluid barrels are 4 percent. Sealed Pods and lifepod consoles are 5 percent, and only below Y 63. Drop capsules attempt only below Y 58.

Other things want depth and space together. Radioactive barrels and crystal formations need depth past 0.5 and a genuinely big cavern. Crystal caverns are seed-stable regions, so a whole cave shares one theme, and the tunnels leading toward one carry a thinning trail of single shards. That trail is the warning.

Wall and ceiling mounts are a 50 percent roll. Below depth 0.25 it is always a sound cannon; deeper, a gun turret about 45 percent of the time.

In game, this reads

A volatile red crystal. Touch it (or strike it) and a

short fuse lights, then it detonates - real TNT that

breaks terrain. Connected crystals blow as ONE summed

blast, so a big cluster is a cave-clearing bomb.

tooltip.doomedmatu.crystal_unstable

The tooltip covers what one crystal does once you are standing next to it. The depth gate and the shard trail that leads you there are not on it.

The mounted sound cannon and the gun turret enter a world through this pass and nowhere else in worldgen, so the depth fraction that raises your odds of a floor trap is also the number deciding whether the thing on the wall shouts at you or shoots. Threats

Depth - exact values
QuantityValue as shippedDefined in
Cave attempts per chunk10, from Y -58 to Y 48res/data/doomedmatu/worldgen/placed_feature/cave_scatter.json
Floor trap chance12% + 40% x depth fraction~/worldgen/CaveScatterFeature.java:248
Depth band boundaries0.33 and 0.66 of the way from sea level to bedrock~/worldgen/CaveScatterFeature.java:260-261
Locked crate chance per floor cell25%~/worldgen/CaveScatterFeature.java:54
Fluid barrel chance4%~/worldgen/CaveScatterFeature.java:220
Sealed Pod / lifepod console5%, only below Y 63~/worldgen/CaveScatterFeature.java:231
Drop capsule16% per eligible attempt, only below Y 58~/worldgen/CaveScatterFeature.java:238; DoomedConfig.java:2560
Wall or ceiling mount chance50%, turret instead of cannon 45% of the time past depth 0.25~/worldgen/CaveScatterFeature.java:50,144-145

Containers

A Locked Crate opens with the lockpicking minigame. The crate stores a hidden sweet-spot bearing between 5 and 175 degrees and a success half-band of 4 degrees, and it keeps that angle for its life. A lockpicking kit needs Intelligence 10 or higher to use; below that the game forces the bare-handed pick. The server records which player opened the minigame on that specific crate, so a forged solve packet achieves nothing. Cracking it consumes the crate and drops exactly one weighted entry. A player not running the Doomed body sim skips the minigame entirely and pries the crate for iron, gold or an emerald.

The Sealed Pod is a keypad. The code is shown on screen; the lock is the tedium of entering it. Solving it drops two guaranteed-different items from a purely medical table.

The Drop Capsule is the high-risk tier. Defusing it in time spills three to five distinct entries, and its table adds real food, iron, gold, an occasional diamond, and the rare chemistry entry points: poppy seeds, a fentanyl precursor, a naloxone precursor.

All three tables live in the server config as "id count weight" strings, where weight 3 is a common consumable, 2 an uncommon potent one, 1 a rare durable tool. The crate table adds a pistol, rifle or shotgun at weight 1 each, plus loose rounds at weight 5 or 6. Found guns arrive with no Rounds tag. They dry-fire until you find ammunition.

The Batch Blending Barrel is separate and rolls fluids rather than items. Half hold one fluid, 18 percent a crude mix, 22 percent plain water, 10 percent nothing. Within the single-fluid half the tier roll is 80 percent field stock, 18 percent clinical, 2 percent advanced.

In game, this reads

A sealed Doomed-only pod. Right-click to open the

keypad and punch in the shown code - a slow, fiddly

entry - to spill one rare drug from its loot. Vanilla

players can't crack it.

tooltip.doomedmatu.keypad_pod

The tooltip promises one rare drug. The pod pays out two guaranteed-different items from its medical table.

Three capsule entries at weight 1 each - opium poppy seeds, a fentanyl precursor and a naloxone precursor - are the loot route into the drug chemistry chain; the wild poppy patch is the only other way in that skips a trader. Reagents and Routes

Containers - exact values
QuantityValue as shippedDefined in
Lock angle range and tolerance5 to 175 degrees, 4 degree half-band~/block/entity/LockedCrateBlockEntity.java:17-18,27
Intelligence needed to use a lockpicking kit10~/block/LockedCrateBlock.java:72
Container yieldscrate 1 entry, pod 2 distinct, capsule 3 to 5 distinctC2SLockpickSolvedPacket.java:63; C2SKeypadSubmitPacket.java:60; DropCapsuleBlock.java:419
Gun and ammunition weights in the crate tableguns 1 each; 9mm x4 at 6, 5.56 x3 and 12 gauge x3 at 5~/config/DoomedConfig.java:1577-1590
Non-Doomed player crate lootiron x4, gold x3, emerald x2~/config/DoomedConfig.java:1592-1594
Barrel content split50% single fluid, 18% crude mix, 22% water (2 to 16 L), 10% empty~/worldgen/CaveScatterFeature.java:447-465
Barrel tier split80% common, 18% clinical, 2% advanced~/worldgen/CaveScatterFeature.java:451-453
Common barrel pool weightssaline 24, opium 22, relief cream 10, biochem 8~/worldgen/CaveScatterFeature.java:75-80

The cyst jungle

The cyst jungle is a bounded underground pseudo-biome. The world is cut into deterministic 8x8-chunk regions, one region in sixteen is selected, and that region is carved between roughly Y -58 and Y -8. Several resources exist here and only here.

The Swollen Cyst Bush is the biome's real food. Right-clicking a bush at age 2 or 3 picks one to three Gall Berries and drops the plant back to age 1, so a patch keeps producing. Breaking it destroys the plant but yields more and respects Fortune. Shears keep the bush itself for replanting.

A raw Gall Berry is 3 nutrition, and it pushes a spore dose of 6 through the same exposure channel the biome's air uses. Cooking removes that entirely and raises the shelf life from 20 minutes to 60. It also costs the berry a third of its vitamin C.

The Water-Pod Bush is the safe water. A mature pod yields 250 mL of clean water: right-click empty-handed for a Sealed Water Pod to drink whole, or present a glass bottle, a Cyst-Filtered Water bottle or a canteen to fill it. Pods regrow up to three per plant on random ticks.

Feeler Fronds cut to Cyst Fibre, which crafts a dust mask underground, so a long trip can resupply its own protection. Cyst Spore Blooms cut to Spore Caps, and three of those dried in a Drying Oven make an Antibiotic Culture. That is the biome's real payoff.

Rooted Cadavers are searchable once. Right-click and they hand over one or two medical items and set their SEARCHED state. Breaking one interrupts its brood instead, and forfeits the search.

In game, this reads

The only real food in the deep growth.

Filling, and it eats at your lungs raw - cook it first.

tooltip.doomedmatu.gall_berry

What eats at the lungs is the spore dose of 6, delivered down the same exposure channel as the biome's air.

The raw berry's dose of 6 and the 12-point dose from an unboiled mouthful of cavern water land on the same spore burden the biome's air fills; past 35 that burden starts adding sickness on its own, and at 100 it seeds Marrow Worm unless an antiparasitic is already running. Disease and Infection

The cyst jungle - exact values
QuantityValue as shippedDefined in
Region selection1 in 16 of the 8x8-chunk regions~/config/DoomedConfig.java:2591; CystRegionLayout.java:20
Cyst cavern depthroughly Y -58 to Y -8~/worldgen/CystGroveFeature.java:139-140
Berry pick yield1 to 2 at age 2, 2 to 3 at age 3~/block/CystBerryBushBlock.java:83
Raw Gall Berry spore dose6~/registry/DoomedConsumables.java:78
Gall Berry shelf life, raw and cooked20 minutes and 60 minutes~/registry/DoomedConsumables.java:135,139
Water pod volume and capacity250 mL per pod, up to 3 pods per plant~/block/CystWaterPodBlock.java:53,182
Antibiotic Culture from spore caps3 Spore Caps, 400 FE, 160 ticks in a Drying Ovenres/data/doomedmatu/doomed_chemistry/shipped_processes.json
Rooted Cadaver search yield1 to 2 items, once per corpseres/data/doomedmatu/loot_tables/blocks/cyst_rooted_cadaver.json

Herbalism

Three wild bushes, one mill, six products, and iron is nowhere in it.

The Foraging Knife is flint, a stick and string. Its real function is on the loot side: herb bushes and glowcap check for it by name in their loot tables and drop two instead of one. It loses a point of durability every time it cuts a bush, and that includes ferns and tall grass, so it wears down on the walk between patches. 128 durability, and no repair.

Woundwort, Feverbell and Bittermoss drop their raw leaf, flower or clump. A placed Pestle and Mortar grinds any one of them into its ground form at one-for-one through a stirring minigame, and the mill itself is stone and a stick.

The crafted medicines are all shapeless. Two Woundwort Paste and a Ripped Dressing make a Herbal Poultice, which restores 18 skin, halves the wound's bleeding, gives 20 pain relief and disinfects for 20 seconds. Two Bittermoss Pulp and a water bottle make a Bittermoss Wash, which barely restores skin but disinfects for 90 seconds, and that long window is the early answer to infection. Two Feverbell Powder and sugar make a Feverbell Chew, a non-opioid painkiller worth 12 on the NSAID channel with no breathing risk and a 4-point mood cost. One of each ground herb plus a glass bottle makes a Herbal Tonic, which removes 10 sickness, hydrates by 18, nudges energy by 5 and tastes bad enough to cost 6 happiness.

Bittermoss Pulp is also the binding agent in the standard Bandage recipe. Bandages are tied to foraging, not to a trader.

Glowcap is the cave's renewable answer to both food and bandages. It generates on cave floors at a 12 percent per-cell chance behind its own config switch, in patches of one to four, and it roots on any solid floor rather than only on dirt. Cutting it with a foraging knife gives two Glowcap Clumps.

Eaten, a clump is 2 nutrition, 4 mL of water, 3 sickness and a small mood lift. Ground in a pestle it becomes Bittermoss Pulp, the bandage binder, so a cave dweller keeps a full bandage supply without ever going home. It has a 24-minute shelf life. Glowcap spreads only where it is replanted, and replanting is the whole of farming it.

Light sources are worth reading carefully, because two of them are consumable in a way nothing warns about. The Doomed Torch has no battery and no toggle. It burns down its condition passively at a 30-minute rate and is destroyed at zero, placed or not. The Roselight does the same over 60 minutes. Both of those clocks run in your inventory.

The toggle lights work the other way round: they drain only while switched on. The Flashlight runs 66 minutes on a medium cell, the Lantern 120 minutes, and the Emergency Light 10 minutes before it is destroyed. The Flashlight's housing is rated for a medium battery, so a small cell runs it half as long and a large one does not fit at all.

In game, this reads

A temperate meadow herb. Harvest the leaf, grind it,

and craft a herbal poultice - a weak early dressing.

tooltip.doomedmatu.woundwort

The tooltip calls the poultice weak and the numbers agree: 18 skin, half the bleeding, 20 seconds of disinfect.

The knife has a second use nothing in the herbalism loop hints at: right-click a landed severed limb with it and the limb is cut into Raw Human Flesh, one to five portions depending on which part came off, each stamped with the donor's UUID, a tissue-risk figure for that part, and a flag copied from whether the donor was carrying a live prion load at the moment you cut. Injury and Treatment

Concealed

Turning opioids off reshapes the odds of every table it touches

The opioid kill switch does not substitute a replacement item. It deletes the disabled entries from the weighted pool before the pick is made, in loot tables, in trader shelves and in fluid barrel filling alike. The remaining entries keep their own weights relative to each other, so with opioids off a Locked Crate becomes measurably more likely to hand you a bandage or a gun, not less likely to hand you anything. Wild poppy patches also stop generating in new chunks, though poppies already in an old world stay put and simply lead nowhere.

The climate gate

Planting a leaf gives a cultivated crop block, a different block from the wild bush. Existing wild patches are untouched, and worldgen keeps placing the wild version. Crops have four growth stages rather than the usual eight, and they accept farmland, dirt, grass, coarse dirt, podzol, rooted dirt or moss block.

Each crop grows only inside its own temperature band, and the band is read from the same felt-temperature service the body reads. That scale is centred on 37, with the cold band below 35 and the warm band at 39 and above. It is not the biome number. It is the biome band offset plus weather, plus time of day, plus enclosure, plus depth, plus any Heater or Cooler in range through unobstructed line of sight.

Out of band, the crop survives. It sits at its current stage and refuses to advance, and bone meal is refused on exactly the same test, so the climate cannot be bought past. Breaking a dormant crop returns the leaf, so bad siting costs time and leaves seed stock intact.

Bittermoss is the awkward one. It wants cold, and it wants no sky above it, and darkness at night fails the test because the test is sky exposure rather than light level. A Cooler can supply the cold. Nothing can counterfeit a roof. Wild bittermoss also propagates on its own from a placed cutting through two growth steps at a one-in-nine roll, with no bone meal interface at all, and a cutting will not reach maturity if there are already four mature plants within five horizontal blocks.

In game, this reads

A living cutting. Plant under cover in sustained cold; a

powered Cooler can maintain the climate. It matures slowly

and cannot be forced with bonemeal.

tooltip.doomedmatu.bittermoss

Two different refusals share one sentence here. The cultivated crop refuses bone meal on the band test; the wild cutting has no bone meal interface at all.

The climate gate - exact values
QuantityValue as shippedDefined in
Growth stages4 (age 0 to 3)~/block/HerbCropBlock.java:35
Climate band boundariescold below 35, warm at 39 and above, temperate between~/body/LocalClimateService.java:34-35,166-169
Biome band offsets to the felt temperature+8 at base temp 1.5+, +4 at 1.0+, 0 at 0.3+, -4 at -0.1+, -10 below~/body/LocalClimateService.java:250-256
Night, rain and thunder temperature offsetsNight -3, applied wherever you are. Rain -3 and thunder -5 apply only under open sky and are mutually exclusive, not additive.~/body/LocalClimateService.java:38-42
Enclosure and depth bonuses+1.5 under a roof, up to +3 more below Y 0~/body/LocalClimateService.java:47,159
Wild bittermoss growth roll1 in 9 per random tick, two steps to maturity~/block/BittermossBlock.java:27,55-58
Bittermoss crowding limit4 mature plants within 5 horizontal blocks~/config/DoomedConfig.java:2577; BittermossBlock.java:28
Concealed

Cultivated herbs read the same felt temperature your body does, so weather and time of day stop them growing

A herb crop's growth band is checked against LocalClimateService, the same positional service that drives physiology and the WITNESS readouts. That scale is centred on 37, with cold below 35 and warm at 39 and above. It starts from a biome band offset, then subtracts 3 for night and 3 more for rain under open sky, adds 1.5 for being under a roof, adds up to 3 more for being below Y 0, and adds whatever a Heater or Cooler contributes through unobstructed line of sight. A Woundwort plot in an open temperate field sits at 37 during the day and drops to 34 at night, which is out of band, so it simply stops advancing until morning. Conversely, an enclosed room deep underground in a temperate biome can read 39 or higher on depth and roof bonus alone, which is enough to grow Feverbell nowhere near a desert.

Water

The Canteen is a leather and iron craft and holds six sips of 100 mL each. Aim at a water source and right-click to fill it; right-click again to drink one sip, worth 9 thirst.

Raw water is murky. Every murky sip adds between 6 and 14 sickness, scaled by the dirty-water config multiplier. Right-clicking a lit heat source with a full murky canteen boils the whole thing clean in one action, and the list of things that count is wider than a campfire: a lit Brazier, a lit RF Heater, any campfire, any lit furnace or smoker, and a magma block. The temperature-tier braziers double as water purifiers for exactly this reason.

Contamination survives a top-up. Filling a canteen that already holds tainted water leaves the whole thing tainted, so drinking one bad sip to open a slot and refilling at a clean pond launders nothing. Boiling and drinking it dry are the two ways out.

Water drawn inside cyst territory carries spores rather than ordinary murk. That flag is tracked separately, boiling leaves it alone, and the canteen relabels itself when it happens.

The alternative supplies are the Sealed Water Pod, 250 mL of clean water drunk whole for 22.5 thirst, and the Cyst-Filtered Water bottle, a reusable 250 mL container. Vanilla and modded bottled drinks give a flat 15 thirst per use, because a potion cannot be sipped.

Thirst runs on the same bar hunger uses, and it drains faster the hotter the core runs.

In game, this reads

A refillable canteen. It starts empty, so find something to put in it.

tooltip.doomedmatu.canteen

That is the whole of what the canteen tells you. The murk, the boiling, and the taint that survives a top-up are all off the label.

Thirst divides by 26 less half a point for every degree your core sits above 37, so the canteen empties faster the hotter you run, whatever put the heat there. Needs and Survival

Concealed

Canteen contamination survives a top-up

Filling a partly full canteen writes the whole thing back to six sips, but the clean flag is the logical AND of the source and what was already in there. Drinking one tainted sip to open a slot and refilling at a clean pond leaves all six sips tainted. Boiling on a lit fire and drinking it dry are the only two ways to clear it. Water drawn inside cyst territory sets a separate spore flag that boiling does not remove at all, and the canteen relabels itself when that happens.

Eating

Hunger is a 0 to 100 bar that can be packed up to 175. At default pace it falls from full to empty in about 55 minutes of real time, faster with a raised metabolism.

Every mod food carries a nutrition figure and a tastiness figure, and both go through one shared consumer, so the overeating rules always apply. Anything above the 175 ceiling is refused: the overflow becomes sickness at 1.2 times its size, and if the overflow is more than 3 there is a 20 percent chance you vomit on the spot. Weight is banked only for the part the stomach actually accepted, so force-feeding a full body fattens nothing.

A filthy body sickens itself while eating. At dirtiness 75 or above there is a 10 percent chance per meal of an extra 8 sickness, which is a reason to keep a Wash Station or a Ventilation unit near where you eat.

Vanilla and modded food is mapped onto the same scale automatically at 1.75 hunger per vanilla nutrition point, calibrated so the mod's Burger at 14 hunger matches a vanilla cooked steak at 8 nutrition. Nothing needs a whitelist.

Six of the mod's own foods are durable rather than stacking: the Burger, Bucket of Chicken, Popcorn, Chips, Cereal and Hard Candy. A bite leaves the item in hand. Each bite spends 0.34 condition, which gives three bites, and each of those bites delivers the food's full listed nutrition. A Burger is therefore 42 hunger, not 14.

Activated charcoal in the gut binds food as well as drugs, so meals absorb less while its window is open.

In game, this reads

A hot, heavy meal. You will feel more like yourself afterwards.

tooltip.doomedmatu.burger

The tooltip names no figure. The Burger is three bites, each one paying the full listed 14.

Activated charcoal halves hunger and weight gain using the same 0.5 absorption factor it applies to drugs, so the dose you take to blunt an overdose blunts the meal you eat under it. Drugs and Pharmacology

Eating - exact values
QuantityValue as shippedDefined in
Hunger ceiling and drain175 cap, full to empty in about 55 minutes~/body/Consumption.java:26; NeedsHandler.java:20-23
Overeating penaltyoverflow x1.2 sickness, 20% vomit chance past 3 overflow~/body/Consumption.java:80-84
Filth penalty while eating10% chance of +8 sickness at dirtiness 75+~/body/Consumption.java:86-88
Vanilla nutrition conversion1.75 hunger and 0.15 weight per nutrition point~/body/Consumption.java:39-40
Durable food bite cost0.34 condition per bite, 3 bites, full nutrition each~/item/FoodItem.java:43,126-131
Highest nutrition mod foodsFoliage Meal 18, Cooked Human Flesh 18, Raw Human Flesh 16, Internal Organs 15, Burger 14~/registry/DoomedConsumables.java:143-205
Soup and Hot Drink warming+2.6 C per litre of soup, +4 C per Hot Drink~/item/Liquids.java:186; DoomedItems.java:180
Concealed

Durable foods give full nutrition on every bite, and spoilage eats your bites

Six foods do not stack and are not consumed in one use: Burger, Bucket of Chicken, Popcorn, Chips, Cereal, Hard Candy. Each bite costs 0.34 of the item's condition, which gives three bites, and each of those bites hands you the food's complete listed nutrition value. A Burger listed at 14 nutrition is really 42 hunger. The trap is that condition is also the spoilage pool. Rot and eating spend the same number, so a Burger that has sat in your pack for 40 minutes in a plains biome has already lost a bite before you ever opened it, and a Burger at 30 percent condition is a single mouthful.

Iron

There are seven nutrient stores, all on a 0 to 100 scale: Iron, Vitamin C, Vitamin D, Calcium, Vitamin B12, Sodium and Thiamine. Iron alone has a mechanical output, and that output is deliberately indirect.

Iron does one thing: it multiplies red-cell regeneration. Below a store of 45 the multiplier starts falling, and by a store of 5 it bottoms out at 0.12. It also sets a ceiling on the red-cell fraction the body can hold, which floors at 0.68. That floor sits above the point where the heart starts seeding fibrillation, so anaemia leaves you fragile and slow to recover while stopping short of killing you on its own.

You lose 10 iron per in-game day just by existing, and 22 per litre of blood you bleed. That second term is the one that matters. Losing blood costs you the material to remake it. The third haemorrhage in a week is the one that does not come back, and a transfusion can put you back at 5 litres and still leave your oxygen delivery on the floor.

Absorption is non-linear. A store at zero takes up almost the full listed amount from a meal, while a store near 100 banks almost nothing, so a nutrient resists being stockpiled on a good day.

The table itself is a datapack keyed on item tags first and item ids second. Tag rows are authored per hunger point and multiplied by the food's own vanilla nutrition value, so one row against forge:vegetables is correct for a beetroot and a cabbage alike. An explicit item row is absolute and beats any tag. Anything matching nothing at all still gets the default row.

In game, this reads

Heat-collapsed and free of the raw berry's viable cyst burden.

Safer and slower to spoil, but less hydrating and lower in vitamin C.

tooltip.doomedmatu.cooked_gall_berry

The vitamin C it names comes from an absolute item row, so it lands at its listed value instead of scaling off hunger points.

Iron is the only nutrient with a mechanical output and it spends itself entirely inside the blood system: bleeding costs 22 points a litre, and what is left sets both the red-cell regeneration multiplier, which bottoms out at 0.12, and a ceiling on red-cell fraction floored at 0.68 - deliberately just above the band where the heart starts seeding fibrillation. Blood and Circulation

Iron - exact values
QuantityValue as shippedDefined in
Nutrient stores7, scale 0 to 100~/body/Nutrient.java:18-31
Iron baseline burn10 per in-game day~/body/NutrientHandler.java:27
Iron cost of bleeding22 per litre lost~/body/NutrientHandler.java:29
Red-cell regeneration floor0.12 multiplier at iron 5~/body/NutrientHandler.java:47-49
Anaemia red-cell fraction floor0.68~/body/NutrientHandler.java:41
Iron falloff thresholdstore below 45~/body/NutrientHandler.java:46
Richest iron tag rate3.2 per hunger point on #doomedmatu:rich_ironres/data/doomedmatu/doomed_nutrient_sources/vanilla.json
Gall Berry absolute rowVitamin C 6.0, Iron 1.5, Thiamine 1.0 rawres/data/doomedmatu/doomed_nutrient_sources/vanilla.json
Concealed

The mod's own foods carry almost no micronutrients

The nutrient table scales tag rows and the default row by the food's vanilla nutrition value. Doomed's own foods are registered as plain items with a custom nutrition field and no vanilla FoodProperties at all, so that value reads as zero and every per-point row multiplies out to nothing. Only absolute item rows survive, and the shipped table has exactly two for Doomed foods: the raw and cooked Gall Berry. Everything else in the mod's own food catalogue feeds hunger, weight and thirst but leaves all seven stores untouched. Vanilla and modded food, and the drinkable meals in Liquids (milk, cereal, ketchup, soup), do feed them.

Rot

Every food carries a decay figure in minutes, and that figure is close to literal: at a biome multiplier of 1.0 a food rated at 30 minutes loses all its condition in about 30 minutes of real time while carried. The formula is a rot speed of 1.666 divided by the decay minutes, charged as condition loss of rot x 0.01 per simulated second.

Biome temperature scales that rate, for food only. The multiplier is 0.35 plus 0.55 times the biome's base temperature, clamped between 0.3 and 1.4. A snowy biome sits at 0.35, so food keeps almost three times as long there. Plains sit at 0.79. A desert clamps at 1.4, nearly twice as fast as plains. Medicines, light sources and other perishables ignore biome entirely and keep their own flat rate.

Containers slow rot rather than preserving. A stack sitting in a chest carries a game-time stamp, and the moment it is next seen, either because a container GUI opened on it or because it came back into a ticked inventory, the whole elapsed gap is charged at half the carried rate, still scaled by the biome. Game time keeps running while a chunk is unloaded. Food left in a chest genuinely ages while you are away.

Shelf lives worth knowing: Geo Fruit 12 minutes, Foliage Meal 10, Gall Berry 20, Glowcap Clump 24, Raw Human Flesh 40, Cooked Human Flesh 120, Burger 120, Chips and Cereal 300, Candy Bar 450, Pemmican 600. Nutrient Bar, Bucket of Chicken and Popcorn keep forever. So do drink containers.

Two blocks, two very different bargains.

The Icebox is the unpowered early answer. One fuel slot takes snow blocks, ice, packed ice or blue ice, and nine food slots sit behind it. While a charge is melting, food spoils at a flat 10 percent of the carried rate, and the biome multiplier stays out of it because the ice sets the climate. A snow block lasts 5 minutes, ice 20, packed ice an hour, blue ice three hours. The box bites a fresh charge the moment it runs dry, with or without food inside. Once the ice is gone it is an insulated chest at the ordinary enclosed rate.

The Freezer is the top tier and wants RF. Nine food slots, a 64,000 FE buffer, and an upkeep of 2 FE per one-second sample, which is 0.1 FE per tick. A full buffer runs it for about nine hours on its own. While powered it stops spoilage outright rather than slowing it: every stack's rot stamp is pinned to now each second, so no time passes for the food at all. Cut the power and it degrades cleanly to a plain enclosed container.

The Icebox will also accept blood bags, transplant organs, cadaver torsos and saline, each of which maps the storage tier onto its own separate ageing clock rather than sharing the food one. A powered Freezer holds an extracted organ outright. The Icebox only slows one.

One detail that matters for a base you leave: the Icebox sleeps through an unloaded chunk without melting, and it pins its contents' clocks on reload if it went to sleep with a live charge.

In game, this reads

Dense, tasty meat that keeps for ages.

tooltip.doomedmatu.pemmican

600 minutes, the longest clock in the food catalogue.

Both cold blocks take more than food: a blood bag, a transplant organ or a cadaver torso occupies the same slots, and each maps the storage tier onto its own ageing clock rather than sharing the food one. Organs

Rot - exact values
QuantityValue as shippedDefined in
Rot formularotSpeed = 1.666 / decayMinutes; condition -= rotSpeed x 0.01 x seconds~/registry/DoomedConsumables.java:73; ItemDecayHandler.java:85
Biome food multiplierclamp(0.35 + baseTemp x 0.55, 0.3, 1.4)~/body/ContainerSpoilage.java:56-57
Container rate0.5x the carried rate~/body/ContainerSpoilage.java:45
Carried decay tick intervalevery 10 ticks~/body/ItemDecayHandler.java:24
Longest and shortest food shelf livesPemmican 600 minutes; Frigiant Fruit 5 minutes~/registry/DoomedConsumables.java:146,164
Foods that never spoilNutrient Bar, Bucket of Chicken, Popcorn~/registry/DoomedConsumables.java:154-156,190
Icebox layout1 fuel slot, 9 food slots~/block/entity/IceboxBlockEntity.java:39-41
Iced spoilage rate10% of carried, no biome scaling~/block/entity/IceboxBlockEntity.java:46
Melt durationssnow block 5 min, ice 20 min, packed ice 1 h, blue ice 3 h~/block/entity/IceboxBlockEntity.java:50-53
Freezer buffer and draw64,000 FE buffer, 1,024 FE/t intake, 2 FE per second upkeep~/block/entity/FreezerBlockEntity.java:44-51
Freezer autonomy on a full bufferabout 9 hours~/block/entity/FreezerBlockEntity.java:47-51
Freezer slots9~/block/entity/FreezerBlockEntity.java:42
Concealed

Ordinary food keeps its full nutrition right up to the moment it vanishes

For a normal stacking food, condition controls three things and no more: the item's mass for encumbrance purposes, its barter value, and whether the stack is destroyed at zero. The eat path passes the food's configured nutrition to the body regardless of condition. A Pemmican at 4 percent condition feeds you exactly as much as a fresh one. The exception is human flesh, which is the only food that reads its own condition on use, and which reports a Fresh, Stale or Tainted band in its tooltip at the 75 and 40 percent marks.

Concealed

Cooking cannot launder taint

The mod replaces the vanilla smelting, smoking and campfire recipes for its own meats and berries with a custom recipe type that copies the input's condition fraction onto the output. Cooking a 10 percent condition raw portion produces a 10 percent condition cooked portion. Cooking still helps in two specific ways: the cooked item's decay rate is about three times slower, so raw human flesh at 40 minutes becomes cooked human flesh at 120, and the cooked item's sickness and sepsis bands are far kinder. What it does not do is restore freshness, and it does not neutralise prions.

Concealed

Biome temperature silently doubles or halves your food's shelf life

Every food's decay clock, both carried and in containers, is multiplied by a biome factor of 0.35 plus 0.55 times the local biome's base temperature, clamped between 0.3 and 1.4. In practice a snowy biome runs at 0.35, plains at 0.79, and a desert clamps at 1.4. A food rated at 30 minutes lasts about 86 minutes in the snow and about 21 in a desert. The factor is sampled at the position of whoever is carrying it, or at the position of whoever opened the container. Medicine, light sources and other non-food perishables are exempt and keep a flat rate.

Concealed

The Icebox does not melt while its chunk is unloaded

The Icebox burns its ice charge only in its server tick, and that tick only runs while the chunk is loaded. On reload, if the box went to sleep with melt time remaining, it pins its contents' rot clocks rather than charging the gap. A blue-ice charge is three hours of loaded time and it does not lose a second while you are away. The Freezer behaves the opposite way at the edges: it pins clocks on reload only if it went to sleep with enough energy in the buffer, and settles perishable ageing at the ambient rate if it did not, so restored power can never retroactively refrigerate time already spent warm.

Concealed

Bags increase what you can hold but never reduce what you carry

Every storage bag in the mod carries an encumbrance multiplier, and every one of the ten shipped bags has it set to 1.0. A bag's contents are folded into your carried mass at full weight on top of the bag's own mass, so putting 10 kg of supplies in a duffel bag adds 10.9 kg to your encumbrance rather than a discounted figure. What a bag actually buys you is slots and a weight ceiling of its own, and in the case of the medkit, toolbox, liquid pouch and material pouch, a tag restriction on what may go inside.

Traders

Trade runs on barter, not on coin. Items go into the Give slot, Give banks their value as credit with that specific trader, and the credit buys their stock. Credit is per player, so in co-op nobody can spend someone else's goods.

The wallet caps at 60 credits by default, and that single number does two jobs. It is the ceiling on what can be banked, and it is also the filter on what a trader will stock at all, because any item priced above it would be permanently unbuyable. At 60 the entire expensive tier is invisible on every shelf in the game.

A general merchant carries 8 offers. One slot is always a crate of loose rounds, 100 to 150 of a single calibre for a base 34 credits, because traders are the only ammunition supply that exists. The other slots are drawn from every Doomed item that has a curated trade value between 1 and the wallet cap. Loose single rounds, human flesh, the naval cannon, its shells, the quad minigun and its drum are refused by name or by class.

Prices are the item's value times a per-offer preference roll of 0.7, 1.0 or 1.5, times a reputation multiplier, and the result is clamped to the wallet cap. Preference is rolled once per offer.

Selling is throttled. You may bank 5 ordinary items per rolling window across all traders, keyed to your player rather than to the trader, so shop-hopping is no help. Crafted medicine draws on a higher cap of 10, and that count is shared, so at most 5 of your 10 may be non-medical. The window is 60 real minutes off the system clock, not an in-game hour.

Restocking belongs to traders who live in a generated lair, and the menu shows a countdown for them. Lairs attempt at one chunk in 24 between Y -48 and Y 30, and the room's condition roll decides both shelf size and restock speed. The Experiment is summon-only and carries a curated medical shelf instead.

In game, this reads

Traders stock these, rarely. There is no recipe.

tooltip.doomedmatu.largebattery.source

The shelf filter is what puts it there: a curated trade value between 1 and the wallet cap, and nothing else.

Traders - exact values
QuantityValue as shippedDefined in
Wallet and stock cap60 credits~/config/DoomedConfig.java:2729
Offers per trader8 for a wandering trader. A lair resident's shelf is sized by shelter condition instead, at 5, 7 or 8.~/entity/TraderStock.java:30; TradeMenu.java:48
Ammunition crate100 to 150 rounds, base 34 credits~/config/DoomedConfig.java:2751,2756,2763
Preference multipliers0.7 wants-to-trade, 1.0 indifferent, 1.5 wants-to-keep~/entity/TraderStock.java:364-366
Sell caps per window5 ordinary, 10 medical, shared count~/config/DoomedConfig.java:2703,2710
Sell window60 real minutes~/config/DoomedConfig.java:2719
Lair restock interval48,000 ticks base (about 40 minutes), 2 sold lots restored~/config/DoomedConfig.java:2737,2743
Lair shelf size by shelter conditionfailing 5, improvised 7, established 8~/entity/DoomedTrader.java:173-179
Lair generation attempt rarity1 chunk in 24, between Y -48 and Y 30~/config/DoomedConfig.java:2696; placed_feature/trader_lair.json
Concealed

Trader reputation is a live price multiplier that nothing in play ever moves

Each trader stores a reputation clamped between 0 and 200, and prices are multiplied by clamp(1.5 - reputation / 200, 0.6, 1.5). Reputation is initialised at 100 and read back from NBT on load, and no code path anywhere raises or lowers it during play. Every trader you meet therefore sits at exactly 100, which is a multiplier of 1.0. Prices move for one reason only: the per-offer preference roll of 0.7, 1.0 or 1.5 that is fixed when the shelf is generated. Trading with a merchant repeatedly does not make them cheaper.

FRAGMENT 02 - FOUR REFUSALS AT THE GIVE SLOT

SUMMARY: The trader's Give button had four separate cases where it consumed the click and did nothing visible. Players concluded the button was broken, and at least one named reporter said so. Each case now speaks, and two of them share a beep so the refusals sound like one family.

RESPONSE: "They look at what you're offering and want nothing to do with it." "The trader has bought all they will take this hour - come back later." "Your credit with this trader is full (60) - spend some first." "That fills the trader's buying for this hour."

FINAL NOTE: The first refusal is unconditional and is checked before value, before the hourly cap, before the wallet. No trader buys human meat at any price. The Experiment deals exclusively in experimental medicine and refuses it as well. The last message fires on a sale that succeeded, so the next click's refusal arrives expected instead of looking like the button died.

~/inventory/TradeMenu.java:243-294

Notes

  • Seven nutrient stores are tracked and written to NBT. Only Iron is ever read back. Iron gates red-cell regeneration and the red-cell ceiling, and Iron is the only store the server syncs to a client or the WITNESS tablet renders. Vitamin C, Vitamin D, Calcium, B12, Sodium and Thiamine are filled by food and consumed by nothing. Whether they are staging for a deficiency system that was never built, or residue carried over from the port, is recorded nowhere in the source.
  • The custom crafting catalogue is empty on purpose and every piece of machinery around it survives intact - a keybind on K, a screen with an INT gate, a server-validated craft packet. Recipes.bootstrap(), which registers 40 recipes transcribed faithfully from the source game, sits in the file and is never called. The comment beside it says to prune or reroute them "when crafting is restored". Nothing in the repo says whether restoring it is planned.
  • Every trader you can meet in a generated world lives in a lair. No biome modifier adds the trader to a spawn list, no spawn egg exists for it, and TraderLairFeature is the only caller that ever creates one. Three finished code paths therefore have no route in: the eight-offer shelf that non-lair merchants would use, the variant re-roll in finalizeSpawn that only fires on natural and spawner spawns, and the Experiment - his curated medical shelf, his portrait header, his classic-model exception and his one-percent rare interaction are all built and all reachable only through a /summon carrying a Character tag of 2.
  • The lockpick's difficulty lives entirely on the client. The server checks that the crate exists, that the player is within eight blocks, that their hand works, and that they personally opened the minigame on that crate. It never checks the angle, the band, or that the lock was actually turned. The four-degree half-band and its widening while jammed are both faithful to the source game, so the missing angle check may be deliberate latency tolerance rather than an oversight. The packet carries no comment either way.
  • The Drowned Archive room places a block called the Dead Archive Terminal and gives it nothing to do. Its class header calls it deliberately inert scenery, and the structure contract in reference/ states outright that the archive cannot provide readable lore until canonical copy and a server-authoritative interaction are chosen. The room is finished and the decision behind it has not been made.
FIELD-02

Threats

Doomed's threats are not health-bar fights. The Deep Maw is one persistent apex predator authored into a generated Cyst grove, and it builds a case against you out of light, noise and movement before it ever attacks. The scattered traps are one-shot maimings that go through the limb system rather than your hearts. Firearms are server-owned machines with a real chamber, a real feed state, and a body that shakes them. Almost none of the numbers below are shown to you in game.

Residency

A generated Cyst grove holds at most one Deep Maw, and killing that one is permanent. Worldgen registers a safe pose in the grove's deterministic Maw hollow, the server creates the animal there once the chunk is available, and a ledger walks the grove from pending to claimed to killed. Killed is terminal, so the hollow is spent rather than renewable.

The random monster pool leaves it out on purpose - the mod's spawn biome modifier lists the crawler and the spider and stops there. The Maw's own spawn predicate then refuses a position inside a registered grove or inside an eligible cyst region, refuses anything above Y -32, refuses anything that can see sky, and refuses a spawn within the natural separation distance of another living Maw. It also validates that the full authored body has a clear yaw at that spot, rather than that the compact physics box fits.

Groves are rare by design. The underground divides into deterministic 8x8-chunk regions and one region in sixteen is selected at the default rarity.

On a mixed server the default prey policy is DOOMED_ONLY. A player without an active Doomed run is invisible to the animal - never a valid target for detection, suction, fog or shear, rather than merely left alone. Two other policies exist: one makes every Survival player prey, and one adds ordinary Survival players for five minutes after they damage that specific Maw.

In game, this reads

Sealed Maw Remains

block.doomedmatu.deep_maw_remains

The block the world keeps where a Deep Maw died. The ledger entry behind it reads killed, and that is the end of the grove's residency.

Residency - exact values
QuantityValue as shippedDefined in
One resident per grove, terminal on deathPENDING -> CLAIMED -> KILLED~/worldgen/CystGroveMawData.java:50
Depth gate for a natural spawnY -32 or lower, no sky~/entity/DeepMawEntity.java:9790
Minimum separation between natural Maws192 blocks (96-512)~/config/DoomedConfig.java:2227
Cyst region rarity1 region in 16~/config/DoomedConfig.java:2591
Default prey policyDOOMED_ONLY~/config/DoomedConfig.java:2196
Not in the biome spawn listcrawler weight 8, spider weight 6, no Mawres/data/doomedmatu/forge/biome_modifier/doom_spawns.json

Suspicion

The animal grades you rather than spotting you. Suspicion accumulates from 0 to 1 for as long as its search organs can reach you. At 0.30 it emits one physical cue - the aperture moves, and dust comes off the wall its ray terminates on. At 0.65 it recognises you and holds for eighteen ticks. At 1.0 you are confirmed, and confirmation carries a two-hundred-tick memory refreshed every tick it can still see you.

Base climb is 0.028 a tick. Moving faster than 0.025 blocks a tick adds 0.010, sprinting or exceeding 0.11 adds another 0.014, a swung arm adds 0.015, and light above level 7 adds 0.0018 per level, reading the brighter of the block light underfoot and whatever you are carrying. Bleeding adds up to 0.018. The total is then multiplied by how much of the body the organ can actually reach, floored at 0.25, so a lip you show only your head over quarters the climb. Distance multiplies it again, from 0.35 at 32 blocks up to full strength at 12. Inside 12 the whole tentacle mass perceives you and the gain is a flat 0.20 a tick whatever you do.

Holding still returns a negative 0.012 a tick. That is the one way to talk a Maw out of a bad glimpse, and five conditions have to hold in the same tick for it: genuinely still and not mid-swing, exposure under 0.75, effective light at 7 or lower counting what you carry, no bleeding at all, and not yet confirmed with suspicion still under 0.65 at more than 12 blocks. A torch in hand defeats it on its own. So does one open wound.

Breaking line of sight buys four ticks of grace in which suspicion neither gains nor decays. After that it bleeds off at 0.0075 a tick, or 0.0025 once confirmed, or 0.0015 while a disturbance is still live.

Three moodles track a player's relationship with a Maw, and the rules between them stay off-screen.

Impending Doom is pure proximity inside the territory radius, independent of sight. Stone hides the animal. It does not hide the fact that something enormous is closing. The level sits at 2 on the outer boundary and rises on a squared curve to 50 at the centre, dragging adrenaline up to somewhere between 30 and 68.

Horrified wants two things at once. The Maw must be targeting you and be in a hunting state, or searching at 0.65 suspicion or higher, and you must hold a genuine server-clipped line of sight to it. Where the camera points is deliberately not trusted as gameplay. Once earned it latches for as long as that same Maw remains your active in-range encounter, and it pins adrenaline to at least 85. Leaving the territory clears it, so a later meeting correctly starts again at Impending Doom.

Focused replaces Horrified only after you personally deal damage worth a tenth of that Maw's maximum health - 28 points against its 280. Credit is stored per player UUID on the individual animal, so two players working one Maw advance separately, and hurting an unrelated creature earns nothing.

Horrified charges for itself. The mood system multiplies your entire mood by one minus horrified level times 0.005, so a fully Horrified body loses half its mood for as long as the state holds.

In game, this reads

An aperture draws open

subtitles.doomedmatu.deep_maw_search_aperture

This is the 0.30 cue and the only one the animal gives away before recognition at 0.65.

Horrified does more than label the encounter: MoodHandler multiplies your entire mood total by one minus the horrified level times 0.005, which halves it for as long as the state holds. Psychology

Suspicion - exact values
QuantityValue as shippedDefined in
Recognition threshold0.65 suspicion~/entity/DeepMawEntity.java:485
Confirmation threshold1.0 suspicion~/entity/DeepMawEntity.java:486
Base gain per tick0.028~/entity/DeepMawEntity.java:3426
Minimum cover multiplier0.25~/entity/DeepMawEntity.java:3453
Certain-perception radius12 blocks, flat 0.20 per tick~/entity/DeepMawEntity.java:346
Stillness drain-0.012 per tick~/entity/DeepMawEntity.java:3467
Stillness light ceilinglight level 7~/entity/DeepMawEntity.java:3465
Confirmed memory200 ticks~/entity/DeepMawEntity.java:497
Territory radius96 blocks (48-112)~/config/DoomedConfig.java:2203
Impending Doom range2 at the boundary to 50 at the centre~/body/ThreatEncounterHandler.java:169
Focus threshold10% of max health, so 28 damage~/body/ThreatEncounterHandler.java:37
Adrenaline floor when Horrified85~/body/ThreatEncounterHandler.java:134
Adrenaline floor when Focused90~/body/ThreatEncounterHandler.java:128
Horrified mood multiplierx(1 - level x 0.005)~/body/MoodHandler.java:63
Concealed

Freezing only works if five separate conditions hold at once

Holding still drains 0.012 suspicion a tick, but only when you are moving at or under 0.025 blocks a tick and not sprinting or swinging, your exposure is under 0.75, your effective light is 7 or lower counting carried light, you are not bleeding at all, and the Maw has not confirmed you while your suspicion is still under 0.65 at more than 12 blocks. A torch in hand defeats it. One open wound defeats it. Inside 12 blocks it does not apply at all, and neither does it once suspicion has crossed the recognition line.

FRAGMENT 12-C - HIDDEN ADVANCEMENT, CABOOSE LANDMINE

SUMMARY: The advancement set contains one hidden challenge for a mine the archive's landmine section never mentions. Title: "Ca-Boose!~". Description: "Trigger the mine Caboose couldn't see." Its icon is doomedmatu:caboose_landmine, a recessed variant whose casing copies the top-face sprite of whatever block it sits on, leaving only the small trigger showing. Five times the ordinary damage and terrain radius.

RESPONSE: CabooseLandmineBlock.detonate collects every server player inside the 25-block damage envelope and grants the advancement to all of them before Explosion.detonateCaboose runs. Cover removes the entire wound payload but not the credit, so a player crouched behind a solid corner who takes none of it is awarded alongside the one who stood on the plate. The block has a crafting recipe and appears in no worldgen scatter, so every award traces back to somebody who built one and put it down.

FINAL NOTE: The advancement is marked hidden and announce_to_chat true. On a server the first anyone hears of its existence is the chat line naming the player who set it off.

res/data/doomedmatu/advancements/caboose.json; ~/block/CabooseLandmineBlock.java:44-51

FRAGMENT 04-A - MOODLE COPY, HORRIFIED

SUMMARY: Three moodles carry the Maw encounter. Their strings live in DoomedHudOverlay: "Impending Doom" / "Something below has begun to track you.", "Horrified" / "You have seen enough to understand.", "Focused" / "Everything else has fallen away. There is only the threat." Horrified's expanded line reads: "Direct exposure has overwhelmed you. Escape its reach and put stone between you."

RESPONSE: Escaping the reach works. Putting stone between you does not. ThreatEncounterHandler re-derives recognition each tick as recognizedNow OR recognizedThisEncounter, and the second term stays true while that exact Maw remains the active in-range encounter. The state clears when you leave the 96-block territory or the animal dies. A player who reads the instruction literally, backs behind a wall and waits keeps a fully Horrified body, an adrenaline floor of 85, and half their mood gone.

FINAL NOTE: Impending Doom's description is accurate about the same wall: "A deep predator is within reach. The warning intensifies as it closes, even through solid cover." Two moodles, one encounter, one honest sentence between them.

~/client/hud/DoomedHudOverlay.java:1073-1075; ~/body/ThreatEncounterHandler.java:91-99

Noise

Physical events become bounded uncertain evidence for any Maw in earshot. Mining is the loudest: hardness is normalised against 8, square-rooted, then lerped into a radius of 14 to 38 blocks, a strength of 0.08 to 0.30 and a memory of 60 to 160 ticks. Placing a block is quieter at 10 to 24 blocks. Projectile impacts, real post-armour injury to anything, and falls over 2.25 blocks each leave a shorter clue. Sprinting on the ground broadcasts every twelfth tick, swimming every tenth. Evidence is all any of it is - a stale point to walk to, never a confirmed target.

The surface underneath scales the lot. Sound-dampening blocks multiply radius and strength by 0.62, resonant blocks by 1.18, and dampening wins where a block is somehow in both. Dampening covers wool, wool carpets, leaves, moss block, moss carpet, mud, sculk and the cyst mosses. Resonant covers overworld base stone, every ore tag, every storage-block tag, tuff, calcite and dripstone. Mining stone near a Maw is close to the loudest thing available to you. A placed block emitting light 8 or higher is inspected separately, as line-of-sight evidence out to 40 blocks.

While it stalks or searches, and only before it confirms a target, it plays a recorded voice out of a real loaded cave recess you cannot see. The server picks an air block 14 to 34 blocks from your eye, at most 8 above or below, at least 8 from the Maw itself, with cave material within three blocks, and verifies that a solid block stands between your eye and that point. The roll is 52 percent a whisper, 24 percent a distant growl, 24 percent a cry. The first can arrive 260 ticks in, then every 700 to 1800 ticks. It changes nothing at all. It stops the moment the Maw confirms its quarry.

In game, this reads

Whispering carries through the stone

subtitles.doomedmatu.deep_maw_mimic_whisper

The subtitle credits the stone. The source is a genuine air block 14 to 34 away with a solid block verified between it and your eye, and it goes quiet the moment you are confirmed.

Noise - exact values
QuantityValue as shippedDefined in
Mining radius range14 to 38 blocks~/entity/DeepMawStimulusEvents.java:37
Dampening surface multiplierx0.62~/entity/DeepMawStimulusEvents.java:161
Resonant surface multiplierx1.18~/entity/DeepMawStimulusEvents.java:161
Hard-landing thresholdover 2.25 blocks~/entity/DeepMawStimulusEvents.java:123
Placed-light evidenceemission 8 or higher, within 40 blocks~/entity/DeepMawStimulusEvents.java:84
Mimic source distance14 to 34 blocks~/entity/DeepMawEntity.java:759
Mimic interval700 to 1800 ticks, first at 260~/entity/DeepMawEntity.java:755
Mimicry stops onconfirmed target~/entity/DeepMawEntity.java:2836
Concealed

The floor you walk on changes how far your noise carries

Every sound a Deep Maw hears is scaled by the block under the event. A sound-dampening block multiplies both radius and strength by 0.62; a resonant block multiplies them by 1.18. Dampening covers wool, wool carpets, leaves, moss block, moss carpet, mud, sculk and the cyst mosses. Resonant covers overworld base stone, every ore tag, every storage-block tag, tuff, calcite and dripstone. Mining stone within 38 blocks of a Maw is close to the loudest thing available to you, and laying a wool path is a real, measurable reduction.

Armament

Every attack is a contract - a readable windup, then an active window, then a recovery. The bite is the one that kills. It commits out of a twelve-tick presentation with impact on the last seven, needs you inside 2.65 blocks of the mouth, and lands 46 skin damage, 38 muscle damage, 100 pain, 38 bleed, a 22 percent infection chance and a seven-point mood hit.

A tentacle lash is much cheaper: thirteen ticks of windup, four of strike, ten of retract, out to 7 blocks along a clipped capsule of radius 0.38, for 22 skin, 15 muscle, 62 pain, 14 bleed and 8 percent infection.

The suction inhale winds up 22 ticks and then pulls for 30, along a fixed 28-degree cone running 4.5 to 13.5 blocks. Speed toward the mouth is capped at 0.12 blocks a tick, which makes it a slow haul rather than a snatch, and crouching on solid ground cuts the force to 55 percent. Dragged inside mouth range, you get bitten.

The fog exhale is a 35-degree cone out to 12 blocks for 34 ticks. It applies Darkness and Slowness, pushes you, and doses you with cyst spores at 0.42 times your exposure every fourth tick. Respiratory protection filters that dose, which makes a fitted mask a real answer to this attack specifically.

Cave shear picks a solid face within 10 blocks of you and detonates it, hitting everything inside 4.5 blocks for 6 damage at the centre falling to 2 at the edge, plus a hard throw. A quarter of your body has to be exposed to it. Anchor impale and mouth sweep round out the set at 10.5 and 4.8 blocks.

In game, this reads

The jaw snaps shut

subtitles.doomedmatu.deep_maw_bite_snap

Four words for the 2.65-block contract that carries 100 pain and a 22 percent infection roll.

Spores come from two attacks rather than one: the suction inhale doses everyone held in its cone at 0.18 times exposure every fifth tick, and both routes pass through the same respiratory filter that an exposed wound opens a way around. Disease and Infection

The grab

A grab picks one of twelve limbs at random out of the arms and legs, reaches for fourteen ticks, then holds for at most 72 while hauling you toward the mouth. The pull ramps from 0.145 to 0.215 blocks a tick over the first eighteen ticks. If it gets you inside 2.65 blocks with the mouth off cooldown, it bites, at full strength.

There are two ways out, on two meters that fight each other.

Struggling fills a meter to 18. Any accepted input is worth 0.28. Holding a movement key adds 0.32, and changing to a different movement key from the last one adds a further 0.76, so cycling directions is roughly three times as effective as mashing one. Jump and attack add 0.16 each. The whole effort is then scaled by 0.68 to 1.0 from the average muscle health of your remaining limbs, so a wrecked body escapes more slowly. Inputs are accepted at most every three ticks and the meter drains 0.045 a tick. Breaking free costs a laceration on the held limb, 22 pain and 4 trauma, and throws you clear.

Sacrifice fills a separate meter to 11 at 1.0 per input, and it wants crouch, attack and use held together. The awkwardness is the point. Filling it amputates the held limb, throws you a shorter distance, and puts the Maw into a feeding state for 200 to 300 ticks while it eats what you gave it. That is the window to get out of the room.

The two meters cancel. Struggling drains sacrifice by 0.30 and sacrificing drains struggle by 0.35, so half-committing to both is the worst available outcome. After any release, no Maw can grab you for 160 ticks.

In game, this reads

A heavy mass drags closer

subtitles.doomedmatu.deep_maw_drag

The subtitle for the haul. The two meters deciding how it ends have no line of text anywhere.

The grab - exact values
QuantityValue as shippedDefined in
Maximum hold72 ticks~/entity/DeepMawEntity.java:600
Struggle threshold18.0~/entity/DeepMawEntity.java:606
Direction change bonus+0.76 on top of +0.32~/entity/DeepMawEntity.java:6004
Sacrifice threshold11.0, at 1.0 per input~/entity/DeepMawEntity.java:607
Sacrifice keyscrouch + attack + use together~/client/DeepMawGrabClient.java:53
Feeding window after a sacrifice200 to 300 ticks~/entity/DeepMawEntity.java:608
Re-grab immunity160 ticks~/entity/DeepMawEntity.java:604
Input rate limitone packet per 3 ticks~/entity/DeepMawEntity.java:605
Concealed

Struggling out of a grab rewards alternating keys, not mashing

Each accepted struggle packet is worth 0.28 by itself. Holding any movement key adds 0.32. Changing to a different movement key from the one you last sent adds a further 0.76, more than twice the value of the key press itself. Jump and attack add 0.16 each. Inputs are accepted at most once every three ticks and the meter drains 0.045 a tick, so hammering one direction is roughly a third as effective as cycling W, A, S and D.

Concealed

Struggle and sacrifice actively cancel each other

The escape meter and the limb-sacrifice meter are separate, and each drains the other. Every struggle input subtracts 0.30 from the sacrifice meter; every sacrifice input subtracts 0.35 from the struggle meter. Sacrifice also decays 0.16 a tick whenever you are not actively holding crouch, attack and use together. Committing halfway to both is the worst possible outcome, and it is exactly what panicking with 72 ticks on the clock produces.

Weaknesses

The core carries 280 health, 0.92 knockback resistance, and immunity to fire. Hitting the body directly is the slowest route on offer.

Each of the six tentacles carries 36. Damage there takes 90 percent off that limb and 12 percent off the core, so appendage fire is structural work rather than raw damage. Severing one staggers the animal and opens its throat for 24 ticks plus 8 per limb already lost. Every tentacle also ends in an anchor pad with 14 health, which takes 120 percent of a hit against the pad and 5 percent against the core; collapsing one drops whatever that limb was doing, opens the throat for 38 ticks, and takes 140 ticks to regrow.

The throat window is the whole point. While it is open, core damage is multiplied by 2.25; catching it merely in recovery multiplies by 1.55. Every missed committed attack opens a window on its own, from 24 ticks after a lash up to 44 after a cave shear. The three search lenses pass 8 percent of a hit into the core, so their value is sensory denial: 12 trauma blinds one for 100 ticks and caps its confirmed memory at 80, each further lens costs 65 percent more, and the last one stays online whatever you do to it. One projectile can only be credited against a given part once per 200 ticks.

When excavating beats a detour, it opens a corridor. The hardness ceiling is 8, which passes stone, deepslate and iron blocks and stops obsidian dead, and the breach-immune tag protects bedrock, barriers, portals, reinforced deepslate, obsidian and command blocks. The budget is 48 blocks per rolling minute and the blocks are destroyed rather than dropped. Its hard leash is 112 blocks from home, so running far enough genuinely ends a pursuit.

In game, this reads

Anchors lose their purchase

subtitles.doomedmatu.deep_maw_stagger

The stagger has a sound. The 24-tick throat window it opens is a number in server code.

The animal has no entity loot table and no coded drop, and the only object a kill can leave behind is a single Sealed Maw Remains block fixed to a natural cave face, which deliberately drops nothing when broken. Items, World and Trade

Weaknesses - exact values
QuantityValue as shippedDefined in
Core health280~/entity/DeepMawEntity.java:1173
Tentacle health36 each, six of them~/entity/DeepMawEntity.java:481
Terminal anchor health14, regrows after 140 ticks~/entity/DeepMawEntity.java:482
Open-throat damage multiplierx2.25~/entity/DeepMawEntity.java:6530
Recovering damage multiplierx1.55~/entity/DeepMawEntity.java:6531
Lens trauma to blind12, x(1 + 0.65 per lens already down)~/entity/DeepMawEntity.java:552
Breach budget48 blocks per minute, no drops~/config/DoomedConfig.java:2255
Breach hardness ceiling8.0~/config/DoomedConfig.java:2241
Hard pursuit leash from home112 blocks~/entity/DeepMawEntity.java:350
Concealed

The Deep Maw's throat opens every time it misses

While the throat vulnerability window is open, core damage is multiplied by 2.25; catching it merely in recovery multiplies by 1.55. That window is opened by a missed committed attack, and its length depends on which one missed: 24 ticks after a lash, 30 after a suction, 38 after an anchor impale, 42 after a mouth sweep, 44 after a cave shear or a fog exhale. Collapsing a terminal anchor pad opens 38 ticks, and severing a tentacle opens 24 plus 8 per limb already lost. A landed attack usually opens nothing at all.

Concealed

One projectile can only count against a given body part once per 200 ticks

Deep Maw parts keep a per-projectile memory mask for 200 ticks. If the same projectile resolves against the same anatomical part again, the hit is swallowed. This stops a shotgun volley or a multipart sweep multiplying one round across the same tentacle, and it means multi-pellet weapons are worth much less against a single limb than their pellet count suggests. Explosions are exempt.

Cave predators

Two ordinary cave creatures share one AI, and it behaves like an animal rather than a zombie chase. Each decision, the creature rolls against its aggro chance. Most of the time it holds its distance and circles. Now and then it darts straight in, bites, and is forced to retreat for several seconds.

The shade crawler has 14 health, spawns only below Y 40 with no sky above, and bites for 10 skin, 5 muscle, 25 pain, 6 bleed, 3 venom and a 10 percent infection chance. It works the broader cave band and is the first pressure a run meets.

The spider has 18 health, moves faster, and spawns only below Y 16. It lurks at 5 to 8 blocks where the crawler sits at 2 to 4.25, charges at 1.5 speed after a seven-tick windup, commits for up to 40 ticks, and retreats for 96 ticks after a bite lands. Its aggro is 0.18, so roughly four decisions in five it stays out at range. It carries 5 venom, and venom is an anticoagulant that scales your clotting down on a curve and reaches zero at a high enough dose. A spider bite hurts, and then it holds open every wound you already had. It flees outright below 4 health.

The deep dark and the mushroom islands stay clear of both, because vanilla ships those with empty monster lists and the mod keeps that promise. Their bite uses a fixed 0.28-block surface tolerance, so they genuinely have to touch you.

In game, this reads

A spider commits to a lunge

subtitles.doomedmatu.spider_charge

The word commits is doing real work: the charge locks in for up to 40 ticks after a seven-tick windup, and it costs 96 ticks of retreat if the bite lands.

Venom scales clotting speed by one minus venom over 20, so four landed spider bites take a body to a dose where nothing clots and every wound already open stays open. Blood and Circulation

The tip

A grabber plant is a fleshy tentacle on a stalk. The arm reaches 5 blocks and the tip wanders that disc on a slow lissajous, feeling the ground. The catch happens within 2.6 blocks of wherever the tip is at that moment, or when the idle tentacle path physically touches you. Everything else inside the 5-block radius is walkable, and that is why the plant reads as random until somebody watches the tip. The vertical window runs from 2.5 blocks below the base to 6 above it, and neighbouring plants are phase-offset so they sweep out of step with one another.

Once it has you it swings you through a vertical half circle centred on the stalk - up and over the top, then down to slam the ground a full radius out, alternating sides. The swing is an integrated pendulum, so the crest is slow and heavy and maximum speed lands exactly at the ground impact. Each slam pins you in the dirt for four ticks and fires a wound. The hold runs 100 ticks: the seize plus three full hauls and slams, with release near the crest of the fourth.

Each slam takes 10 to 20 muscle off one limb, and half the time that limb is the shin or foot the tentacle has hold of. There is a 40 percent chance of 4 to 12 bleed on top. Shock is forced to at least 30 and you are downed throughout. A player with no Doomed body simply loses 10 percent of their health bar per slam.

Burning tissue loses its search rhythm. An ignited plant whips its tip through the same disc 2.35 times faster, so lighting one up while you are still inside its reach is a bad trade.

The hold runs its full 100 ticks and then hurls you along the swing tangent. There is no struggle channel here. Early release comes from the plant block being destroyed underneath you, from the tentacle path getting geometrically blocked for enough ticks, or from your death.

What protects you is the immunity afterwards. Once thrown, no plant may grab you for 120 ticks, scaled by the world's pace factor. That number has to outlast the shock decay keeping you prone, or you get picked back up while still on the floor. The per-plant cooldown of 100 ticks is no help where discs overlap, so the per-player immunity is the real defence.

Grabber plants are killed, not mined. Left-clicking one cancels mining progress entirely on both sides, so the block's hardness never gets a say. Each swing takes your actual attack damage, weapon and enchantments included, off a 60-point pool, and a swing only counts once vanilla's attack cooldown has refilled to 90 percent. Spam clicking earns nothing and bare hands are a genuinely bad plan. Fire Aspect ignites it on a non-killing blow.

Burning is the hands-off answer. Flint and steel or a fire charge used directly on the plant works even where no adjacent face could hold a fire block, and a flaming arrow ignites it too. A burn lasts 240 ticks at 1.25 damage every 5 ticks, which is exactly 60, so one uninterrupted burn kills a full-health plant.

Health persists. A plant you wounded and walked away from is still wounded when you come back, and logging out is not a heal. It drops one or two rotten flesh, never a placeable plant. Naturally generated plants within 48 blocks of world spawn delete themselves.

In game, this reads

Grabber Plant

block.doomedmatu.grabber_plant

Two words are the whole of what the game says about it. The tip, the 2.6-block catch and the burning speed-up are nowhere in the language file.

The tip - exact values
QuantityValue as shippedDefined in
Tentacle reach5.0 blocks~/block/GrabberPlantBlock.java:43
Grab radius around the tip2.6 blocks~/body/GrabberFlingHandler.java:126
Vertical window-2.5 to +6.0 blocks from the base~/body/GrabberFlingHandler.java:570
Hold duration100 ticks~/body/GrabberFlingHandler.java:106
Wound per slam10-20 muscle, 40% chance of 4-12 bleed~/body/GrabberFlingHandler.java:412
Vanilla player damage per slam10% of max health~/body/GrabberFlingHandler.java:370
Burning tip speedx2.35~/block/GrabberPlantBlock.java:63
Plant health60.0~/block/entity/GrabberPlantBlockEntity.java:53
Burn kill time240 ticks at 1.25 per 5 ticks~/block/entity/GrabberPlantBlockEntity.java:55
Swing gateattack strength scale 0.9 or higher~/body/GrabberPlantCombat.java:71
Post-throw immunity120 ticks, pace-scaled~/body/GrabberFlingHandler.java:112
Per-plant regrab cooldown100 ticks~/body/GrabberFlingHandler.java:107
Drop1-2 rotten fleshres/data/doomedmatu/loot_tables/blocks/grabber_plant.json
World spawn exclusion48 blocks~/block/entity/GrabberPlantBlockEntity.java:41
Surface spawn chance3% per eligible cell x density~/worldgen/SurfaceScatterFeature.java:81
Concealed

A grabber plant only takes you where its tip is

The arm reaches 5 blocks, but the catch test is 2.6 blocks around the wandering tip, or a physical touch by the idle tentacle path. The tip follows a slow lissajous over the reachable disc, phase-offset per plant so neighbours never sweep together. Standing well inside the 5-block radius is safe while the tip is elsewhere, and walking past the tip's current position at 4 blocks out is not.

Concealed

Guns do not jam, they overheat and lose the chamber

There is no random malfunction anywhere in the firearm code. What exists is a physical chamber, feed and bolt state, plus heat. Heat rises per shot, caps at 8.0 on ordinary weapons, sheds 0.10 every 5 ticks, and adds 5.5 percent dispersion per point above 1.0. Only the quad minigun locks out: it latches overheated at 7.2, which is eight seconds of continuous fire, refuses to fire until heat falls back to 1.08, and needs twelve contiguous trigger ticks to spool before the first burst is ever accepted.

Concealed

The revolver's sneak-reload puts the muzzle to your own head

Sneak plus R on the heavy revolver does not reload it. It spins the cylinder and arms a roulette state, and the next left click puts the muzzle to your own temple and drops the hammer. A live chamber under the hammer removes your head outright through the dismemberment service, and nothing brings that back. The sound that plays on a live chamber is named for luck ironically: it is the sound of losing.

FRAGMENT 14-B - ITEM TOOLTIP, MORROW HEAVY REVOLVER

SUMMARY: Sneak plus R on the heavy revolver spins the cylinder and arms a roulette state. The tooltip rewrites itself to "The muzzle is at your own temple. The next left click pulls that trigger.", and under it, "A live chamber under the hammer takes your head off, and nothing brings that back."

RESPONSE: Both lines are exact. The spin rolls a fresh chamber index from six and resolveRoulette reads it at the authored hammer contact rather than when the client asks; a live chamber routes through DismemberService.gibHead, zeroes consciousness and enters death, and a player with no active Doomed body is simply killed outright. The gun refuses on one ground only, an empty cylinder, and says so: "There is nothing in the cylinder to gamble with." A cylinder holding six live rounds used to be refused as well. It is allowed now, and it kills you.

FINAL NOTE: The sound registered for a live chamber is revolver_luck. It fires on the losing branch, never the surviving one - it was originally wired to the empty chamber, where it read as congratulation.

~/item/GunItem.java:684-803 and :2288-2295; assets/doomedmatu/lang/en_us.json line 11

Contact traps

Every floor trap is collisionless. You walk into the cell rather than onto the block, so a trap on a thin plate cannot be dodged by aiming at the block below it.

The bear trap bites once per placement and is spent for good afterwards. It clamps a foot or shin for 100 pain, a 50 percent fracture chance divided by armour, a crush wound of 70 to 100 skin and 50 to 100 muscle, and Slowness V for 100 ticks with your velocity zeroed.

The spike trap is one-shot as well, and the spike stays up. It is the worst of the floor set: 50 to 80 skin, 30 to 50 muscle, up to 40 bleed, internal bleeding, 70 to 100 pain, shock forced to 70, adrenaline to 100, a 30 percent fracture, and a flick upward.

The sawblade rearms every 12 ticks and can catch any of twelve body regions, cutting 60 to 80 skin and 20 to 30 muscle with 20 to 25 bleed and 75 to 90 pain, then flinging you bodily away from the blade. It leaves bone alone. It cuts.

Caltrops rearm every 14 ticks, bite only feet for 8 to 20 skin, and leave a brief limp.

The live wire rearms every 30 ticks and shocks at severity 45, seeding a non-forced fibrillation that settles if your vitals hold. The electrified coil rearms every 600 ticks and shocks at 62, plus burns and tears every limb, maxes pain, drops consciousness to zero and raises your core temperature by 5.

Depth decides the flavour. The upper band gives spike traps, caltrops and bear traps. The middle band adds live wiring and sawblades. The deep band is landmines, sawblades and coils. Density ramps from 0.12 to 0.52 as you descend.

In game, this reads

Exposed, sparking wiring on the floor. Stepping on it

gives a moderate shock - burns and a jolt you can

usually ride out - but it re-zaps every ~1.5 s, so

lingering stacks burns and arrhythmia until it stops

your heart.

tooltip.doomedmatu.live_wire

The interval is right: 30 ticks is the ~1.5 s it promises. The ending is a stretch on its own, since severity 45 sits under the 70-point cardiac arrest threshold - it takes metal prosthetics multiplying the shock to carry a live wire across it.

Electrocution multiplies incoming severity by one plus 0.13 for every mechanical or titanium prosthetic limb fitted, so the live wire's 45 sits under the cardiac-arrest line for a biological body and over it for a heavily rebuilt one. Injury and Treatment

Contact traps - exact values
QuantityValue as shippedDefined in
Bear trap100 pain, 50% fracture, Slowness V for 100 ticks~/body/TrapEffects.java:80
Spike trapshock 70, adrenaline 100, 30% fracture~/body/TrapEffects.java:56
Sawblade cooldown12 ticks~/block/SawbladeBlock.java:36
Live wire severity45, every 30 ticks~/block/LiveWireBlock.java:34
Coil severity62, every 600 ticks~/block/CoilBlock.java:32
Cardiac arrest thresholdseverity 70~/body/Electrocution.java:25
Fibrillation thresholdseverity 35~/body/Electrocution.java:27
Floor trap chance by depth0.12 + depth x 0.40~/worldgen/CaveScatterFeature.java:246
Concealed

Metal prosthetics multiply every electrical shock you take

Electrocution multiplies the incoming severity by one plus 0.13 for each mechanical or titanium prosthetic limb you wear. A wooden improvised limb does not conduct. A live wire at severity 45 becomes 56.7 with two metal limbs and 74.3 with five, crossing the 70-point cardiac arrest threshold that the live wire is specifically tuned to sit below. The electrified coil at 62 crosses that threshold with a single metal prosthetic.

Landmines

Any entity trips a landmine. Players, mobs, animals and dropped items all arm it, the fuse is 16 ticks, and proximity has nothing to do with it. Breaking a mine by any external means detonates it. So does an explosion beside it. A completed defusal is the one safe removal.

The blast carries two radii that are deliberately different. Wounds reach 5 blocks; the crater is only 2, which is smaller than a creeper. Out to 12.5 blocks you are deafened, your consciousness is capped at 31, and the screen shakes hard.

Cover is total. The blast clips a ray from its centre to your body, and if a solid block stands more than half a block in front of you, the whole wound and knockback payload is skipped - every limb roll, the fracture and dislocation rolls, the head trauma, the disfigurement and eye rolls, the dismemberment roll, the throw. The deafening still arrives, which is why being fully sheltered feels almost identical to being hit.

Inside the blast, each intact part rolls its own damage, skin tear, bleed, internal bleeding and embedded fragment. A head hit zeroes your consciousness and can permanently disfigure you or blow an eye out, each at 34 percent divided by armour. Inside half the radius one limb can be torn off, at 35 percent scaled toward the centre and divided by armour, never more than one per blast.

Defusal is sneak-right-click on an unarmed mine. Four wires, one of them safe, and 90 seconds of probe budget. A wrench or a lockpicking kit sharpens the electrical clue, and you have to stay within 6 blocks. Cutting correctly leaves an inert husk you right-click later for the components, so salvage can never drop onto an adjacent live mine and set it off.

In game, this reads

Pressure-fused. Step on, step off, goodbye.

Sneak-right-click a placed, unpressed mine to open its fuse panel and try to cut the one steady wire.

A wrench or lockpicking kit in your pack marks the stable circuit for you.

tooltip.doomedmatu.landmine

Exact on the defusal, and it undersells the trigger - any entity arms the mine, dropped items included. The husk a correct cut leaves behind gets no mention at all.

Landmines - exact values
QuantityValue as shippedDefined in
Fuse16 ticks~/block/LandmineBlock.java:50
Wound radius5.0 blocks~/body/Explosion.java:82
Terrain radius2.0 blocks~/body/Explosion.java:97
Deafening radius12.5 blocks (radius x 2.5)~/body/Explosion.java:136
Cover testsolid block more than 0.5 blocks in front of you~/body/Explosion.java:304
Dismemberment35% at centre, inside half radius, one limb max~/body/Explosion.java:252
Defusal budget90 seconds, 4 wires~/block/LandmineBlock.java:66
Minefield cluster14-20 mines across 24 blocks~/worldgen/SurfaceScatterFeature.java:146
Concealed

Cover does not reduce explosion damage, it removes it entirely

An explosion clips a ray from its centre to your body. If a solid block is hit more than half a block short of you, the whole payload is skipped: every limb wound, the fracture and dislocation rolls, the head trauma, the disfigurement and eye rolls, the dismemberment roll and the knockback. You still take the deafening and the consciousness cap out to 2.5 times the blast radius.

Concealed

A defused landmine leaves a husk on purpose

Cutting the correct wire does not pop the salvage. It replaces the mine with an inert deactivated landmine you right-click later to strip the fuse for components. Any entity trips a live mine, dropped items included, so the older behaviour of popping loot on the spot could drop items onto an adjacent armed mine and detonate it. Defusing a whole cluster first and collecting afterwards is the intended flow.

The guns

Six firearms exist. The pistol takes a 12-round magazine and does 7 damage at 60 blocks on a 6-tick cadence. The rifle takes 20 rounds and does 11 at 70 blocks on a 4-tick cadence, the fastest ordinary weapon. The shotgun is a 6-shell tube throwing 8 pellets at 3.6 each out to 35 blocks on a 16-tick cadence, pumped between shots. The heavy revolver has six physical chambers and does 15.5 at 110 blocks. The naval cannon holds one breech-loaded shell for 72 damage at 420 blocks, and it fires only when you are fully aimed, on the ground, off the sprint and nearly stationary. The quad minigun runs a 2000-round drum.

Guns and ammunition come out of locked crates. The pistol, rifle and shotgun each sit at weight 1 in a roster of roughly sixty entries, so the gun itself is a lucky pull, and the loose rounds are four to six times commoner. Naval shells and minigun drums appear at weight 1 while their weapons do not, so finding one is a promise rather than firepower. Guns drop unloaded. Traders stock anything with a trade value, and that includes the revolver.

Magazines fill one round per right-click, from loose rounds anywhere in your inventory. Bulk loading does not exist here, and neither does an ammunition recipe.

The revolver's .410 shell is a second cartridge for the same chambers, and the chamber's contents are read at the instant of the shot. A mixed cylinder alternates behaviours round by round: a shell throws 9 pellets at 3.2 damage with 5.5 times the dispersion, only 22 blocks of range, two and a half times the recoil, and a report of its own.

In game, this reads

You have nothing to load it with.

message.doomedmatu.revolver_no_rounds

The line a crate-pulled revolver gives you. Guns drop unloaded, and the loose rounds are a separate roll.

Aim

Dispersion begins as an interpolation between hip and aimed values, driven by how far the sights have actually come up, and the server owns that progress - the viewmodel can only show accuracy already earned. The rifle runs 0.025 hip to 0.0030 aimed, the revolver 0.012 to 0.0038, the shotgun 0.042 to 0.022. Sights take 3 ticks on the pistol, 4 on the rifle, 6 on the revolver and shotgun, 28 on the naval cannon. The benefit is removed the instant the aim key is released, rather than when the visual finishes lowering.

Everything after that makes it worse. Movement multiplies by up to 2.8, sprinting doubles it again, being airborne multiplies by 1.8, crouching multiplies by 0.78. Heat above 1.0 adds 5.5 percent per point.

The body penalty is the one nobody sees. It is arm capability loss times 1.25, plus consciousness loss times 0.65, plus pain times 0.45, capped at 2.4. At the cap your dispersion is multiplied by 3.4 and your recoil by roughly 1.8. A bleeding, half-conscious body cannot shoot straight, and the game never says so.

Hands matter separately. The pistol, rifle and shotgun benefit from two. Firing one of them with a single usable arm multiplies handling by 0.62 and recoil by 1.55, and handling divides into the cooldown, so an injured shooter is slower as well as looser. Kuru's motor decline feeds the same channel.

Downed, a refusal pending, Corebound, or consciousness at zero: the trigger does nothing at all.

Hits scale by where they land - 2.2 times above 82 percent of the target's height, 1.0 through the torso, 0.75 on the legs, 0.6 on the feet, 0.5 on the arms. Damage also scales with the square of retained velocity, floored at 15 percent, so a round at the end of its range is a fraction of one at the muzzle.

The body penalty reads the same arm capability, consciousness and pain values that drive the downed state, so accuracy has been draining for a long while before the game finally refuses to let you fire. Pain, Consciousness and Death

Aim - exact values
QuantityValue as shippedDefined in
Rifle dispersion0.025 hip, 0.0030 aimed~/item/GunItem.java:2080
Body penalty formula(1-arms)x1.25 + (1-consciousness)x0.65 + pain x0.45, cap 2.4~/item/GunItem.java:1940
One-handed penaltyhandling x0.62, recoil x1.55~/body/HandFunctionService.java:118
Stance multiplierssprint x2.0, airborne x1.8, crouch x0.78~/item/GunItem.java:1908
Hit location scalehead 2.2, torso 1.0, leg 0.75, foot 0.6, arm 0.5~/entity/BulletEntity.java:380
Velocity falloffx(velocity/muzzle)^2, floor 0.15~/entity/BulletEntity.java:385
Cannot fire whiledowned, refusal pending, Corebound, or consciousness 0~/item/GunItem.java:1522
Heat cooling0.10 every 5 ticks, ceiling 8.0~/item/GunItem.java:862

Notes

  • The Horrified moodle's own description ends "Escape its reach and put stone between you." The second half has no effect. Recognition latches to that exact Maw for as long as it stays your in-range encounter, and only leaving the 96-block territory or killing the animal clears it; breaking line of sight changes nothing. Whether the copy predates the latch, or the latch went in without anyone rereading the copy, is not recorded.
  • LandmineBlock's class comment still documents the source's 50-block proximity gate as live behaviour. The entityInside method four lines below it carries a note saying any entity trips a mine and no proximity gate exists. One of the two was written later and nobody went back for the other, and nothing in the file says which of its other behaviours still follow the old spec.
  • Focus arrives at 28 damage to the core, a flat tenth of 280. Severing all six tentacles costs 240 raw damage and bleeds 12 percent of that into the core, which comes to 28.8. Whether the threshold was placed to sit just under a full dismantling pass or simply landed there is not written down anywhere.
  • Killing a Deep Maw yields nothing at all. The entity has no loot table, no advancement and no coded drop, and the sole aftermath is one Sealed Maw Remains block that itself drops nothing - placed only if a natural cave face turns up within six blocks during the handful of attempts between tick 54 and tick 80 of the collapse. A kill in open water or over a player-built floor leaves no mark. Whether the empty reward was decided or just never finished is not stated.
  • reference/DEEP_MAW_SYSTEMS_AUDIT.md, dated 2026-08-07, still lists finding 40 - the enormous bite that never breaks bone - as a live CONFLICT. The bite now always attempts a fracture, and can tear a distal limb off outright at 72 percent once you have been dragged into the mouth; that code landed 2026-08-08, the day after. The audit has not been re-run since, so its six remaining CONFLICT entries carry the same doubt.
  • Everything the firearms do while actually held and fired sits outside what the preflight checkers can reach, because a headless boot never holds an item. The body penalty's ceiling of x3.4 dispersion and roughly x1.8 recoil has been read off the arithmetic and never felt.

PART V - INDEX

IDX-01

Condition Index

Every state WITNESS can put on you, worst first. Severity is judged from what the code does to you rather than from how the name sounds: impairing degrades something, dangerous kills you if you leave it, lethal kills you on its own timer.

Can't Breathecantbreathelethal
What it doesRespiration under 6 breaths per minute out of 25. Anything under about 12.5 makes blood oxygen fall continuously, and at zero drive saturation empties at half a percent per second.
What puts it on youOpioid reception, sedatives, fibrillation, blood in the chest, stroke above 50, a fractured or wrecked thorax, lost lung function (a hard ceiling, not a subtraction), an arrow or shrapnel in the neck (up to -55), an unhinged jaw (-18) and kuru (-16). Systolic under 20 forces it to zero outright.
What clears itDepends which cause is yours. Blood in the chest drains. An obstructed neck clears by extracting the object. Opioids reverse with naloxone. A wrecked chest only eases as the muscle heals. Respiration recovers on its own once the driver is gone, slowly while it is under 2.5.
NoteTier 3 critical. The three causes named in the WITNESS page are different problems and treating the wrong one spends the only time you have. Either you are breathing at 2.5 or more, or you are not breathing at all; there is no value between.
Cardiac Arrestcardiacarrestlethal
What it doesYour heart has stopped - heart rate under 20 bpm. It does not drain you directly: blood pressure collapses, the collapse caps consciousness, and the circulatory failure drains your brain until you are brain-dead.
What puts it on youDerived every tick from heart rate falling under 20. Fibrillation reaching 100 sets the rate to zero outright; so does a strong enough electrocution. Deep hypothermia, exsanguination and a large epinephrine bolus all get you there through the rhythm.
What clears itA defibrillator restarts an arrested heart about one shock in five, or epinephrine does. Chest compressions never restart it - they produce weak temporary perfusion and slow brain death while somebody keeps going.
NoteIt is derived, not a flag, so it ends the moment the rate recovers and not before. Every shock tears chest skin, spikes pain, ragdolls you and crashes systolic to 40 whether it converts or not - a failed shock still costs you all of that.
Catastrophic Bleedmaxbleedinglethal
What it doesHaemorrhage - more than 0.45 L/min leaving your body. The top rung of the bleed chain and a top-tier critical chip.
What puts it on youA catastrophic wound, a severed or shredded limb, or several heavy tears at once.
What clears itTourniquet the limb, then stitch it shut. Nothing about this rate self-resolves in time.
NoteThere is an authored WITNESS page under this key that covers the whole clotting model, not just this tier: what stops clotting dead (fragments, venom, cold, blood-thinning painkillers), what helps (warmth, held pressure), and the deep-wound threshold past which a bandage will not hold.
Kurukurulethal
What it doesA prion destroying your brain, in four ordered stages that never run backwards: prodrome, ambulatory, sedentary, terminal. Headache, joint pain and wasting come first, then a widened stance and hands that fail when you reach for precision, then loss of standing and swallowing. In terminal it strips 0.15 brain per second and takes your breathing with it.
What puts it on youEating human flesh. Cooking does not make contaminated tissue safe. Neural, spinal and ocular tissue from an infected donor carries far more risk than muscle.
What clears itNothing. There is no cure, no drug, no surgery, no rest that touches it. Antibiotics can treat a secondary aspiration infection but never the prion. Rest, painkillers, feeding and airway care are supportive only.
NoteSilent for roughly two real-time hours before the first stage, so by the time the chip appears it is already too late. Involuntary giggling starts in the ambulatory stage and lengthens into pathological laughter. Your written chat acquires transposed neighbouring letters, worsening by stage, without ever deleting the message. It deliberately survives death - the prion load and onset are not cleared by dying.
Opioid Overdoseoverdoselethal
What it doesToo much opioid in you. Reception is your opiate level minus your tolerance, and as it climbs it subtracts directly from your breathing - near 100 respiration reaches zero, oxygen collapses, and the hypoxia kills your brain. Staged at 5 Dosed, 20 Heavily Dosed, 50 Toxicity Threshold, 80 Opioid Overdose.
What puts it on youStacking opioid doses, or redosing while the first is still absorbing. An injected dose lands in a depot and feeds into the blood over time, so the peak arrives after the injection rather than with it.
What clears itNaloxone. It clears the active level at 8/s. It does NOT touch the depot, so if the antagonist runs out with opioid still to absorb the overdose rebounds and you must redose. Activated charcoal binds a swallowed dose only, and only while it is still in the gut.
NoteYou get an explicit warning - "Your breathing is going shallow" - roughly seven seconds before respiration fails, because reception slews at 5/s. This chip is opioid only; a stimulant overdose is a separate channel that does not use it. There is no direct brain hit: the whole danger is the breathing.
Sepsis / Septic Shocksepsislethal
What it doesInfection has left the wound and gone systemic. It drags blood pressure and oxygen down, and past 20 it throws violent whole-body rigors - an 11 Hz convulsion you cannot walk through, aim through, or do medicine through.
What puts it on youTotal infection summed across every limb reaching 100. Also raw, stale or tainted human flesh, Xaloris sponge, certain liquids, kuru, and contagion.
What clears itControl every infected source and disinfect - treating the symptoms leaves the source active. Antiserum cuts sepsis directly and brings antibiotics, blood volume and immunity with it. Once total infection drops back under 100 it ebbs on its own.
NoteEach fit opens with a 3 second prodrome, the same beat every time, so the chill is a genuine warning to put the pickaxe down. The gap between fits IS the health bar: it tightens from about four minutes to twenty-five seconds. Past 97 the rigors FADE and the fever inverts into cold shock. The shaking stopping is not recovery.
Strokestrokelethal
What it doesBlood flow to part of your brain has failed. Once seeded it climbs on its own at about 0.133 a second and never stops, eating 0.025 brain and 0.005 L of blood every second; past 90 it forces your heart into fibrillation.
What puts it on youA systolic reading above 180 rolls a 2% chance per second to start one. That is the only trigger in the code.
What clears itA Neurograft clears it fast (0.5 per tick while the op runs). Lethe and the Neural Booster zero it outright. There is no natural decay and no other treatment - it will not resolve on its own.
NoteThe chip only lights above 70, but every limb's force is multiplied by clamp(1 - stroke/50), so at stroke 50 your limb force is already zero. You are immobilised roughly six minutes before the icon ever appears. It also suppresses breathing above 50. Onset to icon is about nine minutes of it quietly draining you.
Amputationamputationdangerous
What it doesA limb is gone, along with everything below it. The stump on the limb above it is left at zero skin, minus 50 muscle, pain 100 and heavy bleeding, and you lose 0.35 L of blood immediately on top of the ongoing bleed.
What puts it on youA deliberate cut with a bone saw or an axe, an explosion, a Deep Maw tear, or a catastrophic wound that rips the limb off. Only the arm and leg chains can go - never the head, neck, torso, abdomen or eyes.
What clears itIt does not grow back within a life. Stop the stump bleeding, then let the stump heal - a prosthetic needs stump healing at 65 or better, bleed under 8 and infection under 5 before a socket will take. A prosthetic restores function only partially.
NoteA prosthetic never clears the badge - the limb is still recorded as dismembered, so the chip stays for the rest of that life. Onset floors motor shock at 30, which is above the collapse line, so four cuts in a row means four collapses. An axe costs nearly twice the blood of a bone saw and leaves the wound contaminated. Tissue that died on the body (rot, a tourniquet left on) does not haemorrhage the way a sawn limb does.
Arrhythmia / Fibrillationarrythmiadangerous
What it doesYour heart quivers instead of pumping. It runs 0-100: past 15 you get the Arrhythmia chip, past 50 and 75 it reads Fibrillation, and at 100 the heart stops outright.
What puts it on youSeeded by oxygen delivery under 50 percent, low systolic, heart rate over 200, blood viscosity over 95, or body temp under 28 C. Also rolled from heavy blood loss, an acute pain-and-stamina shock spike, hyperkalaemia from failing kidneys, body weight more than 60 off in either direction, water intoxication past 175 thirst, opioid withdrawal, electrocution, and an epinephrine dose of 40 ml or more.
What clears itA defibrillator converts it - ideal power is twice the current fibrillation percent, and every unit off that erodes the odds. Amiodarone converts it chemically at the cost of heart muscle. Left alone it also settles at 0.75 per second, but only once nothing on the rising list still holds.
NoteThe bar to START a fibrillation is stricter than the bar to keep one climbing, so one seeded during a crisis keeps growing in conditions that would never have caused it. A latched (forced) fib climbs regardless of how well the rest of you is doing until something clears the latch.
Bleedingbleedingdangerous
What it doesAn open wound draining you at more than 0.09 L/min. The middle rung of the four-step external bleed chain, chosen off your total bleed rate across every limb.
What puts it on youAny wound that opens skin - cuts, gunshots, bites, falls, explosions. The chip tier is your summed bleed rate, not one limb's.
What clears itA bandage slows it, a clean suture stops it dead, a tourniquet stops everything below it on that limb. It clots on its own, but a serious wound only clots at 0.017 units per second - far slower than it drains you.
NoteA fragment still in the wound suspends natural clotting completely. Venom scales clotting down to zero at 20 units. Cold drags it to 60 percent by 30 C, and a non-opioid painkiller thins the blood as a side effect, so medicating a bleed makes it last longer. Being properly warm buys back 8 percent.
Brain Damagebraindamagedangerous
What it doesBrain health below 95. It hard-caps consciousness at the brain value itself, and brain reaching 0 is death - brain-death is the real death in this mod.
What puts it on youOxygen delivery below the critical line, circulatory collapse (systolic under 10 with consciousness under 5), stroke, radiation, kuru, extreme heat, head trauma and blasts, toxaemia, water intoxication, sustained blood loss.
What clears itPassive regeneration runs at 0.008 a second, slow enough that a serious loss is a long-term condition. A Neurograft is what actually rebuilds it (0.05 per tick while the op runs). Stop the cause first - most drains are larger than the regen.
NoteFour stages at 95 / 80 / 60 / 30, named Rattled, Head Injury, Brain Damage and Brain Failure. Brain-death is only checked when Last Stand is not active. The brain-damage cap is separate from the head-muscle concussion cap, so a clean head can still be capped by a damaged brain.
Burnburndangerous
What it doesSeared flesh. It does not bleed, but it hurts, it festers readily, and a large total burn area leaks plasma and drains your blood volume - burn shock, the classic burn killer.
What puts it on youFire and lava. Lightning too: it is modelled purely as a burn plus tetany, with no bleed at all.
What clears itBurn gel heals the burn, eases the searing pain and lays down an antiseptic window so it does not fester. Unaided it recovers at 0.15 per second, which is slow. Once it reaches zero it leaves no scar.
NoteA limb over 40 burn with no antiseptic window seeds a real infection on its own. Burn shock starts at 120 total burn across the whole body and scales with area up to 400, so a body burned head to foot leaks about four times as fast as one scorched limb.
Coldcolddangerous
What it doesYour core temperature has fallen below 35.5 C. It stiffens you - movement speed is capped by a temperature curve, clotting slows, and the extremities start dying before the core does.
What puts it on youCore temp under 35.5 C. Ambient set point from biome, weather, night, altitude and shelter, minus your insulation (clothing, armor, body fat, dry fur). Being wet collapses insulation almost entirely.
What clears itWarm up: a fire or heater nearby (radiant heat bypasses insulation), a hot drink or hot meal, a Heat Pack, better clothing, or get dry and get indoors. Food can only nudge you back toward the comfortable band, never carry you through it.
NoteFour stages: Chilly, Cold, Freezing, Hypothermia (under 28 C). Core temperature below 30 C is a listed cause of death, but the usual killer is frostbite necrosis of the fingers and toes, not the core. Below 32 C the cold numbs every wound - pain drops 5/s - so a freezing body reads as less hurt than it is, and hunger drains an extra 0.035/s while you shiver. Body temperature has real thermal mass now: about 44 seconds to move meaningfully, so a coat put on before you set out matters more than one put on when you are already cold.
Crushed Chestthoraxdestroyeddangerous
What it doesChest muscle below 4. Lung volume is read off the state of the thorax, so your respiratory drive is ceilinged by how much chest you have left, no matter how clear your airway is. Oxygen falls because there is nothing left to hold it.
What puts it on youChest damage. A pulmonary embolism also eats chest muscle at 0.6 a second while it lasts, and severe hypoxia (SpO2 at or below 5) plus active starvation waste muscle everywhere.
What clears itOnly healing the thorax muscle back. LRD Serum rebuilds muscle. The penalty is graduated and recoverable - it eases as the muscle returns.
NoteThe penalty is a CEILING, not a subtraction. As a subtraction it could not suffocate anyone, because the pain and exhaustion the injury itself caused drove the effort terms up and bought the lost lung volume straight back. A shallow-breath floor is preserved so this stays survivable rather than instant apnea. A rotting or infected chest wound stops muscle regeneration entirely, so an infected chest never heals out of this on its own.
Deep Wounddeepwounddangerous
What it doesA limb's bleed crossed 20 units and the tear is now DEEP. Skin and muscle regrow at one fifth the normal rate until it is properly closed, and the badge stays up even after the blood is staunched so the reminder to stitch does not disappear with the bleeding.
What puts it on youAny single limb's bleed reaching 20. A fresh heavy tear also wipes any stitched or reopen bookkeeping the limb was carrying - it is a new wound.
What clears itA clean suture closes it for good. Cauterising with a held flame welds it shut and charges you severe tissue damage and infection risk. A bandage only staunches it: a deep wound bandaged but never stitched runs a reopen countdown and tears back open with a squelch and no text.
NoteA ragged stitch is not a closure. Below 0.55 quality in the stitching minigame the wound stays deep and unstitched, which is byte-for-byte the state a bandage leaves, and the reopen countdown runs anyway. It also clears itself silently once bleed is zero and skin is back to 99.
Depresseddepressiondangerous
What it doesMood below -50. Up to about 63% of what you try simply will not happen, you move at around 70% speed, everything tires you faster, and below -55 anhedonia starts building so that nothing that would lift you lands properly.
What puts it on youMood is derived fresh every tick from a slow happiness baseline minus pain, sickness, radiation, hearing loss, wetness, trauma, hunger, thirst, low blood and withdrawal. It is a sum, so no single cause owns it.
What clears itFix the terms feeding it - pain, hunger, thirst, blood, trauma. Comfort items, a companion within 14 blocks, rest and Antidepressants all help; the pill is support, not a cure, and its real job is halving how fast anhedonia builds.
NoteThis band is where the mood system stops being flavour. At -50 apathy hides your hunger and thirst chips. At -45 nightmares and lapses become possible. At -60 a vigil can be called on you. At -70, holding still for 30 seconds triggers a self-harm episode that opens real bleeding wounds. There is no authored tablet page for any mood chip, and none of these thresholds is stated in game - the panel line only reports the live refusal, speed and energy numbers.
Envenomedvenomdangerous
What it doesTwo values: venomTotal is the reservoir, venomCurrent chases it and is what poisons you. Active venom caps blood oxygen by half a percent per point, thickens the blood, scales your clotting down to zero at 20, and drains blood volume.
What puts it on youCave spider bites, bee stings, and an ordinary spider bite while you are already poisoned. Any mob with a biteVenom value. Eating a venom gland adds 30 to the reservoir.
What clears itAn antivenom syringe cuts both values by 0.8 per ml. Antiserum takes 0.48 per ml off both. Left alone the reservoir decays at roughly 0.095 per second and the active venom follows it down.
NoteA single encounter is capped in how much reservoir it can build, so a swarm envenoms you badly but never instantly. While venom is high a bleed will simply never clot; close the wound mechanically instead of waiting. Chip stages at 2/25/55/90.
Frostbitefrostbitedangerous
What it doesNon-vital limbs freeze in deep cold, hands and feet fastest, then forearms and shins, then upper arms and thighs. Past 85 it necroses skin and then muscle, and while it is that deep the limb cannot heal at all.
What puts it on youCore temperature under 31 C - genuine deep hypothermia, not ordinary cold. Head, neck, eyes, chest and abdomen never freeze.
What clears itGet your core above 35.5 C and it thaws. Proximal limbs thaw first so the cold recedes outward and the fingertips and toes come back last. A heat pack floods the core with 5 C and thaws every affected limb directly. Necrosed tissue regrows normally once thawed.
NoteAt 99 frostbite with skin and muscle both under 1, that part and everything below it come off together - a dry stump, no gush, and deliberately no message. The body doll and the moodles are the only notice you get.
Heavy Bleedingheavybleedingdangerous
What it doesA deep tear emptying you at more than 0.225 L/min. Third rung of the external bleed chain.
What puts it on youA serious wound, or several lesser ones summing. Any limb that gets here has almost certainly also crossed the deep-wound line at 20 bleed units.
What clears itBandage it to staunch the blood, then stitch it closed - a bandage on a deep tear is temporary and it will reopen. A tourniquet buys you the limb's whole share at once.
NoteClotting scales with how bad the wound is, and at this rate it barely moves. Left alone a wound this size bleeds you out long before it seals itself.
Hemothoraxhemothoraxdangerous
What it doesFluid pooling in your chest, compressing the lungs. It subtracts 0.5 from your breathing per point and caps your oxygen saturation at 100 minus 0.3 per point, so a full chest suffocates you. The chip shows above 40.
What puts it on youInternal bleeding in the thorax feeds it as blood. Rot Lung feeds the same channel as infectious exudate, and inhaled fluid feeds it as aspirate.
What clears itA chest drain, applied to the thorax - four insertion assemblies per kit. Disinfect first, because filth can seed infection during drainage. It reabsorbs on its own at 2 points per minute, which is slow. Stopping the bleed with a procoagulant halts the growth. A rebreather cannot beat it - it floods oxygen in before the ceiling, not past it.
NoteThe provenance matters. If the fluid is pulmonary aspirate the drain is refused outright, because it is inside the lungs. If the burden is MIXED the chip reads "Thoracic Fluid" instead and a drain removes only half until WITNESS confirms the components. Draining inside a 60 second window after a Rot Lung consolidation pulls that section back out before it scars.
High Blood Pressurehypertensiondangerous
What it doesSystolic above 130. Past 145 it suppresses breathing point for point, and gives you head pain equal to half of however far your systolic sits above 120. Past 180 it rolls a stroke at 2% a second.
What puts it on youCold raises it directly and is the cause nobody guesses. Also a fast heart, thick blood, extra body weight, and fear or exhaustion narrowing the vessels.
What clears itA Sodium Nitroprusside Syringe is the vasodilator for it and drops pressure directly; a sedative does the same more gently. Warm up first if you are cold. Vasopressin does the opposite and makes it worse.
NoteFour stages at 130 / 145 / 162 / 180, the top one named Hypertensive Crisis. A headache on a head with full skin, full muscle, no bleed and no foreign body is this and nothing else - reading 162 means 21 head pain, every time. Drinking will not bring it down: being short of water DROPS pressure. The diastolic figure on the vitals strip is derived from the systolic (x0.66) and can never tell you anything new.
Hungryhungerdangerous
What it doesThe belly is empty and your body starts on its reserves. It caps your movement speed, drops your carry ceiling, suppresses immunity, drags on heart rate and mood, and at zero it wastes muscle on every limb.
What puts it on youA steady drain - hunger empties in roughly 55 minutes at default pace, scaled by metabolism, traits and the config multiplier. Deep cold burns an extra 0.035/s. Marrow worm steals food while it is established.
What clears itEat. The floor is -50, and anything at or below zero is active starvation that costs muscle continuously. A full stomach is not the same thing as adequate body weight - the metabolic weight burn runs at 2.5x while empty, and getting the weight back takes real food over real time.
NoteFour stages: Peckish, Hungry, Ravenous, Starving. The nastiest part is never stated in game: at mood -50 or lower, apathy hides the hunger chip entirely. You starve on exactly the same clock, you just stop being reminded. The body panel still reads true, and there is a client option (keepNeedsWhenApathetic) to keep the chips. Hunger under 40 also drops your carry ceiling by 1.5 and drags heart rate down.
Hypoventilationhypoventilationdangerous
What it doesRespiratory drive below 22.5 on a 0-25 scale, which is 90% of normal. You move less air, SpO2 falls, and once oxygen delivery drops under the critical line it starts eating brain health.
What puts it on youOpioids, systolic above 145, fibrillation, fluid in the chest, being cold, a stroke above 50, a wrecked or fractured chest, lost lung function, a projectile lodged in the neck, and systolic under 20 which zeroes it outright.
What clears itClear whatever is suppressing the breathing - naloxone for opioids, a chest drain for fluid, warmth for cold, extraction for a neck obstruction. A rebreather supplies air even when the lungs barely move.
NoteNo authored WITNESS page. Two stages only: Shallow Breathing at 22.5 and Hypoventilation at 12.5. The first fires at just 10% below normal so a mild chip here is common and not alarming; the half-normal stage is the one that matters. Lung function is a hard ceiling on drive rather than a subtraction, so no amount of effort, pain or adrenaline moves air through a lung you no longer have.
Infectioninfecteddangerous
What it doesA contaminated wound colonising the limb it is in. Staged on the worst limb: any trace is a Dirty Wound, over 40 Infection, over 60 worsening, over 80 a Rotting Wound. Past 75 it eats that limb's muscle, and past 90 it seeds a connected limb.
What puts it on youAn open wound plus contamination. Every 40 seconds an infected-limb roll runs against your immunity, your dirtiness past 30, the wound's own contamination record, and any embedded fragment still in the tract.
What clears itDisinfect the region - antiseptic, or the weaker bittermoss wash and herbal poultice - and control the original wound. Antibiotics strip infection off every infected limb at once while the course runs, and repeated courses can build resistance. A dismembered limb is excluded from the whole state machine.
NoteTotal infection across all limbs above 100 is what drives sepsis, not any single worst limb - four moderately infected limbs are more dangerous than one bad one. An uninfected limb's residual reading fades on its own at 0.5/s. Healing refuses to mend flesh above the rot threshold.
Internal Bleedinginternalbleeddangerous
What it doesBlood pooling inside you with no wound to wrap. It shows from 0.005 L/min and drains circulating volume exactly like an open wound, and it is what makes you vomit blood.
What puts it on youGunshots through the chest or abdomen, a projectile lodged in the neck, broken bones (much heavier in a vital or core region), a dead abdomen muscle, radiation, stimulants, and a chained non-opioid painkiller starting a stomach bleed.
What clears itHold still and it tamponades. Crouching is deliberate pressure and pays about 1.7 times; being downed on the floor counts, which is why dragging a downed friend somewhere quiet is worth doing. Walking, running or swinging stops it dead, and adrenaline holds it to 30 percent. Procoagulant works everywhere, Regenex is chest only, and a fragment still in the wound suspends it entirely.
NoteStillness clots at 0.0025 units per second - a 0.40 bleed is about 2.7 minutes of doing nothing, and far too slow to outrun an ongoing haemorrhage. Every direct write to a limb's internal bleed used to be reverted by the wound ledger, which is why procoagulant and Regenex genuinely did nothing for a long stretch; they route through the ledger now.
Irradiatedirradiateddangerous
What it doesAbsorbed radiation (radiationSickness, 0-100). It feeds nausea, drains your brain in proportion to the dose, and above 10 it bleeds blood volume and thirst continuously. Above 30 your skin and muscle start sloughing and every limb hurts.
What puts it on youStanding near a radioactive waste barrel or an irradiated crystal. The aura falls off with inverse-square distance and connected crystals pool into one field, so a lone shard is mild and a big formation is a hot zone.
What clears itLeave the source. It clears by itself at 0.033 per second with no item required. Antirad drinks 40 points off at the cost of 4 nausea. Nothing else removes it.
NoteAbove 30, once per real minute, it rolls separately for a fresh limb infection, thoracic internal bleeding, and rarely a catastrophic mutation that takes 5 brain, drops thorax muscle to 3.5, maxes shock and thickens the blood. Chip stages at 10/30/50/80 and goes critical above 50. The RadiationHandler class comment mentions a lethal gate above 60 in DeathHandler; no such gate exists in DeathHandler.
Low Blood Pressurehypotensiondangerous
What it doesSystolic below 110. Under 60 it caps consciousness at 18, or hard 0 once blood is below the knockout line. Under 20 it necroses every limb's muscle at 0.6 a second, and respiratory drive is forced to zero. Under 10 with consciousness under 5 it drains brain at 1.5 a second.
What puts it on youBlood loss above everything else. Dehydration lowers it too, as does anything that drops circulating volume.
What clears itGet volume back - Saline IV, or a Human Blood Bag transfusion. A Vasopressin Syringe raises pressure directly. Food and rest help the mild end.
NoteFour stages at 110 / 96 / 83 / 60, named Soft Pulse, Low Blood Pressure twice, then Circulatory Collapse. Saline raises volume without adding red cells: a saline-filled body can read a decent pressure and still be starving for oxygen. This is the middle link in almost every fatal chain here - blood loss lowers pressure, pressure caps consciousness, collapse drains the brain.
Low Oxygenoxygendangerous
What it doesYour saturation has fallen below 90 percent. Four stages: Breathless under 90, Low Oxygen under 75, Hypoxia under 60, Suffocating under 45. Sustained low oxygen delivery is what destroys your brain.
What puts it on youAnything that stops you moving air or caps what your blood can carry - suppressed breathing from opioids, a crushed thorax, fluid in the chest, thick blood, venom, drowning, and hard exertion.
What clears itRestore breathing. A rebreather supplies its own air and works even when the lungs barely move and underwater, so it rescues breathing-driven hypoxia. It cannot beat a hemothorax, thick blood or venom, because those are ceilings it floods in beneath.
NoteSaturation is not delivery. What eats your brain is saturation times red-cell mass times perfusion, so a full 100 percent reading on badly depleted blood still starves you - which is why saline never fixes it and why iron matters as much as volume. The chip reads the saturation number, so it can look fine while the delivery is not.
Marrow Fevermarrowfeverdangerous
What it doesA bacterial infection burning through your blood. It floors your sickness at severity x 60, drains mood, and pushes sepsis up 0.35/s at full load - sepsis is where it kills you.
What puts it on youFilth in an open wound going systemic: it needs dirtiness over 60 AND an open wound over 25 at the same time, plus immunity under the 120 break-even. It also passes person to person through shared air and touch.
What clears itAntibiotics. They drive the load down at 1.6/s. Immunity above 120 clears it slowly on its own; below that it climbs.
NoteIncubates for two minutes in complete silence - no chip, no hint. Surviving it after the load peaked above 25 immunises you permanently, and that immunity survives death. It is the only reward in the whole contagion system. Above 75 load it also starts eating brain.
Marrow Wormmarrowwormdangerous
What it doesAn intestinal parasite that takes your food before you do. It drains hunger at 0.22/s and pulls your weight down at full load, so you eat and still waste away, and your immunity sags while it feeds.
What puts it on youWhat you have been eating. It seeds off sustained nausea - sickness above 35 - and only when no other disease is already running, so it lands on bodies already being fed things they should not be. Raw or contaminated meat and bites also carry it.
What clears itAn antiparasitic. An improvised charcoal slurry is the field answer when no trader is in reach.
NoteOnly one chip stage, unlike the other diseases. Its virulence is 0.75, the lowest of the four, so it climbs slower - but above 75 load it starts eating brain like the rest of them, and the wasting stacks with the hunger drain.
Miserablemiserabledangerous
What it doesMood at or below -75, the bottom of the scale. Up to 90% of what you try is refused and you move at about a fifth of normal speed. Holding still triggers self-harm episodes that cut your own skin and muscle open.
What puts it on youThe derived mood sum bottomed out. Trauma is weighted heaviest, then low blood, hunger and thirst, pain, sickness, radiation and hearing loss, plus opiate withdrawal at 1.66x.
What clears itNothing lands quickly at this depth - anhedonia cuts the value of every lift to as little as 15% and slows the natural drift to a third. Clear the underlying terms, get company, use comfort items and Antidepressants, and accept it takes real time. The drift floor is never zero, so it is always escapable.
NoteThe self-harm ladder is graded by depth and none of it is announced: above -90 a standard skin episode (skin -35, muscle -13, pain +20 to 30, bleed +6 to 10); below -90 a severe one (skin -70, muscle -30, bleed +45 to 60); at -94 or lower a 50% roll takes an eye, if you still have one. A plushie in hand intercepts the episode entirely - the plushie is ruined, you take no harm, and you gain 5 mood. Each episode grants real mood relief afterward, deliberately more than the wound it just cost you. Below -75 your character also stops speaking. This chip is drawn specially as a deferred fire burst on the HUD.
Nauseoussickdangerous
What it doesNausea and food poisoning. It drags your mood, suppresses immunity, lowers your carry ceiling, speeds your energy burn, caps alertness at 150 minus its value, and makes you vomit. Four stages: Off-Colour above 10, Queasy above 30, Nauseous above 50, Violently Ill above 75.
What puts it on youOvereating past the 175 hunger ceiling (1.2 sickness per point of overflow), dirty water, spoiled or human flesh, eating while filthy, alcohol, NSAIDs, radiation, fumes, drug impurity and withdrawal, transfusion reactions, and seeing a corpse.
What clears itIt clears itself at 0.06 a second scaled by your metabolism, so mostly you wait. Activated charcoal cuts 60 off it instantly (an improvised charcoal slurry cuts 20 and may add 8 back). Vomiting sheds 8. Do not add food on top - overflow is what most of it is made of.
NoteAt 95 or above an untreated gut seeds a real infection in your abdomen. Above 35, with no other disease running, it can seed Marrow Worm - the parasite rides this exact channel, so sustained nausea is how you catch it. Above 55 you cannot sleep through it, which blocks the rest you need. Charcoal binds swallowed toxins only - never venom, radiation or injected drugs - and for the following minute your gut absorbs half as much food and oral medication.
Overheatinghotdangerous
What it doesYour core temperature has risen above 38 C. It caps your movement speed, burns through water faster, and past the top of the band it cooks the brain and bleeds off blood volume.
What puts it on youCore temp over 38 C, from a hot biome, exertion, or a fever: infection and sepsis raise the temperature your body regulates toward, by up to 3.5 C.
What clears itCool down - shade, a cooler, a Cold Pack, cold water. If infection is driving it, treat the infection; Nocifen lowers the fever setpoint by up to 2 C, which is what an antipyretic actually does. Cooling only buys time while the cause is still there.
NoteFour stages: Warm, Hot, Overheating, Heatstroke. The chip renames itself to Fever, High Fever and Critical Fever when infection or sepsis is contributing, and the panel line changes with it - same condition, different instruction. Above 41 C you lose 0.225 L of blood per minute; above 42 C the brain drains 0.5%/s. Heat also speeds thirst drain directly.
Overhydratedoverhydrateddangerous
What it doesYou drank far past full. It costs you 10% movement speed above 125, and above 175 your head pounds, the brain begins failing, and the heart can be seeded into fibrillation.
What puts it on youThirst above 100. Thirst runs well past full, so chugging refills onto an already-full stomach is what gets you there. Saline pushes it up too.
What clears itStop drinking. It passes on its own - the drain above 100 is taxed by the overdrink multiplier (2x, and 2.5x past 175), so it clears faster than normal thirst does.
NoteThree stages: Well-Watered, Overhydrated, Water Poisoning. Above 175 the brain drains 0.05/s and there is a 1.66%/s roll to latch forced fibrillation - that roll is a hard initiator, not a soft one. This is the same thirst value the Thirsty chip reads, taken off its upper end, so the two can never both be showing. The Well-Watered stage looks like a reward and is the first step of the same ladder.
Overweightoverweightdangerous
What it doesweightOffset above 15. Past an absolute offset of 40 it caps your movement force, down to 55 percent at the extreme, and the extra mass raises your blood pressure and heart rate.
What puts it on youEating past full. Hunger above 100 banks weight instead of burning it; the metabolism will not make you fat on its own.
What clears itEat less and keep moving. Hunger under 100 runs a deficit and burns it back off.
NoteFat is insulation, so a heavier body holds heat better in the cold and worse in the heat. Past an absolute offset of 60 you get the same fibrillation roll extreme thinness carries. Chip stages at 15/30/40/50 and the top band is named Pyro Obese.
Palpitationspalpitationsdangerous
What it doesNot a condition in its own right. It is the readout for fibrillation above 50 or a heart rate above 240, shown only while you are not already in cardiac arrest.
What puts it on youHeart rate is a target built from pain, spent stamina, adrenaline, body temperature and fibrillation itself. Fibrillation starts from oxygen delivery under 50, systolic collapse, a rate over 200, blood viscosity over 95, body temperature under 28, extreme body weight, or thirst over 175.
What clears itTreat what is driving the rate: pain, blood volume, oxygen, temperature. Fibrillation answers to a defibrillator. At fibrillation 100 the heart stops outright.
NoteDeliberately suppressed while inCardiacArrest is set, so it never sits beside the arrest chip. It shares a moodle tier with Fibrillation but is a separate icon reading a different threshold.
Renal Failurerenalfailuredangerous
What it doesYour kidneys can no longer clear your blood, so serum potassium climbs toward 8.5 mmol/L and destabilises the heart. The chip is staged on the K+ figure the vitals strip shows: 5.5 Kidney Strain, 6.0 Renal Failure, 6.5 Hyperkalaemia.
What puts it on youBoth kidneys are worn down by the same stressors at once - thirst under 25, radiation sickness, sepsis, and NSAID level. Renal capacity is the mean of the pair, so one kidney can carry you and losing the second cannot be compensated.
What clears itDrink, and remove whatever is doing the damage - the potassium eases back down as function returns. A worn dialysis rig scrubs potassium and toxaemia while it has charge, but repairs nothing and stops the moment the battery dies. Nothing you swallow lowers potassium directly.
NotePast 6.0 the heart starts seeding fibrillation, and the death gate reads K+ over 6.5 as a heart-stopped cause of death. Kidney damage is not an injury you can see - look at the toxin load, not the organ. Death hands you fresh organs and resets potassium to 4.0.
Rot Lungrotlungdangerous
What it doesA virus that floods your lungs with infectious fluid through the same thoracic-fluid channel a hemothorax uses, so your oxygen ceiling falls and you genuinely suffocate. Above 45 severity the cough also costs you real blood.
What puts it on youTwo routes. Breathing contaminated deep air - below Y 50, out of the sky, with a measurable respiratory risk of 0.10 or more - while your immunity is already low. And person to person, airborne, which is its strongest vector.
What clears itAn antiviral. Antibiotics do nothing to it at all. A chest drain pulls out the fluid and, inside a 60 second window, can pull back a fresh consolidation before it scars. A fitted respirator or rebreather cuts the environmental route and spends filter doing it; ventilation clears the air itself.
NoteAt the last stage the coughing STOPS - a lung consolidated solid cannot make the sound, so every signal you read says you are recovering. About a third of survivors keep shedding it silently for life, and a carrier's lungs carry a deeper scar (capped at 82 condition) which is the only way to tell them apart. Carriage does not survive death; the earned immunity would, but Rot Lung is not immunising.
Severe Painpaindangerous
What it doesAggregate pain across your body. It wrecks your aim, cuts the force your limbs can produce and the function of your hands, and past 75 it starts building pain-shock that will knock you out cold.
What puts it on youThe worst limb's pain plus transform pain. Wounds, fractures (an unsplinted break holds a real ache, and running on a broken leg piles on 12/s), burns, frostbite, retained arrow shafts, infection, active bleeding, and dehydration under 30 (a dull thorax ache).
What clears itPainkillers - Nocifen, or a Morphine or Fentanyl syringe. Treat the wound underneath: splint the fracture, pull the fragment, bandage the bleed. Adrenaline masks part of it during a fight but not all of it, and deep cold numbs it.
NoteFour stages: Sore, Pain, Severe Pain, Agony. Pain above 75 ramps pain-shock over 30 seconds; past 0.66 your consciousness is forced to zero regardless of everything else. Pain above 99 floors motor shock at 100. Nocifen is a blood thinner as a side effect, so medicating a bleed makes it bleed longer. Pain falls at 1/s but only rises at 0.6/s, and enough pain will end a nap early. There is no authored tablet page for pain.
Shockshockdangerous
What it doesBlood loss or overwhelming pain has thrown you into shock. It is the thing that turns a survivable injury into a cardiac event - both routes can seed an arrhythmia before anything else has failed.
What puts it on youThe chip fires when blood volume falls below 3.5 L or pain-shock passes 0.3. Motor shock is separately floored at 100 by pain above 99 and at 60 by stamina under 1, and is set directly by amputations, gibbed limbs, electrocution, explosions and spinal injury.
What clears itStop the bleeding, kill the pain, get fluids in. Controlling pain and closing the wound are heart treatments as much as wound treatments. Motor shock bleeds off at 10/s on its own, but only while you are conscious.
NoteTwo different values wear the same name. Pain-shock is a 0-1 meter that ramps over 30 seconds while pain is above 75 and forces consciousness to zero past 0.66; motor shock is a 0-100 value that feeds the fibrillation roll. The HUD chip combines low blood and pain-shock into one severity. Neither arrhythmia route is forced - both are chances that rise with severity.
Spinal Instabilitydislocatedspinedangerous
What it doesThe cervical or thoracic spine has been destabilised. Neck pain is floored at 90 and thorax pain at 85 for the rest of that life, and a bad thoracic spine caps your movement speed at 0.7.
What puts it on youA neck or thorax hit. AnatomyService.dislocate needs trauma of 12 (neck) or 16 (thorax) and then a 22% / 14% roll; AnatomyService.fracture on a neck writes it outright. Either way it sets shock to 80 and downs you on the spot. High trauma plus a 25% roll makes it CORD_COMPROMISED instead of UNSTABLE.
What clears itNothing. TreatmentService refuses it as an ordinary joint ("Spinal instability cannot be reduced as an ordinary joint"), no wrench, no splint, and no per-tick recovery exists. It lasts the life.
NoteThe neck and thorax feed this badge, not the ordinary Dislocation one - JointId.forRegion(NECK) is empty, so a generic chip telling you to force it back in would have been a lie. UNSTABLE now lets the shock decay so you can stand again on a back that hurts at 90; CORD_COMPROMISED keeps a permanent shock floor of 92 (neck) or 88 (thorax) and re-downs you every tick, which is a life sentence. That region also contributes zero movement force.
Thirstythirstdangerous
What it doesDehydration. It cuts your carry ceiling and immunity, damages the kidneys below 25, puts a dull ache in your chest below 30, and below zero the blood itself thickens toward clots.
What puts it on youA steady drain, faster when you are hot (the divisor shrinks with every degree above 37). Empties in roughly 43 minutes at default pace before heat is counted.
What clears itDrink clean water or a canteen. Untreated or contaminated water trades dehydration for infection and sickness. Saline adds thirst as well as volume.
NoteFour stages: Dry, Thirsty, Dehydrated, Parched. Same apathy trap as hunger - at mood -50 or lower the chip stops appearing while the drain carries on. Thirst below zero raises blood viscosity 0.25/s, which is what throws a pulmonary embolism. The value runs from -50 all the way to 250, so it is the same number that produces Overhydrated at the other end.
Unconsciousunconsciousdangerous
What it doesConsciousness has dropped to 20 or below. The screen goes dark and you can do nothing with the world: no placing, breaking, using, eating or attacking. You come round only when whatever pushed you under lets go.
What puts it on youConsciousness is a ceiling, not a pool - several systems each impose a maximum and the lowest wins: blood volume, systolic pressure, oxygen delivery, head muscle, energy, radiation, body temperature, pain-shock and sleep.
What clears itFind which cap is binding and raise that one. A body dropped by blood loss will not wake for food; one dropped by exhaustion will not wake for a transfusion. Below a critical systolic pressure the cap is zero outright and nothing else matters until the pressure comes up. Revivol clears a pain-shock blackout.
NoteConsciousness falls at 12/s but rises at only 3/s - you black out fast and come round slowly. An active last stand pins you awake below the band, and during its walk and crawl phases your hands work regardless. The mod tracks how long you have been under in real ticks, not sim ticks, to bound a self-treatment grace window: you used to be able to defibrillate yourself at zero consciousness. A concussed head shows the Concussion chip instead of this one.
Underweightunderweightdangerous
What it doesweightOffset below -15. Past -10 it drags tissue repair down toward 45 percent of normal and subtracts 0.4 immunity per point, so wounds close slower and infections take hold that otherwise would not.
What puts it on youRunning a hunger deficit burns weight off you every tick, and the burn accelerates the emptier you are. Illness burns it too.
What clears itEat, and keep eating. There is no item for it and it does not recover on its own.
NoteIt also cuts your carry ceiling by up to 6 kg against a base of 11, and less body fat means you shed heat faster. Past an absolute offset of 60, in either direction, the heart starts rolling to be seeded into forced fibrillation, near certain by about 110. Movement force is capped past an absolute offset of 40. Chip stages at -15/-30/-40/-50 and the mildest band is hidden from a SEVERED character.
Unhinged Jawdislocatedjawdangerous
What it doesOne or both jaw joints (TMJ) are out of their sockets. You cannot eat solid food at all, and drinks and soft food take 1.65x to 2.25x as long to get down.
What puts it on youA blow to the head routed through CombatRouter.dislocate / AnatomyService.dislocate, which targets the TMJ for the HEAD region. One side goes first; with trauma at or above 8, or on a 35% roll, both condyles pop.
What clears itA manual reduction only - the swat minigame reduces it by hand. A wrench is explicitly refused on a jaw. A reduction attempt succeeds on a base 52% roll, improved by sedation and by opioid/NSAID analgesia up to 92%. A seated jaw goes to REDUCED_UNSTABLE and needs 5 minutes (6000 ticks) before it is stable; a head or chin dressing halves that wait and cuts the re-dislocation chance while eating.
NoteWhile it is out, head pain is floored at 72 and you spit particles. A reduced-but-unstable jaw can slip again every time you EAT - 18% on solid food with no dressing, 5.5% with one. With both sides out, swallowing can go down the wrong way: 3.5% to 18% per swallow, costing 18 respiration, 7 SpO2 and 2 sickness. The chance climbs the less conscious and the more sedated you are.
Withdrawalwithdrawaldangerous
What it doesYour body screaming for a drug it has learned to need. Opioid withdrawal is negative reception, staged at -5 Craving, -15, -25, and -34 Dependency Failure; it costs mood, raises your heart rate, brings on nausea below -16, and jolts you awake so you cannot sleep through it. Below -34 it latches forced fibrillation.
What puts it on youOpioid tolerance outrunning your opioid level - it climbs while you are dosed and falls only while you are in withdrawal. The same icon also carries nicotine dependence, which runs in four stages of steepening mood penalty.
What clears itAnother dose stops the opioid withdrawal, or ride it out while tolerance decays. Nicotine dependence recovers only while you are awake, unsated and playing; stage IV takes several active days.
NoteThe forced fibrillation latched below -34 does not clear when the withdrawal lifts - it clears only at 0 or 100 percent fibrillation, or on a defib. Deep withdrawal commits your heart to a defibrillator or an arrest. The chip also shows a "Dependent" state when tolerance is over 30 and you are currently neutral, so a building dependency is visible before it turns into a crash. Nicotine dependence and cigarettes smoked deliberately survive death; opioid tolerance does not.
Badly restedbadsleepimpairing
What it doesSleep inertia. While it lasts your consciousness is hard-capped at 70 no matter how healthy everything else is, which slows you and keeps you fuzzy. Two readings on one identity: Groggy at 20 seconds or less remaining, Badly rested above that.
What puts it on youEnding a nap. A comfortable bed or wool nap leaves 20 seconds of it; a bare-floor nap leaves 90; a nightmare leaves 120 and caps your energy at 45 on top.
What clears itWait it out - it ticks down in real seconds. A completed full night in a bed clears it outright. Revivol zeroes it instantly.
NoteBrief grogginess after a good nap is normal and is not the same state as being genuinely badly rested, even though they share the icon and the archive identity. Where you lie down is the whole difference. Enough pain will also end a nap early wherever you are lying, which is a common way to end up with the long version.
Broken Bonebrokenboneimpairing
What it doesA fracture anywhere other than the head, neck or chest. The limb produces no force at all while broken - and none while splinted either - and its muscle health is capped at 50.
What puts it on youFalls that overload a segment (always a roll, never a lookup - the same fall can spare you), blasts, traps, bites, heavy blunt blows.
What clears itSplint it. Splinted it knits in about 75 seconds, unsplinted in about 30 minutes, and progress made under a brace survives that brace wearing out. A Bone Welding Tool mends it instantly but tears skin and muscle and draws blood.
NoteSplinting does not restore function - the limb stays useless either way, it just knits in minutes instead of most of an hour. Walking or sprinting on an unsplinted broken leg piles extra pain onto it, harder the faster you move. A splint seated too tight becomes a tourniquet in fact, inheriting the whole 9-minute ischemia clock with no warning at all. One chip covers every non-axial fracture at once, so it will not tell you which limb went.
Broken Neckbrokenneckimpairing
What it doesFires when the head bone, the neck bone, or both are fractured; the chip retitles itself Skull Fracture or Skull + Neck Fractures. A fractured skull caps movement speed at 0.7 and caps that region's muscle health at 50, which in turn caps consciousness at 80.
What puts it on youBlunt trauma to the head - falls, blasts, traps, bites, heavy blows.
What clears itSplint the region. Splinted it knits in about 75 seconds; unsplinted it takes about 30 minutes. A Bone Welding Tool mends it at once but tears 25 skin and 26 muscle, spikes pain and opens a fresh bleed.
NoteThe neck half of this chip is effectively unreachable in ordinary play. Every in-game route to a neck fracture goes through AnatomyService.fracture, which sends the neck to the cervical spine instead of setting a bone fracture - and that shows as the Spinal Instability chip, never this one. Only the /doom wound fracture neck command and legacy save migration can set a real neck bone fracture. In practice this chip means your skull. Note also that splinting IS allowed on the neck and chest; only joint reduction is refused there.
Broken Ribsbrokenribsimpairing
What it doesThe thorax bone is fractured. It subtracts a little from respiratory drive, caps chest muscle at 50, and the region contributes no force while broken or splinted.
What puts it on youBlunt trauma to the chest - falls, blasts, traps, bites, heavy blows.
What clears itSplint the chest. About 75 seconds splinted against about 30 minutes unsplinted. A Bone Welding Tool forces it whole at once at the usual cost in skin, muscle, pain and blood.
NoteNo authored WITNESS page. The direct breathing penalty is tiny - 0.6 off a 0-100 drive. The real cost is the muscle ceiling of 50 and the pain: an unsplinted fracture holds that region at 28 pain against 10 when splinted, so bracing it is worth doing for the pain alone even before the mend speed.
Concussionconcussionimpairing
What it doesHead muscle health below 14.4. Your consciousness ceiling is head muscle x 1.6, so a beaten head keeps you impaired long after the bleeding has stopped. It is not a separate timer.
What puts it on youBlows to the head - combat, falls, blasts, ragdoll impacts, traps, bites.
What clears itHeal the head as tissue. There is nothing to apply to the concussion itself. Head muscle regenerates at the normal limb rate and is exempt from the extra 0.25x penalty other limbs get below 10 muscle.
NoteThere is a floor of 20 on the head-trauma cap, so even a wrecked head leaves you downed rather than permanently blacked out - repeated head hits used to be able to lock a player out entirely and that was deliberately softened. While this chip is up it replaces both the Unconscious and Confused chips, so a concussed player never sees those even when they apply.
Confusedconfusedimpairing
What it doesConsciousness below 90. It scales your attack speed directly (consciousness x 0.01, floored at 0.05) and caps your movement speed through the strength curve.
What puts it on youConsciousness is a ceiling set by whichever cap is lowest: blood volume, head muscle, oxygen delivery, sedation, body temperature, energy, bad sleep, severe nausea, radiation, brain health, kuru, or sleep. High pain subtracts on top of all of it.
What clears itFind which cap is binding and raise that one. Raising the wrong one changes nothing at all - a body dropped by blood loss will not wake for food.
NoteNo authored WITNESS page of its own; the unconscious page carries the cap model. The chip is suppressed by the consciousness chain - a head with muscle under 14.4 shows Concussion instead, and consciousness at or below 20 shows Unconscious instead, so Confused only ever appears in the band between those. Four stages at 90 / 72 / 55 / 30, the bottom one named Incapacitated.
Dislocationdislocationimpairing
What it doesA limb joint has slipped its socket. That limb produces zero movement force - the same hard zero a broken limb gives - its muscle is capped at 50, and its pain is floored at 58.
What puts it on youBlunt trauma via CombatRouter.dislocate, a hard ragdoll landing via Ragdoll, or explosion force. Onset costs a pain spike of 40 to 80 and dumps 75 adrenaline.
What clears itPut it back. A wrench sets it in one motion with no minigame, no pain and no risk, and is not consumed. By hand (yourself only) it is the swat minigame: each impact costs pain and carries a 0.5% chance of cracking the bone instead. Setting someone ELSE's joint is wrench-only. A clean reduction lifts mood.
NoteWalking on a dislocated leg keeps adding pain every second, and a jump adds more on top. The bare-handed break is a real outcome: it fractures the limb, floors pain at 100, takes 33 skin health and opens the wound to its full bleed.
Encumberedencumberedimpairing
What it doesYou are carrying more than your body can. overEncumberance is clamp01(carried / max - 1). It divides your attack speed by (1 + over), multiplies your movement force by (1 - over squared), drains stamina faster and makes you land up to 35 percent harder.
What puts it on youThe summed authored mass of every inventory stack against a ceiling that starts at 11 kg and moves with Strength and Resilience, wasting, nausea, hunger and thirst.
What clears itDrop weight. Or raise the ceiling: eat, drink, put weight back on, level Strength and Resilience.
NoteThe ceiling is not fixed, which is why the same pack encumbers a starving body and not a fed one. A floating weapon presented in a hand supports its own mass and is exempt; a second one stowed in the pack is not. Unregistered vanilla and modded items weigh nothing unless the inventory-weight config is switched on.
Exertionexertionimpairing
What it doesYour stamina is low, and low stamina caps your movement speed and drags every limb's usable force. Four stages: Tiring under 70, Winded under 50, Exhausted under 35, Spent at 15 or below.
What puts it on youMoving. A sprint burns 1.2 stamina a second, a walk 0.1, and armour raises the movement cost. Holding pressure on a wound charges the sprint rate. Encumbrance multiplies the drain.
What clears itStand still. Stamina only recovers while you are STILL - walking is a slow drain, not a pause. Recovery is scaled by energy, throttled by encumbrance, lifted by Resilience and by caffeine (1.5x), and gated on actually breathing, so you cannot catch your breath underwater without air.
NoteYour ceiling is not 100: recovery stops at max(70, blood oxygen), and lung tar subtracts 0.3 max stamina per point, so a heavy smoker can never reach full. Bottoming out below 1 slams motor shock to 60 and drops you. The whole system is config-gated - with stamina disabled the chip never appears and Quiesce pins stamina full.
Filthydirtyimpairing
What it doesAccumulated grime, 0-100. Past 50 it subtracts from your immunity point for point, and past 25 it raises the recurring infection roll on any open wound. The chip appears above 50.
What puts it on youA glacial passive accrual, plus extra in enclosed or underground air with no Ventilation unit nearby, sweating while moving with a fever, and breaking soil, sand, gravel, clay or mud barehanded. Combat and hard impacts add to it too.
What clears itStanding in water rinses 30 per second down to a floor of 10. A wash station or soap used in water zeroes it. A rag takes 24 per use. A Lifepod console scrubs with no floor.
NoteMarrow Fever specifically needs grime above 60 AND an open wound above 25 at the same time; either alone is survivable. Above 75, eating has a 10 percent chance of adding 8 nausea. Grime also penalises organ harvesting and field procedures. Chip stages at 50 and 80 and the description carries the live percentage.
Gloomygloomyimpairing
What it doesMood between -30 and -50. Refusal climbs from 15% to about 36%, and your movement speed falls to around 70%.
What puts it on youThe same derived mood sum, deeper. Sustained pain above 50, hunger or thirst under about 40, low blood, trauma and wetness are the usual weights.
What clears itFind something to lift your spirits, and clear the underlying terms. Comfort, company, food and drink, and treating pain all pull it back.
NoteAt -40 a nap can turn into a nightmare, and at -45 lapses and the headpat comfort hook become available. Chasing the chip instead of the causes is the usual mistake, because trauma clearing does not mean mood returns - the other terms were there before and are still there. No authored tablet page.
Horrifiedhorrifiedimpairing
What it doesThe Maw has recognised you and can see you. The level latches at 100 and multiplies your entire mood by (1 - level x 0.005), which halves it at full.
What puts it on youThe Maw targeting you while recognising, hunting, grabbing, feeding or recovering, or searching with suspicion at 0.65 or above, AND a real server-clipped line of sight. Camera facing is not trusted.
What clears itBreak exposure and get distance. Leaving the territory clears it and the level decays at 1 per tick. Damaging that same Maw past a tenth of its maximum health replaces it with Focused.
NoteRecognition latches to that exact entity for the encounter, so ducking behind stone does not undo it while you are still inside the territory; a later meeting does start at Impending Doom again. It floors adrenaline at 85. Halved mood also drags your movement force down through the mood factor. Tier 3 critical, and hidden while asleep.
Light Bleedingsmallbleedingimpairing
What it doesA capillary-level tear, anything above 0.005 L/min and under 0.09. The lowest rung of the external bleed chain.
What puts it on youAny minor wound. It is the same total-bleed-rate reading as the heavier chips, just at its bottom end.
What clears itA bandage sees to it. Small bleeds also clot on their own at 0.050 units per second, roughly three times the rate a serious wound manages, so this one genuinely does settle if you leave it.
NoteIt still self-clots at full speed only if nothing is suspending clotting - a fragment in the wound holds even a graze open until it is pulled.
Sadsadimpairing
What it doesMood between -10 and -30. The mildest negative band: up to a 15% chance an action is simply refused, and up to 10% off your movement speed.
What puts it on youAny combination of the mood terms adding to a small negative total - a little pain, a little hunger, being wet, being alone outdoors at night.
What clears itSmall comforts and rest lift it. Food, drink, company within 14 blocks (another player, a villager, a tamed pet), a comfort block nearby, a mended bone.
NoteThe four negative mood chips are one value at four depths, not four conditions. Mood drifts back toward neutral on its own at 0.01/s, nearly twice as fast with company, so this band usually closes by itself. There is no authored tablet page.
Tiredtiredimpairing
What it doesEnergy is running out, and energy sets a ceiling on how alert you can be - your consciousness is capped at energy x 4.2, with a floor of 31. Four stages: Sleepy under 35, Tired under 25, Drained under 15, Exhausted at 7 or below.
What puts it on youBeing awake. The base burn is 0.049 a second, multiplied by low stamina and by misery (capped together at 2.5x) and by sickness. A sepsis rigor burns it faster.
What clears itSleep. A full night in a bed wakes you at energy 100 and clears grogginess. A comfortable nap on a bed or wool recovers about 10x faster than a rough one and rests you to 90; a nap on the bare floor recovers slowly and gives up at 75.
NoteLow energy is not just drowsiness - it throttles stamina recovery, cuts tissue, stump and bone repair, and suppresses immunity by 0.45 per point below 60. Being genuinely happy shaves up to 20% off the burn; caffeine cuts it to 0.7x.
Traumatraumaimpairing
What it doesA standing psychological weight. It is not an injury, it sits in no limb, and no dressing touches it - it subtracts from your mood at a weight of 0.525, which is what feeds the despair layer. Three stages: Shaken above 25, Traumatised above 45, Shattered above 80.
What puts it on youSustained agony while conscious accrues it every tick. Discrete events add it directly: amputation adds 30 (10 net if you did it yourself with the minigame), eating human flesh adds 8 to 24 and climbs each time, dying adds a chunk, and a Deep Maw encounter adds more.
What clears itTime. It decays at roughly one point every fifteen seconds of play whenever you are not in enough pain to be accruing it, and nothing speeds that up. Mindwipe zeroes it outright, but only on a mind that is already breaking, and it wipes strokes, mood and learned skills with it.
NoteAbove 80 your character stops speaking entirely - the silence is the system working, not a bug. Mood is a sum, so the chip clearing does not mean your mood returns; the other terms were always there.
Weak Immunitylowimmunityimpairing
What it doesYour immune score has dropped below 55 out of 200. Every ambient disease rolls against frailty, and frailty is just this number, so a low reading is what lets infection start and what lets it keep climbing once it has.
What puts it on youHunger and thirst deficits, cold, lost blood volume, filth above 50, sickness, radiation, energy depletion and sustained wasting all subtract from a base of 100. Immunosuppressants subtract a large fixed penalty on purpose - keeping a transplanted organ means being defenceless.
What clears itBe fed, watered, warm, clean and rested. That is the actual mechanic, not flavour advice. An antibiotic course props the number up while it runs.
NoteThe chip appears under 55, but the number that matters mechanically is 120: at or above that, the environmental infection check exits before it even rolls and active diseases start clearing naturally. Between 55 and 120 you have no chip and are still catching things.
Worn Clawsclawdamageimpairing
What it doesClaw health below 60. Condition scales from nothing at 15 up to full at 100, and it drives both your barehanded damage floor and your claw mining speed.
What puts it on youMining barehanded with the Claws trait costs 1.4 per stone block and 0.5 per wood. Punching barehanded costs 0.35 plus up to 0.65 more against armour. Picking a lock barehanded without a kit costs 15 and puts 20 pain in that hand.
What clears itLeave them alone. They regrow at 0.25 per second scaled by how fed you are, times 1.4 asleep and times 3 during a keratin booster window. No item repairs them directly.
NoteBelow 15 the barehanded damage floor falls back to vanilla's 1 and the mining bonus (up to 2.2x) is gone entirely. The lockpick cost does not check for the Claws trait, so a body with no claws can still show this chip. Claws are a whole-body stat and are never amputated. Chip stages at 60 and 25.
Asleepasleepcosmetic
What it doesYou are resting - either lying in a vanilla bed or lying down with the nap button. Energy climbs while it lasts, fastest in a bed, next fastest on a bed or wool, slowest on bare ground.
What puts it on youSleeping in a bed at any time of day (Doomed players are always allowed to lie down), using the nap-anywhere lie-down, sleeping pills, or Mindwipe knocking you out.
What clears itIt ends by itself. A nap ends when you are rested enough (90 on something soft, 75 on the floor) or when you are jolted awake - pain above 40, blood under 2 L, sickness above 55, cardiac arrest, taking a hit, or sprinting. Revivol snaps you out of it.
NoteA nap taken at mood -40 or below can turn into a nightmare instead: rolled once per lie-down, up to a 45% chance at rock bottom, which caps your energy at 45, costs mood and leaves 120 seconds of grogginess. That roll is gated behind the despair config, so a server with self-harm off gets no night terrors either.
Cannibalhollowcosmetic
What it doesA permanent record that this character has eaten human flesh, held in the WITNESS archive rather than on the body. The badge itself does nothing to you; the cost is charged at the moment of eating.
What puts it on youEating raw or cooked human flesh. Each portion costs mood (22 rising to a cap of 52) and trauma (8 rising to a cap of 24), plus sickness and sepsis scaled by how cooked and how fresh the meat was, and a kuru risk that follows the donor and the tissue.
What clears itNothing clears the record - the count survives relogs and death. The acute disgust, nausea and trauma clear through the ordinary mood, sickness and trauma systems and through not doing it again.
NoteThis is the one key in this set that never appears in the live moodle stack - the icon and its text exist, but the HUD never adds it. It is unlocked into the WITNESS archive on your first portion and only ever read there. Cooking cuts sickness and sepsis; it does not touch the psychological cost and it does not neutralise prions.
Contenthappycosmetic
What it doesA positive mood chip, lit whenever total mood is above +10. It slows energy drain (down to x0.8 at mood 100), stretches how long positive effects last (up to x1.35), and gives up to a 35% chance of a runner's high.
What puts it on youMood above +10. Food and drink you like, comfort, a companion nearby, a safe night's sleep, a joint reduced, a bone finally knitting.
What clears itNothing to fix - it is a buff, not an affliction. It fades on its own: mood always drifts back toward neutral, and positive mood drifts at 0.75x the normal rate.
NoteThe benefit is a ramp, not a switch: zero at +10, full only at mood 100, so a chip that has just lit is worth almost nothing. Mood also drags movement speed when negative but never speeds you up when positive. The HUD and the sim call the same MoodBonus functions, so what the chip promises is exactly what the body applies. No authored WITNESS page.
Energizedenergizedcosmetic
What it doesYou are caffeinated. Energy burns at 0.7x, stamina recovers 1.5x faster and drains at 0.45x while it holds. It is a timer measured in seconds and it ticks down in real time.
What puts it on youCoffee, soda, an energy drink and other caffeinated liquids, stimulants, and completing a full night's bed rest (which grants 180 seconds of it on waking).
What clears itNothing to fix - it expires on its own.
NoteThis is a buff, not an affliction. Its numbers were deliberately softened from the source values (2.0 regen and 0.25 drain) because caffeine stacked three strong bonuses at once and made itself mandatory. It can show alongside Tired - being wired does not mean being rested.
Focusedfocusedcosmetic
What it doesA buff, not an affliction. You have dealt more than a tenth of that Maw's maximum health. It replaces Horrified outright, so the halved-mood penalty goes with it, and it floors your adrenaline at 90.
What puts it on youYour own accepted post-mitigation damage on that exact entity, stored on the Maw and keyed by your player UUID.
What clears itNothing to clear. It decays at 1 per tick once the encounter ends.
NoteDamage credit is per player and per entity, so two people fighting the same Maw advance independently and it cannot be earned by hitting an unrelated mob or inherited from someone else's fight. It sits in the moodle tier reserved for buffs, below every threat chip, and is hidden while asleep.
Impending Doomimpendingdoomcosmetic
What it doesA Deep Maw has you inside its territory. The level runs from 2 at the outer boundary to 50 just short of recognition, on a squared closeness curve.
What puts it on youProximity alone. It needs no line of sight and reaches you through solid stone, so it is a warning you get before the animal knows you are there.
What clears itDistance. Leaving the territory clears it, and a lost source is rechecked within four ticks.
NoteIt is not purely a readout: it floors your adrenaline between 30 and 68 with the level, which raises heart rate and breathing. It also drives a coarse territory cue to the client and it is hidden while you are asleep. It gives way to Horrified the moment the Maw recognises you and has a real server-side sightline. Chip stages at 15/30/42 and goes critical at 42.
Jaundiced / Liver Failure / Hepatic Failurejaundicecosmetic
What it doesBilirubin. Your skin and the whites of your eyes go yellow, visibly, to you and to anyone looking at you. It does nothing to you by itself - it is the readout for a liver that is going.
What puts it on youLoss of liver function, from toxic load, sepsis or radiation. The value eases toward (1 minus liver function) times 100 rather than switching on, so a deepening yellow means the organ is still losing ground.
What clears itTreat the liver. Nothing applied to the skin will touch the colour.
NoteCosmetic describes the jaundice value itself, not what it means. The same failing liver drives toxaemia, which caps consciousness and drains the brain - that is the part that kills you. The chip reads Jaundiced, then Liver Failure, then Hepatic Failure, and a SEVERED character cannot see the mildest band at all.
Keratin Boostkeratinboostercosmetic
What it doesA drug window during which your claws and nails regrow three times as fast. It does nothing else - it touches no other stat, and while it is up nothing about you is worse.
What puts it on youInjecting Keratin Booster - the syringe, or the fluid delivered by any other route. Each millilitre that actually reaches you buys 28 seconds of the window (a full 100ml syringe is 2800 seconds), scaled by the dose's purity.
What clears itNothing to clear and nothing to treat. The timer burns down in real time and the chip goes away by itself; death resets it to zero. Topping up early is wasted - dose while more than 3600 seconds are already banked and the new dose is cut to a tenth.
NoteIt only matters if your claws are actually damaged, and claws only wear down if you have the CLAWS trait - mining bare-handed costs 1.4 per rock and 0.5 per wood, a punch costs 0.35 plus up to 0.65 more against armour. Without that trait claw health sits at 100, regrowth never runs, and the chip is up doing nothing. The WITNESS page for it says the boost thickens your skin as armour, and the syringe tooltip says it hardens your nails; neither of those exists in the code, which only multiplies the regrowth rate.
Strong Immunityhighimmunitycosmetic
What it doesA readout, not an affliction: your immunity is above 150 of a possible 200 and your body is shrugging off infection. Nothing is being done to you.
What puts it on youThe same contributors as Weak Immunity, running in your favour - fed, hydrated, warm, full of blood, clean and rested, with an antibiotic course adding on top.
NoteOne of only five chips in the beneficial tier. It has no authored WITNESS Wiki page, unlike its opposite. The useful line is 120, not 150 - environmental disease stops rolling at 120, so the chip does not appear until well after you are already safe from it.

Not indexed

  • pulmonaryembolism
  • wet
IDX-02

Item Index

What each item does when you use it, and where it comes from. An item with no obtain path recorded is an item you cannot currently get.

Acetylating Reagentreagent_acetyl
What it doesThe reagent that acetylates. It turns morphine into heroin (the dirty, easy route) and modifies cephalosporin into ceftriaxone.
Where it comes fromCrafted at a crafting table from one Acid Reagent plus one Solvent, using the chemical_grade_shapeless type so the output keeps the lowest grade of its inputs.
In useConsumed as a machine input in the syntheses that need it.
NoteNo process anywhere outputs it, so the crafting recipe is the only source. Like the other reagents it has no ItemInfo trade value, so traders neither stock nor buy it.
Acid Reagentreagent_acid
What it doesA generic acid used across purification and synthesis.
Where it comes fromTwo Evaporator routes. Mineral: 300 mB of acid liquor for 2 (1,000 FE, 200 ticks, fume and corrosive). Bio: 300 mB of vinegar for 1 (900 FE, 220 ticks, fume).
In useConsumed by the Recrystallizer to turn crude morphine into morphine base and raw opium into naloxone intermediate crude, by the Kiln with a Base Reagent for fentanyl intermediate crude, and by the crafting recipe for Acetylating Reagent.
NoteNo ItemInfo value, so no trader route in or out.
Activated Charcoalactivatedcharcoal
What it doesAn oral adsorbent. Drinking it drops sickness by 60 (nausea and food poisoning) and immediately binds half the opioid you swallowed, then keeps binding oral opioid at 1.5 per second for 60 seconds.
Where it comes fromFilter Press wash of Unwashed Activated Carbon, 2 per batch. Also rolls from medical crates, sealed pods and drop capsules, and the Experiment trader stocks it.
In useOne right-click spends one. For the 60 second window your gut absorbs at half rate, which blunts food and the next oral painkiller.
NoteIt only touches what you SWALLOWED. Injected opioid is naloxone's job, and venom and radiation are untouched.
Adhesive Bandageadhesivebandage
What it doesThe weakest dressing there is. At a full wrap it gives skin +3, multiplies the limb's bleed by 0.9, and takes 5 off the pain. No disinfect.
Where it comes fromShapeless craft: 1 paper + 1 string. Common in medical crates and sealed pods, 2 at a time.
In useOpen the body panel and drag it onto the limb to run the bandage minigame. Its 24 condition points are the wrapping it is good for.
NoteBetter than nothing and not much more. It leaves a visible wrap on the treated body.
Alginate Dressingalginate
What it doesThe best wrap in the game. Full wrap gives skin +100, bleed multiplied by 0.09, pain -80, and a 60 second disinfect window.
Where it comes fromShapeless craft: 4 dried kelp + 1 item from the disinfectant tag (antiseptic, iodine, bittermoss wash or antiseptic mush). Also medical crate and sealed pod loot.
In usePanel drag onto the limb, bandage minigame. 56 condition points of wrapping.
NoteCoastal day-two work rather than free: the kelp needs drying and the disinfectant is a real spend.
Aloe Gelaloe_gel
What it doesA cool gel for a limb. Burn -25, pain multiplied by 0.75, skin +10. Comfort, not a cure.
Where it comes fromShapeless craft: 1 cactus + 1 bowl, yields 2.
In usePanel drag onto a limb; one gel per use. It refuses if the limb has no burn, no pain and full skin.
NoteNo barter value is registered for it, so no trader stocks it. Burn gel is strictly stronger on the burn itself and also lays down a disinfect window.
Amiodarone Syringeamiodarone_syringe
What it doesAnti-arrhythmic. Chemical cardioversion: fibrillation drops 0.6 per mL pushed, and it costs 0.1 muscle health per mL in the thorax, abdomen and neck.
Where it comes fromMedical crate and sealed pod loot; the Experiment trader sells it. The raw fluid also turns up in advanced cave salvage containers, 50-100 mB at 12-40% purity.
In useA sealed 100 mL syringe. Panel drag onto a limb and run the plunger minigame; a partial push leaves the rest in the barrel. It cannot be refilled.
NoteThere is no synthesis recipe for amiodarone anywhere in the chemistry line. The sealed syringe and the found fluid are the whole supply.
Analgesic Gauzeanalgesicgauze
What it doesA numbing wrap. Full wrap gives skin +20, bleed multiplied by 0.375, pain -300 on the limb, and a systemic opioid kick of 28.
Where it comes fromMedical crates, sealed pods and drop capsules. There is no recipe for it.
In usePanel drag onto the limb, bandage minigame. 48 condition points.
NoteThe opioid it delivers is real systemic opioid, so it counts toward tolerance, overdose and withdrawal like any injected dose.
Animal Fatanimal_fat
What it doesButchery material. A plain item with no effect of its own.
Where it comes fromKill a cow, pig, sheep, goat, rabbit, chicken or hoglin with the Foraging Knife in your main hand. 2 from a cow or hoglin, 1 from anything else, with a 35% chance of one extra.
In useSmelted (160 ticks, 0.1 XP) into Rendered Fat.
NoteShips with no tooltip and no barter value. The kill must be by your own hand with the knife actually held - a knife in the bag does nothing.
Antibiotic Cultureantibiotic_culture
What it doesA cultured mould broth. Feedstock for the antibiotic line, not something you take.
Where it comes fromShapeless craft: rotten flesh + brown mushroom + sugar.
In useCrafted into Antibiotics (culture + sugar + paper) or Antiviral (2 cultures + glow berries + paper), or fermented in the machine line toward ceftriaxone.
NoteThe tooltip's Reactor shortcut with solvent is the clean, higher-yield route; the pill craft is the rough field one.
Antibioticsantibiotics
What it doesA 10 minute course. It raises immunity while active and actively drives infection down about 7 per minute on every infected limb.
Where it comes fromShapeless craft: antibiotic culture + sugar + paper. Also crate, pod and drop capsule loot, and the Experiment sells it.
In useOne right-click, one pill. Each course adds 22 antibiotic resistance; at resistance 40 the drug works at half strength, at 80 a third. Resistance only decays while you are off it, at 0.04 per second, so a full clear is roughly 40 minutes of abstinence.
NoteNothing here touches a virus, a parasite or a prion. Source control - antiseptic on the wound itself - is unaffected by resistance, so it becomes the reliable answer once you have burned your courses.
Antidepressantsantidepressant
What it doesLoads a 20 point mood depot that does nothing at all for about 12 in-game minutes, then lifts slowly and stops the hole deepening while you do the real work.
Where it comes fromMedical crates and sealed pods. There is no recipe.
In useOne right-click per dose. Re-dosing reloads the depot and raises tolerance.
NoteThis was deliberately changed from a flat instant +20: swallowing five pills at the bottom of the pit used to make the despair ladder optional. Chain-eating them now stops working.
Antiparasiticantiparasitic
What it doesA 10 minute course that clears Marrow Worm, the gut parasite that eats your food before you do.
Where it comes fromShapeless craft: fermented spider eye + sugar + paper. The Experiment trader sells it.
In useOne right-click. Taking the wrong course wastes it entirely.
NoteCheapest of the three narrow courses, because a gut parasite is the least immediately lethal disease - it just starves you.
Antiradantirad
What it doesDrink it to cut radiation sickness by 40. It adds 4 sickness on the way down.
Where it comes fromMedical crates, sealed pods and drop capsules. There is no recipe.
In useOne right-click per dose.
NoteActivated charcoal does nothing for radiation - this is the only answer to it.
Antisepticantiseptic
What it doesThe base disinfectant. A panel DISINFECT on a limb opens a 10 minute window and takes 55 off the wound's contamination and 18 off its infection.
Where it comes fromShapeless craft, two ways: honey bottle + glass bottle, or fermented spider eye + glass bottle. Also crate, pod and drop capsule loot, and the Experiment sells it.
In useOpen the body panel and run DISINFECT on the limb. The game always spends plain antiseptic FIRST, before iodine, bittermoss wash or antiseptic mush, so the good stuff is not silently eaten.
NoteAn open disinfect window cuts invasive-procedure infection risk to a tenth, which is why the tooltip says to use it before invasive care. The disinfectant tag holds antiseptic, iodine, bittermoss wash and antiseptic mush, and datapacks can extend it.
Antiseptic Mushantisepticmush
What it doesA disinfecting paste. Opens a 5 minute disinfect window on the limb and 4 minutes on the limb above it, and adds 10 pain. It stings going on.
Where it comes fromShapeless craft: honey bottle + white wool, yields 2. Also crate, pod and drop capsule loot, and Rooted Cadaver blocks in the cyst biome drop it.
In usePanel drag onto a limb; one per use.
NoteThe only disinfectant that reaches the limb above. Iodine gives 8 minutes on one limb with a milder sting and no splash.
Antiserum Syringeantiserum_syringe
What it doesBroad anti-sepsis. Per mL pushed: sepsis -0.2, blood volume +0.004 L, 120 more ticks of antibiotic-grade immunity, plus a disinfect window on the limb you injected.
Where it comes fromMedical crate and sealed pod loot; the Experiment trader sells it. The fluid alone is an advanced cave salvage find, 50-150 mB at 12-38% purity.
In useA sealed 100 mL syringe. Panel drag onto a limb, plunger minigame. It cannot be refilled.
NoteNo synthesis recipe exists for antiserum. A full 100 mL push is 20 sepsis and 0.4 L of blood.
Antivenom Syringeantivenom_syringe
What it doesNeutralises venom in your system: 0.8 off both the current and the total venom load per mL pushed.
Where it comes fromMedical crate, sealed pod and drop capsule loot; the Experiment trader sells it. The fluid is a clinical cave salvage find, 100-300 mB at 18-55% purity.
In useA sealed 100 mL syringe. Panel drag onto a limb, plunger minigame. No refill.
NoteNo synthesis recipe. Activated charcoal is useless against snakebite venom - this is what venom answers to.
Antiviralantiviral
What it doesA 10 minute course, and the only thing that clears Rot Lung.
Where it comes fromShapeless craft: 2 antibiotic culture + glow berries + paper. Deliberately dearer than the antibiotic pill. The Experiment trader sells it.
In useOne right-click. The wrong course is wasted entirely.
NoteAntibiotics do literally nothing to a virus - that is the lesson the disease is built to teach. Nothing in the mod treats a prion, so kuru answers to nothing at all.
Automatic Defibrillatoraed
What it doesRuns the analyse-then-shock cycle on a stopped heart. A completed cycle converts the rhythm with certainty, unlike the manual defibrillator's roll.
Where it comes fromRare pull (weight 1) from medical crates and sealed pods. The Experiment trader sells it. Barter value 30.
In useDrag onto the thorax in the body panel. Each analyse-and-shock cycle spends 34 of its 100 point battery. The battery is a Forge Energy store, so it recharges in a battery station or any modpack charger.
NoteIt refuses to shock a normal rhythm and tells you so. Works in co-op: the healer's AED, the patient's heart. It used to be a permanently bricked item once drained, before the energy capability was added.
Bandagebandage
What it doesThe baseline wrap. Full wrap gives skin +30 and multiplies the limb's bleed by 0.1. No pain relief and no disinfect.
Where it comes fromShapeless craft: 2 of paper or leather (mixed is fine) + 1 bittermoss pulp. Crate, pod and drop capsule loot, and Rooted Cadaver blocks drop it heavily.
In usePanel drag onto the limb, bandage minigame. 64 condition points, the largest pool of any dressing.
NoteThe bittermoss pulp is deliberate: paper off infinite sugarcane made bandages free. Glowcap clumps grind to the same pulp, so a cave-dweller has a renewable bandage path without a trader.
Base Reagentreagent_base
What it doesSlaked lime, the alkali reagent. It is what frees morphine from opium in the acid-base extraction.
Where it comes fromSlaking Vat: quicklime plus 500 mB of water for 2 (800 FE, 120 ticks). Or the Evaporator reclaims one from 500 mB of waste filtrate, which is how spent press waste comes back around.
In useConsumed by the Slaking Vat to turn opium solution into morphine slurry, by the Reactor for morphine, by the Kiln with an Acid Reagent for fentanyl intermediate crude, and by the Kiln with charcoal to make unwashed activated carbon.
NoteNo ItemInfo value, so no trader route in or out.
Biochem Disinfectant Syringebiochem_syringe
What it doesA whole-body harsh disinfectant. Per mL, on every limb still attached: a disinfect window, infection -0.2, muscle -0.1, pain +0.4. Plus 1 sickness per mL to you.
Where it comes fromUncommon medical crate and sealed pod pull (weight 2); the Experiment trader sells it. The fluid is a common cave salvage find, 250-750 mB at 15-45% purity.
In useA sealed 100 mL syringe. Panel drag onto a limb, plunger minigame. No refill.
NoteA full push is 100 sickness and +40 pain on every single limb. It scours infection everywhere at once, which no topical can do, and that is what you are paying for.
Bittermoss Clumpbittermoss_clump
What it doesDark springy moss with antiseptic tannins. Both the raw herb and the thing you plant.
Where it comes fromBreak a wild Bittermoss bush at full growth - 2 with a Foraging Knife, 1 without. Wild bittermoss scatters on cold surface ground (biome temperature under 0.3). A farmed crop always returns 1, plus 1-2 more when mature, fortune-boosted.
In useGrind it in a placed Pestle and Mortar for Bittermoss Pulp, or plant it as a crop.
NoteIt only grows under cover in sustained cold, and a powered Cooler will hold that band for you. Breaking the crop at any age returns your clump, so planting it in the wrong climate never costs you the seed.
Bittermoss Pulpbittermoss_pulp
What it doesGround bittermoss, the forageable antiseptic base. It does nothing on its own.
Where it comes fromPestle and Mortar grind minigame on a Bittermoss Clump - or on a Glowcap Clump, which grinds to the same pulp.
In useIngredient in Bandage, Bittermoss Wash, Herbal Tonic, Nocifen and the Procoagulant Syringe.
NoteShips with no tooltip, so nothing in game tells you what it is for. It is the tie between the herbalism layer and the disinfectant economy.
Bittermoss Washbittermoss_wash
What it doesThe early antiseptic. As a dressing, a full wrap gives skin +5, bleed multiplied by 0.85, pain -5 and a 90 second disinfect window. It also counts as a disinfectant, so it can wash an infected limb with no open wound.
Where it comes fromShapeless craft: 2 bittermoss pulp + 1 water bottle.
In usePanel drag for the bandage minigame (20 condition), or spent whole by a panel DISINFECT.
NoteIts 90 seconds is far short of real antiseptic's 10 minutes, and its skin and bleed control are close to nothing. When both are in your bag the game spends plain antiseptic first, so this survives for the wash.
Blood Bagblood_bag
What it does0.75 L of whole blood of UNKNOWN donor type. Transfusing it is a gamble: an incompatible ABO or Rh type banks a hemolysis debt larger than the volume you just delivered, so a wrong bag is a net blood LOSS.
Where it comes fromMedical crates, sealed pods and drop capsules. There is no recipe.
In usePanel drag onto a limb and run the syringe minigame. A partial push delivers that fraction and spoils the rest, and it tells you so. The bag comes back as a contaminated Empty Blood Bag.
NoteThe type is rolled and permanently labelled the first time it is used. It ages on a 12 hour shelf clock: a powered freezer slows that to a tenth, a chilled icebox to a fifth, ordinary storage not at all, and nothing stops it. Expired blood will not transfuse. A transformed body rejects human blood even when the letters on the label are right.
Bone Sawsaw
What it doesDrag it onto an arm or leg to open the amputation minigame and take the limb off. It is also what you right-click a cadaver torso with to harvest an organ while it is still fresh.
Where it comes fromShaped craft: 3 iron ingots and 2 sticks. Also a rare weight-1 durable-tool pull from locked crates and sealed pods, and general traders at value 18.
In useA reusable tool with no durability. It is never consumed.
NoteThe saw is the RIGHT tool, and that matters mechanically: an axe amputation costs nearly twice the blood, does far more damage above the cut, and leaves the wound contaminated instead of clean. A stump left by a saw also bleeds, unlike one left by rot or a tourniquet.
Bone Welding Toolboneweldingtool
What it doesBrute-force bone repair. Drag it onto a FRACTURED limb and the bone is whole at once - at the cost of +30 pain, skin -25, muscle -26, +5 bleed and thickened blood.
Where it comes fromRare durable pull (weight 1) from medical crates and sealed pods. There is no recipe.
In usePanel drag onto a fractured limb; 4 uses of durability, one per weld. It refuses on a limb with no fracture.
NoteA splint is the gentle alternative and it is slow. This is the one you use when you do not have the time.
Borosilicate Flaskborosilicate_flask
What it doesLab glassware for the purity-stamping machines. Fresh glass raises the purity ceiling from crude street grade (60) all the way to pharma grade (100).
Where it comes fromShaped craft: 8 glass around 1 quartz, with the top centre left empty.
In useRight-click a Reactor or a purity-stamping process machine while holding it and it fits instead of opening the GUI. It loses 4 condition per drug batch, about 25 batches per flask, then it clouds over and wants replacing.
NoteWith no glass at all the machine still runs, just capped at street grade - the flask is gear you maintain, not a one-time unlock. It will only re-fit when the installed glass is below full condition.
Bruise Kitbruisekit
What it doesA contusion dressing for a bruised limb. Applied, it restores up to 100 skin health and 40 muscle health on that limb and takes 80 off its pain.
Where it comes fromShapeless craft: white wool + magma cream + bone meal.
In useOpen the body panel and drag it onto the injured limb; one kit is consumed. Stacks to 16. It refuses and spends nothing if that limb already has full skin, full muscle and no pain.
NotePanel-drag only. Right-clicking it in the world does nothing - the tooltip is the only hint.
Burn Gelburngel
What it doesA cooling salve for a burned limb. It takes 60 off the burn, halves the limb's pain, gives back 25 skin health, and lays down a 5 minute disinfect window so the burn does not fester.
Where it comes fromNo recipe, no loot table, no trader entry in the shipped data. Creative tab or commands only.
In useDrag it onto the burned limb in the body panel; one is consumed. Stacks to 16. It refuses if that limb is not burned.
NoteThe disinfect window is the part players miss - it is a burn treatment and an infection guard in one action. No obtain path shipped.
Cadaver Torsocadaver_torso
What it doesThe trunk left behind by a violent death, and the only source of donor organs outside a trader. From the moment of death its organs are pristine for 2 minutes, viable to 5, marginal to 10, then meat.
Where it comes fromDropped by DismemberService when a player dies violently, stamped with the moment of death, who it was, and what their liver and kidneys were worth. Never crafted. Only spawns while organ harvesting is enabled in the server config.
In useRight-click it with a bone saw in your inventory and Intelligence 20 or higher to open the harvest screen and extract an organ. Below INT 20 you know where the organs are but not how to take one.
NoteCold slows the clock and nothing stops it - a freezer runs it at 0.15x, an icebox at 0.35x, but only an extracted organ in proper storage actually holds. The donor's own condition caps what you can get, so a plague-wrecked corpse yields a poor organ. No shipped tooltip line; the item writes its own hover text ("still warm", "cooling", "going grey", "long dead").
Canteencanteen
What it doesA refillable water flask holding 6 sips. Each sip gives +9 thirst. Water drawn straight from the world is murky and turns your stomach - a murky sip raises sickness on the nausea and infection axis.
Where it comes fromShaped craft: 1 leather over 3 iron ingots (pattern L / II / I). It starts empty.
In useRight-click a water source you are looking at to fill it. Right-click again to drink a sip. Right-click a lit brazier, heater, campfire, furnace or magma to boil the whole canteen clean.
NoteThis is why the temperature braziers double as water purifiers. Sip size is deliberately small: thirst starts full at 100 and over-hydration brain damage begins above 175, so chugging refills from an already-full stomach is the way this kills you.
Ceftriaxone Syringeceftriaxone_syringe
What it doesA sealed 100 ml factory syringe of injectable antibiotic. A full dose gives a 15 minute systemic antibiotic window (it stacks), a 3 minute disinfect window on the limb you stuck, and 80 pain into that limb.
Where it comes fromNo recipe. Sold by the Experiment trader (his infection and toxins shelf, and his general list). Creative tab otherwise.
In useDrag it onto a limb in the body panel to open the injection minigame. Durability is the saved volume in ml, so a partial dose leaves a partial syringe. It cannot be refilled.
NoteHome-synthesised ceftriaxone does not come out as this item - the chemistry chain ends in a drug fluid you load into the generic reusable Syringe at a Syringe Filler. The painful jab is real: a full dose is +80 pain on that limb.
Chest Drainchest_drain
What it doesA pleural drain kit for a hemothorax. Drag it onto the thorax and it pulls 35 of the thoracic fluid burden out, and breathing eases.
Where it comes fromShapeless craft: iron ingot + slime ball + string + glass bottle + Sterilized Bandage. Also stocked by the Experiment trader.
In useFour insertion assemblies per kit, tracked as durability. Each drain spends one charge, adds a little bleed to the thorax where the incision weeps, and can seed a procedure infection if the site is filthy.
NoteIt cannot remove fluid that is inside the lungs - pulmonary aspirate from drowning refuses outright. Disinfect the thorax first. If Rot Lung has just consolidated, a drain inside the window pulls it back out before it scars.
Clotting Mushclottingmush
What it doesA coagulant paste for a bleeding limb. It cuts that limb's bleed rate to 60 percent of what it was and raises your blood viscosity by 10.
Where it comes fromShapeless craft: 2 cobweb + 1 wheat, yields 2.
In useDrag onto the bleeding limb in the body panel; one is consumed. Stacks to 16. It refuses if that limb is not bleeding. Two of them plus a mineral supplement and solvent also run in the Reactor to make Procoagulant.
NoteThe viscosity it adds is not free - thickened blood is its own risk, so packing wound after wound with this trades a bleed for a clot.
Cold Compressicepack
What it doesDrag it onto a limb in the health panel to numb that limb (pain x0.6) and drop your core temperature by 1.5 C.
Where it comes fromCraft it shapeless from white wool + 2 snowballs (recipes/icepack.json). Also a rare durable pull from medical crate and pod loot at weight 1, and general merchants can roll it (ItemInfo value 8).
In use2 durability, so two uses, then it is gone.
NoteThe registry id is icepack but the shipped display name is Cold Compress, so searching in game for "ice pack" finds nothing. It is not the same thing as the Cold Pack, which is a right-click core-temperature item.
Cold Packcold_pack
What it doesRight-click to pull about 4 C of core heat out of yourself. It works in any climate.
Where it comes fromShapeless craft: 1 Fern Fibre + 2 snowballs. Also sold by the Experiment trader on his core-temperature shelf.
In useOne consumed per use, drunk-style (right-click and hold briefly). Stacks to 16.
NoteCooling is floored at 34.5 C so it cannot be stacked into deeper hypothermia - but 34.5 C is already cold enough to be its own problem. It counts as medical treatment rather than food, so it still works when a pack disables food and drink temperature effects.
Combat Pencombatpen
What it doesA slam-and-go auto-injector for a crisis. One hit gives a long hard stimulant window, +22.5 adrenaline, 90 ticks of epinephrine heart-restart headroom, +5 SpO2, +1.25 respiration, +5 stamina, -2.5 fibrillation and a touch of blood volume.
Where it comes fromNo recipe, no loot table, no trader entry in the shipped data. Creative tab or commands only.
In useRight-click to use; one consumed. Stacks to 16.
NoteDo not redose while the first pen is still running - the second stacks directly onto it and crosses into stimulant overdose. The epinephrine dose is deliberately under the 40 ml fibrillation line, so a single pen will not seed fibrillation on its own. No obtain path shipped.
Cyst Carrier Spawn Eggcyst_carrier_spawn_egg
What it doesSpawns a Cyst Carrier where you click.
Where it comes fromCreative only. It sits in the Doomed - Cyst Jungle tab; no recipe and no loot table.
In useOne egg consumed per spawn outside creative.
NoteNo shipped tooltip.
Cyst Dispersal Larva Spawn Eggcyst_parasite_spawn_egg
What it doesSpawns a Cyst Dispersal Larva where you click.
Where it comes fromCreative only. It sits in the Doomed - Cyst Jungle tab; no recipe and no loot table.
In useOne egg consumed per spawn outside creative.
NoteNo shipped tooltip.
Cyst Fibrecyst_fibre
What it doesTough cave fibre - a plain crafting material with no effect on the body.
Where it comes fromBreaking Cyst Fronds or Cyst Spore Reeds in the cyst caves.
In use3 fibre + 1 string crafts a Disposable Dust Mask, so a long trip underground can resupply its own protection without walking home.
NoteThe shipped tooltip says "Twists into cord, packs into a filter" but the dust mask is the only recipe that consumes it in the shipped data - there is no cord recipe.
Deep Maw Spawn Eggdeep_maw_spawn_egg
What it doesSpawns a Deep Maw where you click.
Where it comes fromCreative and test access only - it sits in the main Doomed tab. Natural Deep Maw encounters stay rare and entirely server-controlled.
In useOne egg consumed per spawn outside creative.
NoteThe Deep Maw treats an egg spawn as one of its allowed non-natural spawn reasons, so it will actually appear rather than being culled the way a bad natural spawn is.
Donor Organdonor_organ
What it doesSomeone else's liver or kidney, kept cold. Right-click to open the transplant theatre and graft it into whichever of your cascade-driving organs is worst, restoring that organ's function.
Where it comes fromHarvested from a Cadaver Torso with a bone saw at Intelligence 20, or bought from the Experiment trader.
In useConsumed by the procedure. The theatre is a four-stage operation that bleeds the abdomen and carries a pain-shock risk; the server re-validates on commit, so it will not open if you have nothing bad enough to replace. Stacks to 4.
NoteIt is not a cure. Grafting starts a rejection clock that climbs for the rest of your life and eats the graft's function back down. The only thing holding rejection back is a permanent immunosuppressant course, which craters your immunity in a world of airborne plagues and wound sepsis. You do not get to be healthy again; you get to choose which thing kills you. It is also perishable - keep it cold.
Doomeddoomed
What it doesA creative tab, not an item. It holds the treatment items, with the Suppressant as its icon. The Deep Maw spawn egg lives here too.
Where it comes fromRegistered as a CreativeModeTab in DoomedItems.java, not through the item registry.
NoteListed here only because it is registered in DoomedItems.java alongside the items. Nothing a player can hold.
Doomed - Chemistrydoomed_chem
What it doesA creative tab, not an item. It holds the drug-chemistry bench - the machines, reagents, precursors and intermediates.
Where it comes fromRegistered as a CreativeModeTab in DoomedItems.java, not through the item registry.
NoteAdded at a user request for a separate Doomed creative tab for all the chemistry.
Doomed - Cyst Jungledoomed_cyst
What it doesA creative tab, not an item. It holds the cyst cave blocks and materials, and both cyst spawn eggs.
Where it comes fromRegistered as a CreativeModeTab in DoomedItems.java, not through the item registry.
Doomed - Food & Drinkdoomed_food
What it doesA creative tab, not an item. It holds the food and drink consumables, with the steak as its icon.
Where it comes fromRegistered as a CreativeModeTab in DoomedItems.java, not through the item registry.
Doomed - Gear & Bagsdoomed_gear
What it doesA creative tab, not an item. It holds the storage bags and wearables, with the duffel bag as its icon.
Where it comes fromRegistered as a CreativeModeTab in DoomedItems.java, not through the item registry.
Doomed - Lights & Powerdoomed_devices
What it doesA creative tab, not an item. It holds the lights and batteries, with the flashlight as its icon.
Where it comes fromRegistered as a CreativeModeTab in DoomedItems.java, not through the item registry.
Doomed - Weapons & Ammodoomed_weapons
What it doesA creative tab, not an item. It holds the weapons and ammunition, with the pistol as its icon.
Where it comes fromRegistered as a CreativeModeTab in DoomedItems.java, not through the item registry.
Drying Clothdryingcloth
What it doesA woven rag. Right-click to towel off and shed 55 points of wetness after a swim or a downpour.
Where it comes fromShaped craft: 3 string in a single row.
In useDurability 16, so about 16 dry-offs. It will not spend a use when you are already dry (wetness at or below 8), and it does nothing outside an active run.
NoteIt only removes the water. The cold and mood penalty that came with being soaked still clears the slow way. Woven as a strip on purpose: a 2x2 of string is vanilla white wool, and the collision made the crafting output a coin flip.
Electrolyte Saltselectrolyte_salts
What it doesDry mixed electrolyte salts (sodium, potassium, chloride). A chemistry ingredient with no direct effect if you eat it.
Where it comes fromKilned from Refined Salt: 1 refined salt in the Kiln, 400 FE, 80 ticks.
In useEvaporate it with Ringer's Salts and water to make a Ringer's IV. Distilled water yields 95 purity; plain water yields 70.
Empty Blood Bagemptybloodbag
What it doesA stitched IV pouch with a needle. Right-click to draw about 0.75 L of your own blood into it, turning it into a full human blood bag you can bank or transfuse later.
Where it comes fromShapeless craft: leather + string + iron nugget.
In useConsumed when filled. Stacks to 8. Right-click ANOTHER PLAYER with it to draw from them instead - same cost, same refusals, and their blood type goes on the label.
NoteIt refuses if the draw would leave the donor under 3.25 L, and refuses a saline-expanded but anaemic donor (below 0.80 red cell fraction) - volume is not donor cells. A past bug voided the bag on your last empty one; that is fixed.
Epinephrine Syringeepinephrine_syringe
What it doesA sealed 100 ml factory syringe of epinephrine. It adds 6 ticks of heart-restart headroom and 1.5 adrenaline per ml injected. This is what restarts a heart that has stopped outright, where a defibrillator cannot.
Where it comes fromNo recipe. Sold by the Experiment trader (his resuscitation shelf and his general list). Creative tab otherwise.
In useDrag it onto a limb in the body panel to open the injection minigame. Durability is the saved volume in ml. It cannot be refilled.
NoteA dose of 40 ml or more seeds and latches fibrillation - a big bolus is its own emergency. That is why the Combat Pen carries only 15 ml.
Evaporatorevaporator
What it doesBoils off water and solvent. Evaporates brine into salt, and drug solutions into saline, Ringer's, morphine and heroin fluid.
Where it comes fromCrafted.
In useRight-click opens the machine GUI. Needs FE and heat. Right-click it holding a borosilicate flask to fit the glassware needed for pharma grade. Set faces to input and output.
NoteFlammable and steamy - it handles a vapour that can flash to fire, worst over an open flame or when overheating. Moderately acrid fumes; a powered Fume Hood clears them indoors. A worldgen-authored one does not drop itself.
Fentanyl Precursorfentanyl_precursor
What it doesA synthesised fentanyl precursor - the crude one-step route. A chemistry ingredient, not a drug you can take.
Where it comes fromNothing in the shipped data produces it. It appears only as a Reactor INPUT and in the chemistry and opioid item tags. No recipe, no loot, no trader.
In useReact it with a Catalyst Reagent in the Reactor: 6000 FE, 600 ticks, out as 100 mb of 70 purity fentanyl. The reaction fumes, is flammable, pressurised, corrosive and needs a sealed vessel.
NoteOnly the PURE variant (Fentanyl Precursor (Pharma)) has a production path, dried in the Drying Oven from the pure intermediate. The crude one is currently unobtainable outside creative, so the "dirty one-step route" its tooltip advertises cannot actually be entered.
Fentanyl Syringefentanyl_syringe
What it doesA sealed 100 ml factory syringe of the most potent injectable opioid in the mod. A full dose loads 4200 into the opiate depot at a slow 0.09 absorb rate.
Where it comes fromNo recipe. Sold by the Experiment trader (his analgesia shelf and his general list). Creative tab otherwise.
In useDrag it onto a limb in the body panel to open the injection minigame. Durability is the saved volume in ml. It cannot be refilled.
NoteA tiny volume, an enormous load, and it keeps coming - the slow absorb telegraphs the respiratory peak rather than dropping it on you at once, and it can OUTLIVE a dose of naloxone, so an overdose can rebound after you think you have reversed it. The trader will not sell it without pairing naloxone into the same shelf.
Fermenterfermenter
What it doesFerments organics in water. Sugar, wheat or apple plus water makes mash, and it grows antibiotic broth.
Where it comes fromCrafted.
In useRight-click opens the machine GUI; a bucket in hand fills its tank instead. Needs FE and NO heat - too hot kills the culture. Set faces to input and output.
NoteThe only fume it makes is harmless CO2, so it is safe to run indoors without a hood. A worldgen-authored one does not drop itself.
Fern Fibrefern_fibre
What it doesWoven fibre from the resistance ferns. A plain crafting material with no effect on the body.
Where it comes fromBreaking Frost Ferns or Sun Ferns.
In useCrafts the Cold Pack, the Hot Drink, the Fur Coat, the Fur Hood and the Insulated Liner.
NoteIt is the whole temperature-gear material line - insulation and both portable core-temperature regulators come from it.
Feverbell Chewfeverbell_chew
What it doesA bitter non-opioid painkiller you right-click to take. It pushes your NSAID level up by 12, which dulls pain with no breathing risk and no overdose, and it knocks 4 off your happiness because it tastes foul.
Where it comes fromCraft it shapeless from 2 Feverbell Powder + 1 sugar (recipes/feverbell_chew.json). General trader merchants can also roll it (ItemInfo value 3).
In useOne-shot consumable, stacks to 16. Right-click and it is gone.
NoteThis is the mild end of the feverbell chain. Nocifen is the concentrated form of the same herb and takes 4 powder plus a bittermoss binder.
Feverbell Flowerfeverbell_flower
What it doesThe raw warm-ground herb. It is a placeable seed item as well as an ingredient - right-click the ground with it to plant a Feverbell crop.
Where it comes fromBreak wild feverbell (loot_tables/blocks/feverbell.json) or a planted crop (feverbell_crop.json). The Foraging Knife doubles the wild drop; a mature age-3 crop rolls 1-2 extra on top of the guaranteed leaf. Wild feverbell scatters in the warm temperature band via SurfaceScatterFeature.
In useGrind it in a placed Pestle and Mortar to get Feverbell Powder (GrindRecipes.java:42).
NoteBreaking the crop at any age always returns the leaf, so planting it in the wrong climate never costs you the seed. Shipped tooltip: plant it in sustained warmth; a powered Heater can maintain its band.
Feverbell Powderfeverbell_powder
What it doesThe ground form of feverbell. It does nothing on its own - it is a crafting reagent.
Where it comes fromGrind a Feverbell Flower in a placed Pestle and Mortar (a short minigame). GrindRecipes maps flower to powder.
In useSpent crafting Feverbell Chew (2 + sugar), Herbal Tonic (1 of each ground herb + a glass bottle), or Nocifen (4 + bittermoss pulp, yields 2).
NoteIt has a display name but no tooltip in en_us.json, so nothing in game tells you what it is for.
Field Codexfield_codex
What it doesThe drop-capsule defusal manual. Carry it in your inventory and the Codex key pulls the module rules up on screen at any time, including mid-defuse while the clock keeps running. Without it every module is a blind guess.
Where it comes fromA rare pull from drop-capsule loot (weight 1 in DROP_CAPSULE_LOOT_DEFAULT). General trader merchants can roll it, but at ItemInfo value 48 it is a steep buy.
In useNever consumed. It only has to be somewhere in your inventory - ClientHooks.hasFieldCodex scans the main inventory.
NoteNo crafting recipe of any kind. Finding it is the progression.
Field Journalfield_journal
What it doesA physical, transferable record of what your character has observed and recovered. Right-click to open it; the tooltip shows how many written records it holds.
In useNever consumed. Records are written into that specific item stack, so giving the journal away gives away the records.
NoteNO OBTAIN PATH. There is no recipe, no loot table entry, no trader stock, and it is not registered in ItemInfo so general merchants cannot roll it either. The only way to get one is the operator command /doom journal give. Entries themselves are separately approval-gated datapack data.
Filter Pressfilter_press
What it doesPresses a slurry apart into a solid cake plus a waste filtrate. Splits morphine slurry and ferment broth.
Where it comes fromCrafted.
In useRight-click opens the machine GUI. Needs FE, no heat. Set faces to input and output. Boil the waste filtrate down to reclaim base.
NoteMakes no fumes, so it is safe to run in an enclosed room. A worldgen-authored one does not drop itself.
Foraging Knifeforaging_knife
What it doesA cheap flint blade for the early game. Breaking a medicinal herb bush with it doubles the drop, and it carries the CUTTING crafting quality. It is not a weapon - it is registered on the stone tier with no weapon attributes.
Where it comes fromCraft it shapeless from flint + stick + string (recipes/foraging_knife.json).
In use128 durability, no repair. It loses one point every time it mines a BushBlock (herbs, ferns, tall grass); other blocks do not dull it. When it breaks, make another.
NoteThe doubling is done by a match_tool condition in each herb's loot table, so it only works on the four herb blocks that name it - bittermoss, feverbell, glowcap and woundwort.
Heat Packheatpack
What it doesRight-click to crack it. Your core temperature jumps 5 C (capped at 38 C) and frostbite thaws across the body. The warmth spreads from the core outward, so proximal limbs recover most and the fingers and toes least.
Where it comes fromMedical crate and sealed-pod loot at weight 3 (common). The Experiment trader stocks it as core-temperature rescue, and general merchants can roll it (ItemInfo value 8).
In useOne-shot consumable, stacks to 16.
NoteNo crafting recipe. Thaw per limb is 12 + up to 28 more depending on how sheltered the limb is, so hands and feet are always the last to come back. Unlike food warmth, this is not gated by the foodTemperatureEffects setting.
Herbal Poulticeherbal_poultice
What it doesA rough woundwort dressing. Wrapping a wound restores some skin (+18), halves the bleeding, eases 20 pain and disinfects for 20 seconds. Weaker than a real bandage. On an infected limb with no open wound it washes the limb instead.
Where it comes fromCraft it shapeless from 2 Woundwort Paste + 1 Ripped Dressing (recipes/herbal_poultice.json). General merchants can roll it (ItemInfo value 4).
In useA durable dressing with a 20-point condition pool - wrapping drains durability rather than consuming it in one shot, and it breaks at 0.
NoteIts 20 s disinfect window is trivial next to Bittermoss Wash's 90 s. If infection is the problem, the wash is the answer and this is not.
Herbal Tonicherbal_tonic
What it doesA murky brew of ground herbs - the drink you take when you have nothing else. It cuts 10 off sickness, hydrates you 18 ml, nudges energy up 5 (capped at 100), and costs 6 happiness because it is bitter and earthy.
Where it comes fromCraft it shapeless from Woundwort Paste + Feverbell Powder + Bittermoss Pulp + a glass bottle (recipes/herbal_tonic.json). General merchants can roll it (ItemInfo value 5).
In useOne-shot consumable, stacks to 16.
NoteIt counts as a real drink, so it genuinely moves thirst - about a third of a day's worth. The energy is deliberately a nudge and not a way to skip sleeping.
Heroin Syringeheroin
What it doesA dirty street opioid in a sealed syringe. Drag it onto a limb to run the syringe minigame: a full 100 ml loads roughly 130 into the opiate depot for powerful pain relief and adds 50 sickness. Addictive, and it feeds opioid tolerance.
Where it comes fromMedical crate and sealed-pod loot at weight 2, and drop-capsule loot at weight 2. General merchants can roll it (ItemInfo value 12) unless opioids are switched off.
In useSealed and single-use - durability is its remaining volume in ml, and the Syringe Filler will not refill it. Draining it consumes the item.
NoteIt is in the doomedmatu:opioids tag, so the opioid kill-switch makes it inert and pulls it off trader shelves. Its chemistry route produces the heroin FLUID (via heroin_pure), which fills the generic reusable syringe rather than making this sealed item.
Hot Drinkhot_drink
What it doesA real food/drink item - eat it to sip. It gives 2 nutrition, 15 ml of thirst, and warms your core by 4 C toward the comfortable band.
Where it comes fromCraft it shapeless from 2 Fern Fibre + a glass bottle (recipes/hot_drink.json).
In useOne-shot consumable, stacks to 16.
NoteNo tooltip in en_us.json. The warming goes through Consumption.warm, which does nothing at all if the pack disables food temperature effects, and which can only move you around the comfortable band - it can never push you past it into a fever. Its thirst value was cut from 250 ml so it is not a canteen substitute.
Human Blood Bagbloodbaghuman
What it doesThe same 0.75 L transfusion, but the matched bag - loot copies arrive already wearing a donor label, so you can check it against your own type before you push it.
Where it comes fromMedical crate and sealed pod loot (typed at the moment it spawns), the Experiment trader's shelf as a fixed O-negative lot, or draw about 0.75 L of your own blood with an Empty Blood Bag.
In useSame as the blood bag: panel drag onto a limb, syringe minigame, and the emptied bag returns contaminated.
NoteRe-using a bag passes on every pathogen either bloodstream was carrying, exactly like a reused needle - the line runs both directions. Get the type wrong and the reaction comes for you hours later.
Immunosuppressantsimmunosuppressant
What it doesRight-click to take a course. For 10 minutes it holds transplant rejection back - and switches your immune system off with it, so infection, sepsis and plague become far more dangerous while it is in you.
Where it comes fromMedical crate and sealed-pod loot at weight 2. The Experiment trader stocks it, and general merchants can roll it (ItemInfo value 16).
In useOne-shot consumable, stacks to 16. The window is exactly 10 minutes (10 * 1200 ticks) and does not extend on a second dose - the setter overwrites rather than adds.
NoteNo crafting recipe. Until it was added to the crate/pod tables it had no obtain path outside a summon-only NPC, which made the whole transplant system unreachable. Being defenceless is the trade, not a side effect.
Improvised Charcoal Slurryimprovised_charcoal_slurry
What it doesA weak emergency adsorbent, drunk. It takes 20 off sickness, binds 20 percent of what you swallowed of an oral opiate, and opens a 20 second adsorption window. One time in four it makes you sicker instead (+8 sickness).
Where it comes fromCraft it shapeless from 2 charcoal + a bowl + a water bucket (recipes/improvised_charcoal_slurry.json). General merchants can roll it (ItemInfo value 2).
In useOne-shot consumable, stacks to 16.
NoteDeliberately inferior to real Activated Charcoal - ordinary charcoal is not pharmaceutical activated carbon, and its window is short. The Witness tablet names it as the field answer for parasites when no trader is in reach.
Improvised Prostheticimprovised_prosthetic
What it doesA universal arm or leg replacement fitted through the health panel paper doll. It restores about 45 percent of limb function - the worst of the three tiers, but the only one you can make on day one.
Where it comes fromCraft it shaped from leather, planks, sticks and an iron nugget (recipes/improvised_prosthetic.json). General merchants can roll it (ItemInfo value 18).
In useDrag it onto an amputated arm or leg in the health panel. Fresh stumps must be stable, clean and partly healed before a prosthetic will fit.
NoteIts tooltip is generated in code, not from en_us.json. A fitted prosthetic cannot bleed or become infected, but it wears down instead of healing - Prosthetic Lubricant is the routine upkeep, and a fully seized one needs a wrench and parts.
Iodineiodine
What it doesA strong topical disinfectant distilled from kelp. Drag it onto a limb in the health panel for an 8 minute disinfect window at the cost of 6 pain - a longer window than antiseptic mush and a milder sting, and it does not splash onto the limb above.
Where it comes fromCraft it shapeless from a dried kelp block + a glass bottle (recipes/iodine.json).
In useOne-shot consumable, stacks to 16.
NoteIt has no ItemInfo registration, so no trader will ever stock it and it has no credit value. Crafting is the only source.
Keratin Booster Syringekeratinbooster_syringe
What it doesAn injected booster that speeds up nail and claw regrowth. A full 100 ml adds about 2800 to the claw regrow timer, and while that timer is running claws regrow at 3x the normal rate.
Where it comes fromMedical crate and sealed-pod loot at weight 3 (common). The Experiment trader stocks it, and general merchants can roll it (ItemInfo value 8).
In useSealed and single-use - durability is its remaining volume, and the Syringe Filler will not refill it.
NoteDiminishing returns are built in: if your regrow timer is already above 3600, a further dose only adds a tenth of its value. The only thing the timer does in code is multiply claw regrowth by 3 - nothing reads it for skin thickness or armour, despite the Witness tablet's keratinbooster page describing it as thickening the skin and the item tooltip saying it hardens claws while active.
Kilnkiln
What it doesThe high-heat roasting machine. Item in, item out: limestone to quicklime, sulfur to roasted sulfur, raw catalyst ore to clinker.
Where it comes fromCrafted: bricks around a furnace on an iron base.
In useNeeds RF and heat tier 2 or better, which means a running RF Heater on a face - a lit brazier alone is not hot enough. Three adjacent heaters over-fire it.
NoteNo fluid tanks and no fluid auto-pull. Its fumes are the worst tier in the mod (potency 3) - work under a Fume Hood or in a mask. Contents travel with the mined block.
Lethemindwipe
What it doesA brutal mental reset, drunk. It seizes you and wipes the slate: trauma to 0, strokes to 0, mood to neutral, your learned intelligence to 0, every limb's pain to 0, then drops you unconscious into a forced sleep.
Where it comes fromMedical crate and sealed-pod loot at weight 2. General merchants can roll it (ItemInfo value 10).
In useOne-shot consumable, stacks to 16. It REFUSES a sound mind and is not spent - you must be at happiness -50 or worse, or carrying at least 5 trauma or 5 stroke, for it to go down at all.
NoteThe registry id is mindwipe but the shipped display name is Lethe, so searching for "mindwipe" in game finds nothing. Wiping learned intelligence is a real cost, not flavour - you drink this to survive a breaking mind, and you pay for it. No crafting recipe.
Lighterlighter
What it doesA cheap flip lighter. It is the flame source for a Matulls cigarette - the cigarette refuses to light without a lighter or flint and steel somewhere in your inventory.
Where it comes fromCraft it shapeless from an iron ingot + flint + leather (recipes/lighter.json).
In use64 durability. Each drag on a cigarette costs it one point. It does not need to be held - the cigarette scans your whole inventory for it.
NoteNo ItemInfo registration, so traders never stock it. Flint and steel works identically and is not consumed any faster, so the lighter is flavour rather than a requirement. Shipped tooltip: good for staring into.
Lye Soapsoap
What it doesRight-click while in water, rain or bubbles to scrub off. It sets your dirtiness to zero outright. It cleans skin - it is not a wound antiseptic.
Where it comes fromShapeless craft: rendered fat + wood ash + a water bucket, and it yields 4 bars.
In useDurability 8, so one bar is good for 8 washes. It refuses to work if you are dry or already clean (dirtiness at or below 0.5).
NoteFilth is not cosmetic: past a moderate level it raises the recurring infection roll on any open wound, and past a high level it suppresses immunity outright. Soap has no ItemInfo entry, so no trader will ever stock or buy it.
Manual Defibrillatordefibrillator
What it doesPads you put on a stopped heart. Drag it onto the THORAX in the body panel to open the shock minigame, then pick a power level.
Where it comes fromNo recipe. Sold by the Experiment trader (his resuscitation shelf and his general list). Creative tab otherwise.
In useDurability is its battery, 100 units, spent by shocking. It exposes a Forge Energy view of that battery, so a Battery Recharger or any modpack charger tops it back up. The tooltip shows battery percent.
NoteIt needs a shockable rhythm - it cannot start a heart that has stopped outright. That is what epinephrine is for. Chest compressions only slow brain death; they never restart anything. Right-clicking the defibrillator just points you at the body panel.
Matulls Cigarettecigarette
What it doesA smoke. Hold right-click to light it and take the first drag: up to +2 mood, 40 seconds lit in your mouth, and 8 minutes of quiet before withdrawal resumes. Every one adds 0.3 permanent lung tar and 2 points of nicotine dependence.
Where it comes fromRipped out of a Matulls Pack, 16 at a time. No direct recipe for the single cigarette.
In useNeeds a lighter or flint and steel somewhere in your inventory - without one you get "Nothing to light it with." One cigarette consumed per smoke.
NoteThe mood reward shrinks as dependence climbs, so past the early stages you smoke to stop feeling bad rather than to feel good. Tar lowers your stamina ceiling and is permanent within a life; about 330 cigarettes fully coat the lungs. Dependence survives death, but sustained abstinence clears it. 500 lifetime smokes earns Loyal Customer.
Matulls Packcigarette_pack
What it doesA sealed pack of 16 Matulls. Right-click rips the cellophane and the pack becomes 16 cigarettes in your inventory, or on the floor if your hands are full.
Where it comes fromShapeless craft: 2 paper + 3 Woundwort Leaf + 1 string.
In useConsumed when opened. Stacks to 8.
NoteJust packaging with a brand on it - the vice itself is the cigarette. Woundwort leaf is the tobacco stand-in, so the pack competes with your wound dressings for the same crop.
Mechanical Prostheticmechanical_prosthetic
What it doesA universal arm or leg replacement fitted through the health panel paper doll. It restores about 88 percent of limb function - the middle tier.
Where it comes fromCraft it shaped from 6 iron ingots, 2 redstone and a piston (recipes/mechanical_prosthetic.json). General merchants can roll it, though at ItemInfo value 60 it sits right at the wallet cap.
In useDrag it onto an amputated arm or leg in the health panel. Fresh stumps must be stable, clean and partly healed before a prosthetic will fit.
NoteIts tooltip is generated in code, not from en_us.json. It is also the crafting base for the Titanium Neuromechanical Prosthetic. No tier ever outperforms healthy tissue at every task, and a fitted prosthetic wears down instead of healing.
Medical Suturemedicalsuture
What it doesSurgical thread and a needle. Drag it onto a wounded limb to run the stitching minigame and close the wound. Quality decides everything: an even, snug ladder gives the best close in the game - full skin knit, bleeding stopped dead, a deep wound sealed for good, one stab of pain. A ragged job barely holds, leaves residual bleeding, works dirt into the wound and hurts far more.
Where it comes fromCraft it shapeless from string + an iron nugget, yielding 2 (recipes/medicalsuture.json). Also drops from a searched cyst-rooted cadaver, and is common in medical crate, pod and drop-capsule loot. Both the Experiment trader and general merchants stock it (ItemInfo value 8).
In useOne-shot consumable, stacks to 16. Consumed whether the stitch is clean or botched.
NoteDisinfect FIRST - filth can seed infection during closure. A botched suture (quality under 0.55) is measurably worse than the Wound Stapler's guaranteed-but-mediocre instant close, so skill decides whether this is the reward or the trap. It refuses on a limb with no bleeding, full skin and no deep wound.
Morphine Syringemorphine_syringe
What it doesA strong injectable painkiller. Drag it onto a limb to run the syringe minigame; it loads the opiate depot proportional to the volume injected. Carries a real risk of opioid tolerance.
Where it comes fromMedical crate and sealed-pod loot at weight 3, drop-capsule loot at weight 3. The Experiment trader stocks it under analgesia, and general merchants can roll it (ItemInfo value 16).
In useSealed and single-use - durability is its remaining volume in ml, and the Syringe Filler will not refill it.
NoteIt is in the doomedmatu:opioids tag, so the opioid kill-switch makes it inert and pulls it off trader shelves. The depot model means the dose absorbs over time rather than landing all at once, which is what telegraphs a respiratory peak.
Naloxone Precursornaloxone_precursor
What it doesA semi-synthetic naloxone precursor - the crude one-step route. It does nothing on its own; it is a Reactor input.
In useReact it with a Reagent Catalyst in the Reactor: 5000 FE over 500 ticks yields 100 mB of naloxone at purity 70. The reaction is sealed, fuming, flammable, corrosive and runs at pressure 2.
NoteIts only obtain path is drop-capsule loot at weight 1 - the rarest tier. There is no crafting recipe, no other loot table, no trader (it has no ItemInfo value), and no chemistry process produces it. The clean route makes naloxone_precursor_pure instead, which is a different item; this crude one is a found shortcut only.
Naloxone Syringenaloxone_syringe
What it doesAn opioid antagonist. Drag it onto a limb to inject; it loads opiate antagonist, which clears the opiate level fast and reverses an opiate overdose.
Where it comes fromMedical crate and sealed-pod loot at weight 3, drop-capsule loot at weight 3. The Experiment trader stocks it, and general merchants can roll it (ItemInfo value 8).
In useSealed and single-use - durability is its remaining volume, and the Syringe Filler will not refill it. The crude Reactor route from Naloxone Precursor produces naloxone FLUID at purity 70, which fills the generic reusable syringe rather than making this item.
NoteRestoring consciousness is not the same as restoring breathing - the Witness tablet's opioid page says to administer naloxone and then reassess breathing. Fentanyl's slow depot absorption can outlive a naloxone dose and rebound. It is NOT in the opioids tag, so the opioid kill-switch does not remove it.
Naltrexonenaltrexone
What it doesAn oral course that eases the opioid pull and its tolerance, and dampens mood while it does. One dose: sickness -25, opiate tolerance -15, opiate antagonist +15, happiness -2.
Where it comes fromLocked crates and sealed pods (weight 3), and general traders at value 8. There is no recipe.
In useRight-click and hold through the drink animation. One is consumed per dose.
NoteRegistry comments record that the shipped numbers were corrected down from a 2x and 4x drift against the source values.
Neural Boosterneuralbooster
What it doesA reusable brain overclock. Right-click for 8 minutes of speed, jump and haste, any stroke wiped to zero, +20 happiness, full stamina and energy, and about 10 minutes of a wired caffeine buzz that halves energy burn. Then it locks out for 3 real hours.
Where it comes fromLocked crates and sealed pods as a rare pull (weight 1), general traders at value 50, and the Experiment's shelf.
In useIt is never consumed. A clean use only spends the cooldown, which is saved server-side against world game time.
NoteForcing it before the cooldown expires is catastrophic and does NOT consume it either: sickness +100, shock 10, body temperature +5, happiness -10, a heavy internal bleed in the thorax and abdomen, every limb's muscle cut to a fifth, both eyes blown out, and the 3-hour lockout restarts. The registry javadoc still calls it a one-shot; the item class is explicitly reusable.
Neurograftbraingrow
What it doesThe only drug that regrows brain tissue. Drink it to start a slow ~100 second regrow op that rebuilds brain health and clears a stroke, at the cost of sickness, a soured mood and possible retching.
Where it comes fromNo crafting recipe, no loot table, no trader entry anywhere in the shipped data. Creative tab or commands only.
In useOne vial consumed per drink. Re-dosing while the last one is still in you (brainGrowSickness above zero, about 20 minutes) OVERDOSES instead: a shock, a collapse and a mind-scrambling jolt. The vial locks re-dosing out for that whole window.
NoteShipped tooltip: "Rebuilds brain and clears stroke; toxic, overdoses if re-dosed." It is the only counter to brain damage, and it has no obtain path at all in a survival world.
Nocifennocifen
What it doesThe non-opioid painkiller. Weaker than the opioids but with no breathing risk, no overdose and no addiction, and doses stack (+50 NSAID level each). It also fights fever and inflammation.
Where it comes fromCrafted shapeless from 4 Feverbell Powder plus 1 Bittermoss Pulp for 2. Also locked crates and sealed pods (weight 3, count 2), drop capsules (count 3), traders at value 8, and the Experiment.
In useRight-click and hold through the drink animation; one is consumed.
NoteIt thins your blood, so wounds clot slower - medicating a bleed makes the bleed last longer. Chaining doses upsets the gut and can start a stomach bleed.
Opium Syringeopium_syringe
What it doesThe baseline injectable painkiller. The dose lands in the opiate depot and absorbs into the blood over time rather than hitting instantly. Tooltip warns of opioid tolerance.
Where it comes fromLocked crates and sealed pods (weight 3), drop capsules (weight 3), and general traders at value 8.
In useDrag onto a limb in the health panel to run the injection minigame. Durability is the remaining ml; it cannot be refilled.
NoteIt is in the doomedmatu:opioids tag, so with the opioid kill-switch off it vanishes from loot, traders and worldgen barrels, and any level already in a body is pinned to zero every tick rather than frozen.
Overclock Chipoverclock_chip
What it doesA one-use upgrade for the Jump Kit. Installing it flips the kit to the Overclocked side-grade, which launches harder (1.22x horizontal, 1.15x vertical) and ignores armor weight.
Where it comes fromCrafted shaped from gold ingots, redstone, copper ingots and blaze powder.
In useRight-click holding the chip while a base, non-overclocked Jump Kit sits in your inventory. The chip is consumed and the kit gets an NBT flag.
NoteThe kit must be in the INVENTORY, not the wear slot, so unequip it first. The overclocked kit banks heat per boost and locks out until it cools, drains 30 battery per unladen boost instead of 18, and will not break a dead-battery fall.
Oxyline Syringeoxyline_syringe
What it doesAn oxygen booster. Per ml it adds 0.2 SpO2, 0.05 respiration (capped at 25), 0.2 stamina, removes 0.1 fibrillation and adds a trickle of blood volume.
Where it comes fromLocked crates and sealed pods (weight 3), general traders at value 9, and the Experiment's oxygenation shelf.
In useDrag onto a limb in the health panel to run the injection minigame; durability is the remaining ml.
NoteOpioidPolicy counts oxyline as part of the opioid FAMILY, so the opioid kill-switch removes it from loot and shelves along with the painkillers, even though what it does is raise oxygen.
Painkillerspainkillers
What it doesStrong oral opioids. Swallowing one adds +14 oral opiate, which dulls pain across the whole body.
Where it comes fromThe most common medical find in the game: rooted cadavers you search (weight 12 to 26 depending on the body's attire), locked crates and sealed pods (count 2), drop capsules (count 3), and traders at value 6.
In useRight-click and hold through the drink animation; one is consumed per swallow.
NoteOne item is a single 10 ml swallow, not the whole bottle - the port had copied the bottle's full 140 potency as one dose, which made a single pill an instant respiratory arrest. Chaining roughly 7 to 8 still crosses the arrest line, which is the intended "took too many" death. Activated charcoal binds half of a swallowed dose. It is NOT in the doomedmatu:opioids item tag, so the kill-switch does not strip it from loot or shelves; DrugHandler pins the level to zero instead, leaving it inert.
Particulate Cartridgeparticulate_filter
What it doesA replacement gas mask cartridge rated for dust and bioaerosols, with 36,000 ticks of capacity. It suppresses what reaches your airway and spends itself while doing so.
Where it comes fromCrafted shaped from paper, charcoal and string for 2.
In useRight-click it while wearing a gas mask and it installs into the worn mask, consuming the cartridge. Only the matching hazard drains it.
NoteIt has no tooltip key in en_us.json; the hover text is built in FilterCartridgeItem instead, so a resource pack cannot retranslate it. The facepiece alone gives no chemical protection - a Vapor Cartridge is a separate item for the other hazard class.
Plastic Dressingplasticbandage
What it doesAn occlusive seal and the priciest wrap. At a full wrap it restores 60 skin, multiplies the limb's bleed by 0.1, and takes 100 off limb pain. No disinfect.
Where it comes fromLocked crates and sealed pods (weight 3), and general traders at value 14. There is no recipe for it.
In useApplied through the bandage minigame in the health panel. It is durable, not one-shot: a 56-point condition pool drains by how much you wrap, and it breaks when the pool runs out.
NoteIts potency scales with the wrap you actually achieve in the minigame, so a rushed wrap wastes condition for a fraction of the effect.
Plushieplushie
What it doesA comfort object that intercepts a despair episode. When one would trigger, the plushie is destroyed instead: +15 mood (applied raw, so anhedonia cannot blunt it) and a 240 second despair lockout, with no self-harm.
Where it comes fromCrafted shapeless from 2 wool of any colour plus string. Traders value it at 5.
In useSpent automatically the moment an episode would fire. You do not use it by hand.
NoteThe tooltip says to hold it, but DespairHandler scans your whole inventory, so it works from any slot. Each plushie stops exactly one episode.
Poppy Latexpoppy_latex
What it doesSticky sap bled from a mature opium poppy. A raw crop drop with no use of its own.
Where it comes fromBreaking a fully grown opium poppy (age 7) drops one alongside its seeds.
In useDried in the Drying Oven into Raw Opium: 400 FE over 120 ticks, no hazards.
NoteIn the doomedmatu:opioids tag, because half a chain is worse than none - with opioids disabled the whole chain goes rather than leaving unusable litter behind.
Procoagulant Syringeprocoagulant_syringe
What it doesThe systemic clotting agent. It reduces internal bleeding through the wound ledger and cuts external bleed on every limb at once, and it thickens the blood while doing so.
Where it comes fromCrafted shapeless from an empty Syringe, Clotting Mush, Bittermoss Pulp and a honey bottle. Also locked crates and sealed pods (weight 3), drop capsules, traders at value 8, and the Experiment.
In useDrag onto a limb in the health panel to run the injection minigame; durability is the remaining ml.
NoteIt is the only treatment that reaches internal bleeding everywhere in the body, and it shipped with no recipe at all for a long time, so players hit a wall they could not pass. The recipe was deliberately kept off the nether gate. Raising viscosity is the cost: overuse risks clots and fibrillation.
Prosthetic Lubricantprosthetic_lubricant
What it doesRoutine upkeep for fitted prosthetics. Right-click and every prosthetic you are running that is below 100 condition gets +40 back.
Where it comes fromCrafted shapeless from a slime ball and coal for 2. Traders value it at 6.
In useOne is consumed per application, but only if something actually needed servicing - if every prosthetic is already in good order you get a message and keep the item.
NoteIt will not revive a fully seized (0 condition) prosthetic. That is a real repair: a wrench plus tier parts, done in the health panel.
Raw Opiumraw_opium
What it doesDried poppy latex and the base of the whole opioid line. It is a precursor, not a drug you can take.
Where it comes fromDried from Poppy Latex in the Drying Oven (400 FE, 120 ticks).
In useThree routes consume it. Reactor: straight to opium fluid at 80 purity (1,000 FE, 160 ticks, sealed). Evaporator with water: opium solution at 60 purity. Recrystallizer with an Acid Reagent: naloxone intermediate crude, which starts the antidote branch.
NoteIn the doomedmatu:opioids tag, so a server with opioids disabled never sees it.
Reaction Catalystreagent_catalyst
What it doesThe rare reagent the hardest full syntheses need. Fentanyl and naloxone will not run without it.
Where it comes fromRecrystallizer: catalyst clinker plus a Solvent (2,500 FE, 260 ticks, fume and flammable).
In useConsumed in the Reactor by all four of the catalysed syntheses - fentanyl and naloxone, each at both the crude and the pharma-grade purity.
NoteThose Reactor runs are the violent ones: sealed vessel, pressure 2, flammable, corrosive. No ItemInfo value, so traders never carry it.
Rebreatherrebreather
What it doesA portable oxygen tank you toggle with a right-click. While on and carried it floods your blood with oxygen and lets you breathe underwater, draining as it runs. The tank holds 45 seconds of supply at pace 1.
Where it comes fromLocked crates and sealed pods as a rare durable pull (weight 1), general traders at value 20, and the Experiment's oxygenation shelf.
In useNever consumed. It drains one charge per sim tick while on and simply switches itself off empty. Refill it in the Oxygen Compressor: drop a drained one in the slot for about 7.5 seconds and roughly 7,200 FE.
NoteIt rescues hypoxia caused by WEAK BREATHING - an opioid overdose, a crushed chest, hard exertion. It cannot beat a physical block, so a hemothorax still needs a chest drain. A stack with no NBT reads as full, so looted and creative tanks start charged. WITNESS also credits it with suppressing what reaches the airway against airborne contamination.
Recrystallizerrecrystallizer
What it doesPurifies a crude solid with a reagent: crude morphine to morphine base, dry heroin to pure, salt to refined salt, crude cephalosporin to pharma grade.
Where it comes fromCrafted: glass and iron over packed ice.
In useNeeds RF. No heat floor, but its ceiling is tier 2 - heat tier 3 or higher over-fires it.
NoteItem-only: it shows no fluid bars and never auto-pulls fluid, so it cannot jam an input tank with something it will never consume. Mild fumes (potency 1).
Regenex Serumlrdserum
What it doesA potent regenerative serum in a pre-filled injector. Drag it onto a wounded limb: that limb rebuilds muscle (+50 a full dose), scours infection (-10) and disinfects, and its external bleed is cut to 0.7x. The limb above it heals too (+40). Systemically it neutralises venom, dumps adrenaline and gives a caffeine-like energy kick, plus a little opiate relief.
Where it comes fromMedical crate and sealed-pod loot at weight 2. The Experiment trader stocks it, and general merchants can roll it (ItemInfo value 12).
In useSealed and single-use - durability is its remaining volume, and the Syringe Filler will not refill it.
NoteThe registry id is lrdserum but the shipped name is Regenex Serum, so searching for "LRD" in game finds nothing. Injected into the THORAX it also slows internal bleeding to 0.45x - it is thoracic-only for internal bleeding, unlike procoagulant which works everywhere. It is an injector, not a drink.
Relief Cream Syringereliefcream_syringe
What it doesA topical, not a systemic drug. On the limb you apply it to: skin +0.3 per ml, pain multiplied down toward 0.4 of what it was, and a disinfect window of up to 300 seconds.
Where it comes fromLocked crates and sealed pods (weight 3), general traders at value 8, and the Experiment's analgesia shelf.
In useDrag onto a limb in the health panel to run the injection minigame; durability is the remaining ml.
NoteLimb-localized, so the server refuses it on a dismembered limb - there is nothing there to treat.
Revivolrevivol
What it doesSmelling salts in a crack-vial. It jolts you back from a faint: stops sleeping and napping, clears grogginess, pain-shock and motor-shock, then adds 40 adrenaline and 40 consciousness. The whiff costs 10 sickness.
Where it comes fromLocked crates and sealed pods (weight 2), drop capsules (weight 1, the rare treat), general traders at value 6, and the Experiment.
In useRight-click yourself, or right-click a downed teammate to rouse them through the co-op medical path. One is consumed.
NoteIt does nothing about the real causes. If blood loss, hypoxia or a collapsed blood pressure is what is putting you down, those still cap consciousness and the jolt sags straight back.
Ringer's Solution Syringeringersolution_syringe
What it doesA volume expander. Per ml divided by 700 it adds 35 blood units (0.025 L each), takes 40 off viscosity and adds 60 thirst, so a full syringe is a modest top-up rather than a transfusion.
Where it comes fromLocked crates and sealed pods (weight 3), general traders at value 8, and the Experiment's volume shelf.
In useDrag onto a limb in the health panel to run the injection minigame; durability is the remaining ml.
NoteThe divisor is 700 and had been implemented as 100, so viscosity and thirst were seven times the source and volume four times. Three tubes used to hand you +180 thirst, which is water poisoning. Like saline it raises volume without adding red cells, so it holds your pressure up without carrying oxygen.
Ripped Dressingrippeddressing
What it doesImprovised cloth strips. Drag it onto an injured limb in the body panel: a full wrap restores 8 skin integrity, leaves 78% of the bleeding, and takes 40 off the limb's pain.
Where it comes fromShapeless craft: any wool + leather + string. Also weight-3 loot in locked crates and sealed pods (2 per pull), and general traders stock it at value 4.
In useDurability 32 is its wrap pool; each application spends part of it. It is also the base of the Sterilized Dressing recipe and of the Herbal Poultice.
NoteThe weakest wrap that is genuinely renewable. It does not disinfect - the 0 disinfect window is the whole reason the sterilized version exists. The recipe deliberately uses wool AND leather because wool+wool+string is the plushie and leather+leather+string is the tourniquet.
Saline IVsaline
What it doesAn IV volume expander. Applied to a limb it adds about 0.5 L of blood, thins the blood by 40 viscosity, and adds 60 hydration. It holds your pressure up but carries no oxygen.
Where it comes fromNo crafting recipe. Weight-3 medical loot in locked crates and sealed pods, weight-3 in drop capsules (2 per pull), the Experiment's shelf, and any general trader at value 6. The saline FLUID is separately made in an Evaporator from refined salt plus water.
In useRight-clicking only prints a hint - you must open the health panel and drag it onto a limb to run the syringe minigame. A sealed bag keeps forever; once a needle goes in you have 24 hours of game time before it spoils, slowed by a freezer (x0.15) or icebox (x0.35).
NoteThe 24-hour clock starts when the bag is OPENED, not when it was made, so loot and trader stock never rot on the shelf. Saline is also the answer to a thrombus - the tablet says a clot resolves once viscosity falls far enough, and nothing else dislodges it.
Sedative Syringesedative_syringe
What it doesPuts a body under. It does not stop the pain - it removes the person feeling it. Consciousness, respiration and blood pressure all fall together, and the relief rides the opiate channel, so naloxone reverses an overdose of it.
Where it comes fromNo recipe. Weight-2 crate and pod loot, the Experiment's shelf, general traders at value 9, and the sedative FLUID is a found cave-scatter barrel (100-300 mB, Y 18-50).
In use100 mL per sealed syringe, spent as durability through the limb injection minigame. The tooltip's guidance is to start around 40 mL for a stable adult and reassess consciousness, breathing and pressure before adding more.
NoteThe one drug you cannot usefully give yourself: the procedure screen aborts below consciousness 12, so sedating yourself just leaves you unconscious on the floor with your abdomen open. Self-surgery is done awake. Sedating an already-bled patient is the mistake, because it drops pressure on top of everything else. It was added to crate loot specifically because the whole 0.2.8 surgery system was otherwise unreachable without a summon-only trader.
Slaking Vatslaking_vat
What it doesA caustic wet vat. Quicklime plus water becomes reagent base; sulfur trioxide plus water becomes acid liquor; reagent base plus opium solution becomes morphine slurry.
Where it comes fromCrafted: smooth stone around a water bucket.
In useNeeds RF. No heat requirement at all. Two 4,000 mB tanks - it takes a fluid input and returns either an item or a fluid.
NoteModerate fumes (potency 2). Contents travel with the mined block item.
Sleeping Pillssleepingpills
What it doesRight-click to swallow. Consciousness is forced down to at most 22 and you are put into a nap.
Where it comes fromNo recipe and no chemistry route. Weight-3 medical loot in locked crates and sealed pods, and general traders at value 6.
In useStacks to 16; one pill is consumed per dose.
NoteIts ItemInfo value was bumped from 0 specifically so traders would stock it - the source game priced it at nothing. Nothing in the mod crafts these, so loot and trade are the whole supply.
Sodium Nitroprusside Syringesodiumnitroprusside_syringe
What it doesA vasodilator. Injected into a limb it lowers your blood pressure by 1.2 per mL of medicine offset. This is the drug for dangerously high pressure.
Where it comes fromNo recipe. Weight-3 crate and pod loot, the Experiment's shelf, general traders at value 8, and the fluid is a rare cave-scatter barrel (50-150 mB, Y 15-45).
In use100 mL sealed syringe, spent as durability through the limb injection minigame.
NoteThe source game had this backwards and the mod deliberately corrected it to real pharmacology - do not expect it to raise pressure. Vasopressin is its exact opposite, so read the label on a body that is already reading high.
Solventreagent_solvent
What it doesA generic organic solvent used all through the chain to dissolve and recrystallize.
Where it comes fromEvaporator distils 300 mB of ethanol into 2 (700 FE, 160 ticks, heavy fume and flammable).
In useThe single most consumed reagent in the system: every Recrystallizer purification step takes one, plus the Still for cephalosporin, the Reactor for morphine, ceftriaxone and procoagulant, and the Acetylating Reagent recipe.
NoteNo ItemInfo value, so no trader route in or out.
Splintsplint
What it doesStabilises a fractured limb so it can heal. A splinted fracture knits in minutes; an unsplinted one can stay disabling for most of an hour.
Where it comes fromShapeless craft: 2 of (stick or bone) plus string or vine, yielding 2 splints. Also weight-3 crate, pod and drop-capsule loot, and general traders at value 15.
In useConsumed when applied. Once on, the brace carries its own durability (100 at a perfect fit) which decays over time; a crooked set keeps as little as 35% and a slack one 30%, and it will not hold.
NoteSnapping the brace on costs a 25 pain spike, worse on a badly hauled set. Splinting does not immediately restore function - the limb produces no useful force until it has actually healed.
Spore Capspore_cap
What it doesA dried mushroom cap from the cyst biome. It is the bacterial culture precursor - the start of the antibiotic line if you have no trader.
Where it comes fromBreak a Cyst Spore Bloom with anything other than shears: 1-2 caps, plus a Fortune bonus. Shears keep the bloom itself for building instead. The blooms are placed by the cyst grove feature down in the Deep Maw.
In use3 spore caps in a Drying Oven (400 FE, 160 ticks) become an Antibiotic Culture.
NoteNo recipe, no crate loot and no trader will touch it - it has no ItemInfo entry at all, so the cyst biome is the only source. That is deliberate: it is the reason a trip down there is worth the lungs it costs.
Sterilized Dressingsterilizedbandage
What it doesA clean, sterile wrap. A full wrap restores 30 skin integrity, leaves only 44% of the bleeding, takes 60 off the limb's pain, and disinfects the limb for 45 seconds.
Where it comes fromShapeless craft: a Ripped Dressing plus anything in the disinfectant tag. Also weight-3 crate and pod loot, weight-3 drop-capsule loot (2 per pull), the Experiment's shelf, and general traders at value 10.
In useDurability 48 is its wrap pool, spent across applications.
NoteThe 45-second disinfect window is what separates it from every cheaper wrap. There is deliberately no crafting ladder onward to Analgesic Gauze - a no-machine opiate wrap off a renewable crop would undercut the chemistry economy.
Stillstill
What it doesDistillation. Mash becomes ethanol, water becomes distilled water, and ethanol plus a glass bottle becomes alcohol.
Where it comes fromCrafted: copper and glass around a furnace, on an iron base.
In useNeeds RF and heat tier 1 to 2 - a lit brazier or open flame is enough, and two running Heaters over-fire it.
NoteIt handles flammable vapour, so it can flash to fire over an open flame or while overheating. Fumes are the worst tier (potency 3), tied with the Kiln.
Stimulant Syringestimulant_syringe
What it doesAn adrenaline and stamina shot. Injected, it runs a timed effect pouring on adrenaline, stamina and consciousness and building a speed buff.
Where it comes fromNo recipe. Weight-3 crate and pod loot, weight-3 drop-capsule loot, the Experiment's shelf, and general traders at value 12.
In use100 mL sealed syringe, spent as durability through the limb injection minigame.
NoteDose-critical: slamming a fresh full syringe buys about 360 seconds, well past the 220-second overdose line, and the overdose then crashes you. A double dose IS dangerous. Adrenaline also suppresses clotting, so a stimulant makes internal bleeding worse.
Streptokinase Syringestreptokinase_syringe
What it doesA clot-buster. Per full 100 mL syringe it drops blood viscosity by about 150 and adds about 15 sickness. It is the opposite of a procoagulant.
Where it comes fromNo recipe. Weight-3 crate and pod loot, the Experiment's shelf, general traders at value 8, and the fluid is a rare cave-scatter barrel (50-100 mB, Y 12-40).
In use100 mL sealed syringe, spent as durability through the limb injection minigame.
NoteA pulmonary embolism throws viscosity over 90 and only resolves under 50, and the tablet prescribes exactly one 100 mL syringe for it. An earlier build ran the maths at a third strength, so it could not clear the clot it was prescribed for; that is fixed. The sickness cost is real - this is a dangerous trade, not a free thinner.
Suppressantsuppressant
What it doesRight-click to blunt the active growth spurt for 5 minutes (6000 ticks). Each dose refreshes the window rather than stacking.
Where it comes fromNo recipe and no chemistry route. Weight-3 medical loot in locked crates and sealed pods, and general traders at value 12.
In useStacks to 16; one is consumed per dose.
NoteIt does nothing at all if you are not Doomed-active - you get "The suppressant does nothing to you" and keep the item. Nothing crafts these, so a transformation you want to stall depends entirely on crates and merchants.
Syringesyringe
What it doesAn empty, refillable 100 mB syringe. Fill it with a drug fluid at a barrel or a Syringe Filler, then inject it into a limb like any other syringe.
Where it comes fromNo crafting recipe of any kind. Weight-3 medical loot in locked crates and sealed pods, and general traders at value 3.
In useFilled at a Syringe Filler (10 FE per mB, 2 empties at a time) or from a barrel; emptied by injecting. It is also a hard ingredient of the Procoagulant Syringe recipe.
NoteWorth knowing before you plan around it: the ONE reusable syringe in the mod cannot be crafted, yet it is a required ingredient in a shipped recipe for the only treatment that reaches internal bleeding everywhere in the body. Blood pathogens and equipment contamination stay attached to the exact stack - an empty barrel is not automatically sterile.
Thermometerthermometer
What it doesCarry it and your exact body temperature reads out on a gauge at the bottom-left of the screen. It is a passive readout, not a treatment.
Where it comes fromShaped craft: a glass pane over redstone over an iron nugget.
In useNever consumed. It only has to be somewhere in your main inventory or your offhand for the gauge to appear.
NoteNo ItemInfo entry, so no trader stocks or buys one and it is not in any crate roster - the recipe is the only source. It does not need to be held.
Titanium Neuromechanical Prosthetictitanium_prosthetic
What it doesThe best limb replacement in the mod: about 98% function restored on an amputated arm or leg. It cannot bleed and cannot become infected.
Where it comes fromShaped craft around a Mechanical Prosthetic: 2 netherite scrap, 4 copper ingots, 2 redstone blocks.
In useDrag it onto an amputated arm or leg in the health panel. A fresh stump must be stable, clean and partly healed before one can be fitted. Once installed it wears down with use instead of healing, and needs prosthetic lubricant as upkeep.
NoteNo tooltip in en_us.json - everything you see on hover is generated by the item class. Its trade value is 180, above the 60-credit wallet cap, so NO trader can ever sell you one and none will buy it either. The recipe is the only route.
Tourniquettourniquet
What it doesClamp a limb to stop all bleeding below it. It buys you time and costs you the limb if you forget it.
Where it comes fromShapeless craft: 2 leather + string. Also a rare weight-1 durable pull from locked crates and sealed pods, the Experiment's shelf, and general traders at value 10.
In useDurability 8, one point per application, so a full strap is good for 8 uses. Removing it returns the strap with whatever condition is left.
NoteThe safe window is 9 minutes. Past that the cut-off limb starves: muscle dies, and once muscle falls under 5 the limb turns septic with infection floored at 10. Total time to a dead limb is about 14 minutes, so there are five full minutes after necrosis visibly begins in which taking the strap off still saves it. A limb lost to a tourniquet leaves a dry stump that does not haemorrhage.
Tweezerstweezers
What it doesHold them and click a limb with foreign material embedded in it to open the extraction minigame and pull the shrapnel out.
Where it comes fromShaped craft: 2 iron nuggets over an iron ingot. Also general traders at value 10.
In useA reusable tool with no durability. Never consumed.
NoteDisinfect the limb first - filth can seed an infection during the extraction itself. These were trade-only for a while, which players could not discover; the recipe exists now. Not in any crate or pod loot roster.
Unwashed Activated Carbonactivated_carbon_unwashed
What it doesA chemistry intermediate, not a medicine. It is chemically activated carbon still carrying corrosive residue, and it does nothing if you hold it or click with it.
Where it comes fromKiln process: 2 charcoal + 1 reagent base, 1600 FE over 220 ticks, yields 2. The run puts out fume 2.0 and corrosive 2.
In useFilter Press with 500 mB distilled water (900 FE, 180 ticks) turns 2 of these into 2 Activated Charcoal plus 350 mB waste filtrate.
NoteNo ItemInfo value is registered for it, so no trader will ever stock it. The wash is the only thing it is for.
Vapour Cartridgevapor_filter
What it doesA replacement organic-vapour and acid-gas cartridge for a gas mask. Right-click it while wearing the mask to install it.
Where it comes fromShaped craft: 5 iron nuggets, 4 charcoal, 1 paper.
In useConsumed on install. It gives the mask 2,400 units of capacity, spent only by the hazard it actually matches.
NoteNo tooltip in en_us.json - the hover text is generated by the item class. It is a fifteenth of the Particulate Cartridge's 36,000 capacity, so vapour protection runs out far faster than dust protection. The facepiece alone provides no chemical protection at all; without a cartridge installed the mask does nothing against gas. No ItemInfo entry, so no trader stocks it.
Vasopressin Syringevasopressin_syringe
What it doesA vasopressor. Injected into a limb it raises your blood pressure by 1.2 per mL of medicine offset.
Where it comes fromNo recipe. Weight-3 crate and pod loot, the Experiment's shelf, general traders at value 8, and the fluid is a rare cave-scatter barrel (50-150 mB, Y 15-45).
In use100 mL sealed syringe, spent as durability through the limb injection minigame.
NoteThe exact opposite of sodium nitroprusside, and the tablet warns about this by name: giving vasopressin to a body already reading high pressure makes it worse. The source game had the pair mapped backwards; the mod corrected them to real pharmacology.
Wet Wipeswet_wipes
What it doesRight-click to rinse off without water. Removes a fixed 24 from your dirtiness. Portable hygiene, not a wound antiseptic.
Where it comes fromShapeless craft: soap + paper + a water bottle, yielding 6 wipes.
In useStacks to 16; one wipe is consumed per use. It refuses if you are already clean (dirtiness at or below 0.5).
NoteNo tooltip in en_us.json. Weaker than soap, which zeroes dirtiness outright, but soap needs you to be standing in water, rain or bubbles and a wipe does not. No ItemInfo entry, so no trader deals in them.
Wound Glue Syringewoundglue_syringe
What it doesA topical sealant applied to one limb. A full 100 mL restores 50 skin and 25 muscle on that limb, cuts its infection by 25, disinfects it for 300 seconds, and takes 10% off its pain.
Where it comes fromNo recipe. Weight-3 crate and pod loot, the Experiment's shelf, general traders at value 8, and the fluid is a cave-scatter barrel (50-150 mB, Y 12-40).
In use100 mL sealed syringe, spent as durability through the limb injection minigame.
NoteIt thickens the blood by 15 viscosity at a full dose and adds a little sickness, so it is not free. The 5-minute disinfect window is the longest of any topical - considerably better than a sterilized dressing's 45 seconds.
Wound Staplerwoundstapler
What it doesA spring-loaded surgical stapler. Drag it onto a deep wound to close it instantly, the way a suture does but without the wait.
Where it comes fromShaped craft: 3 iron ingots, 2 iron nuggets, 1 redstone.
In useDurability 12, so about 12 staples per unit.
NoteFaster and dirtier: it stings hard and knits the skin rougher than a stitch. A clean suture still heals best - reach for the stapler when you do not have the time, not when you have a choice. No ItemInfo entry, so no trader stocks it, and it is not in any crate roster.
Woundwort Leafwoundwort_leaf
What it doesA broad silver-green leaf and the base of the herbal poultice line. It is also a seed - plant it on temperate ground.
Where it comes fromForage wild Woundwort, which the surface scatter feature places in patches of 3-6 across temperate grassland (the middle temperature band, between bittermoss country and feverbell country). A foraging knife doubles the pull to 2 leaves. Planted crops give the leaf back at any age and roll 1-2 extra when mature, with Fortune applying.
In useGrind it in a placed Pestle and Mortar to get Woundwort Paste, 1 for 1. It is also an ingredient in the Cigarette Pack recipe.
NoteBreaking an immature crop always returns the leaf, so planting in the wrong climate never costs you the seed - the mature bonus roll is the entire reward for farming it. Local Heaters and Coolers can hold its temperature band artificially.
Woundwort Pastewoundwort_paste
What it doesThe ground form of woundwort. It is a crafting intermediate, not something you apply directly.
Where it comes fromGrind a Woundwort Leaf in a placed Pestle and Mortar, 1 for 1, through the grind minigame. No other source - it is not in any crate or pod roster.
In use2 paste plus a Ripped Dressing makes a Herbal Poultice. One paste plus feverbell powder, bittermoss pulp and a glass bottle makes a Herbal Tonic.
NoteNo tooltip in en_us.json. Traders will deal in it at value 3, but nothing generates it as loot, so the pestle is the real supply.
Wrenchwrench
What it doesUse it on a dislocated joint to reduce it in one motion: no minigame, a guaranteed seat, no pain and no fracture risk. It is the safe alternative to the risky by-hand reduction.
Where it comes fromShaped craft: 5 iron ingots in an open-jaw shape. Also general traders at value 15.
In useA reusable tool with no durability. Never consumed.
NoteIt does two other things nobody tells you about. Carried, it marks the stable circuit when you are defusing a landmine. And held while you select a broken prosthesis in the health panel, it services that prosthesis - the repair a fully seized limb needs, which lubricant alone will not fix. Was trade-only before the recipe existed. Not in any crate loot roster.

Not indexed

  • battery_recharger
IDX-03

Block Index

Placed blocks, what they do, and what they need to do it - power, heat, or a fluid.

Banana Peelbanana_peel
What it doesA peel on the floor that only catches you if you are actually moving. Hit it at speed and your feet fly out into a hard forward faceplant: a fling in your direction of travel, a slam into the ground, and light pain split across both hands and your head. Walk over it slowly and nothing happens.
Where it comes fromNo crafting recipe. Creative tab, and trader stock (registered as trap goods at value 2).
In useCollisionless, so you walk over it. Instant to break and it drops itself. One wipeout per second per player, no matter how many peels you skid across.
NoteThe slip check uses your real position change this tick, not delta movement, so a standing player is safe. A slow pass does not burn the block's cooldown. No lasting wound. Disabled entirely by the traps-damage config toggle.
Batch Blending Barrelfluid_barrel
What it doesA 16,000 mB tank that homogenizes compatible fluid batches. It averages purity, chemical carryover and microbial load by volume, so several graded lots become one truthful combined lot.
Where it comes fromCrafted.
In useRight-click with a bucket or the refillable syringe to fill the container from it or empty into it. It exposes fluid handling on every face, so pipes and conduits connect anywhere. No power needed.
NoteOrdinary Forge tanks treat a quality record as part of fluid identity, so they can accept your first graded batch and then REFUSE a later batch of the same named fluid. That is a storage limitation, not a blocked pipe. Route repeated chemistry output through here first. A player-placed barrel keeps its complete contents when recovered; one authored into worldgen does not drop itself. Has a WITNESS wiki page.
Battery Rechargerbattery_recharger
What it doesA powered charging station. Right-click to open its GUI and slot spent batteries, the auto-pump or the defibrillator, and it tops them up at 256 FE per tick each.
Where it comes fromCrafted: iron ingots, copper ingots, a redstone block and redstone in a shaped recipe. Also found in worldgen structures.
In useNeeds FE fed in from cables. Your first recharge here gifts you an mp3 player. Its contents travel with the block item when mined, restored on placement.
NoteTagged nonrecoverable_when_generated: a copy placed by worldgen drops nothing when you break it. Only ones you place yourself are recoverable.
Bear Trapbear_trap
What it doesJaws laid flat on the ground. Walk into it and they snap shut once on a leg: maxed pain on that limb, a coin-flip fracture, deep crush damage and bleed, and it pins you in place with heavy slowdown for about 5 seconds.
Where it comes fromNo crafting recipe. Cave worldgen scatter at every depth band, denser the deeper you are, plus trader lair dressing and trader stock.
In useCollisionless, so you walk into its cell rather than onto it. After it bites it stays sprung forever and never fires again. Break it and re-place it to re-arm.
NoteThe sprung state has its own clamped-jaw sprite, so a spent trap is visually distinguishable from an armed one. Armor reduces the damage and the fracture chance.
Bittermossbittermoss
What it doesThe wild medicinal moss bush. Harvest a mature plant for a bittermoss clump, which grinds into pulp for a bandage or becomes bittermoss wash, the early antiseptic.
Where it comes fromWorldgen in cold biomes via SurfaceScatterFeature. A cutting you place yourself starts at age 0 and needs two growth transitions.
In useHarvest with a foraging knife for double clumps, plus a chance to recover the plant itself. Only a mature (age 2) plant yields a clump.
NoteDeliberately no bonemeal interface. It needs sustained cold and real cover: night darkness is not shade, the check is sky exposure, so a powered Cooler can supply the cold but never fake the canopy. Growth also stalls if too many mature plants are already within 5 blocks.
Bittermossbittermoss_crop
What it doesThe cultivated, farmable version of bittermoss. Four growth stages; a mature plant yields extra clumps on top of the one you always get back.
Where it comes fromPlant a bittermoss clump on farmland, dirt, grass, coarse dirt, podzol, rooted dirt or moss.
In useBreak it at any age and you always get your clump back. A mature plant rolls 1 to 2 extra, Fortune-affected.
NoteCold band and shade required. Planting it in the wrong climate is a refusal, not a death: it sits at stage zero rather than vanishing, so bad siting costs time, never the seed. Bonemeal obeys the same climate gate. A powered Cooler can maintain the band.
Braided Cyst Rootscyst_root_mat
What it doesThe denser ground substrate of the cyst jungle. A plain full block with no behaviour.
Where it comes fromCyst grove worldgen lays it as the grove floor where cover is heaviest, and it is also what an exhausted Rooted Cadaver collapses into.
In useDrops itself when broken.
NoteSeeing fresh root mat where a body used to be means that cadaver has already spent its entire brood.
Brazierbrazier
What it doesA fuel-burning brazier, the early heater with no power requirement. Right-click it with any furnace fuel to feed the fire; while lit it emits warmth that the temperature simulation reads to warm a nearby player. Right-click empty-handed to check the fuel left.
Where it comes fromCrafted: iron ingots around a coal. Also found in worldgen structures.
In useNeeds fuel, not FE. Any furnace fuel works. A Netherite Block becomes an eternal core and burns forever.
NoteIts basket renders the fuel actually burning. It also satisfies the heat requirement for the Reactor and Drying Oven placed beside it. Tagged nonrecoverable_when_generated, so worldgen copies drop nothing.
Caboose Landminecaboose_landmine
What it doesA deliberately unfair advanced mine. Five times the ordinary mine's damage radius and terrain radius. Its recessed casing copies the top-face texture of the block beneath it, so only the small raised pressure mechanism is visible.
Where it comes fromCrafted: one ordinary landmine, four TNT and iron nuggets. Trader stock at value 60.
In useArming, defusal and fuse rules are the ordinary mine's. The standard defusal panel still works if you spot the trigger first.
NoteSurviving inside its blast envelope grants the Caboose advancement. The camouflage is a block-entity renderer, so the disguise updates with whatever it is sitting on.
Caltropscaltrops
What it doesA scatter of small spikes on the floor. Step on them and one punctures a foot: a cut, a trickle of blood, sharp pain and a brief limp. Milder than a spike trap, but spread thin they make a whole corridor hostile to cross.
Where it comes fromNo crafting recipe. Cave worldgen scatter in the upper and mid depth bands, plus trader stock at value 6.
In useCollisionless. Bites on a short cooldown per block position, so standing on them does not shred you continuously.
NoteHits the feet specifically, never a random limb. Footwear armor reduces it.
Centrifugecentrifuge
What it doesAn RF machine that spins a mixed drug solution back into its component fluids. Pipe a solution into the input; while powered it separates one component every 2 seconds or so, 2,000 FE each, into the output.
Where it comes fromCrafted: iron ingots, a redstone block and a blast furnace. Also found in worldgen structures.
In useNeeds FE and a fluid input. Right-click with a bucket to fill the input or drain the output, or right-click empty-handed for the GUI. Faces can be set to input or output.
NoteDescribed in the recipe file as the first machine that needs real power. Tagged nonrecoverable_when_generated, so worldgen copies drop nothing.
Chemistry Reactorreactor
What it doesThe RF machine at the heart of drug synthesis. Reagents in three slots plus a precursor fluid in the input tank become a drug fluid in the output tank.
Where it comes fromCrafted: copper and iron blocks around obsidian, with redstone blocks.
In useNeeds RF (64,000 FE buffer, up to 2,048 FE/tick in) and heat tier 1 to 3 from an adjacent lit brazier or running Heater. A cold vessel reacts not at all. Output feeds a pipe or the Syringe Filler.
NoteIt runs volatile reactions: flammable at any time, and the high-energy deep syntheses (5,000 FE and up) are violent enough to detonate over an open flame or while over-fired. It keeps its contents when mined.
Collapsed Pressure Vesselcollapsed_pressure_vessel
What it doesDeliberately inert scenery for the failed facilities in the Cyst biome. It faces the direction you place it and does nothing else.
Where it comes fromCyst-biome worldgen structures (the machine bay and archive templates), plus the creative tab.
In useDrops itself when broken.
NoteTagged nonrecoverable_when_generated: a copy the world generated drops nothing when broken. Only the ones you place are recoverable.
Coolercooler
What it doesAn RF cooler. Feed it from a cable and while powered it glows and chills nearby players through their clothing. A full buffer runs about 4.5 minutes.
Where it comes fromCrafted: iron ingots, redstone and packed ice. Also found in worldgen structures.
In useNeeds FE and does not generate any of its own. A fresh crafted one starts empty. Right-click to read its current charge against its capacity.
NoteIts charge rides the block item when you mine it, so a charged unit is portable. It also counts as local climate for cultivated herbs: a powered Cooler can hold a bittermoss patch in its cold band, though it cannot substitute for shade. Tagged nonrecoverable_when_generated.
Cyst Creepcyst_creep
What it doesA flat creeping growth that clings to any face of a block, the cyst biome's version of glow lichen. Purely decorative ground cover; it emits no light.
Where it comes fromCyst grove worldgen dresses cavern surfaces with it.
In useDrops itself when broken.
NoteIt uses the vanilla lichen class with the light level forced to 0, so unlike glow lichen it does nothing for visibility. Being a multiface block, it can spread across faces.
Cyst Cup Fanscyst_cup_fans
What it doesA pass-through cave-floor plant of the cyst jungle. Purely foliage; it does nothing when you walk through it.
Where it comes fromCyst grove worldgen scatters it across grove floors.
In useInstant to break and drops itself.
NoteUnlike the surface herbs it roots on ANY solid floor, including stone and deepslate, and in full darkness. Unlike its two sibling plants it does not yield cyst fibre; it only ever drops itself.
Cyst Eyecyst_eye
What it doesAn immobile organ growing on cave rock that sweeps a spotlight across the dark. Carrying a light biases the sweep toward you. Let the beam land on you and something further down the cave is told exactly where you are.
Where it comes fromCyst grove worldgen mounts it on grove walls and ceilings. A creative Cyst Ear item places the same block in its ear state.
In useUse flint and steel or a fire charge directly on it to burn it out: it goes blind and stops sweeping without raising the alarm. Shooting it puts the lens out for a while and drops something semi-edible. Breaking it by hand or tool makes it look straight at you first.
NoteBurning is quiet but not free: the smoke is toxic and it carries, drawing the Deep Maw toward the smell rather than toward you. A burned-out eye is left standing, dark and dead, so a cleared pocket looks cleared. The EAR variant hears you through stone and only turns nearby eyes toward the noise; it never reports to the Maw. Being heard costs you the room, being seen costs you the cave.
Cyst Mosscyst_moss
What it doesThe soft ground substrate of the cyst jungle. A plain full block with no behaviour.
Where it comes fromCyst grove worldgen lays it as the grove floor wherever cover is thinner.
In useDrops itself when broken.
NoteNo block entity by design, so worldgen can place hundreds without creating a ticking jungle. Cultivated herbs will root on it.
Cyst Root Ribcyst_root_rib
What it doesA rotatable pillar of exposed root, used as structural dressing in the cyst jungle. Pass-through, so it does not block movement.
Where it comes fromCyst grove worldgen.
In useDrops itself when broken.
NoteNo collision, so a wall of ribs looks solid but you can walk straight through it.
Cyst Spore Bloomcyst_spore_bloom
What it doesA ceiling organ that fills the air below it with drifting spore particles, making the cavern's spores local and physical instead of a flat screen tint.
Where it comes fromCyst grove worldgen hangs it from cavern ceilings.
In useBreak it with anything other than shears and it yields 1 to 2 Spore Cap, Fortune-affected. Shears recover the bloom itself.
NoteThe particles are display-only. Illness, detection and ecology are separate server-side systems, so removing a bloom cleans up the view without making the air safe. It breaks and drops if the block above it is removed.
Cyst Water Filmcyst_water_film
What it doesA lily-pad style film that sits on the surface of grove water. Inert scenery with lily-pad behaviour.
Where it comes fromWorldgen: CystGroveFeature lays it over grove pools. Drops itself.
In useBreak it, or break the water under it.
Cyst-Infiltrated Stonecyst_stone
What it doesPlain building stone, the bulk floor and wall material of the Cyst grove. It has no behaviour at all - no block entity, no tick, nothing that reacts to you.
Where it comes fromWorldgen: CystGroveFeature lays it as the grove's substrate. Breaks and drops itself with a pickaxe.
In usePurely a building block. Deepslate-grade strength (3.0 hardness, 7.0 blast resistance).
NoteOne of a family of Cyst blocks deliberately built without block entities so worldgen can place hundreds without creating a ticking jungle.
Deactivated Landminedeactivated_landmine
What it doesThe inert husk left behind by a landmine you successfully defused. It never arms, never explodes, and has no collision, so walking over it does nothing.
Where it comes fromOnly ever produced by a successful defusal (LandmineBlock.resolveDefusal). There is no item and no recipe for it.
In useRight-click it to strip the fuse: 4 iron nuggets and 2 to 4 gunpowder come out and the husk disappears.
NoteThe salvage is a deliberate net metal LOSS - you recover the gunpowder, not the casing. Splitting the defusal from the payout is the point: dropped items trip a live mine's plate, so you can clear a whole cluster first and only then walk round collecting.
Dead Archive Terminaldead_archive_terminal
What it doesDirectional, deliberately inert scenery for a failed Cyst-biome facility. It cannot be read, opened or powered - it is a prop.
Where it comes fromAvailable from the Doomed creative tab. No crafting recipe and no worldgen placement exists in the code.
In useBreak it and it drops itself.
NoteTagged nonrecoverable_when_generated, so a worldgen-authored copy would not drop itself even though a placed one does.
Decon Stationlifepod_console
What it doesRight-click runs a decontamination shower: scrubs off all grime, disinfects every limb for two minutes, soaks you for about three seconds. Sneak-right-click cycles a heater between HOT, COLD and OFF, which eases the body temperature of players within six blocks.
Where it comes fromCave worldgen below Y 63 (rolled against the Sealed Pod) and inside trader lairs.
In useNeeds RF. 5,000 FE per shower and 6 FE per ten-tick sample while heating or cooling, out of a 25,000 FE buffer fed by cables. A freshly placed console starts with a full reserve.
NoteOnly a Doomed character can use it. The heater has no lit blockstate, no GUI and no motor sound, so the actionbar line "Heater: HOT/COLD/OFF" is the only acknowledgement you get. A generated one drops no item.
Drop Capsuledrop_capsule
What it doesA crashed steel and hard-glass supply pod. Right-click a sealed one to open a multi-stage defusal-style crack; get it right and the pod opens and spills its supplies.
Where it comes fromWorldgen crash-lands them in caves under a ceiling breach. A block item exists but has no recipe.
In useTearing it open ARMS it and stamps an absolute server-side detonation time. Solve the panel and it opens. Strike out, or let the clock run out, and it detonates a 7-block blast: big, cratering, but survivable. Unclaimed loot is simply lost.
NoteThe countdown cannot be paused by closing the screen, relogging or walking away, and the chunk is pinned loaded so the blast lands on schedule. Breaking any part of a sealed, armed capsule detonates it instead of mining it. A last-3-seconds cookout warning fires before the deadline.
drop_capsule_reservationdrop_capsule_reservation
What it doesAn invisible, collisionless marker with no name and no model. It exists only during world generation, to hold a landing area empty for an incoming drop capsule.
Where it comes fromPainted by CaveScatterFeature in a 5x5 by 6-tall block around a capsule's crash target. Never obtainable - no block item, no loot table.
In useThe settling capsule entity replaces the markers when it lands.
NoteIts whole job is to keep later decoration passes out of the crash site. If you ever see one it is worldgen debris.
drop_capsule_shelldrop_capsule_shell
What it doesThe invisible collision and interaction cell that makes up the 3x3x5 body of a drop capsule. Every face routes your click and your pickaxe back to the one real capsule block.
Where it comes fromCreated as part of a drop capsule structure. No block item, no loot table, never obtainable.
In useRemoved with the capsule it belongs to.
NoteBreaking a shell of a SEALED, ARMED capsule detonates the pod rather than mining anything. Side cells only collide on the inward slice the hull actually occupies, so the tapered top corners are walk-through.
Drying Ovendrying_oven
What it doesDries wet solids. Turns poppy latex into raw opium and dries damp morphine, heroin and precursors.
Where it comes fromCrafted.
In useRight-click opens the shared machine GUI. Needs FE and low heat - put a brazier or a heater beside it. Set faces to input and output for automation; a comparator reads its heat tier so you can throttle before a recipe overheats.
NoteItem-only: it has no fluid tanks and no fluid auto-pull, so it cannot jam its tank with a fluid it never uses. Mild fumes. Contents travel with the mined block. A worldgen-authored one does not drop itself.
Electrified Coilcoil
What it doesA live contact hazard. Stray into it and it convulses your whole body: burns and maxed pain on every limb, motor shock 100, consciousness dropped to zero, core temperature up 5, and it flings you off. It also routes through the cardiac system and seeds fibrillation.
Where it comes fromNo crafting recipe. Cave worldgen scatter in the deep band, trader lair dressing, and trader stock at value 14.
In useCollisionless, so you walk into its cell. About 30 seconds to re-arm after it fires.
NoteOrdinary armor does not protect you: current through the body is not impact damage, so defense points are ignored by design. Shock severity was cut from 90 to 62 after a report that it was near-instant death, so it no longer stops the heart on contact, but a second touch or poor vitals can still escalate to arrest. Touching it grants the 1.21 Gigawatts advancement.
Feeler Frondscyst_fronds
What it doesA pass-through cave-floor plant of the cyst jungle. Foliage only, no contact effect.
Where it comes fromCyst grove worldgen scatters it across grove floors.
In useBreak it with anything other than shears and it yields 1 to 2 Cyst Fibre, Fortune-affected. Shears recover the plant itself for building.
NoteCyst Fibre twists into cord and packs into a filter, so the fronds are the renewable source for a dust mask made underground. Roots on any solid floor in the dark.
Feverbellfeverbell
What it doesA wild warm-ground medicinal herb. Harvest it for a Feverbell Flower.
Where it comes fromWorldgen: SurfaceScatterFeature scatters it in warm biomes.
In useBreak it for one Feverbell Flower, or two if you break it with a foraging knife. Grind the flower in a placed Pestle and Mortar for Feverbell Powder, then craft the bitter chew - a non-opioid painkiller with no breathing risk and no overdose.
NoteThe wild bush and the farmable Feverbell crop are two different blocks with the same display name. This one is the forage version and never grows or spreads.
Feverbellfeverbell_crop
What it doesThe farmable version of feverbell - a four-stage crop rather than a wild bush.
Where it comes fromPlant a Feverbell Flower on farmland, dirt, grass, coarse dirt, podzol, rooted dirt or moss.
In useBreak it at any age and you always get your flower back; a fully grown one rolls 1 to 2 extra on top.
NoteIt only grows above the warm temperature threshold. In the wrong band it goes DORMANT rather than dying, so bad siting costs time and never your seed, and bonemeal obeys the same rule. A powered Heater holds the band for an engineered patch.
Freezerfreezer
What it doesPowered cold storage, and the real answer to food rotting in containers. While it has FE, time does not pass for the food inside - zero spoilage.
Where it comes fromCrafted.
In useRight-click to open it. Feed it FE from cables. Unpowered it is only as good as an insulated chest.
NoteIts contents travel with the block item when you mine it. A worldgen-authored one does not drop itself.
Frost-Fernfrost_fern
What it doesA cold-climate ground fern. Harvest it for fern fibre, the crafting material for insulation gear and the hot-drink and cold-pack.
Where it comes fromWorldgen: SurfaceScatterFeature places it where the cold is worst (biome temperature under 0.3).
In useBreak it for 1 to 2 fern fibre.
NoteThe resource sits next to the threat it protects against - you gather your insulation in the place that is freezing you.
Fuel Generatorfuel_generator
What it doesBurns ordinary furnace fuel and pushes FE into whatever it touches. This is the mod's ONLY source of power - every powered machine here needs one.
Where it comes fromCrafted.
In useRight-click to open it and load fuel. It lights up and glows at light level 13 while burning.
NoteIt carries the vanilla LIT state, so the temperature system's radiant-heat tag treats a running generator as the lit furnace it effectively is - it warms you. A worldgen-authored one does not drop itself.
Fume Hoodfume_hood
What it doesRF ventilation. While powered it vents the acrid fumes from nearby running chemistry machines, so you can work indoors without a mask.
Where it comes fromCrafted.
In useFeed it from a cable; it makes no power of its own. Right-click to read its current charge in FE.
NoteIt reuses the Heater and Cooler block entity internally, but the temperature simulation deliberately ignores it - a hood will not warm or chill you. Its charge persists and rides the block item when mined. A worldgen-authored one does not drop itself.
Glowcapglowcap
What it doesA damp, faintly glowing cave-floor growth (light level 6). Renewable food and water underground.
Where it comes fromSparse, config-gated worldgen in CaveScatterFeature. It grows on ANY solid cave floor and in the dark, unlike the surface herbs which only root in dirt or grass.
In useBreak it for a Glowcap Clump, or two with a foraging knife. Eat the clump for a little food and water, or grind it in a placed Pestle and Mortar into pulp for a bandage.
NoteDensity is controlled by the caveFloraDensity config value.
Grabber Plantgrabber_plant
What it doesA fleshy tentacle on a stalk. Its animated arm feels around a 5-block disc, and if the tip finds you it wraps around you, lifts you off the ground and throws you aside.
Where it comes fromSurface worldgen: SurfaceScatterFeature. There is a block item but no recipe.
In useStone stops it - it cannot pull anything through a wall. Right-click with flint and steel or a fire charge, or hit it with a flaming arrow, to set it alight.
NoteA burning plant does not stop immediately; it loses its search rhythm and whips through the same reach far faster until it dies, so light it from a distance and wait. Killing it does not give you a placeable one - it drops 1 to 2 rotten flesh, which counts as contaminated food and is honestly only good for antibiotic culture.
Gun Turretgun_turret
What it doesA laser-tripwire sentry mounted on any sturdy surface. Faint red beams project from all six faces to the nearest wall; cross one and it fires a rifle round down that barrel almost at once.
Where it comes fromWorldgen: CaveScatterFeature mounts them in caves. No recipe.
In useWalls stop the round, and dodging the beam makes it miss. It takes 15 s to re-arm after firing. Breaking it drops one iron ingot.
Note25 HP of damage to a vanilla player. It has no fixed facing - muzzles on all four sides mean it fires whichever way the target is. Half the break time of the other steel blocks.
Gunminegunmine
What it doesA tripwire gun set into the floor with no collision, so nothing warns you. Walk into it and it fires a rifle round into you - a real penetrating bullet wound with embedded shrapnel, routed through the gun-wound system.
Where it comes fromWorldgen underground only; the surface gets grabber plants instead. Also craftable-adjacent as a placeable block item from the creative tab.
In useAfter firing it has to cycle the action, a long 6 second (120 tick) cooldown before it can fire again. Breaking it drops one iron ingot.
NoteThe cooldown is tracked per position and per dimension, so two mines in different dimensions at the same coordinates no longer share a timer.
Hanging Cyst Vinecyst_vine
What it doesA hanging strand that grows down from a sturdy ceiling. You walk straight through it - it is deliberately pass-through so a choked grove does not turn every step into collision.
Where it comes fromWorldgen in the Cyst grove, or place it yourself under any sturdy face. Drops itself when broken.
In useBreak it, or remove what it hangs from and the whole strand pops.
NoteOnly the exposed tip of a PLAYER-PLACED strand random-ticks and grows downward. Naturally generated curtains never grow, so they stay exactly as worldgen authored them. A vine can also be told to twitch briefly by the Maw ecology sampler.
Heaterheater
What it doesAn RF heater. While powered it glows at light level 13 and warms nearby players through their clothing.
Where it comes fromCrafted.
In useFeed it from a cable - it makes no power of its own, and a freshly crafted one starts empty. A full buffer runs about 4.5 minutes. Right-click to read its charge in FE.
NoteThe charge persists to NBT and rides the block when you mine it, so carry it charged. It also doubles as climate control for farming: a powered Heater can hold the warm band a cultivated feverbell patch needs. The non-RF early alternative is the fuel Brazier.
Iceboxicebox
What it doesAn unpowered cold box. Stock its fuel slot with snow or ice and everything in the nine food slots rots at a tenth of the normal rate while the ice lasts.
Where it comes fromCrafted: eight planks around a snow block.
In useRight-click opens the GUI. Snow burns through fast, blue ice lasts hours. Mine it and the contents travel with the block item.
NoteNo RF anywhere near it - the block entity hides the energy bar in its menu. The Freezer is the powered tier above it.
Irradiated Crystalcrystal_irradiated
What it doesA hot radioactive crystal. It irradiates anyone within about 8 blocks, strongest at point-blank, once per second. Doomed characters take radiation sickness: nausea, brain drain, tissue slough, internal bleeding. Non-Doomed players take poison instead.
Where it comes fromDeep cave worldgen. About 1 region in 20 is a radioactive-crystal cavern, and clusters of 3 to 6 shards also generate in big caves below the halfway depth. A sparse trail of lone shards telegraphs an approaching cavern.
In useDrops itself when mined. Getting out of range is the only mitigation the block itself offers.
NoteConnected crystals pool into one field: only the cluster leader emits, with its point-blank strength multiplied by the cluster size (capped at 6) and its radius grown to match. A lone shard is mild; a 6-plus formation is a lethal hot zone. Waste drums do not cluster and emit a milder field each.
Jump Padjump_pad
What it doesStep into it and it hard-sets your upward velocity, ragdolls you and pulls a fallscream out of you. Roughly a twenty-block launch.
Where it comes fromCreative tab only. No recipe and no worldgen feature places one.
In useFifteen-second re-arm. It blinks about five times a second while cooling down and goes solid-lit the instant it is ready again. Break it to pick it up.
NoteOnly players launch; the pad ignores mobs entirely. It is collision-less, so you walk into the cell rather than onto a plate.
Landminelandmine
What it doesA pressure mine. Any entity that walks into the cell arms it, and 0.8 seconds later it detonates - a real terrain-breaking blast plus the full per-limb Doomed explosion wounds.
Where it comes fromCrafted (stone pressure plate, TNT, iron ingot). Also deep-cave worldgen, and rare surface minefields of about fifteen clustered mines.
In useSneak-right-click an unarmed mine to open the defusal panel: ninety seconds of probe charge, then cut one of four wires. A wrong cut detonates it. Breaking or shooting a live mine sets it off.
NoteA correct cut leaves a Deactivated Landmine husk you right-click to salvage, rather than popping loot items onto an adjacent live mine. Carrying a Wrench or a Lockpicking Kit sharpens the electrical clue. A mine may settle one block safely; a two-block drop jars the fuse and blows it.
Live Wirelive_wire
What it doesExposed, sparking wiring strewn across a cave floor. Straying onto it shocks you at moderate severity: contact burns, a muscle-locking jolt, and a fibrillation you can usually ride out.
Where it comes fromMid-depth ("derelict") and deep ("irradiated") cave worldgen.
In useGet off it. It re-zaps roughly every 1.5 seconds, so lingering - especially while a jolt has you collapsed - stacks burns and arrhythmia until it can stop your heart. Break it to pick it up.
NoteCollision-less, so you walk into its cell like the other contact traps. Far weaker per hit than the Electrified Coil, but it keeps hitting.
Locked Cratelocked_crate
What it doesA loot crate you crack with the lockpicking minigame. Right-click opens the lockpick screen; solving the lock spills the loot and consumes the crate.
Where it comes fromCave-floor worldgen at any depth (a common find, not depth-gated) and inside trader lairs.
In useWith a Lockpicking Kit and INT 10 or better you pick it open. Below INT 10 you are forced to bare-claw it, which hurts your hand.
NoteA vanilla (non-Doomed) player has no lockpick UI and simply pries it open for mundane valuables - iron, gold, emerald, never diamonds. The server records which crate you opened the minigame on, so a forged "solved" packet cannot crack a crate you never picked. Generated crates drop no item.
Opium Poppyopium_poppy
What it doesAn eight-stage crop. A mature pod drops poppy latex plus seeds; the latex dries into raw opium, the base of the opioid synthesis line in the Chemistry Reactor.
Where it comes fromPlant Opium Poppy Seeds, or find wild mature patches of three to five in temperate grassland.
In useGrows on farmland, dirt, grass, coarse dirt, podzol, rooted dirt, dirt path or moss - a hardy field poppy, not a hothouse crop.
NoteWith opioids switched off in config the plant still stands and still grows but drops absolutely nothing, and worldgen stops seeding new patches. Nothing already placed is deleted - it just stops paying.
Oxygen Compressoroxygen_compressor
What it doesA powered station that refills a spent rebreather. Right-click to open it, slot a drained Rebreather, and it compresses its RF buffer back into the tank's oxygen over a few seconds.
Where it comes fromCrafted: iron and copper around a piston, a cauldron and a redstone block. Also placed in trader lairs.
In useNeeds RF and does not generate any. 8 FE per oxygen tick (about 48 FE/tick), roughly 7,200 FE for a full tank in about 7.5 seconds, from a 64,000 FE buffer. Cables push in from any side.
NoteIt writes the rebreather's NBT oxygen charge rather than pushing FE into the item. Contents travel with the block item when mined; a lair-generated one drops nothing.
Pestle and Mortarpestle_mortar
What it doesThe early-game herb mill. Right-click it holding a grindable herb to open the grinding minigame - stir the pestle in circles and it grinds the held herb into its usable form.
Where it comes fromCrafted: stone and a stick.
In useNo power, no fluid, no block entity. This is where woundwort leaf, feverbell flower, bittermoss clump and glowcap clump become paste, powder and pulp.
NoteIt overrides the stone tool requirement it inherited, so a bare hand breaks it at full speed and the drop actually fires - before that fix the loot table was fine but never ran.
Radioactive Waste Barrelradioactive_barrel
What it doesA leaking drum that bathes everything nearby in an invisible radiation field with inverse-square falloff. Standing near it stacks radiation sickness: nausea, brain drain, tissue slough, internal bleeding.
Where it comes fromDeep cave worldgen in large caverns (past about half depth), rolled against the crystal formations.
In useDistance is the whole defence - the field falls off with the square of the range. There is no switch and no shielding block.
NoteThe Irradiated Crystal reuses this same block class, so it emits the same aura. A generated drum drops no item when broken.
Rooted Cadavercyst_rooted_cadaver
What it doesThe final immobile stage of the cyst corpse cycle. It matures visibly through four stages, then releases a strictly finite brood of Cyst Dispersal Larvae, one at a time, before exhausting into ordinary root mat. Right-click to search it for medical supplies.
Where it comes fromCyst grove worldgen seeds them across the biome, and a motile Cyst Carrier that finally roots becomes one.
In useBreaking it at any point interrupts the cycle and is the fast way to stop the brood. Searching it once flips it to searched and it yields nothing further.
NoteNo contact damage: the danger is the brood release, not the block. Searching or breaking it makes every Doomed player within 6 blocks see a corpse, which hits their mental state. Loot varies by the body's attire state, and the attire is a visual context only, not a lore claim. Larvae will not spawn if the local motile population is already at cap or if creature spawns are restricted in that dimension.
Ruptured Process Unitruptured_process_unit
What it doesInert scenery - a burst piece of chemical plant from a failed Cyst-biome facility. It faces the way you place it and does nothing else.
Where it comes fromPlaced by the underground Cyst payoff structures. Also available in the creative tab; there is no crafting recipe.
In usePurely decorative. Break it to recover it - unless worldgen placed it, in which case it drops nothing.
NoteOne of three matching ruin props with the Collapsed Pressure Vessel and the Dead Archive Terminal. No block entity, so a structure can place many without creating a ticking load.
Sawbladesawblade
What it doesA spinning blade mounted in the floor. Walk into it and it chews whatever limb touched it: a deep, very bloody cut and a bodily fling away from the blade. The cruelest of the contact traps.
Where it comes fromMid-depth ("derelict") and deep ("irradiated") cave worldgen.
In useIt bites on a twelve-tick cooldown rather than shredding every tick, so getting clear fast is survivable. Break it to take it with you.
NoteOnce it has cut someone it stays bloodied permanently and never goes clean again - a bloodied blade is a used one. Collision-less, so you walk through the discs.
Sealed Maw Remainsdeep_maw_remains
What it doesThe permanent scar left where a Deep Maw finished collapsing. One block owns the whole visual aftermath - it does not tick, spread or reward anything.
Where it comes fromPlaced by the Deep Maw itself when its collapse completes. Not craftable in survival; a block item exists for the creative tab.
In useBreakable for server cleanup, but it deliberately drops nothing at all - its loot table is empty.
NoteAttaches to any sturdy face and pops if that support goes.
Sealed Podkeypad_pod
What it doesA sealed supply pod locked behind a keypad. Right-click opens the keypad screen with the code shown, and entering it correctly spills two different entries from the sealed-pod loot table (rare drugs by default).
Where it comes fromCave worldgen below Y 63, rolled against the Decon Station on the same 5% chance.
In useThe lock is the tedious entry, not a secret. Only a Doomed (experiment) character can work it - a vanilla player gets no interaction at all.
NoteA pod placed by worldgen drops no item when broken (it is in the nonrecoverable_when_generated tag); one you placed yourself does. The loot table is configurable as sealedPodLoot.
Sound Cannonsound_cannon
What it doesA sonic turret. Its head swivels to track any Doomed player within sixteen blocks and line of sight, charges for about five seconds, then unleashes a devastating sonic blast - catastrophic if the target is in water.
Where it comes fromCave worldgen, mounted onto walls and ceilings; the same roll that bolts gun turrets to cave walls.
In useBreak line of sight or leave the sixteen-block radius during the five-second charge. It re-arms ten seconds after firing.
NoteThe block is only the mounting base - the speaker head is drawn by the block-entity renderer, projecting out of whichever face it was placed against. A generated cannon drops no item.
Spike Trapspike_trap
What it doesA flat mine plate set in the floor. The first person onto it takes a spike punched up through the leg: skin and muscle, heavy bleeding and pain, shock, a break roll, internal bleeding, a scream, an upward flick.
Where it comes fromShallow cave worldgen (the upper "infested" band) and inside trader lairs.
In useOne-shot. It fires once, the spike stays extruded, and it never triggers again - a sprung trap is safe to walk over.
NoteThe raised spike is render-only. The wound comes from entering the cell, not from touching the spike, so an already-triggered plate is harmless scenery.
Spore Reedscyst_spore_reeds
What it doesA pass-through cave-floor plant of the cyst jungle. Foliage only, no contact effect.
Where it comes fromCyst grove worldgen scatters it across grove floors.
In useBreak it with anything other than shears and it yields 1 to 2 Cyst Fibre, Fortune-affected. Shears recover the plant for building.
NoteSame fibre yield as Feeler Fronds, so either plant will do if you need cord or a filter. Roots on any solid floor in the dark.
Sun-Fernsun_fern
What it doesA harvestable ground plant that drops one or two Fern Fibre, the crafting material for insulation gear, the Hot Drink and the Cold Pack.
Where it comes fromSurface worldgen in warm biomes only (base temperature 1.0 and up), scattered in patches. The Frost-Fern is its cold-biome twin.
In useBreak it for the fibre. No tool needed.
NoteThe resource deliberately grows next to the threat it protects against. Beneficial scatter gets first claim on a cell, so raising trap worldgen density can never crowd the ferns out. Temperate biomes grow neither fern.
Swollen Cyst Bushcyst_bush
What it doesA persistent berry bush in the cyst jungle. Right-click a bush at age 2 or 3 to pluck 1 to 3 gall berries without uprooting it; it drops back to age 1 and regrows.
Where it comes fromCyst grove worldgen places it mature. Replanting it from the block item starts it empty at age 0.
In useShears recover the whole plant. Breaking it any other way yields only the berries visibly present on age 2 or 3 growth, with Fortune as the reward for sacrificing the renewable bush.
NoteIts selection outline is deliberately larger than one block because the model overhangs its cell. Age 3 gives one extra berry over age 2 on the right-click harvest.
Syringe Fillersyringe_filler
What it doesAn RF machine that fills empty syringes from a drug-fluid supply. Right-click to open it, slot empty syringes into the two nozzles, and take the filled ones back out.
Where it comes fromCrafted: iron and copper around a dispenser, with redstone and a glass pane.
In useNeeds RF: 10 FE per mB at 20 mB/tick, from a 32,000 FE buffer. Its 4,000 mB tank auto-pulls 100 mB/tick from a neighbouring tank, or you can charge it by hand with a bucket.
NoteBucket in, bucket out works the same as every other tank in the mod. It drops its held syringes when broken; other contents travel with the block item.
Thin Cyst Mosscyst_moss_carpet
What it doesA one-pixel carpet layer of cyst moss. Decorative surface dressing with no behaviour.
Where it comes fromCyst grove worldgen dressing.
In useDrops itself when broken; instant to break.
Unstable Crystalcrystal_unstable
What it doesA volatile red crystal. Walk into it and a short fuse lights (about 1.5 seconds), then it detonates a real TNT-grade blast that breaks terrain. Striking or breaking it while the fuse is burning sets it off too.
Where it comes fromDeep cave worldgen. About 1 region in 20 is an unstable-crystal cavern, and clusters of 3 to 6 shards also generate in big caves below the halfway depth.
In useCollisionless, so you stray into it rather than onto it. It pulses and hisses while the fuse burns, which is your window to get clear. It drops itself if you break it before arming it.
NoteA connected cluster goes up as ONE summed blast centred on the cluster: 5 block radius for a lone shard, plus 2 per extra crystal, capped at 16 and at 24 crystals walked. A large formation is a cave-clearing bomb.
Ventilation Unitventilation
What it doesA passive fan and filter that keeps the air clean around it. Enclosed and underground air grimes you up faster; stay within eight blocks of one and it does not.
Where it comes fromCrafted: iron ingots around a row of iron bars.
In useUnpowered on purpose - always on, with nothing to feed it. It drifts a soft cloud particle so it visibly breathes.
NoteThe eight-block radius is a hard check in the block entity, read by the dirtiness handler - being one block outside it does nothing for you.
Wash Stationwash_station
What it doesA cheap unpowered hygiene basin. Right-click to scrub off all your grime, anywhere, and it leaves you a little wet.
Where it comes fromCrafted: iron ingots around a water bucket.
In useNo power, no fluid piping. It confirms with "Washed up." on the actionbar, and does nothing at all if you are already close to clean.
NoteNatural water only rinses you down to a floor; this takes you to zero, which is why it matters underground. The Decon Station is the powered tier above it and also disinfects every limb.
Water-Pod Bushcyst_water_pod
What it doesA two-wide, four-tall plant carrying up to three mature pods. It is clean water underground, which is unusually safe down there, but it is finite and slow.
Where it comes fromWorldgen places mature specimens in Cyst groves with 2 or 3 pods already grown. A bush you plant yourself starts empty.
In useRight-click empty-handed to pluck a sealed water pod. Right-click with a glass bottle, a canteen or an empty cyst-filtered water container to drain 250 mL into it. Each use spends one pod; the root slowly regrows them back up to three.
NoteIt is one plant, not eight blocks - break any section and the whole thing goes. Deliberately not a healing plant or an infinite canteen.
Woundwortwoundwort
What it doesThe wild temperate meadow herb. Break it for a Woundwort Leaf - two with a Foraging Knife - which grinds in a placed Pestle and Mortar into Woundwort Paste for a herbal poultice, a weak early dressing.
Where it comes fromSurface worldgen in the temperate band (base temperature 0.3 up to 1.0), three to six bushes to a patch.
In useBreak to harvest. It does not regrow - the farmable version is a separate block.
NoteA clean temperature partition: Bittermoss in the cold, Woundwort in the temperate band, Feverbell in the warm. Both the wild bush and the crop are named "Woundwort" in game, so the display name alone will not tell you which one you are looking at.
Woundwortwoundwort_crop
What it doesThe cultivated, farmable woundwort. Plant a Woundwort Leaf and it grows through four stages; break a mature plant for your leaf back plus one or two more, and Fortune raises that.
Where it comes fromPlant a Woundwort Leaf on farmland, dirt, grass, coarse dirt, podzol, rooted dirt or moss.
In useIt only grows inside the temperate band. Out of band it refuses to advance rather than dying, and bonemeal will not buy your way past the climate. A powered Heater or Cooler nearby can hold the band for a small engineered patch.
NoteBreaking it at any age always returns your leaf, so bad siting costs time and never seed stock. Four growth stages, not the usual eight. It is a separate block from the wild bush, so worldgen and existing worlds are untouched.

Not indexed

  • cyst_ear
  • opium_poppy_seeds

PART VI - THE RECORD

REC-01

Trivia

  • One of the blocks is named after a player. The author ran a guessing game asking which game's sound effect and name had inspired Doomed; Caboose answered correctly, and there is now a Caboose Landmine. It copies the surface beneath it so only the small trigger shows, and it does five times an ordinary mine's damage and terrain radius. The standard defusal panel still works, assuming the mine is noticed at all.registry/DoomedBlocks.java:56 and :388; lang block.doomedmatu.caboose_landmine
  • The answer to that guessing game was Creedbreaker. The mod's own storefront credits Project Zomboid and Casualties Unknown as the heavier influences, and the underground pods are a direct nod to the second of those.the author, publicly; CurseForge subtitle; reference/codex_transcripts
  • Funkin at Friday started inside Doomed and left. It is a standalone rhythm mod now, and the hook that stayed behind pays out brain function for a good performance - gated by a cooldown, a ceiling, and a minimum score, so a song cannot be farmed. Brain damage is the one injury in this mod you treat by playing a different one.compat/funkin/FunkinReward.java:9-28
  • SOMNULL used to be required to run Doomed at all. It was cut to a runtime-only sibling after enough bug reports, and there is no code coupling between them any more.build.gradle:186-187
  • The voice in your head was cast by open audition. One rule: the lines had to be acted by a human, writing their own words, because the author did not want to hear anybody reading a script he had written. No recording has shipped. sounds.json carries no imaginary-friend entry, so for now the friend is still silent.the author, publicly; absence confirmed in assets/doomedmatu/sounds.json
  • The firearms were rebuilt, in the author's own words, out of spite. He has said he intends to overhaul them again for the same reason.the author, publicly
  • The WITNESS tablet's clinical descriptions were rewritten by a contributor who asked to stay anonymous. Forty-eight of the pages in the device you carry are theirs.the author, publicly; client/tablet/WitnessWiki.java

Contributors

The mod is not the work of one person and the archive should not pretend otherwise.

Nexopathy, Totally Not Aron, Soupshark
opened the threads that became the pharmacology and the cleanliness and infection work
anon
rewrote the WITNESS tablet descriptions
ItsSnowia, Equil
funded the VR compatibility research
Caboose
guessed Creedbreaker, and has a landmine

This archive is complete in the sense that it covers every system the mod ships. It is not complete in the sense that matters, because a body simulation is only really documented by somebody dying in it, and no amount of reading the source is that.

Nothing in this file has been playtested. Everything in it is true about the code.