Skip to content

Radiation Safety

denfry edited this page Oct 13, 2026 · 1 revision

Radiation Safety

Note

Design stage. This page describes planned mechanics from the design document. Not implemented yet — see Roadmap (milestone M7: radiation field, shielding, dosimeters, dose tracking, contamination and decontamination).

Radiation in Prompt Critical is not a damage aura around a glowing block. It is a computed field: every source has a photon spectrum in six energy groups and a neutron term; every block between the source and you attenuates it according to its material and thickness; dose builds up in a personal dose record with real biological effects; and spilled activity becomes contamination that spreads with rain, wind, rivers, boots and items.

What you get as a player:

  • Shielding is engineering. Concrete, lead, water and polyethylene behave as they do in real shielding calculations. A 1 m block of concrete is already enormous shielding for gamma rays; slabs, sheets and panels are the fine-tuning tools.
  • Instruments tell the truth, within their limits. A cheap Geiger counter saturates and reads almost zero in a lethal field.
  • No magic armor. No wearable armor reduces hard gamma (Cs-137, Co-60) by more than a few percent. A lead apron is for X-rays.
  • Contamination is persistent. Removed activity does not vanish — it becomes secondary waste you must collect and condition.

Radiation models

Quantities and time

Quantity Symbol Unit Use
Air kerma K_a Gy intermediate value for photon dose
Ambient dose equivalent H*(10) Sv the in-game external dose (what instruments show)
Effective dose E Sv internal exposure, dose limits
Organ equivalent dose H_T Sv thyroid (I-131), skin (beta)
Absorbed dose in silicon D_Si Gy electronics

For external exposure the game uses E ≈ H*(10). H*(10) overestimates E by 10–40 %, so the in-game dose matches the dosimeter reading (pillar P2: you trust the instrument) and is slightly stricter than reality.

Dose accumulates in real time, updated at 1 Hz. Decay of sources and contamination, the stages of radiation sickness and biological elimination run in SLOW time (×72). If dose accumulated in accelerated time, any work in a controlled area would be impossible.

How the field is computed

Point-kernel model: for each group, photon flux at the receiver is

$$\phi_g = \frac{S_g,B_g(\mu x)}{4\pi r^2},e^{-\sum_i \mu_{g,i},t_i}$$

where tᵢ is the ray path length through material i and B is the buildup factor (scattered photons). Air kerma and H*(10) follow from flux with NIST energy absorption coefficients and ICRP 74 conversion factors.

Check: Cs-137, 1 TBq, 1 m, no shielding → 75.7 mGy/h air kerma (reference constant agrees within 3 %), 90.9 mSv/h H*(10).

Implementation:

  1. Source clustering per chunk section; clusters are expanded into individual sources only when you are close.
  2. Dose cut-off. Clusters whose unshielded upper bound is below 10⁻³ of background, or farther than 64 m, are skipped (strong sources extend to 256 m).
  3. Ray tracing. A 3D DDA (Amanatides–Woo) ray from your eyes to the source sums the attenuation for 6 photon groups and the neutron removal cross section, using a precomputed table BlockState → (material, fill fraction).
  4. Dose with buildup.

Block-to-material mapping is datapack-driven (data/<ns>/promptcritical/shielding/*.json). Unlisted blocks fall back to stone (full cube, hardness ≥ 1.5), dirt, or air with the collision-shape fill fraction. Partial blocks are homogenized: slab 0.5, stairs 0.75, glass pane 0.125, carpet 0.0625, lead_sheet (2 cm lead) 0.02; waterlogged blocks add water.

Ray results are cached per player (4096 entries, ≈ 320 KB) and invalidated by section version counters. The field updates once per second per player, with players phased across ticks. Worst case ≈ 85 µs per update, ≈ 4.3 µs/tick on average, well below the 50 µs budget.

Shielding materials

Material Blocks Density, g/cm³ HVL at 0.662 MeV HVL at 1.25 MeV
water water, ice 1.00 8.09 cm 10.96 cm
concrete vanilla concrete 2.30 3.83 cm 5.19 cm
heavy_concrete heavy_concrete (magnetite) 3.60 2.44 cm 3.32 cm
steel iron_block, steel_plate, vessel blocks 7.87 1.20 cm 1.65 cm
lead lead_block, lead_sheet 11.35 0.55 cm 1.04 cm
tungsten tungsten_block 19.3 0.365 cm 0.644 cm
depleted_uranium depleted_uranium_block 19.05 0.278 cm 0.571 cm
polyethylene polyethylene_block 0.95 8.29 cm 11.23 cm
borated_polyethylene borated_polyethylene (5 % B) 1.00 7.88 cm 10.67 cm
stone stone, granite, andesite, cobblestone 2.65 3.32 cm 4.50 cm
deepslate deepslate, tuff, basalt 2.90 3.03 cm 4.12 cm
dirt dirt, grass, mud 1.50 5.87 cm 7.96 cm
sand sand, gravel 1.60 5.50 cm 7.46 cm
glass glass, obsidian 2.50 3.52 cm 4.77 cm
lead_glass lead_glass (hot cell windows) 4.8 1.44 cm 2.45 cm
wood planks 0.60 14.0 cm 19.0 cm
wool wool, carpets 0.15 56.2 cm 76.1 cm
air air 0.0012 74.6 m 101 m

The key design consequence. A Minecraft block is 1 m. One block of concrete at 0.662 MeV is 18 mean free paths (attenuation ≈ 10⁻⁶ with buildup); a block of lead is 126 — absolute shielding. So half-blocks and thin elements are the main fine-tuning tools: lead_sheet (2 cm lead ≈ 3.6 HVL at 0.662 MeV), slabs, panels. Water is a "weak" shield per block (≈ 2·10⁻³ through 1 m), which is why spent fuel pool depth is measured in blocks.

Per unit mass, lead beats concrete only below ≈ 0.5 MeV and above 3 MeV. In the Co-60 range, concrete and lead are almost equal per gram — lead wins by volume, not mass.

Neutron shielding

Fast neutrons are attenuated with removal cross sections Σ_R, valid when the shield contains hydrogen:

Material Σ_R, cm⁻¹ Contains hydrogen Secondary capture gammas
water 0.103 yes H(n,γ) 2.223 MeV
polyethylene 0.123 yes same
borated polyethylene (5 % B) 0.120 yes mostly B-10(n,α) 0.478 MeV — softer
concrete 0.089 yes (bound water) 2.2 MeV + some high-energy
heavy concrete 0.11 yes Fe capture 7.6 MeV
steel 0.157 no Fe(n,γ) 7.6 MeV
lead 0.118 no weak
wet soil 0.07 yes 2.2 MeV
stone / deepslate 0.085 no some high-energy
wood 0.06 yes 2.2 MeV

If a ray crosses less than 20 cm of hydrogenous material, heavy materials count at half their Σ_R — the classic lesson that lead is a poor neutron shield. Neutrons removed along the ray create secondary gamma sources: a thick water layer behind a reactor glows at 2.2 MeV itself, which is why borated polyethylene and iron-loaded concrete go on the outside.

Shielding examples

Case Result
Hot cell wall: 1 PBq Cs-137, operator 1.5 m away, target ≤ 10 µSv/h ≈ 1.1 m of concrete (a block plus a slab), or 0.72 m of heavy concrete, or ≈ 0.45 m of lead_glass
Lead apron, 0.5 mm Pb transmits 4 % at 0.1 MeV but 94 % of Cs-137 and 97 % of Co-60 gammas; weighs 6 kg (Slowness I)
Co-60, 1 TBq, 0.5 m in front of a concrete block, receiver 0.5 m behind 4.1 µSv/h
Spent fuel cask, 10⁸ n/s, 1 m 0.92 mSv/h unshielded; 23 µSv/h behind 30 cm of polyethylene, plus 2.2 MeV secondary gammas

Dose limits

Category Limit In game
Radiation workers 20 mSv/year averaged over 5 years, ≤ 50 mSv in one year radiation.limits.worker_annual_sv = 0.02; a game year (365 game days) is 121.7 real hours
Public 1 mSv/year tracked for villagers
Eye lens (workers) 20 mSv/year recorded
Skin (workers) 500 mSv/year beta burn threshold is higher
Emergency response up to 100 mSv; up to 500 mSv to save lives dosimeter presets EMERGENCY_100, LIFESAVING_500

Limits are not enforced by physics. With zoning enforcement on, a player who exceeded the annual limit cannot pass a zone_access_door.

Biological effects

Every player has a dose record (attachment promptcritical:dose_record): lifetime dose, rolling annual dose, acute dose with repair, skin and thyroid doses, committed internal dose not yet delivered, body content by nuclide group, potassium iodide protection, radiation sickness stage, skin contamination.

Acute dose decays with a repair time of 2 physical days (40 real minutes). Chronic exposure at 1 mSv/h settles at 0.67 mSv acute — no radiation sickness, as in reality.

Acute radiation syndrome (ARS)

The stage is chosen by the peak acute dose of an episode. Times are physical (divide by 72 for real time).

Acute dose, Sv Severity Prodrome Latent period In-game effects Mortality without / with treatment
< 0.25 — none — none 0
0.25–1 subclinical none; blood changes visible at medical_station — record only 0
1–2 I (mild) nausea in 10–50 % after 2–6 h 21–35 days Weakness I, −2 max hearts for 7 days 0
2–4 II (moderate) vomiting after 1–2 h 18–28 days −6 hearts, no natural regeneration, Weakness II, Hunger ≈ 5 % / 0
4–6 III (severe) 20–60 min 8–18 days −10 hearts, no regeneration, Fatigue ≈ 50 % / ≈ 15 %
6–10 IV (very severe) < 20 min, diarrhea ≤ 7 days + periodic damage 90–100 % / ≈ 50 % (with bone marrow transplant)
10–20 gastrointestinal < 10 min 0–3 days damage every 30 s ≈ 100 % within 1–2 physical weeks
> 20 cerebrovascular immediate, disorientation — Blindness, Nausea, damage 100 % within 1–2 physical days

Death probability follows a probit model with D₅₀ = 4.0 Sv without treatment, 6.5 Sv with supportive therapy and 8.5 Sv with a bone marrow transplant (σ = 0.25). Without treatment: 12.5 % at 3 Sv, 94.7 % at 6 Sv. Death uses damage type promptcritical:radiation_sickness.

Treatment items (used at a medical_station or by hand): antiemetic (removes prodrome), cytokine_injection (G-CSF, course of 5, moves you to supportive therapy), blood_bag (in multiplayer, blood from another player, −4 hearts to the donor), bone_marrow_transplant (needs a donor player and a medical_station; for doses above 6 Sv).

Skin: beta contamination by Cs-137 or Sr-90/Y-90 gives about 1.5 mSv/h per kBq/cm² to the skin. Above 3 Sv — erythema overlay; above 10 Sv — beta burn (promptcritical:beta_burn, periodic damage, slow healing). Thyroid: above 5 Sv from I-131 — hypothyroidism (−10 % food efficiency). Stochastic risk (5.5 %/Sv) is shown in the medical record as lifetime risk, with no gameplay effect: the mod shows statistics but does not punish for them.

Instruments

Instrument models

ID Prototype Detector Range Behavior
geiger_counter (T0) consumer / civil defense counter GM tube 0.1 µSv/h – ~0.5 mSv/h linear no dead-time correction: folds back to zero in a strong field
dosimeter_radiometer professional survey meter GM (low) + ion chamber (high) 0.1 µSv/h – 10 Sv/h auto-ranging; "OVERLOAD" above range
contamination_meter pancake probe alpha/beta scintillator counts/(cm²·min) separates alpha (actinides) from beta
personal_dosimeter_epd electronic personal dosimeter silicon diode Hp(10) dose and dose-rate alarms; read by pc_rad_monitor at the portal
tld_badge TLD thermoluminescent dose accumulation only; read in a tld_reader ("official" dose)
instrument_dose_rate (block) area monitor ion chamber 0.1 µSv/h – 100 mSv/h (wide-range variant to 10 Sv/h) tag rad.area.<id>.dose_rate; ±20 %, 5 s lag
stack_monitor (block) stack release monitor gas chamber + aerosol filter + iodine sampler Bq/s by group iodine with 30 physical min analysis delay
whole_body_counter (block) whole body counter NaI(Tl) Bq in body (Cs, Co, I) 60 real seconds
criticality_alarm CAAS 3 neutron/gamma detectors, 2-of-3 — see Nuclear-Fuel-Cycle

The Geiger counter trap. The GM tube has a 190 µs paralyzable dead time. The observed count rate peaks at 1936 s⁻¹ and then falls. A geiger_counter reads 576 µSv/h in a true 1 mSv/h field, 41 µSv/h in 10 mSv/h, and practically 0 at 1 Sv/h. A cheap instrument in a strong field lies low — part of why readings in 1986 were underestimated. The dosimeter_radiometer corrects dead time and switches to its ion chamber. Without a filter the GM counter also over-responds 3× to low-energy photons (Am-241, X-rays).

Each registered pulse is a click; above 30 pulses/s it becomes continuous crackling, above 300 — noise. At background (0.1 µSv/h) a 2 s average wanders ±50 %, like a real meter.

Exit monitors

ID Checks Alarm threshold
portal_monitor (pair of blocks) gamma from items and contamination of the person passing 2 s count > background + 5σ (≈ 37 kBq Cs-137 at 0.5 m)
hand_foot_monitor beta contamination of hands and soles 3.3 Bq/cm²
smear_kit removable contamination: a 100 cm² smear takes 10 % analyzed in contamination_meter / assay_station

Events for CC: portal_alarm, contamination_alarm.

Personal protective equipment

ID Respiratory protection factor Skin External gamma Notes
respirator (half mask, P3 filter) 10 (aerosols), 1 for iodine — none —
full_face_respirator + iodine_cartridge 50 (aerosols, iodine, HF) face none iodine cartridge life
papr (powered air purifying) 1000 head none battery (FE)
pneumosuit (4 pieces, air from air_supply_port via ≤ 16 m hose) 2000 0.99 none hose limits movement; a torn hose drops protection to 10
protective_overalls + boot_covers — 0.9 none removed at the checkpoint, contamination leaves with them
lead_apron (0.5 mm Pb) — — G0 0.043; G2 0.939; G5 0.975 transmission Slowness I (6 kg)

Armor gamma transmission uses component promptcritical:shield_equivalent (mm of lead equivalent). No wearable armor protects against G2–G5 by more than a few percent — a deliberate rule against "uranium armor" from other mods.

Internal exposure

Pathway Intake
Inhalation air concentration × 1.2 m³/h breathing rate × time ÷ respirator protection factor (real time)
Ingestion activity of the food or drink item
Hand to mouth 1 % of removable hand contamination with each meal
Skin (tritiated water) absorption through skin = 0.5 × inhalation

Committed effective dose is booked to lifetime and annual dose immediately (as in real dose accounting), but delivered biologically over time with the effective half-life.

Group Reference nuclide Inhalation, Sv/Bq Ingestion, Sv/Bq Effective half-life in body Antidote
CS Cs-137 4.6·10⁻⁹ 1.3·10⁻⁸ 110 days prussian_blue: → 35 days
IOD I-131 7.4·10⁻⁹ (aerosol); 2.0·10⁻⁸ (I₂ vapor) 2.2·10⁻⁸ 7.6 days (thyroid) potassium_iodide
SR Sr-90 3.6·10⁻⁸ 2.8·10⁻⁸ 10⁴ days (bone) —
ACT Pu-239 5.0·10⁻⁵ 2.5·10⁻⁷ 10⁵ days ca_dtpa: ×5 elimination if given in the first 24 physical hours
ACTP Co-60 1.0·10⁻⁸ 3.4·10⁻⁹ 10 days —
NAT U-238 + chain, Ra-226 2.9·10⁻⁶ 4.5·10⁻⁸ 100 days — (chemical toxicity)
TRIT H-3 (HTO) 1.8·10⁻¹¹ 1.8·10⁻¹¹ 10 days drinking a lot: → 5 days
LONG_MOBILE I-129 3.6·10⁻⁸ 1.1·10⁻⁷ 100 days potassium_iodide

Example (Goiânia, 1987): ingesting 1 GBq Cs-137 commits 13 Sv; delivered with a 110-day half-life, the first 10 physical days bring 0.79 Sv — slowly developing ARS II. Prussian blue cuts the committed dose to 4.1 Sv.

Potassium iodide (130 mg KI) blocks thyroid uptake: 95 % if taken up to 24 h before intake, 80 % within 2 h after, falling to 40 % at 8 h and 7 % at 24 h. It lasts 24 physical hours (20 real minutes), so during a long release you take it repeatedly.

Uranium and UF₆: for natural and low-enriched uranium, the chemical kidney toxicity of soluble compounds is more dangerous than radiation. Intake over 7 physical days: < 10 mg — no effect; 10–40 mg — Hunger, Weakness I; > 40 mg — periodic damage, Nausea. HF in air damages above 30 ppm (IDLH).

Food chains: crops take up activity from contaminated soil (transfer factors Cs 0.05, Sr 0.3), cows on contaminated pasture give contaminated milk, fish concentrate Cs 1000×. Example: 10 kBq/m² of I-131 fallout → 2.1 kBq/L in milk → 46 µSv per liter.

Contamination

The ContaminationMap tracks 9 nuclide groups, each with a reference nuclide:

Group Reference nuclide Half-life Deposits Soluble Notes
NG Xe-133 (Kr-85) 5.25 d no no cloud only
IOD I-131 8.02 d yes yes milk, thyroid
CS Cs-137 30.08 y yes yes; binds strongly to clay main long-term contaminant
SR Sr-90 + Y-90 28.8 y yes yes bone
ACT Pu-239 (+ Am-241) 24,110 y yes weakly alpha, inhalation
ACTP Co-60 5.27 y yes weakly maintenance doses
NAT U-238 chain / Ra-226 — / 1600 y yes U yes tailings, ore
TRIT H-3 (HTO) 12.32 y with water yes CANDU, water
LONG_MOBILE I-129 / Tc-99 ≫ 10⁴ y no yes HLW repository

Storage: chunk → section → 4×4×4 block cells, with removable and fixed activity per group, plus waterborne and airborne activity per section. Data lives in a chunk data attachment (promptcritical:contamination), allocated lazily; a typical accident over 200 sections × 3 groups takes about 300 KB. On chunk load, decay catches up for the time the chunk was unloaded.

Transport

Mechanism Model
Fixation removable activity slowly becomes fixed (weeks on porous surfaces like concrete, soil, wood; slower on steel, painted surfaces, glass)
Rain washes removable activity from cells open to the sky into the ground and 20 % into nearby water
Resuspension wind lifts a small fraction of dry removable activity into the air
Ventilation airborne activity moves between ventilation zones with air flows; filters remove it by group; an open door without negative pressure leaks it outside
Items picking up an item from a cell takes 10⁻³ of the cell's removable activity; dropping an item leaves 1 %
Mobs pick up and drop activity as they walk
Player's boots like mobs; carried on boot_covers or boots, without footwear — on the skin
Player's hands breaking or using a block in a contaminated cell; protective gloves stop 90 %
Liquid spills spilled radioactive fluid contaminates cells under the puddle and the water

Water and rivers. Water sections exchange activity by diffusion. In river biomes the model adds a flow towards the nearest ocean (0.5 m/s) for contamination only, since Minecraft rivers do not flow. Activity also settles into bottom sediment. Rivers carry contamination downstream.

Atmospheric release. Releases from a vent_stack or an accident disperse with a Gaussian plume model with Briggs open-country dispersion:

Stability class Minecraft condition
B (unstable) day, clear
D (neutral) rain or thunderstorm; dawn or dusk
F (stable) night, clear

Wind direction drifts with game time (period ≈ one game day); wind speed is 3 m/s clear, 5 m/s rain, 8 m/s thunder. Fallout is computed per 4×4 column up to 512 m downwind, with dry deposition and washout by rain. Example: 10¹² Bq/s of Cs-137 for 100 physical seconds from a 30 m stack, class D, 5 m/s wind: 500 m downwind on the axis the inhalation dose is 4.6 mSv without protection, fallout 3 MBq/m², and the ground keeps giving ≈ 7 µSv/h afterwards. In real time the cloud passes in 1.4 s, but the trace remains.

Ground shine: an infinite plane of Cs-137 gives 2.35·10⁻¹² Sv/h per Bq/m² at 1 m (×0.7 roughness factor on soil and grass). Roofs and walls shield it.

Contaminated items carry promptcritical:surface_contamination. Items with different contamination do not stack; to keep Create logistics working, contamination below 1 Bq is zeroed. One release event affects at most 4096 sections; land claims are respected through a ContaminationPolicy interface (see Multiplayer).

Decontamination

The decontamination factor DF = activity before / activity after, applied separately to removable and fixed activity. Removed activity does not disappear; it becomes secondary waste to collect and condition (see Nuclear-Fuel-Cycle).

Method Target DF removable DF fixed Secondary waste Tool
Water wash blocks, items 2.5 1 10 L/m² contaminated_decon_solution decon_sprayer with water
Chemical (citric/oxalic acid, EDTA; HNO₃–KMnO₄ for steel) blocks, equipment 10 2 5 L/m² decon_sprayer with decon_solution
Steam jet blocks, equipment 10 3 2 L/m² condensate steam_decon_lance
Strippable coating surfaces 20 1 0.5 kg/m² solid strippable_coating
Scabbling (remove 5 mm of concrete) concrete 100 100 12 kg/m² dust through HEPA scabbler (Create shaft)
Electropolishing metal items 300 300 electrolyte electropolish_bath
Ultrasonic bath items 20 2 solution ultrasonic_bath
Create fan wash items on a belt or ground 5 1 solution create:encased_fan + decon_solution block (processing type promptcritical:decon_wash)
Shower player skin 10 — drain water → decon_drain decon_shower
Soil removal dirt/grass all activity is in the block the block itself is waste shovel / Create drill

Paint: decon_paint (epoxy over concrete) slows fixation ×10 and makes removable contamination 5× easier to remove — which is why real controlled areas have painted floors and walls. Damaged paint loses the effect.

Player decontamination: take off protective gear (contamination stays on it) → shower → hand_foot_monitor, repeat if it alarms. Fixed skin contamination clears with epidermis renewal (14 physical days). Dirty gear goes to a dirty_locker, the decon_laundry (Create mixer + solution, DF 5), or the waste stream.

Neutron activation

Neutron flux activates materials around the reactor (cells within 6 blocks of the vessel):

Material Target Product, half-life Meaning in game
steel Co-59 impurity (0.1 %) Co-60, 5.27 y main source of maintenance doses
steel Fe-58 Fe-59, 44.5 d
steel Mn-55 Mn-56, 2.58 h short-lived, "after shutdown"
concrete Na-23 Na-24, 15 h
concrete Eu-151 (1 ppm) Eu-152, 13.5 y long-lived in the biological shield (decommissioning problem)
water O-16 (n,p) N-16, 7.13 s 6.13 MeV gamma in the primary loop; in BWR steam
D₂O H-2 H-3, 12.32 y CANDU tritium
air Ar-40 Ar-41, 110 min released through reactor hall ventilation
graphite C-13, N-14 C-14, 5700 y graphite waste from T0/T1 decommissioning

Example: 1 kg of steel with 0.1 % Co in a 10¹³ cm⁻²s⁻¹ thermal flux for one physical year → 0.47 TBq of Co-60 → 0.166 Sv/h at 1 m. A block of reactor internals (7.87 t of steel) gives ~1.3 kSv/h at 1 m: such parts are moved only remotely and under water.

N-16 in the coolant makes primary piping glow at power along its length; in a BWR half of it is carried into the steam, so the turbine "shines" at power and goes dark within about a minute after shutdown.

Breaking a block in an activated cell yields a "hot" item with promptcritical:activation_inventory. It is a radiation source in your inventory (0.3 m from the body) or in a chest. Repairing main coolant pumps or replacing reactor internals turns ALARA dose planning into gameplay: wait for Mn-56 and Na-24 to decay, shield, work fast.

Zoning and the sanitary checkpoint

zone_controller registers a volume with a class:

Class Design dose rate Access
FREE ≤ 0.5 µSv/h free
CONTROLLED_SERVICED ≤ 6 µSv/h EPD + work clothes
CONTROLLED_PERIODIC ≤ 12 µSv/h same
CONTROLLED_UNSERVICED > 12 µSv/h work permit: dose plan, radiation protection technician

The controller averages the instrument_dose_rate blocks inside and raises zone_dose_exceeded; tags rad.zone.<id>.dose_rate, rad.zone.<id>.class.

The sanitary_checkpoint multiblock (clean_locker, dirty_locker, decon_shower, decon_drain, hand_foot_monitor, portal_monitor, zone_access_door) enforces the flow:

CLEAN AREA ──► clean_locker (take off own clothes; take work clothes, EPD, boot covers)
           ──► zone_access_door (EPD worn, annual dose below limit) ──► CONTROLLED AREA
CONTROLLED AREA ──► dirty_locker (take off work clothes and boot covers)
                ──► decon_shower ──► hand_foot_monitor (> 3.3 Bq/cm²? → back to the shower)
                ──► portal_monitor ──► zone_access_door (exit) ──► CLEAN AREA

radiation.enforce_zones is false by default; when true, doors physically refuse to open if conditions are not met. In singleplayer you get hints and a violations log. The access log is available through pc_rad_monitor.

Natural background and radon

Terrestrial gamma background depends on the blocks around you: stone and granite ≈ 107 nGy/h, dirt ≈ 60, deepslate ≈ 23, sand ≈ 22, water and wood 0; ore blocks up to 48,400 nGy/h at 1 % U₃O₈. In a cave you are surrounded on all sides, so background is higher, as in real mines. Cosmic radiation is 0.035 µSv/h at sea level, doubling every ~1.5 km of altitude and shielded by blocks overhead. The Nether gives 0.5 µSv/h and the End ×10 cosmic (game fiction). On grass at the surface the total is ≈ 0.11 µSv/h ≈ 0.9 mSv/year — the real order of magnitude.

Radon builds up in enclosed volumes (a ventilation zone or an underground air pocket up to 4096 blocks), from exhalation by soil, granite, ore and tailings, and is removed by decay and air exchange. A house of 100 m³ on soil reaches 45 Bq/m³ (0.16 µSv/h). A drift in 1 % ore with 1 m³/s ventilation: 1.8 µSv/h; without ventilation: ≈ 13 mSv/h — lethal over weeks of game time.

Effects on electronics

RadiationField.absorbedDoseRateSiAt(x, y, z) gives the absorbed dose rate in silicon for CC: Tweaked computers and sensors. The recommended model: reboot probability per second 10⁻³ per Gy/h; above 1 kGy accumulated dose, failures ×10. instrument_* sensors are radiation-hardened (10⁵ Gy), but detectors above their range show overload. See CC-Tweaked-API.

See also

Clone this wiki locally