Hazardous Materials

by gz-mods

Unified hazardous-materials system for the GZ ecosystem: industrial chemistry and gases, hydrogen energy, corrosive/molten fluid containment and pipe families, underground tanks, and non-stacking poison/toxic protective equipment.

Content
12 hours ago
2.0
264
Combat Armor Mining Fluids

Changelog

Version: 0.5.24
Date: 2026-10-19
  Changes:
    - Declare exact GZ-owned crafting items and recipes in crafting_catalog.lua; organize them into curated semantic crafting rows.
    - Do not claim third-party prototypes or generate crafting-tab ownership from prototype snapshot differences.

Version: 0.5.23
Date: 2026-10-15
  Bugfixes:
    - Buried segment graphics no longer leak into ordinary view when nobody has selected the G-mode placement cursor. Factorio treats an empty render players list as visible to everyone; no render objects are now created outside active G mode.
    - Remove every native pipe picture/pipe-cover layer from physical buried segments instead of relying on alpha-zero tints, including frozen/fluid attachments.
    - Restore/create per-player underground route sprites only for active G-mode users; remove them immediately on exit or tool change.
    - Preserve the current pipe-to-concrete3 graphics for above-ground pipe-to-ground risers.

Version: 0.5.22
Date: 2026-10-15
  Pipeworks:
    - Show buried-pipe overlays only while a player is actively holding the G-selected underground pipe placement cursor.
    - Remove the independent Shift+G inspection toggle and migrate away legacy pinned-view state.
    - Hide buried paths immediately when G mode is exited or the player changes tools; keep pipe-to-ground risers always visible.

Version: 0.5.21
Date: 2026-10-14
  Graphics:
    - Replaced all pipe-to-ground entity sprites with the exact user-supplied pipe-to-concrete3 image, rotated for north/east/south/west.
    - Native entity pictures only; no separate runtime riser rendering, underlying pipe sprite, overlaid pipe covers, or alpha changes.
    - Retained subtle opaque RGB tint differentiation for the three special pipework families.
    - Clears legacy runtime riser render objects from existing saves during configuration migration.

Version: 0.5.20
Date: 2026-10-14
  Bugfixes:
    - Radiation exposure scans and damage now follow the physical character position and surface instead of the remote-view camera.
    - Viewing radioactive storage in remote view no longer damages a character on another surface or at another location.

Version: 0.5.18
Date: 2026-10-07
  Changes:
    - Restrict direct Saltpeter ingredients to firearm magazines, piercing-rounds magazines, and shotgun shells.
    - Remove the blanket Saltpeter injection from all other ammunition and grenades.

Version: 0.5.17
Date: 2026-10-06
  Fixes:
    - Fixed glass-safe corrosive containment choosing the stricter corrosive fallback when no glass-unsafe member existed. Sulfuric acid no longer destroys hardened-glass pipes, pumps, or storage tanks.

Version: 0.5.16
Date: 2026-10-06
  Bugfixes:
    - Real underground pipe segments now collide only with the dedicated buried-pipe layer, allowing normal surface pipes, belts, machines, and other above-ground entities to occupy the same tile.
    - Buried pipes still collide with other buried pipes, and pipe-to-ground risers still collide with both surface and buried networks.
Version: 0.5.15
Date: 2026-10-06
  Changes:
    - Explicitly classify sulfuric acid as corrosive and glass-safe.
    - Added a two-tier corrosive containment check: hardened-glass or corrosive-resistant pipework may carry glass-safe corrosives; stronger corrosives still require the dedicated corrosive-resistant family.
    - Extended fluid classification compatibility metadata with optional `glass_safe`.
Version: 0.5.14
Date: 2026-10-06
  Changes:
    - Moved Hardened glass pipeworks to Automation science only so the early fluid-handling chain remains red-science accessible.

Version: 0.5.12
Date: 2026-10-06
  Changes:
    - Enlarged concrete real-underground riser art to 1.50x.
    - Riser art now renders on lower-object so connected normal pipes draw above the slab.
    - Collision and fluid geometry unchanged.

Version: 0.5.11
Date: 2026-10-06
  Changes:
    - Increased real-underground pipe-to-concrete riser artwork to 1.25x visual scale without changing collision or fluid geometry.

Version: 0.5.10
Date: 2026-10-06
  Changes:
    - Real-underground pipe risers now use the provided concrete-slab pipe-to-ground art, rotated for all four directions.
    - Replaced the temporary straight-pipe visual fallback for real-underground risers.

Version: 0.5.9
Date: 2026-10-06
  Pipeworks:
    - Real-underground pipe risers now use their matching normal straight-pipe graphics instead of vanilla pipe-to-ground riser art.
    - Removed pipe-to-ground-only visualization and rear pipe-cover artwork from real-underground risers so the buried-facing connection no longer appears on the back side.
Version: 0.5.8
Date: 2026-10-05
  Changes:
    - Renamed the vanilla atomic-bomb prototype to Tactical Nuclear Bomb and retained its one-third blast footprint.
    - Removed HAZMAT full-yield Atomic/Thermonuclear rocket-launcher ammo; strategic weapons are now exclusively GZ Strikes drone bombs.
Version: 0.5.7
Date: 2026-10-03
  Bugfixes:
    - Fixed hazardous-waste incinerator animation layer cycle mismatch by repeating static layers across the 32-frame flame cycle.
    - Kept burner-generator idle and active animations on matching frame counts and moved animation speed to the first layer.
Version: 0.5.6
Date: 2026-10-02
  Fixes:
    - Added an explicit icon to the multi-output Process Concentrated Pollution recipe.
    - Audited Hazardous Materials recipe literals for other multi-output recipes lacking both an icon and main_product.
Version: 0.5.5
Date: 2026-10-02
  Fixes:
    - Consolidated repeated locale categories in chemistry.cfg and hazmat.cfg.
    - Verified all English locale files contain no duplicate keys within any category.
Version: 0.5.4
Date: 2026-10-02
  Changes:
    - Moved GZ Strikes-only Nuclear Payload and Thermonuclear Payload item/recipe ownership out of HAZMAT.
    - Standalone Atomic Bomb and Thermonuclear Bomb now pay their nuclear/fusion material costs directly.
    - HAZMAT radiation detection still recognizes the strike payloads and final strike warheads when GZ Strikes is installed.
Version: 0.5.3
Date: 2026-10-02
  Changes:
    - Moved nuclear weapon and payload prototype ownership from GZ-Terra into Hazardous Materials.
    - Added canonical Nuclear Payload and Thermonuclear Payload items/recipes.
    - Nuclear weapons now pay their fissile cost directly in large quantities of U-235; plutonium remains a fuel-cycle resource.
    - Thermonuclear payloads require the real deuterium/tritium fusion-fuel chain when available; no substitute recipe is created.

Version: 0.5.0
Date: 2026-10-02
  Pipeworks:
    - Added the startup option "Real underground pipes", enabled by default.
    - Vanilla, hardened-glass, corrosive-resistant, and tungsten pipe-to-ground entities become true surface/buried risers when enabled.
    - Added tile-by-tile buried pipe entities for all four pipe families; each segment consumes and mines back into its matching pipe item.
    - Buried vanilla and hardened-glass pipes share the default underground connection universe; corrosive-resistant and tungsten buried networks preserve their isolated connection categories.
    - Added rail-layer-key placement switching (G by default) and Shift+G underground inspection view with family-colored overlays.
    - Buried pipes can pass beneath ordinary structures but collide with other buried pipes and fluid/meltable terrain.
    - Blueprint/robot construction uses the normal matching pipe item through placeable_by rather than exposing separate inventory items.
    - The legacy "Disable undergrounds for normal pipes" startup option is ignored while Real underground pipes is enabled, because the vanilla pipe-to-ground is required as the normal-pipe riser.
Version: 0.1.21
Date: 2026-09-28
  Diagnostics:
    - Added the shared opt-in perf_capture_start/perf_capture_status/perf_capture_dump API for Gizmod's centralized performance capture.
    - Performance capture includes normal runtime events plus the Pipeworks scan and HAZMAT player-refresh nth-tick workers.
    - Raw capture output is written to GIZMOD_logs/perf_gz-hazardous-materials.log only when explicitly dumped.

Version: 0.1.20
Date: 2026-09-27
  Performance:
    - Made large Pipeworks segment finalization incremental instead of remapping every network member in one tick.
    - Made stale segment removal O(1); advisory entity mappings are repaired by the bounded rebuild worker.
    - Deferred split/rotation reseeding through the same bounded worker instead of enqueueing entire pipe networks inside build/remove events.

Version: 0.1.19
Date: 2026-09-27
  Performance:
    - Flattened Pipeworks containment scanning from a 30-tick burst into smaller 5-tick slices while preserving approximately the same total scan throughput.
    - Flattened fluid-segment rebuild work and underground-tank animation updates across the same shorter cadence to reduce visible hitch maxima.
Version: 0.1.18
Date: 2026-09-27
  Changes:
    - Hardened-glass pipework now consumes glass in every family recipe when the glass chain is present.
    - Tungsten pipework now uses tungsten steel as its structural metal when tungsten steel is available.
    - Corrosive-resistant pipework explicitly retains plastic + steel construction across all family recipes.
Version: 0.1.17
Date: 2026-09-26
  Integration:
    - Extended the existing Gizmod poison-protection bonus card with Hazmat Suit movement-cap information.
    - Respirator protection now reports remaining duration in the custom Bonuses GUI while active.
Version: 0.1.16
Date: 2026-09-26
  Documentation:
    - Added the root AGENTS.md integration charter with mod-specific authority rules and the canonical GIZMOD service/API guide.
Version: 0.1.15
Date: 2026-09-25
  Settings:
    - Added startup option "Disable undergrounds for normal pipes", disabled by default.
    - When enabled, vanilla pipe-to-ground has zero underground reach, its recipe/unlocks are hidden, and GZ special underground pipe families remain available.
    - Special underground pipe recipes switch to their matching above-ground family pipes so they do not depend on the disabled vanilla pipe-to-ground.
Version: 0.1.14
Date: 2026-09-25
  Fixes:
    - Fixed a runtime crash in underground storage-tank fluid animation updates caused by calling the data-stage-only table.deepcopy helper from scanner.lua.
    - Runtime tank tinting now copies fluid prototype color channels explicitly before applying animation alpha.
Version: 0.1.13
Date: 2026-09-25
  Integration:
    - Registered Hazardous Materials with the GIZMOD Item Tabs API; items, fluids, and recipes created by this mod are grouped into its own row under the active MASTER tab.
Version: 0.1.12
Date: 2026-09-25
  Graphics:
    - Adjusted hardened glass pipe tint alpha from 0.95 to 0.85 for a slightly more transparent glass appearance while remaining visually solid.
Version: 0.1.11
Date: 2026-09-25
  Graphics:
    - Increased hardened-glass pipe tint alpha from 0.55 to 0.95 so the cyan glass effect remains subtle and substantially solid.
Version: 0.1.10
Date: 2026-09-25
  Bugfixes:
    - Fixed a Factorio 2.0 crash in underground storage tank animation updates caused by calling the newer LuaEntity.get_fluid_capacity runtime API.
    - Underground tank fill-level rendering now uses the tank's own fixed 250,000-unit prototype capacity, avoiding runtime API probing entirely.
Version: 0.1.9
Date: 2026-09-25
  Graphics:
    - Retinted the normal/default-compatible pipe family as hardened glass with a light cyan, semi-transparent look.
    - Reduced the saturation of the corrosive-resistant orange and tungsten purple pipe families.
  Changes:
    - Renamed the reinforced pipe family in player-facing text to Hardened glass pipeworks while preserving internal prototype IDs for save compatibility.
  Bugfixes:
    - Underground storage tank fluid animations are now recreated when fill level changes instead of mutating the existing render object, preventing stale or stuck animation levels.
Version: 0.1.9
Date: 2026-09-25
  Performance:
    - Replaced per-pipe hazardous-fluid polling with one monitor per Factorio fluid segment.
    - Pipe-network topology is rebuilt only after build/remove/rotation/clone changes, using a budgeted connection walk.
    - Existing 0.1.7 tracked-entity state is migrated directly on upgrade; fresh installs perform one discovery pass and do not repeat whole-world pipe scans during normal play.
  Compatibility:
    - Segment access supports both Factorio 2.0 LuaFluidBox APIs and the newer LuaEntity fluid-segment APIs.
    - Added rotation and clone topology invalidation so split/merged networks are re-indexed safely.
  Diagnostics:
    - Pipe scanner stats now report monitored segments, rebuild work, pending topology seeds, and tracked transports.
    - Corrected the Gizmod registry version to the active Hazardous Materials version.
Version: 0.1.7
Date: 2026-09-25
  Changes:
    - Renamed the player-facing Wild Neurotoxic Bacteria item to Wild Stroma Bacteria. Internal prototype IDs are unchanged for save compatibility.

Version: 0.1.6
Date: 2026-09-25
  Features:
    - Added High Explosive and Plastic Explosive intermediates.
    - Added Biological Agents technology using Space, Military, and Agricultural science.
    - Added Toxin Extract, Neurotoxic Bacteria, Neurotoxin, Virulent Pathogen/Virulent Toxin, and specialized payload intermediates.
    - Added optional Fluid Nutrients integration for Nutrient Solution recipes.
  Graphics:
    - Updated Hydrogen Fuel Cell icon.
    - Added dedicated explosive, bacteria, dropper, and biological payload icons.
Version: 0.1.5
Date: 2026-09-25
  Bugfixes:
    - Fixed configuration-change crash by loading the Pipeworks registry module only during control-stage parsing.
    - Runtime hazard-registry refresh no longer calls require().
Version: 0.1.4
Date: 2026-09-25
  Changes:
    - Corrosive-resistant pipe requirements are now limited to acidic, corrosive, and toxic fluid classification/name matches.
    - Removed toxin, venom, waste, chitin, bug, and nitric-only heuristic matches from corrosive pipe detection.
Version: 0.1.3
Date: 2026-09-25
  Bugfixes:
    - Ammonia and ammoniacal solution are no longer classified as corrosive solely by the legacy Pipeworks name matcher.
  Changes:
    - Ammonia is explicitly registered as flammable, explosive, and gaseous in the Hazardous Materials registry.

Version: 0.1.2
Date: 2026-09-25
  Features:
    - Hazardous Materials now owns the authoritative runtime hazard registry previously maintained by Terra Hardmode.
    - Fluid hazard records expose flammable, explosive, gas, corrosive, and molten classifications. Hydrogen is explicitly flammable, explosive, and gaseous.
    - Solid explosive registration, automatic ammo/explosives registration, and hazardous barrel inheritance now live in Hazardous Materials.
    - The resolved hazard registry is published into GIZMOD for inspection and downstream consumers.
  Changes:
    - Added Hazardous Materials hazard query/registration remote calls; Terra no longer owns the gz_terra_explosives registry.

Version: 0.1.0
Date: 2026-09-25
  Major Features:
    - Consolidated GZ Chemistry, GZ Pipeworks, and GZ Hazmat into GZ Hazardous Materials.
  Migration:
    - Retained existing item/entity/recipe prototype identifiers and Pipeworks setting identifiers so current saves keep their objects and settings.
    - Consolidated cross-mod fluid classification and protection APIs under the gz-hazardous-materials namespace.
    - Cleans the retired gz-chemistry Gizmod registry entry when upgrading an existing save.

Version: 0.5.1
Date: 2026-10-02
  Features:
    - Added Concentrated Pollution chemistry: 50 fluid -> 5 carbon + 5 sulfate waste.
    - Added Hazardous Waste Incinerator and hazardous-waste fuel category.
    - Added GZ toxic-cloud prototypes and imported toxic-cloud/incinerator/flame visuals.
  Changes:
    - Sulfate/sulfur waste and toxic-spoilage-style items are recognized as incinerator fuel.
    - Pollution Solutions low-temperature heat exchanger is intentionally not imported.