Wuastbude Unipipe

by wuast94

Save-compatible Unipipe fork with deterministic multiplayer-safe handlers. Linked filler and extractor pipes share storage per fluid while preserving the original prototype and setting IDs.

15 days ago
2.1
25

Changelog

Version: 1.1.2
Date: 2026-08-15
  Fixes:
    - Fixed fluid not transferring between unipipes. Two root causes:
      1. The hidden surface was generated with out-of-map tiles, which prevent pipe fluid
      connections. Now sets grass-1 tiles before placing hidden pipes, and repairs tiles
      for existing hidden pipes on load.
      2. The hidden linked pipe was based on pipe-to-ground, whose normal connection does
      not connect to pipes with max_pipeline_extent set. Changed to a plain pipe with a
      linked connection added, which connects to adjacent hidden pipes normally.
Version: 1.1.1
Date: 2026-08-11
  Changes:
    - Forked as wuastbude-unipipe while preserving all gameplay prototype and setting IDs.
    - Replaced state-dependent event closures with fixed, save-safe handlers restored from storage.
    - Added fail-closed adoption of existing visible and hidden Unipipe networks without unlinking or clearing fluids.
Version: 1.1.0
Date: 2026-07-23
  Fixes:
    - Updated for Factorio 2.1 runtime API changes by replacing removed LuaEntity::fluidbox table
    access with LuaEntity fluid methods (get_fluid_filter, set_fluid_filter, 
    get_fluid_box_linked_connections, etc.).
    - Fixed crash when placing Unipipe entities in 2.1 ("LuaEntity doesn't contain key fluidbox").
    - Fixed manually selected fluid filters not establishing hidden linked-pipe backend entities.
    Added on_tick change detection during GUI open to immediately apply filter changes. Filter 
    change detection now uses string-based comparison (getFluidNameFromFilter) to avoid missing 
    table-identity changes.
    - Fixed multi-fluid machine port auto-filtering choosing the first fluid regardless of which
    port the Unipipe is connected to. Traversal now propagates pipe connection indices and recipe
    fallback resolves per-port fluids using connection index and fluidbox prototype data. 
    Prototype and connection iteration now uses deterministic ipairs order instead of pairs.
    - Increased internal buffer volume from 20 to 500 units to fix throughput bottleneck.
  Changes:
    - Raised base dependency to 2.1+.
    - Corrected player-facing text spelling from "Extracter" to "Extractor" (locale/README only;
    internal prototype IDs unchanged for save compatibility).
Version: 1.0.9
Date: 2026-03-31
  Fixes:
    - Add option to consider Factorissimo buildings part of their parent surface (courtesy of
    Jiopaba).
Version: 1.0.8
Date: 2025-05-14
  Fixes:
    - Removed stack-inserter as a technology prerequisite.
Version: 1.0.7
Date: 2025-05-08
  Fixes:
    - Updated for Factorio 2.0.
  Changes:
    - Added a per-surface option, enabled by default.
    - Implemented with the new "linked connections" for FluidBoxes. Much simplified.
    - Optimized pipe scanning for fluid type. Placing pipes and unipipes in a large pipe network
    should be much faster again (better than 1.0.4).
Version: 1.0.6
Date: 2023-07-03
  Info:
    - Remove debug logging
Version: 1.0.5
Date: 2023-07-03
  Info:
    - Update changelog
Version: 1.0.4
Date: 2023-07-03
  Fixes:
    - Massive performance improvement when placing fluidbox entities (pipes, unipipes, chem plant)
    - Optional setting to disable unipipe auto-filter in case above performance is not good enough
    - Fixed a crash with destroyed unipipes
Version: 1.0.3
Date: 2023-06-20
  Fixes:
    - Fixed a load error with bobslogistics mod: "next_upgrade can't be set"
Version: 1.0.2
Date: 2023-06-19
  Fixes:
    - Fixed a crash when destroyed an entity before placing a unipipe
    - Try to fix a mysterious crash when destroying a unipipe
Version: 1.0.1
Date: 2023-06-18
  Fixes:
    - Fixed a crash when placing a flamethrower turret
Version: 1.0.0
Date: 2023-06
  Info:
    - First release