Industrial Worlds


Runs Angel/Bob and Pyanodons as isolated industrial worlds in Factorio 2.1 Space Age. Nauvis keeps canonical progression while Angelus and the Pyanodons world get their own resources, production, science, labs and progression.

Content
a day ago
2.1
50
Planets Environment Mining Manufacturing

Changelog

Version: 0.0.10
Date: 2026-10-01
  Changes:
    - Added startup world-selection settings for Angelus and Pyanodons. Complete installed suites may now remain loaded while their destination planet is disabled.
    - Kept each disabled-world compatibility adapter active for canonical Standard / Space Age restoration and overhaul quarantine, rather than simply skipping the adapter and allowing upstream global prototype mutations to leak onto Nauvis.
    - Made the complete Angel/Bob and Pyanodons gameplay stacks optional Industrial Worlds dependencies. Industrial Worlds now supports Standard/Space Age + Angelus only, Standard/Space Age + Pyanodons only, the combined three-world profile, or the framework without either overhaul suite installed. Optional dependencies still enforce load order when the corresponding mods are present.
    - Expanded adapter activation detection so a world only activates when its complete validated suite is present. Partial Angel/Bob or pY installations remain inactive instead of being mistaken for a supported dedicated-world contract, and `/iw-worlds` reports that state explicitly.
    - Moved technology grouping, recipe-origin badges and Angelus commodity bridges out of the combined-stack-only Pyanodons finalization path so the same presentation/integration features work in single-overhaul profiles.
    - Added an explicit cross-world commodity equivalence registry. When Corrundum is installed, transported platinum ore and platinum plate can be normalized 1:1 into the native Angelus platinum identities after Angelus Platinum Smelting 1; when Paracelsin is installed, zinc plate can be normalized 1:1 into the Bob/Angel zinc plate after Angelus Zinc Smelting 1. The adapters are one-way and disallow productivity and quality upgrading.
    - Extended commodity equivalence to explicitly reviewed oil fractions. After Angelus Oil Processing, transported heavy oil, light oil and petroleum gas can be normalized 1:1 into Angel Petrochem naphtha, fuel oil and methane respectively. These mappings mirror Angel Petrochem's own base-game converter identities without merging the production chains globally.
    - Added optional load-order dependencies for Corrundum and Paracelsin so their external commodities are available to the final Industrial Worlds compatibility pass without making either planet mod mandatory.
    - Added lower-right planet-origin badges to visible recipes. Angelus/Pyanodons use explicit world ownership; Space Age and third-party planets are inferred conservatively from final discovery-technology ancestry or a unique surface-condition match, and ambiguous/shared recipes are left unbadged rather than mislabeled.
    - Gave Angelus and Pyanodons independent map seed offsets instead of inheriting Nauvis' explicit zero offset through prototype cloning. The same game seed now produces distinct terrain layouts for all three industrial worlds.
  Bugfixes:
    - Gated every Angelus-owned recipe at the force level until Planet discovery: Angelus is researched. Native Angel/Bob bootstrap recipes no longer appear craftable on Nauvis before the force reaches the Angelus branch; their original enabled states are restored exactly when discovery completes.
    - Preserved the pre-pY Angel/Bob Lab presentation for the Angelus-local lab instead of cloning pY's final globally-mutated Lab graphics.
    - Preserved the pre-pY Angel/Bob Automation Science item presentation for the Angelus-local science pack.
    - Added a dedicated Angelus stone furnace item, entity and bootstrap recipe so a fresh Angelus landing can begin smelting without importing a standard-world or pY furnace.
    - Limited the strict standard/pY material-boundary validator to canonical Factorio/Space Age and Industrial Worlds standard recipes. Third-party planet recipes that intentionally share material IDs, such as Paracelsin's zinc chain, no longer cause false-positive startup failures.
    - Added targeted existing-save synchronization for commodity-equivalence recipes so already-researched Angelus metallurgy/oil technologies correctly enable newly added bridge recipes without resetting unrelated technology effects.
    - Strengthened Angelus final validation against direct Pyanodons technology/science prerequisites and against any Angelus-owned recipe consuming or producing `iw-py-*` local prototypes. This catches shared-prototype/variant bleed even when the pY destination world is disabled.
  Notes:
    - Main overhaul suites are install-time optional and, when installed as complete suites, their destination worlds can also be disabled with startup settings while the isolation adapter remains active. Only explicitly reviewed commodity identities are bridged; there is still no broad name-based item or fluid substitution.
    - Reserved future world ranges now include Nullius 3000-3999, Periodic Madness 4000-4999, Krastorio 2 / Spaced Out 5000-5999 and Ultracube 6000-6999. The latter four remain detected/planned adapters rather than advertised supported worlds in 0.0.10.
Version: 0.0.9
Date: 30. 09. 2026
  Changes:
    - Added `/iw-debug-world-isolation [radius]`, a read-only generated-surface scan that reports resource and enemy-spawner inventories on Nauvis, Angelus and Pyanodons and flags cross-world pY geology or Bob-enemy contamination.
    - Centralized the pY resource ownership registry in `compatibility/worlds.lua` so data-stage map generation and runtime diagnostics use the same geology classification contract.
    - Made Bob Enemies, Bob Classes and Angel add-on packs (Storage, Mobility, CAB and Bots) optional dependencies; the core Angel/Bob and full supported pY suites remain the validated combined contract.
    - Added distinct Angelus and Pyanodons planet/discovery icons using their own overhaul graphics so destinations are easier to distinguish in setup and on the starmap.
  Bugfixes:
    - Fixed Angelus inheriting Pyanodons resource autoplace from the shared Nauvis prototype during the combined data-stage load order. Angelus now explicitly removes and hard-disables every detected pY resource after the final pY geology pass.
    - Added final cross-stack map-generation validation so a pY resource/control/noise expression on Angelus is a startup error instead of a silent world-generation leak.
    - Isolated Bob Enemies map generation to Angelus: Bob elemental spawners/worms are hard-disabled on Nauvis and the Pyanodons world, while Angelus explicitly enables the installed Bob enemy autoplace families.
Version: 0.0.8
Date: 30. 09. 2026
  Changes:
    - Added surface-local native technology visibility: the research list now shows only the Standard/Space Age, Angelus, or Pyanodons branch currently occupied by connected players on that force; multiplayer safely shows the union of occupied branches.
    - Separated Standard/Space Age, Angelus (Angel/Bob), and Pyanodons research into distinct native Factorio technology groups/subgroups while preserving technology order inside each branch.
    - Moved Angelus/Pyanodons discovery technologies into the Standard/Space Age research group because those travel gates must be researched before the destination world can be reached.
    - Remote-world technologies are hidden without changing researched state or effects; queued/current research remains visible so travel does not silently interrupt active research.
    - Added `/iw-debug-tech-view` and `/iw-debug-tech-groups` read-only diagnostics for branch visibility and native technology grouping.
  Bugfixes:
    - Fixed the Pyanodons first-science bootstrap to match upstream pY: 10 local iron plates unlock pY Steam Power, then 10 local copper plates unlock pY Automation Science, which unlocks the dedicated `iw-py-lab` and local Automation science recipe.
    - Removed the incorrect scripted trigger from `iw-py-electronics`; Electronics now uses normal laboratory research with `iw-py-automation-science-pack` and no standard-world lab dependency.
    - Reasserted the pY Automation/Electronics bootstrap after generic shared-technology cloning so third-party edits cannot reintroduce the circular bootstrap or drop the local lab unlock.
    - Existing saves recover the corrected pY milestones from per-surface production statistics when qualifying iron/copper production already occurred.
    - Fixed `/iw-debug-check-start py` treating missing `ore-quartz` inside the starter inspection radius as fatal when pyalienlife intentionally disables quartz starting-area placement.
    - Scripted research milestones now show an explicit Unlock cost, actual prerequisite technologies, and the world-local production action under Researched by; descriptions are rebuilt after final prerequisite convergence so the UI matches the live prototype.
    - Added final cross-stack validation for technology grouping and the exact early pY bootstrap sequence.
    - Fixed `/iw-debug-tech-view` loading `runtime.world_research` from inside the command callback; all runtime modules are now required during control-stage parsing.
    - Explicitly reject `cargo-bays-and-unloaders` because it is incompatible with required Space Age; PyAE currently recommends that mod, so it must remain disabled in Industrial Worlds installs until the upstream dependency is made optional.
    - Restored the canonical Factorio 2.1 `fluid-wagon` capacity to 50000 independently of the pY baseline snapshot, while the Pyanodons-local wagon retains the pY 25000 contract.
Version: 0.0.7
Date: 23. 09. 2026
  Changes:
    - Raised the supported Factorio floor to 2.1.20: `info.json` now requires `base >= 2.1.20` and `space-age >= 2.1.20`.
    - Extended `/iw-debug-playthrough py` through pY Science Pack 1, local Logistic science, pY Science Pack 2, local Chemical science, pY Science Pack 3, local Production science, pY Science Pack 4 and local Utility science.
    - Extended science-driven playthrough diagnostics to audit each required science pack's world-local production recipe, ingredients, unlock state and compatible crafters without changing the save.
    - Expanded `/iw-debug-progression py` and final validation to cover the full pY pre-space science spine, including the isolated Military science branch.
  Bugfixes:
    - Replaced the removed singular Factorio item fuel API with 2.1.20+ `fuel_categories` arrays throughout the Pyanodons compatibility layer, including canonical fuel restoration and initial-fuel category matching.
    - Fixed Angel/Bob validation treating unrelated third-party `craft-item` research triggers as Industrial Worlds cross-world leaks; external triggers now warn instead of aborting startup, while Angelus-owned cross-world leaks remain fatal.
Version: 0.0.6
Date: 01. 09. 2026
  Changes:
    - Expanded `/iw-debug-playthrough` with a read-only trigger-item production-path audit: the next craft/production milestone now reports a world-compatible producer recipe, unlock state, ingredients and compatible crafters (or mining source) without changing the save.
    - Expanded `/iw-debug-playthrough` with actionable read-only research requirements: surface-aware scripted milestones now show the required item/count and current world-local production progress, native craft triggers show their item/count and local production progress, and science technologies show unit count/time.
    - Fixed the 0.0.6 natural-playthrough audit exposing pY bootstrap prerequisites on iw-ab-electronics; Angelus Basic Electronics is now reasserted as the intended trigger-only early milestone with no technology prerequisites, and final validation fails if foreign prerequisites return.
    - Removed the state-mutating 0.0.5 cheat/test commands from the public 0.0.6 command suite: no cheat-mode toggle, free science, instant research/unlock, speed boost, teleport/world creation, chart forcing or all-tech setup commands are registered.
    - Converted the retained starter/progression/smoke diagnostics to read-only progression checks; they no longer research discovery technologies, create overhaul worlds or force-generate chunks.
    - Added `/iw-debug-playthrough <nauvis|angelus|py>` to report the next natural branch milestone, missing prerequisites and science requirements without altering the save.
    - Started the 0.0.6 development line from the exact validated and published 0.0.5 multi-world baseline; no gameplay or progression behavior is changed in this baseline build.
    - Replaced the Industrial Worlds thumbnail with new artwork representing Nauvis, Angelus (Angel/Bob) and the dedicated Pyanodons world without embedding a release version number.
    - Raised the pyspaceage dependency floor to 0.0.3 so clean 0.0.6 installs pull the published Pyanodons Space Age bridge release.
Version: 0.0.5
  Changes:
    - Added automated /iw-debug-check-start, /iw-debug-progression and /iw-debug-smoke-all runtime test commands for branch resources, progression and world-boundary smoke testing.
    - Added /iw-debug-help, /iw-debug-setup, /iw-debug-world, /iw-debug-unlock, /iw-debug-research, /iw-debug-science, /iw-debug-speed, /iw-debug-cheat, /iw-debug-chart and /iw-debug-all for rapid multi-world compatibility testing.
  Bugfixes:
    - Fixed /iw-debug-progression py and /iw-debug-smoke-all falsely absorbing Angelus/Bob technologies into the Pyanodons debug branch when shared recipes were touched by pY.
  - Repaired legacy iw-ab biter/spitter spawners that generated on Nauvis and added a per-chunk runtime guard so stale save map-gen settings cannot reintroduce Angelus enemy spawners.
  - Preserved pY no-module assembling-machine contracts under Factorio 2.1 Quality by disabling quality-created module slots when allowed_effects is empty.
    - Preserve the pY water/steam thermal contract after combined-suite late mutations.
    - Refresh stale Bob Quality recycling recipes after pY item collision isolation.
    - Materialize hidden pY-local casting-pipe/casting-copper-cable compatibility forks when upstream deletes the shared recipe.
  Bugfixes:
    - Full-stack pY/AngelBob ownership isolation no longer captures Bob/Angel technology unlock recipes as standard pY shared recipes.
    - Preserve final pY water/reactor/entity contracts before Angelus reconciliation and restore canonical underground-belt distances.
    - Added missing pY casting-pipe and casting-copper-cable shared forks and restored Angelus discovery research after pY postprocessing.
    - Restored Bob Plates salt-water electrolysis itself at the Angelus final boundary so pY global replacement passes cannot remove bob-sodium-hydroxide from the pre-Chemical-Science production route; also normalized Automation II and Engine prerequisites to keep the route wholly pre-blue.
    - Rebuilt Angelus science progression from the Factorio 2.1 + Bob Tech contract instead of cloning shared pY-contaminated science bodies: green/military/chemical/production/utility recipes now use Bob/Factorio intermediates only, each science technology consumes earlier Angelus tiers only, and critical shared Bob milestones are capped to their proper pre-tier research packs.
    - Fixed combined Angel/Bob+pY science contamination by translating pY science-tier requirements back onto the equivalent iw-ab-* tiers and harmonizing the final Bob alien lab with the complete Angelus research set.
    - Recreated the canonical crude-oil autoplace control when pY removes it so the preserved Angel Petrochem crude resource can remain enabled on Angelus.
    - Fixed combined Angel/Bob+pY final-fixes when Pyanodons has removed Factorio 2.1 oil-gathering: reconstruct the canonical milestone before forking iw-ab-oil-gathering, then reuse the same definition for Nauvis restoration.
    - Fixed the Angel/Bob/pY bootstrap handshake so 0.0.2+ is validated by capability instead of an obsolete exact 0.0.1 version string.
Date: 01. 09. 2026
  Changes:
    - Fixed Nauvis Angelus-spawner migration using removed LuaEntityPrototype.max_health at runtime.
    - Fixed Angelus Bob sodium-hydroxide/electrolysis progression remaining behind Chemical Science in the combined Angel/Bob + pY stack.
    - Replaced external Angel/Bob/Pyanodons bridge dependencies with the Industrial Worlds-owned 0-industrial-worlds-compat bootstrap. It runs before overhaul data loading, sanitizes malformed data:extend lists, normalizes mixed-stack recipe shapes, supplies pY recipe-call fallbacks, and provides the narrow legacy compatibility-presence signal still expected by PyPostProcessing. Bob Revamp remains required.
    - The bootstrap also guards PyPostProcessing's two optional Bob technology lookups and defers its pre-isolation hidden-prerequisite assertion until Industrial Worlds can validate the separated technology branches itself.
    - Raised the explicit PyPostProcessing floor to 3.1.2 for the combined compatibility contract; Angel's Industries remains excluded because it is deprecated.
    - Made the complete maintained Angel/Bob set, full supported Pyanodons 3.1 suite and pyspaceage hard dependencies so the normal 0.0.5 installation always loads all three progression ecosystems together.
    - Removed the old Angel/Bob-versus-Pyanodons mutual-exclusion abort and added fail-closed combined validation for direct iw-ab-* / iw-py-* recipe, entity, technology and science crossover.
    - Deep-scanned the Pyanodons boundary and replaced screenshot-by-screenshot technology repair with a canonical full-tree convergence pass: Base, Quality, Elevated Rails and Space Age technology definitions are replayed from the running Factorio installation, Space Age's later technology updates are reapplied, every colliding pY form is preserved as iw-py-*, and the standard public ID is restored authoritatively.
    - Added IW-owned standard presentation for known pY global locale collisions across technologies, circuit items and all split shared machine/vehicle entities so pY labels cannot leak onto the canonical branch while normal Factorio backer names remain intact.
    - Split the two remaining pre-snapshot gameplay collisions discovered by the deep scan: Py Alien Life's Mecha Zungror keeps the upstream runtime `spidertron` identity on iw-pyanodons while standard worlds use an IW-owned canonical Spidertron alias, and Py Industry's fuel-burning portable fusion reactor is preserved as iw-py-fission-reactor-equipment while the canonical portable fission reactor item/equipment is reconstructed from the running Base files.
    - Restored canonical standard Automation presentation and research contract after pY replaces the shared technology with its burner-oriented Assembly version; the installed pY form is preserved as iw-py-automation.
    - Restored standard Electronics and Lab presentation using Industrial Worlds-owned locale keys so Pyanodons global locale overrides cannot rename the canonical Nauvis branch.
    - Added the completed Pyanodons 3.1 dedicated-world adapter in the reserved 2000-2999 Industrial Worlds range, including iw-pyanodons discovery, pY map generation, first-arrival bootstrap and /iw-py-diagnostics.
    - Isolated Pyanodons production ownership from the standard Space Age worlds: shared machines, recipes, resources, scenery, water/steam thermodynamics, science packs and exact Space Age item/fluid/technology name collisions now use dedicated iw-py-* identities where a shared identity would cross the world boundary.
    - Added dedicated Pyanodons Automation, Logistic, Military, Chemical, Production and Utility science packs plus iw-py-lab; pY research uses the local packs while the canonical Space Age lab/science progression remains standard-owned.
    - Restored the canonical Factorio 2.1 and Space Age technology graph after pY global rewrites, including oil, rail, logistics, robotics, nuclear, modules, equipment, Mining Productivity, Artillery range/speed and late Space Age progression.
    - Split exact technology collisions for Carbon Fiber, Lithium Processing and Quantum Processor, preserving the pY forms as iw-py-* technologies and restoring their canonical Space Age contracts.
    - Restored canonical standard recipes from a pre-data-updates baseline and supplemented the shared-recipe registry from standard technology unlocks so canonical unlocks such as Splitter cannot silently inherit pY ownership.
    - Retargeted all pY-owned recipe ingredients, products and main products to the central world-local item/fluid replacement registry, including shared machine items, pY science packs and exact Space Age collision items.
    - Split exact Space Age/Pyanodons item collisions for Lithium, Superconductor and Supercapacitor and fluid collisions for Ammonia, Molten Iron and Molten Copper; standard Space Age keeps its canonical contracts while pY uses iw-py-* copies.
    - Restored canonical Factorio circuit item presentation and stack/weight semantics for Electronic Circuit, Advanced Circuit and Processing Unit after pyhightech replaces those item prototypes during dependency data.lua.
    - Restored standard Nauvis geology and ecology after pY global changes: coal/crude oil generation, stone/uranium contracts, vanilla tree wood harvests and rock drops remain canonical while pY resource/scenery forks are reconciled only on iw-pyanodons.
    - Restored canonical standard burner fuels, barrel size, module effects, machine/entity behaviour, rolling-stock capacities, item grouping/icons and Space Age water/steam limits while preserving the final pY forms on the dedicated world.
    - Added surface-aware scripted research for shared craft-item milestones so production on one industrial world cannot satisfy the other world's Electronics, Steam Power, Automation or Steel Axe milestone.
    - Added fail-closed Pyanodons validation for dangling prerequisites/unlocks, incompatible labs, cross-world technology dependencies, standard/pY recipe material contamination, shared prototype ownership, thermal-fluid range violations, scenery/resource leakage and canonical progression sentinels.
    - Updated the Pyanodons runtime contract to revision 7 so existing 0.0.5 saves re-run resource/scenery/world reconciliation after the completed isolation pass.
  Bugfixes:
    - Raised the Industrial Worlds bootstrap floor to 0.0.2; the bootstrap now repairs missing equipment category arrays before Angel's CAB data-updates when the full Bob/pY stack is active.
    - Fixed the Pyanodons standard-recipe baseline being captured after pY data.lua had already rewritten canonical Base/Space Age recipes; 0.0.5 now reconstructs those recipes from the running Factorio installation's own recipe sources before applying the Space Age canonical adjustments.
    - Fixed Base/Space Age materials moved or reskinned into pY subgroups being misclassified as Pyanodons-only solely from subgroup/graphics metadata.
    - Fixed generated pY high-temperature steam cooling recipes using canonical 500 C Space Age steam by moving the complete generated cooling ladder to iw-py-steam.
    - Fixed pY removal of vanilla Oil Gathering leaving dangling canonical technology prerequisites by recreating missing captured standard prerequisites before prototype ID assignment.
    - Fixed Space Age Mining Productivity isolation: canonical levels 1-3 are retained with level 3 infinite, while pY levels 1-12 are preserved exclusively as iw-py-* technologies.
    - Fixed Space Age Artillery range isolation: the canonical infinite range technology remains standard-owned while pY's finite 1-13 family is preserved on the pY branch.
    - Fixed pY tree log/sap, rock moss, raw-coal and ash behaviour leaking onto standard Nauvis.
    - Fixed canonical shared technologies retaining pY-only unlocks or prerequisites, including the 255-entry recipe ownership cascade discovered during 0.0.5 loader validation.
    - Fixed canonical Spidertron being unsafe under its original runtime entity ID while Py Alien Life is active; its standard recipe now creates the canonical IW alias, leaving pY's burner-backed Mecha Zungror runtime hook isolated to iw-pyanodons.
    - Fixed the canonical portable fission reactor retaining Py Industry's 2.7 MW fuel-cell burner contract by reconstructing the standard 750 kW electric generator equipment and keeping the pY variant on its own item/equipment/recipe identity.
    - Fixed the base Splitter recipe being omitted from shared recipe isolation, which left canonical Logistics unlocking a pY-owned recipe.
    - Fixed rolling-stock validation to match Factorio 2.1's actual locomotive/wagon prototype contracts instead of treating omitted wagon max_speed as an error.
    - Removed the obsolete standalone Pyanodons prototype-hygiene module; missing recipe-effect repair now lives in the owning technology compatibility file.
Version: 0.0.4
Date: 29. 08. 2026
  Changes:
    - Finalized the 0.0.4 Mod Portal release package after a clean in-game release audit (0 blockers, 0 warnings, 0 technology-gate mismatches) on the supported Angel/Bob configuration; removed deprecated Angel's Industries from the dependency/test matrix while retaining inert legacy compatibility guards for existing configurations.
    - Made diagnostics, release-audit output and data-stage validation derive the installed Industrial Worlds version dynamically, and added key active dependency versions to runtime reports for reproducible Mod Portal bug reports.
    - Added Mod Portal release documentation and declared omniab-space-age-compat incompatible because it globally rewrites the same Angel/Bob + Space Age progression graph that Industrial Worlds isolates.
    - Prepared 0.0.4 as a Mod Portal release candidate: corrected the changelog to Factorio's strict 99-dash section format and tightened release metadata without changing gameplay progression.
    - Fixed /iw-release-audit crashing when an optional ore/entity prototype is absent from the active Angel/Bob configuration; unavailable optional prototypes are now skipped safely.
    - Updated restored Angelus recipe-category assignments for Factorio 2.1 by using the unified categories table instead of the obsolete category/additional_categories fields.
    - Closed the final detected Space Age boundary leaks in Bob/Angel integration: Angelus Bob labs no longer accept quarantined planet sciences, lithium processing has an Angelus-local lithia-water route, Angel solid lithium no longer requires Aquilo lithium brine, and Bob battery MK4 no longer requires Fulgora supercapacitors.
    - Added read-only /iw-release-audit for the final Mod Portal playthrough: it reports technology-gate mismatches, wrong-world scripted-research evidence, generated-resource/ecology contamination and grandfathered cross-world labs without repairing the save.
    - Restored Bob's pre-Space-Age tungsten and lithium process chains as Angelus-local recipes when Space Age is installed: local tungsten carbide/plate and lithium plate are produced from Bob/Angel materials instead of Vulcanus metallurgy or Aquilo/Fulgora inputs.
    - Re-homed Bob Tungsten Processing and Bob Lithium Processing onto those Angelus-local recipes, removed their Bob recipe unlocks from canonical Space Age material technologies, and restored Bob copper-tungsten alloy/lithium-chloride feeds away from molten copper and lithium brine.
    - Added final planet-material dependency validation: Angelus recipes may only consume Vulcanus/Fulgora/Gleba/Aquilo-exclusive materials when a genuine Angelus production route exists, turning future Space Age compatibility leaks into a precise load-time diagnostic.
    - Quarantined Bob Space Age integration edges that pulled Vulcanus metallurgic, Fulgora electromagnetic, Gleba agricultural or Aquilo cryogenic science directly into Angelus-owned technologies; removed those four packs from Angelus lab inputs while preserving native Angel/Bob science and ordinary space science.
    - Hardened Bob Tech's advanced/alien research boundary: Angelus recipes now automatically replace canonical lab/science ingredients with iw-ab-lab and the corresponding Angelus science packs, so bob-lab-2/bob-lab-alien no longer depend on a standard-world lab and bob-science-pack-gold cannot be fed by imported canonical red/green/military/chemical science.
    - Added conditional final validation for Bob advanced research, bob-lab-2, the alien lab, gold science and all enabled alien science-pack recipes/inputs, plus diagnostics for the advanced/alien research state.
    - Rewired Bob Tech's lab upgrade chain to stay inside Angelus: the optional burner lab now upgrades to iw-ab-lab, iw-ab-lab retains Bob's higher lab upgrade, and the canonical standard-world lab no longer points at an Angelus-only Bob lab.
    - Added final validation for cross-world/missing lab upgrade targets so future Bob/Angel lab tiers cannot silently break the dedicated Angelus lab progression.
    - Fixed Angelus lab validation to respect Bob Tech's separate alien lab instead of requiring the base iw-ab-lab to accept every gold/alien science pack.
    - Added Angelus-local low-density-structure recipe and technology forks so Utility Science has a pre-tier local manufacturing route while the canonical recipe remains standard-world only.
    - Added a dedicated iw-ab-lab item/entity for Angelus. New Angelus labs now expose the local BA science inputs instead of mixing the six canonical Space Age packs into the same lab UI, while canonical lab placement is standard-world only.
    - Added validation that every Angel/Bob technology has at least one Angelus-owned lab capable of accepting its complete science-pack set.
    - Replaced force-wide shared-item research triggers with surface-aware scripted milestones for Nauvis Basic electronics, Nauvis Automation science, Nauvis Steel axe and Angelus Basic logistics.
    - Added a 0.0.4 migration that rolls back a leaked surfaced milestone only when its owning world has not actually produced the required item count, then re-evaluates it from per-surface statistics.
    - Fixed the Industrial ecosystem surface-condition tooltip unit so its numeric world range is visible instead of rendering an empty "between ... and ..." label.
    - Separated Angelus Basic electronics trigger research from Nauvis by deriving its trigger from the installed Stiratite crushed-ore bootstrap instead of shared copper plates.
    - Redirected Angelus petroleum mine-entity triggers to the preserved iw-ab-crude-oil resource where applicable.
    - Marked unprefixed Bob Logistics/Automation technology tiers as (Angelus) in the technology tree.
    - Added the missing iw-overhaul-world surface-property unit localisation.
    - Hardened final mapgen validation so active Angel compound/infinite resources must be explicitly whitelisted and controlled on Angelus. Jivolite and Crotinnium remain non-starting resources according to Angel Refining's own startup defaults.
    - Angelus now explicitly enables its mandatory coal and Petrochem crude-oil controls instead of inheriting disabled Nauvis resource sliders.
    - Added optional Angels Industries load ordering and runtime relocation for its technology-archive crash-site lab when the Angel technology overhaul is active.
    - Angel Industries' scripted angels-main-lab-0 is now removed from standard-world crash sites/inventories and issued on Angelus, preserving its native loss/respawn tracking after relocation.
    - Added Angelus ownership for namespaced labs, offshore pumps and Bob-only enemy units/spawners/worm turrets.
    - Preserved Bob Enemies' modified base spawners as iw-ab-biter-spawner/iw-ab-spitter-spawner for Angelus while restoring canonical Nauvis spawn families.
    - Angel/Bob prerequisite rewrites now skip dependency technologies removed by Angel Industries, preventing dangling technology references.
    - Added a shared Industrial Worlds ecosystem registry for standard-world and Angel/Bob world IDs, surface-property ranges, namespace ownership and science-pack mappings.
    - Moved Angelus entities, recipes, items, technologies, planet construction and runtime gating onto the shared world-adapter contract as the foundation for future Nullius/Pyanodons/Periodic Madness adapters.
    - Changed Angelus discovery gating to preserve each Angel/Bob technology prototype's real enabled state instead of enabling every namespaced technology after discovery.
    - Restored technology visibility state from the owning prototype after Angelus discovery and retained hidden discovery-gated behavior beforehand.
    - Added save migration handling that repairs 0.0.3 force technology state when upgrading to 0.0.4.
    - Added /iw-audit to repair and report the active force's Angelus technology gate.
    - Expanded /iw-diagnostics with adapter ranges, gate counts, owner-disabled technology counts, mismatch detection and bootstrap recovery status.
    - Added a one-use-per-force /iw-recover-angelus-bootstrap command for a lost first-landing Burner Ore Crusher when no force-owned crusher exists on Angelus.
    - Existing players already standing on Angelus are now checked for the first-landing bootstrap during init/configuration migration.
    - Added a final data-stage Angelus/Nauvis validation pass covering science isolation, recipe/entity surface ownership, technology fork prerequisites, cross-world unlock leakage, technology cycles and map-generation whitelists.
    - Exported Angelus geology/ecology sets from the mapgen adapter so validation and future world tooling use the exact same resource contract.
    - Added an Angelus-only runtime boundary for Bob Classes: the class selector, avatar button and avatar window are suppressed on standard worlds and restored on Angelus.
    - Bob class bodies are now quarantined when leaving Angelus: the selected class is remembered, the player is returned to the vanilla character body off-world, and Bob class character bonuses are neutralised until returning to Angelus.
    - Existing 0.0.4 saves that accidentally selected a Bob class on Nauvis are migrated by remembering that class for Angelus while repairing the current standard-world character.
    - Added deferred one-tick Bob Classes GUI synchronisation for player creation/configuration/scenario transitions so later handlers cannot re-open the selector on Nauvis in the same event.
    - Added a red-to-green Angelus progression preflight that validates the final installed logistic-science recipe, its unlock technology, prerequisite graph and every item ingredient's pre-green Angelus production route.
    - Extended the science progression preflight through Angelus military and chemical science, validating each final installed pack recipe, unlock, prerequisite graph and pre-tier item production route.
    - Extended the same final-graph preflight through Angelus production and utility science, including pre-tier ingredient-route checks for the late-game BA science packs.
    - Reasserted Production and Utility science unlocks onto their iw-ab-* recipes so late compatibility mutations cannot point Angelus research back at standard-world science manufacturing.
    - Expanded /iw-diagnostics with production/utility science readiness plus the local assembler-3, productivity-module, processing-unit and electric-engine routes used by those tiers.
    - Reasserted local military/chemical science recipe unlocks after final Angel/Bob technology cloning and added live military/chemical readiness to /iw-diagnostics.
    - Preserved Angelus-local firearm magazine, piercing rounds, grenade and stone-wall manufacturing routes; the local military-science milestone unlocks its required combat intermediates without relying on standard-world recipes.
    - Extended /iw-diagnostics with live Angelus green-science readiness for the local science recipe, inserter and transport-belt routes.
  Bugfixes:
    - Fixed /iw-release-audit crashing when optional Angel/Bob resource names such as bauxite-ore are not present in the active prototype set; absent optional entity prototypes are now skipped safely.
    - Updated Industrial Worlds' Bob/Angel recipe compatibility writes to Factorio 2.1's `categories` array, fixing bob-copper-tungsten-alloy and the restored local tungsten/lithium recipes after `category`/`additional_categories` were removed.
    - Added final validation that rejects any recipe still carrying the removed Factorio 2.1 `category` or `additional_categories` fields before prototype loading.
    - Stripped Vulcanus, Fulgora, Gleba and Aquilo science inputs from every Angelus-owned Bob lab tier, including bob-lab-2, while preserving Bob gold/alien science and ordinary space science.
    - Added an explicit Angelus lithia-water concentration route and wired Bob lithium processing to it so the local lithium chain no longer depends on optional groundwater generation or Aquilo lithium brine.
    - Re-homed Angels solid-lithium processing from Aquilo lithium brine to Angelus lithia water when Space Age compatibility injects the external fluid.
    - Removed Space Age's Fulgora supercapacitor addition from Bob Battery MK4 Equipment on Angelus, preserving Bob's native equipment progression without a hidden Fulgora import.
    - Fixed Angelus steam plumbing using a separate iw-ab-water fluid that Factorio 2.1 offshore pumps cannot extract from canonical water tiles; Angelus offshore pumps, boilers, heat exchangers and local recipes now use shared canonical water.
    - Fixed Uranium Processing using the pre-2.1 singular mine-entity `entity` field; Factorio 2.1 requires the plural `entities` array. Added a final validation guard for legacy mine-entity trigger tables.
    - Fixed the 0.0.4 final validator rejecting seven remaining cross-world research triggers exposed by the complete Angel/Bob + Space Age dependency set.
    - Converted Foundry, Metallurgic science, Electromagnetic science and Cryogenic plant craft-item milestones to standard-world surface-aware scripted research.
    - Converted Bob Steel Axe II and the Angelus Steel Processing fork to Angelus surface-aware scripted research, preserving Bob's 50-steel and Angel Smelting's 10-steel thresholds.
    - Split Uranium Processing correctly: standard worlds restore Factorio's canonical uranium-ore mine-entity trigger, while Angelus preserves the Angel/Bob sorted-uranium milestone under iw-ab-uranium-processing.
    - Bumped the 0.0.4 surface-research migration so saves exposed to the earlier trigger leak are re-evaluated against per-surface production statistics.
    - Prevented Angels Industries technology-overhaul mode from injecting its crash-site technology archive onto canonical Nauvis.
    - Consolidated duplicate technology archives if Angels Industries' native respawn handler reissues one after the archive has been relocated to Angelus.
    - Prevented Bob Enemies' expanded unit roster from leaking through the globally modified vanilla biter/spitter spawner result tables on Nauvis.
    - Prevented Bob Classes from presenting its character-class chooser at the Nauvis crash site; class selection now begins on Angelus instead.
    - Removed the Angelus burner crusher from Freeplay created-items by deleting the entry instead of setting its count to zero, preventing the Freeplay on_player_created "count must be positive" crash.
    - Converted Nauvis and Angelus entity autoplace to explicit whitelists before ecology/geology filtering, preserving unrelated default entities while guaranteeing world isolation.
    - Added the preserved Angelus Petrochem crude-oil clone to the final Angelus whitelist after the clone is created in data-final-fixes.
    - Redirected residual Angel/Bob technology unlocks for canonical shared recipes to their iw-ab-* local manufacturing forks, including Bob Chemical Processing II, Fluid Barrel Processing and Logistics 0.
    - Fixed the 0.0.3 discovery gate incorrectly force-enabling Angel/Bob technologies that their owning mods or startup settings intentionally disabled.
    - Removed prototype-level blanket disabling from Angelus fork technologies so their original Angel/Bob enabled state survives and can be restored correctly per force.
    - Prevented 0.0.3 saves from remaining stuck with stale disabled/enabled technology flags after an Industrial Worlds update.
    - Added fail-fast checks for canonical Nauvis science/production recipes escaping onto Angelus and Angel/Bob production recipes/entities escaping onto standard worlds.
Version: 0.0.3
Date: 26. 08. 2026
  Changes:
    - Added an Angelus-specific thermal-water prototype while restoring canonical 2 kJ water on Nauvis (superseded in 0.0.4: active Angelus plumbing now uses canonical shoreline water for Factorio 2.1 offshore-pump compatibility).
    - Forked Bob-modified offshore pump, boiler, steam engine, solar panel, accumulator and nuclear/heat power roots into iw-ab-* Angelus entities/items/recipes.
    - Preserved Bob Power tier upgrade chains from the Angelus-local tier-1 machines while restoring canonical standard-world power recipes and entity performance.
    - Forked Solar Energy, Electric Energy Accumulators and Nuclear Power technologies for Angelus and restored their canonical Nauvis technology definitions.
    - Redirected Bob Heat Pipe, Heat Exchanger and Steam Turbine tier-1 unlocks to Angelus-local manufacturing routes.
    - Restored vanilla shared oil-fluid fuel values/emissions behavior after Bob Power global prototype mutations.
    - Forked Robotics, Construction Robotics, Logistic Robotics and Logistic System into Angelus-owned variants while restoring canonical Factorio 2.1 robotics progression on Nauvis.
    - Preserved Bob robot-parts, modular-roboport and logistic-chest manufacturing as Angelus-only iw-ab-* recipes while shared logistics items remain portable.
    - Classified Bob Logistics' unprefixed logistic-system-2/logistic-system-3 technologies as Angelus-owned and discovery-gated.
    - Forked Engine and Electric Engine technologies/recipes for Angelus, preserving Bob/Angel manufacturing while restoring canonical Space Age engine progression on Nauvis.
    - Restored canonical water heat capacity plus water/steam/coal/solid-fuel presentation after Angel Petrochem's global thermal-fluid and subgroup overrides.
    - Classified Bob Assembly's unprefixed automation-4/5/6 and advanced-material-processing-3/4 technologies as Angelus-owned and discovery-gated.
    - Forked shared Fluid Handling, Oil Gathering, Plastics, Flammables and Lubricant technologies for Angelus while restoring the canonical Space Age petroleum spine on Nauvis.
    - Preserved Angel/Bob storage-tank, pump, barrel, pumpjack, oil-refinery and chemical-plant manufacturing as Angelus-only iw-ab-* recipes and redirected Angel Petrochem unlocks to them.
    - Restored vanilla oil processing, advanced oil processing, sulfur, plastics, lubricant and solid-fuel recipes on standard worlds while preserving Angel Petrochem's namespaced processing chain.
    - Restored canonical shared crude/petroleum/light/heavy oil, lubricant and sulfuric-acid fluid presentation after Angel Petrochem globally moved or hid those base fluids.
    - Restored Space Age recipe categories for circuits, yellow belts, sulfur/plastics and oil cracking, and restored Space Age coal-liquefaction progression.
    - Forked Angel/Bob Steel Processing and Advanced Material Processing so Nauvis research cannot satisfy Angelus metallurgy milestones.
    - Preserved the installed Angel/Bob steel-furnace manufacturing route and restored the canonical Nauvis steel-furnace recipe.
    - Split Petrochem crude-oil geology: Nauvis wells again yield vanilla crude oil while Angelus wells yield Angel multi-phase oil.
    - Moved final fish/crude prototype capture to data-final-fixes so late Angel mutations are preserved before Nauvis restoration.
    - Began full Angelus gameplay bring-up from the confirmed-load 0.0.2 full Angel/Bob baseline.
    - Restored the canonical Factorio 2.1 Automation, Logistic, Military, Chemical, Production and Utility science recipe/technology spine for standard worlds.
    - Preserved the installed Bob science recipes as Angelus-only iw-ab-* production routes.
    - Expanded Angelus ecology to preserve Angel Bioprocessing gardens, trees, alien fish, the BA normal-fish variant and puffer nests.
    - Expanded Angelus geology to include Petrochem natural gas, infinite coal and the six infinite compound ores.
    - Made Angel/Bob production, extraction, beacons and Bob power generation/storage local to Angelus while leaving logistics, rolling stock, equipment and power distribution portable.
    - Preserved Angel's tier-0 Saphirite/Stiratite crushed-ore plate recipes as Angelus bootstrap routes before restoring canonical Nauvis smelting.
    - Added distinct Angelus Automation, Logistic, Military, Chemical, Production and Utility science-pack items and rewired the Angel/Bob technology branch to consume them.
    - Preserved the Bob-modified Electronics entry point as iw-ab-electronics so wooden/basic circuit-board progression remains available on Angelus.
    - Forked Automation, Automation II and Logistics into Angelus-owned technology variants so early BA machines and Bob's belt overhaul keep their native progression without contaminating Nauvis.
    - Classified Bob Logistics' unprefixed logistics-0/logistics-4/logistics-5 technologies as Angelus-owned so their research costs and discovery gate follow the full Bob branch.
    - Preserved Bob/Angel manufacturing variants for copper cable, inserters, labs, drills, assemblers, yellow belts, lamps and combinators while standard worlds use canonical recipes.
  Bugfixes:
    - Restored vanilla fish generation on Nauvis after Angel Bioprocessing globally changed the base fish autoplace expression.
    - Prevented direct vanilla/Bob infinite ores created by Angel Infinite Ores compatibility from generating on either Nauvis or BA Angelus.
    - Corrected Automation III to the Space Age research count of 500 while keeping the Automation III/Production Science fork cycle-free.
    - Removed obsolete unused mapgen lookup state from the Angel/Bob compatibility owner.
    - Updated Angelus science-pack cloning for Factorio 2.1, where vanilla science packs are ordinary item prototypes rather than tool prototypes.
    - Removed Angel Ore Crushing from canonical Nauvis Logistics by preserving the contaminated installed technology as iw-ab-logistics and restoring the vanilla prerequisite chain.
Version: 0.0.2
Date: 24. 08. 2026
  Changes:
    - Established the complete current Factorio 2.1 Angel/Bob dependency profile and a confirmed-load Angelus baseline.
    - Added Angelus as a real Space Age destination with planet-local Angel/Bob geology and production restrictions.
    - Preserved canonical Nauvis circuit, metallurgy, automation, module and production-science branches while retaining Angel/Bob forks for Angelus.
  Bugfixes:
    - Avoided zero-valued Angel resource controls that could compile invalid spot-noise expressions.
    - Sanitised entity autoplace whitelists so disabled Bob resources without an autoplace specification cannot invalidate planet setup.