Repository navigation
Isotopes and RTG
Note
Design stage. This page describes planned mechanics from the design document. Not implemented yet — see Roadmap (milestone M12: irradiation channels, Co-60, Ir-192, Am-Be, Pu-238, RTGs, neutron transmutation doping, TRIGA; transportable reactors at M15).
Why build a reactor other than for power? With the default W_PER_SU, a nuclear unit loses to Create steam engines on construction cost. So the reactor has to give you something nothing else can: neutrons. Neutron flux turns targets into isotopes, and isotopes become tools for other industries:
- gamma radiography of welds (metallurgy, pipelines);
- neutron well logging (oil and gas);
- cross-linking polyethylene for high-voltage cables (power grid);
- neutron transmutation doping of silicon for microchips (automation);
- autonomous power from RTGs (remote telemetry units, pipelines, beacons);
- startup sources for the reactors themselves.
| Subsystem | Depth | Time domain |
|---|---|---|
| Target irradiation in a channel | Bateman equations for 2–3 link chains, target and product burnup, self-shielding, capsule heating | SLOW (1 Hz) |
| Decay of an isotope in an item | computed lazily from a timestamp, no ticking | on demand |
| RTG | heat balance, thermoelectric or Stirling converter, degradation | SLOW |
| Pulse reactor | Fuchs–Nordheim pulse on top of point kinetics with ~1 ms substeps | FAST |
| Source handling | IAEA categories, source registry, containers, log | events |
Irradiation and decay run in SLOW time (×72: one game day = one physical day = 20 real minutes):
| Nuclide | Half-life (physical) | Half-life (real time) | What it means |
|---|---|---|---|
| Tc-99m | 6.01 h | 5 min | use immediately |
| Mo-99 | 65.94 h | 55 min | perishable goods — logistics decides |
| I-131 | 8.02 d | 2.7 h | |
| Ir-192 | 73.83 d | 24.6 h | radiography cameras are recharged every game day or two |
| Co-60 | 5.27 y | 26.7 days | long-lasting |
| Sr-90 | 28.79 y | 146 days | an RTG for a whole server season |
| Pu-238 | 87.7 y | 445 days | an RTG "forever" |
| Am-241 | 432.2 y | 6.0 years | practically stable |
The STORAGE time domain (×8766) does not apply to sources. Spent fuel ages fast in storage, but a source in a chest lives in SLOW time — otherwise Pu-238 would be gone in 88 real hours.
Item activity is not recomputed every tick. The source_spec component stores activity A₀ at time t₀, and any query computes A(t) = A₀·e^(−λ(t−t₀)). Parent–daughter pairs (Mo-99 → Tc-99m, Sr-90 → Y-90, Pu-241 → Am-241) use the analytical two-member Bateman solution. Items stack when nuclide and activity (rounded to 2 significant digits) match.
| Block | Location | Flux | Purpose |
|---|---|---|---|
irradiation_channel |
in the core lattice instead of a fuel_channel
|
thermal and fast flux of that core node | long irradiation: Co-60, Pu-238, Ir-192, silicon doping |
reflector_irradiation_port |
in the reflector or graphite stack outside the core | ≈ 0.2–0.5 of core-edge flux, softer spectrum | large targets (silicon ingots), less heating |
pneumatic_rabbit_terminal + pneumatic_tube
|
terminal outside the biological shield, capsule travels into the core | as in the channel | short-lived isotopes and samples (seconds to minutes) |
transient_rod_drive |
instead of control_rod_drive
|
— | pneumatic rod ejection for a pulse (TRIGA) |
Targets cost reactivity. An irradiation channel is an absorber in the lattice. 50 kg of cobalt in one PR-300 cell takes about 60–150 pcm. Producing isotopes in a power reactor requires a reactivity margin, as in CANDU units that use cobalt adjuster rods instead of steel.
The irradiation_capsule item carries an irradiation_target component: material, mass, form (PELLET, WIRE, PLATE, INGOT, POWDER), target and product atoms, fluence, load time, and whether it is sealed.
Target T → product P, with product decay and burnup:
solved exactly per SLOW step. The self-shielding factor f_ss matters: a Ø6 mm cobalt pellet has f_ss ≈ 0.63, which is why cobalt is irradiated as thin pellets and wire, as in real practice. The three-member chain Np-237 → Np-238 → Pu-238 is handled the same way.
Capsule heating comes from decay of the products, gamma heating in the core (≈ 5 W/g for steel in a PWR core at full power) and fission if the target is fissile. If capsule temperature exceeds the material limit, the capsule loses its seal, activity enters the channel coolant and a capsule_failure event fires.
A capsule travels through pneumatic_tube at 10 m/s, is irradiated for a time you choose (1 s to 10 physical minutes) and returns. It is used for isotopes with half-lives of minutes to hours and for neutron activation analysis: an ore or oil sample is irradiated, and the gamma_spectrometer reads its composition (U, Th, V, Mn, Na) — more precise than exploration radiometry. While the capsule is in the core, reactivity dips: you see a small "bite" of power on the trends.
| Product | Target | Reaction | Half-life | Where | Use in game | Release |
|---|---|---|---|---|---|---|
| Co-60 | Co-59 (100 %) | (n,γ), 37.2 b | 5.27 y | core channel, flux ≥ 10¹³ | gamma irradiator: cross-linking polyethylene for cables; reference sources | ★ |
| Ir-192 | Ir-191 (37.3 %) | (n,γ), 954 b | 73.83 d | channel or rabbit | gamma radiography of welds | ★ |
| Pu-238 | Np-237 (from spent fuel) | (n,γ) → Np-238 (2.12 d) β⁻ | 87.7 y | channel, soft spectrum | RTG | ★ |
| Am-241 | Pu-241 in aged PuO₂ | decay of Pu-241 (14.29 y) | 432.2 y | no reactor needed: aging and extraction | Am-Be neutron sources: startup_source, well logging |
★ |
| Sr-90 | fission product (5.73 % yield) | extracted from high-level waste | 28.79 y | — | RTG (heavy shielding) | backlog |
| H-3 | D₂O (T3) / Li-6 | D(n,γ) / Li-6(n,α) | 12.32 y | T3 detritiation / lithium targets | self-luminous signs | ★ |
| Mo-99 → Tc-99m | U-235 (LEU target 19.75 %) | fission, 6.1 % Mo-99 yield | 65.94 h / 6.01 h | high-flux channel, target cooling | perishable exchange commodity | backlog |
| I-131 | Te-130 | (n,γ) → Te-131 → I-131 | 8.02 d | channel | exchange commodity | backlog |
| P-31 in silicon | Si-30 (3.1 %) | (n,γ) → Si-31 (157 min) → P-31 | stable | reflector, rotating ingot | neutron transmutation doping → microchips | ★ |
Reactions requiring highly enriched fissile targets are not in the mod: Mo-99 targets are low-enriched only (≤ 19.75 %), as in modern practice.
1 kg of cobalt at 10¹³ cm⁻²s⁻¹ for one physical year (6.1 real days) gives ≈ 468 TBq (12,650 Ci, 12.6 Ci/g). That is an IAEA category 1 source, lethal without shielding: ≈ 140 Gy/h at 1 m.
The gamma_irradiator is a pool type: the source rack is lowered into a pool for storage and raised into the irradiation cell for work. Its product is cross-linked polyethylene, xlpe, made from polyethylene at 150 kGy (isotopes.xlpe_dose_gy). At 10 kGy/h that is 15 physical hours = 12.5 real minutes per batch. XLPE withstands 90 °C versus 70 °C for ordinary polyethylene, so it is used for high-voltage cables. In the release there is no other way to make xlpe (an electron accelerator is backlog).
Safety interlocks (mandatory SIS causes): IRRADIATOR_DOOR_OPEN lowers the rack automatically — fail-safe: on power loss the rack drops by gravity; IRRADIATOR_POOL_LOW_LEVEL; CAPSULE_OVERTEMP (unload the capsule); RABBIT_STUCK (capsule stuck in the core longer than the setpoint).
Iridium comes from copper electrolysis anode slime, together with platinum. 10 g of natural iridium at 10¹³ for 30 days gives ≈ 26.6 TBq (≈ 720 Ci). A typical industrial radiography source is 1–4 TBq, so 10 g is enough for several cameras.
The radiography_camera is a depleted-uranium container with an S-shaped channel. You crank the source (radiography_crank) through a flexible tube to the collimator at the weld, with radiography_film behind the weld, and expose for
where s is the steel thickness. The developed film shows weld defects — lack of fusion, porosity, cracks — if they exist in the pipe_spec component. An uninspected weld may hide a defect, and a defective weld under pressure ruptures. Overexposure irradiates the player — the real cause of radiographer overexposures. Radiography is done in a fenced area with signs.
Np-237 is recovered in PUREX as a separate stream if you add an extra extraction stage (np_recovery, product npo2_powder). Targets are NpO₂ pellets in aluminium cladding. Chain: Np-237 (n,γ) → Np-238 (β⁻, 2.12 d) → Pu-238. Pu-238 also burns in the flux (to Pu-239 and by fission), so there is an optimal irradiation time: at 10¹⁴ the yield climbs to about 15–20 % and then falls, while purity drops. You choose the trade-off between yield and purity; purity sets the specific heat of the source.
Pure Pu-238 produces 0.568 W/g; PuO₂ at 80–85 % isotopic purity ≈ 0.40 W/g. Neutrons from spontaneous fission and (α,n) on oxygen (≈ 1.5·10⁴ n/(s·g)) mean RTG shielding is polyethylene plus a little metal, not lead.
Am-241 grows into aged PuO₂ from Pu-241. It is separated in the hot_cell by dissolution and ion exchange (ion_exchange_resin), mixed with beryllium, pressed and sealed in a double capsule: a sealed_source with nuclide AM241_BE. Neutron yield is 2.2·10⁶ n/(s·Ci). A logging source of 740 GBq (20 Ci) emits 4.4·10⁷ n/s. The reactor startup_source is the same item. Am-241 gamma is soft (59.5 keV); the danger is neutrons and, if the capsule breaks, alpha aerosol.
A mo99_target U-Al plate with 20 g of U-235 (19.75 %) at 10¹⁴ reaches 183 TBq of Mo-99 at saturation — and produces 96 kW of heat. Without cooling it melts in seconds: a heat transfer lesson, not only chemistry. The tc99m_generator is "milked" by elution; its exchange value halves every 55 real minutes, so Create train logistics decide whether the product reaches the buyer.
The main release path is detritiation of T3 heavy water: tritium accumulates in D₂O, and the detritiation_column (catalytic exchange + cryogenic hydrogen distillation) extracts it and lowers worker doses at the same time. Lithium-6 targets are backlog. Use: tritium_lamp, a self-luminous tube with light level min(15, ⌈8·A/A₀⌉) — an "Exit" sign that fades with a 12.32-year half-life (62 real days). Activity is limited to 1 TBq per lamp; a broken lamp releases a puff of tritiated water vapor.
A monocrystalline silicon_ingot is irradiated in the ntd_silicon_rig in the reflector. Si-30 + n → Si-31 → P-31 distributes phosphorus uniformly through the volume, better than any diffusion doping — which is why real power electronics use NTD silicon.
The target resistivity sets the required fluence. Example: 50 Ω·cm needs 5.58·10¹⁷ n/cm² — at 10¹³ that is 15.5 physical hours = 12.9 real minutes.
Uniformity is the core mechanic. Flux in the reflector falls with distance from the core, so the ingot must be rotated by a Create shaft. Without rotation non-uniformity equals the flux gradient across the ingot (20–40 % for a 15 cm ingot); with ≥ 1 RPM only the axial component remains (≤ 5 %). Wafer yield is Y = max(0, 1 − δ/0.10). Overdoping cannot be fixed — the wafers drop to a lower grade. After irradiation the ingot cools (Si-31: ≈ 2 real minutes) and is annealed at 700–800 °C, then doped_silicon_ingot goes to wafer cutting for transistors and integrated circuits of automation levels A3–A5.
The sealed_source item has a source_spec component:
| Field | Meaning |
|---|---|
nuclide |
CO60, IR192, CS137, AM241_BE, PU238, SR90, H3, MO99, I131
|
activityBq, refTimeS
|
activity at a reference time |
capsule |
SPECIAL_FORM (survives fire and impact without leaking, per IAEA SSR-6) or NORMAL_FORM
|
serial |
number for the station log |
integrity |
0…1; below 0.2 the capsule breaks and contaminates |
ownerStation |
last legal owner |
Category by A/D ratio (IAEA RS-G-1.9):
| Category | A/D | Example | In game |
|---|---|---|---|
| 1 | ≥ 1000 | Co-60 irradiator, RTG | only in a fixed installation or a transport_cask
|
| 2 | 10–1000 | Ir-192 radiography camera | only in a radiography_camera or source_container_type_b
|
| 3 | 1–10 | Am-Be logging source | in a source_container_type_a
|
| 4 | 0.01–1 | in inventory, with dose | |
| 5 | < 0.01 | tritium lamp | freely |
D-values, TBq: Co-60 0.03; Ir-192 0.08; Cs-137 0.1; Am-241 and Am-Be 0.06; Pu-238 0.06; Sr-90 1; Mo-99 0.3; I-131 0.2; H-3 2000. Categories 1–3 are automatically entered into the high-activity source registry (see Multiplayer).
The radiation accidents with the most victims involved not reactors but orphan sources: a decommissioned medical or industrial source ends up with people who do not know what it is.
- A source outside a container and outside station ownership for more than 600 real seconds (
isotopes.orphan_after_s) becomesORPHAN; the owner station gets a priority-1 alarm and a log entry. - An orphan source does not despawn and keeps emitting.
- Villagers within 8 m of an unshielded category ≤ 2 source receive dose and weakness.
- A source with integrity below 0.2 contaminates everything around.
Spent sources are returned in a source_container_type_b to the waste repository.
| Instrument | Source | Gives |
|---|---|---|
radiography_camera + radiography_crank + radiography_film
|
Ir-192, 1–4 TBq | inspection of pipe and vessel welds |
well_logging_tool |
Am-Be 740 GBq (+ Cs-137 density logging, backlog) | neutron porosity and hydrogen index of the formation: where is oil, where is water |
gamma_irradiator |
Co-60, hundreds of TBq |
xlpe; sterilization (backlog) |
startup_source |
Am-Be | reactor startup by the 1/M method |
level_gauge_radiometric (backlog) |
Cs-137 / Co-60 | non-contact level gauge for blast furnaces and coke batteries |
tritium_lamp |
H-3 | decor, light without power |
rtg_* |
Pu-238, Sr-90 | autonomous power |
The well_logging_tool is lowered into a well on the drilling rig winch. The thermal neutron count depends on porosity and the hydrogen index of the fluid (oil and water ≈ 1, gas 0.1–0.5), so a gas-bearing interval shows up as a jump in counts. Noise is Poisson. Log data is a "depth → counts" table on a floppy disk for processing on a CC: Tweaked computer.
An RTG is autonomous power without fuel or maintenance for years. In game it solves a concrete problem: remote objects — telemetry RTUs at wells, beacons and weather stations, cathodic protection of pipelines, Create contraptions far from the grid. Real prototypes: Sr-90 RTGs of Arctic lighthouses ("Beta-M", "Gorn"), MMRTG and ASRG of spacecraft (Pu-238).
| Block | Converter | Output | Prototype |
|---|---|---|---|
rtg_thermoelectric |
thermocouples (SiGe / PbTe) | power grid (low-voltage input) or FE | MMRTG, "Beta-M" |
rtg_stirling |
free-piston Stirling engine; in game, a Create shaft | SU (shaft) or electric | ASRG |
Heat sources are inserted as items: pu238_heat_source (PuO₂ in iridium cladding inside a graphite block, like GPHS) or sr90_heat_source (SrTiO₃ in a steel capsule).
Heat: P(t) = P₀·2^(−t/T½), with P₀ = m·w. Pu-238 in PuO₂ at 85 % purity: 0.40 W/g. Sr-90 + Y-90 in equilibrium: 0.92 W/g of Sr-90 metal, about 0.2 W/g in SrTiO₃. The hot junction temperature follows from the balance between thermal power, electric output and heat leak; the cold side depends on fins, air or water (under water an RTG cools better, as with marine RTGs), biome and weather.
Thermoelectric efficiency:
SiGe with ZT = 0.6, 1273 K hot and 573 K cold gives 8.5 %; with system losses ≈ 6.8 % — the same as real GPHS-RTGs (4400 W thermal → 300 W electric). Thermocouples degrade by 3 % per year.
Stirling RTG on a Create shaft: 25 % efficiency at ≈ 1000 K, output at a fixed 32 RPM. 1 kg of PuO₂ (400 W thermal) gives 100 W mechanical — only 0.1 SU at W_PER_SU = 1000. So the Stirling RTG is scaled by isotopes.rtg_su_multiplier = 50 to 5 SU at 32 RPM: enough for a small mechanism, not a factory. This is a deliberate scaling point: a physical RTG in Create would be useless, but the game one should spin a remote contraption. The electric RTG stays physical: its consumers (RTUs, cathodic protection, beacons) really draw tens of watts. Stirling engines wear out (mean time between failures 15 years); when the piston stops, a safety shunt dumps the heat to the fins without damage, and output goes to zero.
| Source | External radiation | Built-in shielding | If destroyed |
|---|---|---|---|
| Pu-238 | neutrons ~10⁴ n/(s·g), weak gamma | 2–5 cm of polyethylene | alpha aerosol: internal exposure, contamination |
| Sr-90 | bremsstrahlung from Y-90 betas | lead or depleted uranium, hundreds of kg | Sr-90 is a bone seeker; high inhalation and ingestion doses |
RTG destruction (explosion, fall, lava) goes through DamageBudget. A special-form capsule survives fire and impact up to isotopes.capsule_impact_threshold; beyond it, integrity drops and contamination spreads. Uncontrolled dismantling of RTGs is a real problem (scrap hunting at abandoned lighthouses); in multiplayer an RTG source is category 1 and tracked.
The fuel is U-ZrH: when heated, hydrogen in the hydride hardens the neutron spectrum, and a prompt negative temperature coefficient stops an excursion in milliseconds. Such a reactor can deliberately be made prompt critical — a pulse of hundreds or thousands of MW for tens of milliseconds — and it shuts itself down. It demonstrates physics that would be a catastrophe in a power reactor.
Components: TRIGA_ROD fuel assemblies (U-ZrH₁.₆, 8.5–20 wt % U, enrichment ≤ 19.75 %), a prompt fuel temperature coefficient of about −1.0·10⁻⁴ K⁻¹ in the reactivity budget, and a transient_rod_drive that ejects a rod pneumatically in ≈ 0.1 s.
Pulse model (Fuchs–Nordheim, used as a test oracle; the game computes the pulse with point kinetics and ~1 ms substeps):
Example: a $2 insertion with β = 0.007, Λ = 40 µs, fuel heat capacity 7·10⁴ J/K → 429 MW peak, 9.8 MJ, 20 ms wide, fuel heats up by 140 K. Real TRIGA $2 pulses are about 1000 MW and 15–20 MJ — the right order; constants will be tuned at implementation.
Uses: short-lived isotopes, pulse irradiation of samples, the "Pulse" advancement, a simulator training scenario. Pulse mode is possible only with a transient_rod_drive and a key bypass of the SHORT_PERIOD trip. It is a deliberate action, not an accident, and it is logged.
No separate facility is needed: the 1/M method and subcritical multiplication are part of Reactor-Physics. A tabletop teaching assembly of natural uranium slugs in water with a startup_source, on which you watch the count rate grow with every layer before building T0, is backlog.
| Installation | Real prototype | Idea in game | Main technical risk |
|---|---|---|---|
| Transportable nuclear plant | TES-3 (on tracked chassis), Pamir-630D | a reactor module carried by Create train to a remote oil field and deployed there | simulation state while assembled as a contraption |
| Floating nuclear plant | Akademik Lomonosov (KLT-40S) | a barge by the shore, cable to land | same |
| Ship reactor | icebreaker Lenin, KLT-40 | nuclear icebreaker or locomotive as a Create contraption | contraptions do not consume power while moving — the benefit is cosmetic |
| Desalination and district heating | BN-350 (Aktau) | steam extraction to a desalination plant, heating network | owned by the grid section |
Proposed implementation: a monoblock compact_reactor_module — one block with an internal fixed-geometry reactor core simulation, serialized in block-entity NBT. When a Create contraption is assembled, the block entity "sleeps" (tripped on loss of drive power, decay heat computed analytically for the trip) and "wakes" when disassembled. The reactor is shut down while moving. Target: M15.
-
Neutron flux and reactivity margin (reactor) → Co-60 →
gamma_irradiator→xlpe→ high-voltage cables (power grid). -
Cobalt (
cobalt_ingot, metallurgy) → Co-60. -
Iridium (
iridium_ingot, copper anode slime) → Ir-192 →radiography_camera→ inspection of pipes and vessels in metallurgy, pipelines and the primary circuit. - Np-237, aged PuO₂, Sr-90 (PUREX and high-level waste) → Pu-238 / Am-241 / Sr-90 → RTGs for RTUs, remote wells and cathodic protection; Am-Be sources for reactor startup and well logging.
-
silicon_ingot(silicon chain) →doped_silicon_ingot→ wafers and microchips. -
polyethylene(petrochemistry) →xlpe. -
D₂O with tritium (T3,
gs_exchange_tower) → tritium →tritium_lamp. -
ion_exchange_resin(petrochemistry) → americium separation. - Mo-99 and I-131 → the exchange; activation analysis of samples → exploration and oil evaluation.
Irradiation channels are visible through pc_reactor; RTGs and irradiators through the generic pc_device with their own profiles.
| Tag | SI unit | Source |
|---|---|---|
core.irr.<ch>.flux.thermal |
cm⁻²·s⁻¹ | estimate from the core model |
core.irr.<ch>.capsule.temp |
K | capsule thermocouple |
core.irr.<ch>.fluence |
cm⁻² | calculated |
core.irr.<ch>.rho_worth |
Δk/k | calculated estimate |
irr.ntd.<id>.speed |
rpm | Create shaft |
irr.ntd.<id>.fluence |
cm⁻² | calculated |
rtg.<id>.power.thermal / .power.el / .power.mech
|
W | |
rtg.<id>.temp.hot / .temp.cold
|
K | thermocouples |
gamma.<id>.source.position |
m | rack position (0 = in pool) |
gamma.<id>.dose_rate |
Gy·s⁻¹ | irradiator ion chamber |
| Method | Permission | Does |
|---|---|---|
irradiation.load(ch, slot) |
REACTOR_OP |
load a capsule from the channel input buffer into the core |
irradiation.unload(ch) |
REACTOR_OP |
unload to the spent fuel pool |
rabbit.send(term, seconds) |
REACTOR_OP |
send a capsule by pneumatic rabbit for a given time |
irradiator.raise() / .lower()
|
OPERATOR |
raise / lower the source rack; blocked when the cell door is open |
rtg.status() |
— | powers, temperatures, remaining P/P₀ |
Events: capsule_failure, rabbit_returned, irradiator_door_interlock, source_orphaned, rtg_overtemp.
- Reactor-Physics — flux, startup sources, prompt criticality
- Nuclear-Fuel-Cycle — PUREX, Np-237, aged PuO₂, waste
- Radiation-Safety — shielding and dose from sources
- Oil-and-Gas — well logging, remote wells
- Coal-and-Metallurgy — weld inspection, cobalt and iridium
- Energy-Grid — XLPE cables and voltage classes
- Environment-and-Economy — isotopes on the exchange
- CC-Tweaked-API
Prompt Critical · © 2026 denfry · Repository · Report an issue
Start here
Design
Nuclear
Industries
Control and automation
World and server
Development