Restores vanilla recipes while keeping everything AAI Industry adds (Krastorio 2 aware). Plus a box of optional features, nearly all on by default: a fourth Factorissimo factory tier, the fix that lets robots charge inside factory buildings at all, a factory outlet/inlet/sensor that bridges factory interiors with your logistic network, teleporter pads, resource map markers, void chests, and a dozen more.
Small changes concerning balance, gameplay, or graphics.
Version: 0.22.1
Date: 2026-08-06
Bugfixes:
- "Allow all modules in every beacon" no longer breaks beacon-interface.
That mod does not use allowed_module_categories as a restriction, it uses
it as an identity marker - its control.lua looks for beacons whose
whitelist is exactly its own category and registers build handlers for
them. Clearing the field left it with zero matches and it asserted on
load ("beacon-interface 1.1.2 errored when running a required file",
control.lua:63). Beacons carrying that category are now left untouched;
they are hidden script-driven effect emitters that only ever hold
beacon-interface's own modules, so there was nothing to open up. Also
covers mods that deepcopy one of them, such as quality-condenser.
Version: 0.22.0
Date: 2026-08-02
Features:
- Teleport to your body after you die. Both teleport features now offer a
free one-use jump back to where you died: a "Body" entry with a live
camera view at the top of the teleporter list (next to the return slots),
and a "Body" button in the teleport-to-player shortcut's picker. New map
settings "Teleport: teleport to your body after death" (on) and
"Teleport: body teleport time limit (minutes)" (15, 0 = no limit) - the
time limit is what makes it a "you just died" offer rather than a
permanent way home.
- Factory terminal (Factorissimo): a toolbar shortcut that lists every
factory outlet, inlet, fluid device and sensor on the surface you are
standing on - position and what each moved in the last minute - and
opens any of them from where you stand. Gated twice: the new Factory
terminal technology, and a Factory link armor module that has to be in
your armor with charge in it. The link holds 2 MJ off your suit's own
generators; opening costs 100 kJ, holding the window open costs 20 kW,
and a flat link closes it. Startup toggle "Factory terminal
(Factorissimo)", on by default. Its art is the base game's battery
equipment, tinted - placeholder until real art exists.
- Teleporters: teleporting to a TEAMMATE now asks them first. They answer
"Yes, once", "Yes, always", "No, once" or "No, always"; the two standing
answers are remembered per person and can be taken back at any time in
the new settings window - the gear button in either teleport window -
which also decides what happens to requests from anyone you have not
answered for (ask, always allow, always refuse). No answer within 30
seconds counts as a refusal, so nobody is left waiting on a window
someone alt-tabbed away from. New map setting "Teleporter: ask before
someone teleports to you", on by default; turn it off for the old
land-on-each-other-unannounced behavior. Single-player is unaffected.
- Teleporters: starred pads can now be ORDERED. Starring appends to the
end of your starred pads and Shift + left-click moves one to the front,
so the pad you actually travel to most sits first instead of wherever
its name happened to put it. The list numbers the stars (★1, ★2, ...)
so it says which favorite each one is.
- Teleporters: EXPRESS PADS. Stand on a pad and CONTROL + click another
one in the list, or - from the wireless remote, where there is no pad
underfoot - CONTROL + click the pad that should send you and then the
one it should send you to. Either way, stepping onto the first pad from
then on sends you straight to the second - no window, normal energy
cost. Every linked pad says where it sends you in green under its name,
and a pad waiting for its destination says so in yellow. The pad you
arrive on stays inert until you step off it, so two pads pointing at
each other are a doorway rather than an infinite bounce, and the
wireless remote still opens the full list from where you stand. Map
setting "Teleporter: express pads", on by default; turning it off
ignores every link without clearing them.
- Teleporters: HOME PAD AND EMERGENCY RECALL. ALT + click a pad in the
list to mark it home (it gets a house marker), then ALT + R teleports
you there from anywhere. It costs a multiple of the normal jump (map
setting, 3x by default) and has its own cooldown (5 minutes by
default), because it is the "get me out of here" button and not the
cheap way home. Optionally, dying now puts you back at your home pad
instead of the force's spawn point - map setting, off by default.
- Teleporters: PERSONAL TELEPORTER armor module, unlocked by the same
Teleporter technology as the pads. It holds 50 MJ off your suit's own
generators and pays up to half of every jump's energy bill out of that
buffer, so the destination pad is drained less. It never enables a jump
you could not otherwise make; it makes the ones you do make cheaper for
the network. Art is the base game's battery equipment, tinted -
placeholder until real art exists.
- Teleporters: pads now show how much traffic they see. A pad's tooltip
says how many times it has been travelled to, by whom last, and how
long ago - a list of thirty pads otherwise says nothing about which
ones your base actually uses.
- Teleporters: a pad still inside its five-second trigger timeout now says
"cooling down" in the list. It can still be teleported TO; what it will
not do is open its own window when you step on it, and that silence
looked like a broken pad.
- Teleporters: the Return entry's tooltip now says how long it has left
before it expires.
- Teleporters: how many pads count as "recently used" is now a map
setting (default 8, up to 50). It was a hardcoded 8, which on a base
with a dozen regularly used pads meant the one you wanted had already
fallen off the list.
- Teleporters: SHIFT + R jumps straight to the pad you used last, with no
window at all. Same cost and same gates as a wireless-remote jump, and
since the pad you leave becomes the most recent one, the key alternates
between two pads - which is what going back and forth actually is.
- Teleporters: ENTER in the destination list's search box teleports to the
first pad still showing. Type three letters, press Enter, gone.
- Teleporters: pad QUALITY now means something. Every level adds 50% to
the pad's energy buffer (a legendary pad holds 700 MJ instead of 200 and
rides out a brownout that would strand a normal one) and takes 10% off
the cost of jumping to it, to a floor of half price. Does nothing
without the Quality mod.
- Teleporters: a tips-and-tricks entry, because starring, renaming,
sorting, the remote and the jump-back key were all invisible unless you
read the mod page.
- Teleporters: "Starred only" tick box above the pad list, for bases where
the full list runs to dozens of pads. Starred pads plus the Return and
Body entries, nothing else. Remembered per player.
Bugfixes:
- FIXED A CRASH opening the teleporter list: "attempt to index field
'express_pending' (a nil value)". Every table this version added to the
teleporter module was created by the migration that runs on a mod-set
change - and that migration does NOT run when a save is reloaded with a
rebuild carrying the same version number, which is exactly what a save
played during 0.22.0's development hits. The tables are now ensured at
the start of every event instead of being trusted to exist, and the
one-line-per-table backfill is a list, so adding a table can no longer
leave the migration behind. Starred pads that predate this version are
converted to ranked favorites when they are next read, for the same
reason.
- Teleporters: the destination window is now GROUPED BY SURFACE. Grouping
is by kind of surface rather than by name: each planet gets its own
section, every space platform shares one "Platforms" section, and
Factorissimo interiors share "Factory floors" - so four ships are one
section instead of four one-row sections, and launching a fifth changes
nothing. The surface underfoot comes first, the rest follow in name
order, and each header carries the surface icon, its name and a count.
Sections collapse, remembered per player. A "Group" dropdown next to the
sort order switches the whole thing off for a flat list; grouped is the
default.
- Teleporters: with a section header naming the surface, the pads under it
stop repeating it. A pad on your own surface shows its distance, one on
another world shows when you last used it, and pads in the shared
Platforms and Factory floors sections keep their own surface name, since
a shared header cannot carry it. Turning grouping off puts the surface
back on every tile.
- Teleporters: the star rank, home flag and express arrow moved off the
name and onto their own row, so a pad called "Rocket Launch Site" is no
longer shown as "Rocket Launch Site...". Tiles with nothing to mark
don't get the row.
- Teleporters: Control + right-click sends a starred pad to the BACK of
your starred pads, the counterpart to Shift + left-click sending one to
the front. Factorio has no GUI drag events of any kind, so ordering is
done with gestures rather than by dragging tiles around.
- Teleporters: every entry in the destination window now leads its grey
line with the SURFACE'S ICON - the planet's own starmap icon, the
space-platform foundation for a ship, a factory building for a
Factorissimo interior floor. Pads on this surface show the icon in front
of the distance, pads elsewhere in front of the surface name, and the
Return, Body and player previews carry it too. A name on its own
("Return 2", "Teleporter 1259086") never said which world it went to.
- Teleporters: a button in the destination window's title bar hides the
pad click-hint tooltips. Six lines of click actions are what you want
once and clutter afterwards; the "not enough energy" explanation still
shows on pads that are greyed out. Remembered per player.
- Teleporters: the recently-used clock is gone from the pad list. It was
drawn with "[img=quantity-time]", a sprite that has not existed since
2.0 - and an invalid sprite path does not error, it silently draws a
placeholder glyph, so a small mystery circle had been sitting in the pad
list looking deliberate. Rather than fix the icon, the marker is
retired: the list already sorts by recency, so a clock on half the tiles
said nothing the order did not. The home-pad flag and the express arrow
that remain are checked against the sprites actually loaded, and fall
back to plain text if one ever disappears.
- Teleporters: the Return and Body previews now actually show their
surface line. Buttons clip their children, so the line was being laid
out below the button's own edge and never drawn - which looked exactly
like the feature not working.
- Factory terminal: opening a device through it no longer puts you in
remote view. Remote view replaces your inventory panel with the
ghost-cursor palette, so the window that opened next to a factory's
contents was not the inventory you wanted to drag things into - which is
most of the point of opening a chest. Your character's REACH is extended
instead, for exactly as long as the device window is open: you stay in
your body, your own inventory is right there, and normal click,
shift-click and drag transfers work. Only reach is touched, not build or
resource reach, and whatever bonus you already had is put back exactly.
- Teleporters: the Return and Body previews, and the players row, now name
the surface they are on, with a planet, platform or factory icon. Three
Return entries were three identical grey squares.
- The Factory terminal technology, the Factory link and the Personal
teleporter had no names in locale, so they showed up in-game as
Unknown key: "technology-name.etech-factory-terminal" and the like.
Nothing in the Lua source references a prototype's own name key - the
engine resolves those - so the locale linter could not see the gap; it
now reads a data-raw dump and checks every E-Tech prototype has one.
- The teleporter pad tooltip never mentioned the Alt-click and
Control-click actions added this version, so marking a home pad or
linking express pads was invisible unless you read the changelog.
- Factory terminal: taking a stack out of a factory did nothing when the
device had been opened through the terminal. The terminal puts you in
remote view, a remote controller is not a character, and the code asked
the CONTROLLER for its inventory - which is nil there, and the failure
was silent. It now asks the character, which is what should receive the
items anyway, and says so when there is no inventory to fill.
- Teleporters: the pad you were standing on when you opened the WIRELESS
REMOTE is now marked recently used, so the trip back is at the top of
the list. Only the pad a window was opened FROM by walking onto it was
recorded before - a remote jump has no linked source pad, so the pad you
left never counted as recent and the way home sorted like a pad you had
never used. Applies to remote, return, body and jump-to-player trips
alike: leave a pad by any means and it counts as recent.
Changes:
- The teleport-to-player shortcut now always opens its picker while you
have a body to go back to, instead of jumping straight to the only other
player online - otherwise the body entry would be unreachable. With
nobody else online it teleports straight to your body.
Bugfixes:
- FIXED A CRASH THAT SHIPPED IN 0.21.0: E-Tech failed to load at all, with
"attempt to index field 'tool'", for anyone running it alongside
Factorissimo without some other mod that happens to define a tool
prototype. Factorio 2.1 made science packs plain items, so data.raw.tool
no longer exists in an otherwise-unmodded game - and three places indexed
it directly. A developer running a full modpack never sees this, because
something in the pack always provides one. Turning agricultural science
spoilage off could hit the same crash. Found by the new mod-combination
matrix (see below) on its first run.
- Factory outlet: a second outlet can now be placed inside a different
factory on the same Factorissimo interior surface. Interior surfaces are
shared 8-wide grids of unrelated factories and an outlet only ever
reaches its own cell, but the one-per-surface check searched the whole
surface - so whoever placed an outlet first locked out every other
factory that happened to land on the same grid.
- Filtered void chest no longer destroys its contents when mined. It
inherited erase-on-mine from the plain void chest, which deletes
everything on purpose - but the filtered chest exists precisely so the
items you did not pick sit there safely, and mining it silently ate them.
- The in-game map settings editor no longer crashes in mod packs that
remove the enemy force. Applying changes was already guarded; the two
places that READ the evolution factor to fill the GUI were not, and those
run on load, on any mod-set change, and on every surface change - so the
crash happened before a player could touch anything.
- Applying map settings no longer forces the editor window open on every
player. Everyone's values still refresh, since the settings are global,
but a window that was closed stays closed.
- Changing the resource-marker minimum patch size now takes effect at once.
The setting is applied when a patch is re-tagged, so raising it left small
markers on the map and lowering it never revealed the hidden ones until
that patch happened to be re-scanned - which for a fully charted, fully
mined patch is never.
- Teleporters: changing a teleporter map setting now refreshes an open
destination list. Costs, cross-surface rules and the players section are
read while the list is built, so an open window kept showing old numbers.
- Teleporters: the search hotkey no longer registers a second CONTROL + F
binding alongside the game's own focus-search control.
- Teleporters: renaming no longer errors for a force that has never placed
a pad, and refreshing open windows no longer errors when a player has
been removed from the save.
- Void pipe now actually gets its intended 2500-unit buffer. It was still
setting the Factorio 1.1 height/base_area pair, which 2.0 replaced with
volume and silently ignores.
- Void pipe throughput statistics no longer accumulate for pipes that have
been removed; they were only cleared once the last void pipe in the world
went away.
- Beacons, cross-pastable furnaces and labs, and crashed-ship parts each get
their own copy of the tables E-Tech assigns them instead of sharing one
table across every prototype, so a later mod appending to one no longer
edits them all.
- Jetpack fuel HUD no longer divides by zero on a modded fuel with no fuel
value.
- Map settings editor: the asteroid and spoiling rate fields are populated
when the window is built rather than relying on the refresh that follows.
- The Factory Mk4's "Floor tiles per connection" factoriopedia row read
"Unknown key". It asked for a bare locale key while the string was
defined under [description], like every other row beside it.
- Colorful biochamber now checks that Space Age's biochamber sprite layers
are still where it expects before remapping them. It addressed four of
them by hardcoded index with no guard, so a reordering in any Space Age
update would have mis-tinted the machine or thrown outright. It now skips
the recolour and says so in the log instead.
- Factory Mk4 says so in the log when Factorissimo's interior power pole is
not where it expects. That field is private to Factorissimo, and if it is
ever renamed the northern half of every Mk4 loses power with nothing to
trace it by.
- Biters walking over a teleporter pad no longer disable it. The pad is a
land mine underneath, and its trigger fired for anything that stepped on
it - starting the pad's five second cooldown, with nothing in the UI to
explain why it had gone dead. It now triggers only for its own force,
which is what the destination list always assumed anyway.
Compatibility:
- E-Tech's own recipes and technologies now survive overhaul mods that
retire the items they are built from. The factory hub, the teleporter pads
and the void chest hardcoded processing units, batteries, constant
combinators and stone furnaces, and hardcoded their technology
prerequisites - so a pack that removed any of them turned into a hard load
error with E-Tech's name on it. A new late pass substitutes down a
documented chain instead (processing unit to advanced circuit to
electronic circuit) and logs every substitution. Factory Mk4 already did
this for itself; the other three now do too.
- The map settings editor's four GUI styles are prefixed etech-. They used
generic names (pusher, deep_frame, ...) in the shared style table, guarded
with "define it only if nobody else did" - which meant that if another mod
defined its own `pusher` first, this GUI silently rendered with theirs.
Optimizations:
- Factory devices: building or mining a logistic chest anywhere in the world
used to invalidate every device's interior-chest cache, and any storage
tank anywhere invalidated every device's factory list. On a base with bots
continuously building that meant the caches were rebuilt every pass - the
exact cost they exist to avoid. Both now trigger only for chests actually
inside a factory and for real factory buildings.
- Factory outlet: chests holding nothing the outlet currently needs are
skipped after a single inventory read instead of walking every slot.
- The factory device GUI-refresh phase no longer rebuilds the device lists
it never uses.
- Resource marker rebuilds scan fewer chunks per tick. A rebuild takes
longer in the background and no longer sags UPS while it runs.
- Jetpack fuel HUD polls every 15 ticks instead of every 5. It cost a remote
call per pass even with nobody flying, plus another call per player and an
item count per fuel type when someone was.
- Teleporter destination list reads the four energy-cost settings once
instead of once per pad.
- Factory outlet: the requester-demand scan is split out and cached for two
passes. It walks every requester point in the outlet's logistic network,
so its cost scaled with the size of your base rather than with anything
the outlet was doing - thousands of API calls on a single tick on a large
network, even for an outlet with one reachable chest. Repeated lookups of
the same item on the same chest are now asked once. Construction-ghost
demand is NOT cached and still updates every pass, so blueprints are
served as immediately as before.
- Factory outlet: the give-back path snapshots its candidate chests once per
pass instead of re-querying every chest four times for every item type
being returned.
- Resource markers: mining an ore tile out no longer rescans its whole chunk
on the spot, once per force. The cell is queued instead and repaired in
the background, so an outpost being actively mined stops driving a burst
of chunk scans. Marker totals lag by a few seconds.
- Factory devices: a Factorissimo building being placed or mined no longer
makes every device rebuild its factory list and its interior-chest cache
in the same tick. Profiling a live base showed that stampede costing
66-76 ms per maintenance pass, once every two seconds, for as long as the
player kept building. Rebuilds are now paced, and the pull pass tolerates
a list that is a pass or two old - safe, because every entry is
re-validated at the moment it is used.
- Factory outlet: the module-request scan is cut into six strips, one per
maintenance pass, instead of one sweep of the whole construction area.
That sweep profiled at 32-36 ms landing on a single tick roughly once a
minute - the most predictable stutter the mod produced. Same total work,
spread out; readers still only ever see a complete picture.
- Factory outlet: the list of roboports the outlet can reach is cached
alongside the requester scan. Rebuilding it per pass turned out to be the
bulk of the ghost-demand cost, not the matching that follows it.
- Factory outlet panel: the item grid is only rebuilt when something it
shows actually changed. Tearing it down and repopulating it every two
seconds reached 13 ms with a large factory set, to redraw the same thing.
- Factory outlets no longer all run on the same tick. Each still pulls once
every two seconds; they are simply scheduled individually, spread across
the cycle from their own unit number. Two outlets landing together turned
a 9 ms pass into a 28 ms one - and because their caches had been created
at the same moment, both also did their expensive uncached scan on that
same tick. Existing saves pick the spread up automatically.
- The roboport-geometry cache and the requester-demand cache no longer share
a lifetime. Sharing one meant they were always written in the same pass
and so always expired in the same pass, stacking their cost instead of
interleaving it. Roboports change far more rarely than logistic requests,
so that cache is now much longer-lived, and deliberately not a whole
multiple of the other.
Changes:
- Dropped the 0.17.0 legacy-field cleanup for factory devices, per its own
two-version policy. Those fields are never read, so saves still carrying
them are unaffected.
- The map settings editor's toolbar shortcut name and description moved into
the locale file. They were the only user-facing strings in the mod that
could not be translated.
- The void pipe list moved from storage.pipes to storage.etech_void_pipes,
the naming every other module already used. Rebuilt automatically; the old
key is cleaned up.
- teleporters/script_util.lua no longer adds its helpers to the base game's
shared util table, and its dead functions are gone.
- Tooling: a locale linter (missing setting strings, references to keys that
do not exist, dead keys), a changelog-to-info.json version check, and
tools/verify-matrix.ps1, which loads E-Tech under vanilla, Space Age, AAI,
AAI+Space Age, AAI+K2 and Factorissimo in throwaway mod directories. Both
linters run in CI. The matrix is what the compatibility fix above should
have been caught by years earlier.
- build.ps1 refuses to overwrite an already-archived release unless given
-Force.
- The void chest/pipe colour is one hex setting ("BF00FF") instead of three
separate red/green/blue sliders. If you had customised the old ones, set
the colour again.
Version: 0.21.0
Date: 2026-07-30
Changes:
- Nearly every feature now defaults ON instead of off. A toggle you never
knew existed is a feature you never got, and turning something off is one
switch, whereas discovering it is not. Thirteen features flipped: uranium
bacteria on Gleba, void chest & pipe (and the filtered void chest),
FPS-friendly thrusters, pass-through fusion generators, colorful
biochamber, copy modules with machine settings, the jetpack fuel HUD, the
in-game map settings editor, resource map markers, the factory
outlet/inlet/sensor, teleporter pads, and the Factorissimo Factory
building Mk4 tier.
- This is safe by construction rather than by hope: every port of a
standalone mod already disables itself when the original is installed,
and every feature that needs Space Age, Factorissimo or Jetpack does
nothing at all without them. Nothing new touches a vanilla recipe.
- IMPORTANT: this changes nothing for existing saves or servers. A
setting's default only applies where that setting has never been written
to mod-settings.dat - i.e. fresh installs, and a server that has never
loaded the mod. Existing games keep exactly what they had.
- Four features stay off, each for a specific reason. Total productivity is
a large balance change rather than a convenience. Restoring Krastorio 2's
hidden nuclear fuel overrides another mod's deliberate balance call. The
teleport-to-player shortcut is experimental and free instant travel
changes a lot. Verbose recipe logging is a diagnostic.
- One thing to know before ever turning the Mk4 back OFF: it deletes the Mk4
buildings, because their prototype no longer exists. The interiors are NOT
deleted - Factorissimo only cleans an interior up when its building is
mined, which removing a prototype is not - but the building was the only
way in, so everything inside becomes unreachable without console commands,
and turning the setting back on does not rebuild the buildings. Stranded,
not destroyed. Turn it off before building the first Mk4, or leave it on.
- Setting descriptions and the README were rewritten to match; several
still claimed "off by default".
Version: 0.20.2
Date: 2026-07-30
Features:
- Factory Mk4 now exists on space platforms too, as Space factory Mk4.
Factorissimo builds its space-factory-1/2/3 from a hardcoded per-tier
list, so the fourth tier got none of it. It is gated behind the same
Factorissimo space architecture setting, unlocked by the same Space
architecture research (which now also requires Architecture 4, since the
recipe consumes a Mk4), and its ingredients are copied from whatever
Factorissimo gave Space factory 3 under the current mod set - so it works
under both Space Age and Space Exploration without guessing at either.
- The Mk4's interior walls and floor logo are teal instead of the Mk3's
yellow. The stock tiers are orange, blue and yellow; teal stays clear of
factory-2's blue. Inside a Mk4 no longer looks exactly like inside a Mk3.
The space variant's tiles and paint are amber, since all three stock
space tiers already share one blue-grey skin.
- The Mk4's factoriopedia entry gains a "floor tiles per connection" row -
450, against a Mk3's 112. The ports did not grow with the floor, and that
is much cheaper to learn from a tooltip than from a finished build.
Changes:
- The research is now called "Architecture 4", matching Factorissimo's own
"Architecture 2" and "Architecture 3", and is ordered to sit directly
after Architecture 3 and before Space architecture instead of landing
elsewhere in the tech tree.
- The Mk4's description now teaches the same controls every other tier
does - port markers, opening the floor in remote view, moving the
building from remote view - which it had been silently dropping.
- The technology icon reads "04" instead of "03". Repainted in place on
Factorissimo's isometric render, following the tilted face rather than
screen rows, so the architecture techs still look like a set.
- The "04" on the building is rebuilt from a real typeface. The facade font
is a heavy rounded grotesque - 136x151 with a ~42px stroke, measured off
the "0" - and the first hand-drawn attempt was far too thin. The crate
that sat under the digit is gone: it is drawn on top of the lettering in
the same colour at every brightness, so it cannot be masked away, and it
hid the 4's crossbar.
- Cerys radiative towers in a Mk4 go from 4 to 9. Four is right for a
60-wide floor; on four times the area it left the middle and the edges
cold.
- The hidden power relay has its own name instead of borrowing the
building's, so log and debug output is not misleading.
Bugfixes:
- The Mk4's research cost and recipe are now re-derived from the Mk3's in
data-final-fixes, after other mods have rewritten them. Factorissimo's own
Pyanodons compatibility rewrites the factory technologies in data-updates,
and overhauls can retire an item the recipe asks for; deriving late means
the Mk4 inherits whatever they settled on instead of a snapshot taken
before they ran. Ingredients that no longer exist are dropped with a log
line rather than failing the load.
Version: 0.20.1
Date: 2026-07-30
Bugfixes:
- Factory Mk4: the northern half of the floor had no electricity. Machines
built there sat at "No power" with nothing to trace, because the pole
that feeds a factory interior is hidden and draws no wire. Factorissimo
places that pole beside the DOOR, and factory-power-pole has
supply_area_distance 63 - fine up to a 60-wide floor, but from the door
of a 120-wide one it stops one tile past the middle. The engine caps
supply_area_distance at 64 for every electric pole prototype, so no pole
at the door can ever cover a Mk4.
- The visible pole and the interior roboport stay at the entrance where
they belong. Instead a hidden, uncollidable, unselectable relay pole is
built at the centre of the floor and script-wired to the door pole, so
the whole interior is supplied from one network. It is registered through
Factorissimo's own layout `upgrades` hook, which re-runs on build, on
every configuration change and on every research finish - so it repairs
itself on existing factories instead of needing a migration.
- The interior roboport needed no such treatment: its reach was already
raised to 128 in 0.20.0, which covers a 120-wide floor from the door.
Changes:
- Factory Mk4 now ships real artwork instead of a runtime sprite tint. The
tint was a multiply, so it could only darken - in game the Mk4 still read
as a brown Mk3, and no tint could do anything about the "03" painted on
the facade. The building is now steel blue with "04" on the front, with a
matching icon and technology icon. Generated from Factorissimo's own
factory-3 art by tools/make-mk4-art.py, reusing its shadow untouched,
the same way Factorissimo builds its space-factory variants.
- The Mk4 map colour is stronger, since map view does not draw the artwork
at all.
Version: 0.20.0
Date: 2026-07-30
Features:
- Factory building Mk4 (etech-factory-mk4, off by default): a fourth
Factorissimo tier with a 120x120 interior - four times a Mk3's floor -
behind an exterior that is still 16x16, with the Mk3's 32 connection
ports unchanged and in the same positions. A Mk4 drops straight into a
spot already built for a Mk3, and reuses factory-power-input-16, so no
new exterior prototypes exist.
- No fork of Factorissimo is needed. Layouts live in Factorissimo's own
storage rather than in data.raw, and it exposes
remote.call("factorissimo", "add_layout", table); E-Tech registers the
tier there on on_init and on_configuration_changed, then verifies with
has_layout and reports to the log and to chat if it did not take. A
silently unregistered layout would break every placed Mk4, so it is
never allowed to fail quietly.
- Because the exterior is identical to a Mk3's, the Mk4 is tinted blue and
given its own map colour - every stock factory shares one map colour, so
without this the two tiers would be indistinguishable on the ground, on
the map and in inventory. Factorissimo does the same for its own
space-factory variants: same footprint, same shadow, different body.
- Quality unlocks the same extra ports at the same levels a Mk3 gets, for
46 at legendary, and the factoriopedia quality table is filled in to
match the stock tiers.
- Interior construction and logistics coverage is raised from 64 to 128
tiles when the Mk4 is enabled. Factorissimo builds the interior roboport
at the factory's DOOR, not its centre; at radius 64 that reaches only
two tiles past the middle of a 120-wide floor, leaving the whole northern
half of every Mk4 uncovered. Applies whether or not the interior roboport
buff is on, and the Krastorio 2 mode variants are recomputed from it.
- 120x120 is the largest interior Factorissimo can generate, so this is the
last tier on this exterior size. Its create_factory_position() marks only
the chunks within 64 tiles of an interior's centre as generated, and
add_hidden_tile_rect() covers the same box; a Mk4's walls sit at 61 and
its door corridor ends at 63, one tile inside that limit. The 512-tile
spacing between interiors would allow far more - the chunk loop is the
real ceiling.
- Known trade-off, by design: the ports did not grow with the floor, so 32
of them now serve four times the area. Expect to want more internal
bussing per port than a Mk3 needs. Mk4s are not available on space
platforms (Factorissimo builds its space-factory variants from a
hardcoded per-tier list).
Version: 0.19.7
Date: 2026-07-30
Features:
- Factorissimo interior roboport: whole-floor logistics coverage, slots for
robots and repair packs, more charging pads, and an energy source that can
actually charge robots. Absorbs factorissimo-roboport-buff by RandomBruh
(public domain). Defaults are logistics radius 64, 7 robot + 7 material
slots and 16 charging pads at 4000 kW; every value is a startup setting.
- Robots could not charge inside factory buildings at all. Factorissimo runs
the interior roboport on a void energy source, and robot charging is paid
out of a roboport's stored energy - a void source stores none, so charging
never begins no matter how many charging pads the roboport has or how much
power each pad is given. Factorissimo's own hidden construction robots are
defined with no energy drain and never charge, so the limitation only
appears once player robots operate inside a factory.
- "Charge bots from your power grid" (etech-factory-roboport-electric, on by
default) replaces the void source with a real electric one, with a 200 MJ
buffer and a 100 MW draw limit. This is what makes charging work. Charging
inside a factory therefore draws from the same electric network as the rest
of the base - roughly 1-2 MW per factory with a busy robot fleet, scaling
with the number of robots in the air rather than with pad count. It uses the
same low priority as a vanilla roboport, so an under-supplied grid slows
charging instead of stopping machines. Turning the setting off restores
Factorissimo's void source; robots then stop charging, and a warning is
written to the log explaining why.
- When the void source is kept, energy_usage and recharge_minimum are lowered
from 50 kW / 40 MJ to 1 W / 1 W. A vanilla roboport satisfies a 40 MJ
threshold from its 100 MJ buffer; a void source has no buffer and never can.
This is a second, independent blocker on the same prototype.
- The roboport's icon now matches the vanilla roboport. Factorissimo gives it a
construction-chest icon, which goes unnoticed while the roboport is a hidden
entity but appears as a chest consuming tens of MW in the electric network
screen once it draws power.
- Krastorio 2's roboport mode variants are patched to match. K2 builds its
logistic-only and construction-only modes by deep-copying every roboport
prototype during data-updates, before this feature runs, so the factory
roboport's "-logistic-mode" and "-construction-mode" twins were copies of the
stock version: void energy source, 4 pads at 500 kW, logistics radius 3, no
robot slots. Switching a factory roboport's mode would have reverted all of
the above. The twins now inherit the patched energy source, charging and
slots, with K2's derived radius formulas recomputed from the new values.
- Both toggles default on, unlike every other E-Tech feature toggle: this
feature replaces a standalone mod rather than adding new content, and its
grid-power half is what makes charging work at all. Turning the main toggle
off restores Factorissimo's stock interior roboport, which has a logistics
radius of 2.
- REMOVE THE OLD MOD: delete factorissimo-roboport-buff from your mods folder.
Leaving it installed is harmless but pointless - E-Tech now covers everything it
did, and its two settings just sit there doing nothing. E-Tech logs a reminder
when it sees the mod still present.
- Everything is applied in data-final-fixes rather than data-updates, so mods
that modify the interior roboport later cannot overwrite the result.
Krastorio 2, Combat Mechanics Overhaul and Cerys are listed as optional
dependencies purely to pin load order.
- Only the visible interior roboport is modified. Factorissimo's hidden interior
roboport - the reservoir that keeps 200 free construction robots in each
factory network - is left alone: its robots have no energy drain and never
charge, and its single centre charging pad is intentional.
Version: 0.19.6
Date: 2026-07-23
Bugfixes:
- Factory outlet: returned items (on-demand give-backs, mined-device dumps) no
longer land in whatever provider chest happened to be empty - that scattered
random items into machine-output chests. Returns now go to a chest already
holding the item, then interior storage chests (filtered match first, then
unfiltered), and otherwise stay in the outlet buffer.
Version: 0.19.5
Date: 2026-07-21
Gui:
- Factory fluid outlet: the panel now lists every fluid inside the reachable
factories with total amounts (live, refreshed every 2 s while open). Clicking
a fluid sets it as the pull pick (click again to stop pulling); the picked one
shows highlighted.
Version: 0.19.4
Date: 2026-07-21
Changes:
- Factory fluid outlet: idle until a fluid is picked. The lock-onto-contents
fallback is gone - a freshly placed outlet no longer grabs whatever interior
fluid it happens to find first.
Version: 0.19.3
Date: 2026-07-21
Gui:
- Factory fluid outlet: opening it now shows a "Fluid to pull" panel with a fluid
picker - 0.19.2 pointed at the tank's filter slot, which vanilla storage tanks
don't actually offer. The pick survives blueprints and cloning; clearing it
returns to lock-onto-contents behavior.
Version: 0.19.2
Date: 2026-07-21
Changes:
- Factory fluid outlet: set its tank FILTER (in its own GUI) to choose which
interior fluid it pulls - with many different tanks inside the factories the
first-found fluid was effectively random. Without a filter it still locks onto
whatever it holds. Changing the filter flushes the old fluid back into matching
interior tanks before the new one is pulled.
Version: 0.19.1
Date: 2026-07-21
Bugfixes:
- Fixed a crash when a factory fluid outlet/inlet ran its first pass: the code
used the removed 2.0 LuaEntity.fluidbox / table-form remove_fluid APIs. Now
uses get_fluid_capacity and extract_fluid (2.1).
Version: 0.19.0
Date: 2026-07-21
Features:
- Factory fluid outlet and fluid inlet: storage-tank devices that bridge FLUIDS
across the factory wall. The outlet fills itself from storage tanks inside the
factories (one fluid per device - it locks onto what it holds), the inlet drains
itself into interior tanks already holding the same fluid. Same tech unlock.
- Restored the vanilla offshore pump recipe (pipe 3 + iron gear wheel 2 - values
verified against base 2.1), closing the mod's oldest open item.
- Teleporter pads keep their names through blueprints (stored as blueprint entity
tags; pasted pads reuse the name, suffixed on collision).
- Factory outlet/inlet settings (filters, mode, storage toggle, auto-request)
survive cloning and blueprints.
- Teleporting while driving a car, tank or spidertron now teleports the vehicle
with you (pads, remote, return and teleport-to-player alike). Riding a train
refuses politely instead of failing silently.
- The factory inlet gained the outlet's distribution filter (whitelist/blacklist)
and a "still missing inside" panel showing interior deficits after each pass.
- New startup toggles: "Vanilla engine unit names and icons" (the cosmetic restore
can now be turned off) and "Verbose recipe-restore logging" (per-recipe log
lines are off by default - only summaries are always logged).
Changes:
- All mod settings moved to proper locale entries and regrouped: core tweaks,
absorbed features and teleport features now sort together per settings tab.
- Teleporter sound volume, pad preview size and hide-platforms are per-player
settings now (they were map-wide; stored values reset once).
- Hovering a void pipe shows what it voided in the last pass; the first time a
filtered void chest is opened its infinity-filter workflow is explained in chat.
- Resource marker rebuilds run in the background (a batch of chunks at a time)
instead of stalling the game for seconds on large maps; the summary reports
patches hidden by the minimum-size setting; failed marker placements on
uncharted ground now retry periodically.
- Outlet panel: the pause reason is shown when a circuit gates the outlet off,
and the empty state distinguishes "no chests reachable" from "factories empty"
from "nothing matches the search". Truncated factory lists show "+N more"
instead of "...". Filter slots grew from 10 to 15.
- Placing an outlet/inlet with no reachable factories says so as flying text.
- Teleporter list: the search text survives list rebuilds, hiding the search box
clears the filter, and searching also matches surface names and aliases.
- Teleporter favorites and recents follow the player (keyed by player, not by
player name - renames no longer orphan them) and are cleaned up when a pad is
removed.
Optimizations:
- Factory sensor only rewrites its circuit section when the totals actually
changed; the outlet's rate-sample pruning no longer copies every pass.
- Teleporter minimap chart calls are throttled to once a minute per pad; the
unpowered-pad alert scan skips forces with nobody online.
- Jetpack HUD: when nobody is airborne the per-player remote calls are skipped.
Bugfixes:
- Cloned void pipes (and platform-built ones) never registered, so they never
drained fluid. Cloned void chests missed their filter setup.
- Colorful biochamber no longer crashes the load when another mod removed one of
the tinted recipes; a missing biochamber prototype skips the feature cleanly.
- Copy Paste Modules: a machine without a module inventory aborts the module
request gracefully instead of crashing the paste.
- Edit map settings: applying no longer errors in packs that removed the enemy
force.
- Krastorio 2 recipe restores are idempotent (no misleading "restored" log when
nothing changed) and warn when overwriting a recipe that matches neither AAI
nor K2 - a third mod may own it.
- The recipe fingerprint now includes fluid temperature bounds, so recipes
differing only in fluid temperature can't false-match.
- Teleporter energy is drained only after a successful jump; stale GUI actions
and missing rename targets are guarded.
Info:
- README and the in-game tips page no longer claim everything is off by default
(four vanilla-behavior restores default on); the optional-tweaks table gained
the missing quality-module-slots and factory hub rows.
Version: 0.18.1
Date: 2026-07-21
Changes:
- Machines affected by "Quality adds module slots to all machines" now say so in
their entity and item tooltips ("Quality increases module slots").
Version: 0.18.0
Date: 2026-07-21
Features:
- New startup toggle "Quality adds module slots to all machines" (on by default,
needs the Quality mod): every machine with at least one module slot - assemblers,
furnaces, rocket silos, beacons, mining drills, and labs, modded ones included -
gains extra module slots at higher quality. Machines with no module slots are
untouched. Blanket replacement for the retired QualityEffectsFixed mod (clean
reimplementation, no code reused); honors that mod's qef_ignore opt-out field.
Version: 0.17.5
Date: 2026-07-20
Bugfixes:
- Void pipe: draining no longer skips the pipe after a removed one in the same pass
(removal during list iteration shifted the remaining entries).
Optimizations:
- Factory outlet/inlet/sensor: when several devices' factory-list caches expire at the
same time, they now re-scan one device per maintenance pass instead of all at once,
refreshing early enough that none of them falls back to scanning during a pull.
Version: 0.17.4
Date: 2026-07-20
Optimizations:
- Factory outlet/inlet/sensor: the work pass no longer runs everything in a single tick
every 2 seconds (profiled at 10-46 ms per pass - a visible periodic hitch). The pass
is now split into four phases on separate ticks: outlet pulls, inlet/sensor updates,
cache maintenance, and GUI refresh. Each device still updates every 2 seconds.
- Factory outlet/inlet/sensor: the interior chest lists are now cached and only rebuilt
when a logistic chest is built or mined, or the factory list changes - previously
every pass re-scanned every factory interior for chests.
- Factory outlet: the periodic factory-list rescan and module-request scan now refresh
ahead of time in the maintenance phase, so their cost never lands on the same tick as
an outlet pull.
Version: 0.17.3
Date: 2026-07-20
Bugfixes:
- Teleporters: the destination window now reopens at the position you dragged it to.
Previously the position was lost whenever a teleport closed the window - the next
open re-centered it, which read as the window "moving" after using the surface
filter and teleporting. Off-screen saved positions (after a resolution change)
fall back to centered.
Version: 0.17.2
Date: 2026-07-20
Bugfixes:
- Teleporters: merging two forces no longer strands the source force's pads - they move
into the destination force's network (renamed on name collision) and stay usable and
removable. Previously they vanished from the destination list and mining them leaked
their name label and map tag.
- Teleporters: mining a pad no longer errors if another mod wiped the mod's screen
renderings (the pad's name label) first.
- Teleporters: renaming a pad to an empty name via the rename window is now rejected,
matching the map-tag rename path.
- Teleporters: clicking a return slot whose list shifted since the window opened (a slot
expired or was used) now teleports to the slot that was clicked instead of whichever
entry took over that position.
- Teleporters: arrival-position checks now use the player's actual character prototype,
so mods that swap it (e.g. Jetpack in flight) get a correct landing spot.
- Teleporters: the destination window no longer errors when the preview size is larger
than fits the window width - the list just becomes a single column.
- Resource markers: merging two forces now rebuilds all markers for the merged force.
Previously the source force's markers were forgotten but stayed on the map, and the
next chart scan added duplicates next to them.
- Resource markers: when another mod deletes a marker tag, the marker is recreated
immediately instead of only after the patch next changes.
Optimizations:
- Resource markers: amount changes now update the existing map tag's text in place;
the tag is only destroyed and recreated when the patch centroid drifts more than
8 tiles. This stops marker flicker during active mining and no longer spams tag
add/remove events into other mods on every depleted ore tile.
- Resource markers: an ore tile running dry now rescans its chunk for that resource
only, instead of re-counting every resource type in the chunk.
Version: 0.17.1
Date: 2026-07-20
Changes:
- Factory outlet: on-demand is now the only behavior - the buffer mode (keep N stacks of
everything on hand) and its "Stacks per item" override are gone. The outlet panel
already shows the factories' stock, so pre-staging items bought nothing.
- Factory outlet: the circuit-enable checkbox is gone; gating is automatic. No wire
connected = the outlet always runs; wire connected = it only runs while receiving a
nonzero signal.
- Factory outlet: the side panel is taller so it matches the height of the chest window.
- Teleporter list: surfaces now show their real names - space platforms show the ship
name ("Icarus" instead of "platform-1") and planets their proper capitalized name
("Nauvis" instead of "nauvis"). Player-set aliases still win.
Features:
- Tips and tricks: new E-Tech category with an overview entry, plus a factory
outlet/inlet/sensor guide that gets suggested when the Factory logistics technology
finishes.
Version: 0.17.0
Date: 2026-07-20
Changes:
- Krastorio 2 games: AAI's motor ("Single-cylinder engine") is now fully retired instead
of only hidden from the player crafting menu - its icon is a vanilla engine-unit
lookalike, so assembler recipe pickers still showed two near-identical engines. Every
recipe that used it gets iron gear wheels instead (burner lab, fuel processor, Mining
Drones, and any other mod's recipe), research triggers that counted crafted motors now
count iron gear wheels, the crash-site debris motors become gears on new games, and
the item and recipe are hidden. Games without Krastorio 2 keep the motor unchanged.
- Factory outlet: only one outlet can be placed per surface (per force). Placing a
second refunds the item with a message. Outlets were already surface-local - each
planet's outlet only ever saw that planet's factories - this makes the one-per-planet
rule explicit. Existing saves with several outlets on one surface keep working; the
limit applies to new placements.
- Factory outlet/inlet/sensor: the tuning settings are now fixed values instead of mod
settings - inventory slots 200, one stack kept per item (the per-outlet override in
the outlet window remains), pulls from both passive and active providers, no energy
cost per item (the hidden buffer entity is gone; old saves clean it up automatically),
whole-surface reach, and nested factories always included. The per-outlet priority
field is gone too - with one outlet per surface there is nothing to order.
Version: 0.16.1
Date: 2026-07-18
Optimizations:
- Reduced the two remaining scheduled scans: the factory-list fallback rescan now runs
every 5 minutes instead of every minute (building or mining a factory still refreshes
the list instantly, and removed factories are filtered out immediately), and the
item-request-proxy rescan runs every 60 s instead of every 30 s.
Version: 0.16.0
Date: 2026-07-18
Optimizations:
- Ghost demand is now an event-driven index instead of a periodic scan. On large maps,
surface-wide entity searches are expensive no matter how little they find, so any
rescan interval caused a periodic stutter. The index scans once per surface, then
maintains itself: each new ghost is added from its build event, and each removed ghost
(built, deconstructed, decayed or removed by script) subtracts exactly what it added.
Steady-state scanning cost is zero.
- Item-request-proxies (module/fuel requests on built machines) have no build event to
hook, so they keep a slow periodic scan: every 30 s, limited to the area covered by
construction bots.
- Ghost coverage per outlet is recomputed every pass, so roboport coverage changes are
picked up within 2 s.
Version: 0.15.4
Date: 2026-07-18
Debug:
- /etech-hub-profile now times each ghost-scan stage separately (entity find/loop, tile
find/loop, proxies) to pin down whether the remaining scan cost is the engine finds or
the per-ghost processing loop. No behavior change.
Version: 0.15.3
Date: 2026-07-18
Optimizations:
- Ghost scans are now confined to the bounding box of the force's construction-bot
coverage on that surface. Ghosts outside bot range can't be built anyway; with no
coverage, no scan runs at all.
- The factory-list rescan is now event-driven: building or mining a factory refreshes
the list instantly, and the timed fallback rescan runs once a minute instead of every
10 seconds.
Version: 0.15.2
Date: 2026-07-18
Optimizations:
- Ghost scan rebuilt for big blueprint pastes: ghost demand now aggregates per 32x32
chunk at scan time, so per-outlet coverage math scales with chunks instead of ghosts;
module/fuel/ammo request checks are skipped for prototypes that can't carry them
(belts, walls, rails and other plain buildables); and surfaces with more than 4000
ghosts rescan at 10 s instead of 5 s.
- /etech-hub-profile now also logs reach-chests and net-wants sub-phases to break down
where a pull pass spends its time.
Version: 0.15.1
Date: 2026-07-18
Debug:
- /etech-hub-profile: toggle per-pass timing capture. Every outlet/inlet/sensor pull pass
and every ghost scan appends its exact duration to script-output/etech-profile.csv,
for pinning down what a perceived hitch actually costs. Off by default, zero overhead
when off.
Version: 0.15.0
Date: 2026-07-18
Features:
- On-demand outlets now cover construction ghosts. Ghosts aren't logistic requests, so an
on-demand outlet used to sit empty while construction bots starved (blueprint a factory
building, nothing gets built). The outlet now derives ghost demand itself: entity ghosts,
tile ghosts, and module requests (on ghosts and on built machines) within the network's
construction range count as demand, and the needed items materialize from the factories
like any other request. Always on in on-demand mode — no new toggle.
- /etech-hub-debug now prints the ghost demand an on-demand outlet currently sees (and
warns when the outlet isn't in a logistic network at all).
Optimizations:
- Ghost scanning is built to scale: one surface scan per force every 5 seconds shared by
all outlets on that surface (cached in savegame storage, so multiplayer joiners stay in
sync), per-prototype item lookups memoized, and network membership computed as pure
coordinate math against the roboports' construction squares - no per-ghost API calls.
Version: 0.14.3
Date: 2026-07-18
Compatibility:
- Cerys 4.24.5 fixes the nitric acid conflict at the source (it no longer defines the fluid
when Krastorio 2 is installed), so E-Tech's compat fix now only fires when it actually
detects the old 15C overwrite. The recipe temperature-bound stripping is gone entirely -
it deleted K2's intended 25-100C gate from every nitric acid recipe, and existing saves
self-heal anyway (the engine clamps stored fluid temperatures to the prototype range on
load). Players on Cerys 4.24.5+ get K2's untouched fluid and recipes.
Version: 0.14.2
Date: 2026-07-17
Bugfixes:
- Fixed a crash in the factory outlet/inlet GUI handlers: when another mod (or E-Tech
module) rebuilds its own GUI during the same event, the element can already be invalid
and reading it crashed the game ("LuaGuiElement API call when LuaGuiElement was
invalid"). All handlers now check element validity first.
- Outlet returns no longer scatter items into random factory chests. Overflow and
on-demand give-backs went to the first chest with a free slot, filling provider chests
with items that never belonged there. Returns now only go to a chest already holding
that exact item (the origin chest wins) or a completely empty chest; otherwise the item
stays in the outlet (or the mining buffer) instead of mixing into someone else's chest.
Version: 0.14.1
Date: 2026-07-17
Features:
- Outlet panel: shift-click an item to take a stack of it straight from the factories into
your inventory (spoilage/quality preserved).
Changes:
- On-demand mode is now the default for newly placed outlets (buffer mode is the opt-in).
Existing outlets keep whatever they were set to.
Version: 0.14.0
Date: 2026-07-16
Features:
- Outlet: click an item in the panel to print clickable map pins for every factory holding
it; right-click to pin it to the top of the list. Tooltips now use factory names.
- Outlet: factory naming - the panel lists every reachable factory with a Map button and a
name field. Names show up in tooltips and map-pin prints.
- Outlet: on-demand mode (per-outlet checkbox) - instead of buffering stacks, the outlet
sits empty and only fetches items from the factories when the logistic network has unmet
requester demand (chests, players, spidertrons). Unneeded leftovers return to the
factories. Construction ghosts aren't covered (yet).
- Outlet: circuit enable (per-outlet checkbox) - only works while any nonzero circuit
signal reaches the chest.
- Outlet: optional pulling from yellow storage chests inside factories (per-outlet
checkbox, off by default).
- Outlet: priority field - lower numbers pull first when several outlets compete.
- Inlet: auto-request (checkbox in its new side panel) - reads the unmet requests of the
requester/buffer chests inside the factories and sets them as the inlet's own bot
requests in a managed "etech-inlet-auto" logistics group. Bots deliver exactly what the
factories need, the inlet forwards it inside.
Version: 0.13.1
Date: 2026-07-16
Bugfixes:
- Opening a factory outlet crashed ("attempt to index field 'etech-hub-cap'") - the
stacks-per-item textfield was looked up in the wrong GUI container when loading the
panel's saved settings.
Version: 0.13.0
Date: 2026-07-16
Features:
- Factory outlet (renamed from "Factory provider hub"): new expensive recipe worthy of the
power - 1 factory building + provider chest + 20 advanced circuits + 10 processing units
+ 25 steel.
- Factory inlet: the outlet's counterpart. Fill it (by hand or bot requests) and it
distributes its contents into the requester/buffer chests inside the factories on its
surface, up to their requested amounts. Same recipe idea, mining returns items too.
- Factory sensor: a constant combinator that broadcasts the factories' provider chest
totals as circuit signals.
- Outlet GUI: per-outlet pull filter (all / only selected / all except selected, 10 item
slots), per-outlet stacks-per-item override, search box over the contents list,
per-factory breakdown in each item's tooltip, quality shown separately, and a "pulled
last minute" counter.
- Optional energy cost (map setting, default off): outlets and inlets drain a hidden
electric buffer per item moved.
- Optional range limit (map setting, default off): devices only reach factories within N
tiles.
- /etech-hub-debug command: prints per-device diagnostics including why each item type is
or isn't being pulled.
Bugfixes:
- The placed chest was yellow: Factorio 2.1 keeps logistic chest sprites in
robot_door.animation, not the old animation field, so the 0.12.0 orange tint silently
missed the entity. Both the outlet and everything else are now tinted for real.
Version: 0.12.1
Date: 2026-07-16
Bugfixes:
- Factory hub: opening the hub crashed Filter Helper ("Given logistic container isn't a
storage type"). The hub's sprite rebuild from the storage chest also inherited its
storage-filter slot (max_logistic_slots = 1); Filter Helper saw the slot and asked for
the filter of a chest that isn't storage mode. Slot removed.
Version: 0.12.0
Date: 2026-07-16
Features:
- Factory hub: opening a hub now shows an "Inside the factories" panel next to the chest
window - every item sitting in the provider chests the hub reaches, with counts,
refreshed live.
- Factory hub: mining a hub sends its buffered items back into the factories' provider
chests - you pick up an empty chest instead of an inventory full of parts.
- Factory hub: anything above the per-item cap (e.g. items put in by hand) is returned to
the factories on the next pull pass, requester-trash style. The hub only ever holds what
it's willing to provide.
Changes:
- Factory hub: inventory slots setting now defaults to 200 (was 80) and allows up to 1000,
so hundreds of different parts fit at once. Existing installs keep their saved value -
raise the slider in mod settings.
- Factory hub: the inventory limiter (red X) is gone - the per-item cap makes it pointless.
- Factory hub: chest is now properly orange in hand and on the ground (was: red icon, muddy
brown placed sprite).
Version: 0.11.0
Date: 2026-07-16
Features:
- Factory provider hub (startup toggle, needs Factorissimo 3, off by default): a logistic
chest that automatically pulls items out of the provider chests INSIDE the Factorissimo
factory buildings on its surface and offers them to the local logistic network as a
passive provider. Robots can't fly between surfaces, so the hub teleports the items out.
Reaches into nested factories (toggleable, 5 levels). Keeps a configurable number of
stacks per item buffered; can be limited to active provider chests only. Never drains
another hub. Spoilage, quality, ammo and durability survive the transfer. Unlocked by a
technology alongside logistic robotics and Factorissimo's chest connections.
Version: 0.10.4
Date: 2026-07-15
Bugfixes:
- Teleporter GUI: the "N tiles away" line was still clipped at the bottom of each pad
button - the button's own vertical padding ate the row. Padding zeroed + more headroom.
Version: 0.10.3
Date: 2026-07-15
Changes:
- Teleporter GUI: energy line removed from the pad buttons (it kept getting clipped) -
cost and stored MJ now show in the pad's hover tooltip instead. Unaffordable pads stay
greyed out with the cost in their tooltip.
Version: 0.10.2
Date: 2026-07-15
Bugfixes:
- Teleporter GUI: distance/surface/energy labels actually visible this time. Factorio
buttons clip children to the button's own size (minimal_height doesn't grow with
content), so each pad button's height is now computed from its label rows.
Changes:
- Pad preview size default 200 (was 160 in 0.10.1).
Version: 0.10.1
Date: 2026-07-15
Bugfixes:
- Teleporter GUI: the distance / surface / energy labels under each pad were invisible -
the pad buttons had a FIXED height sized for the name row only, clipping everything
below it (the energy line had been clipped since the original port). Buttons now use a
minimal height and grow to fit their labels.
Changes:
- Teleporter GUI: pad preview size is a map setting (96-512 px). Default shrunk from the
original's 256 to 160 - the old size made the window enormous with many pads.
Version: 0.10.0
Date: 2026-07-15
Features:
- Teleporters: SHIFT+T hotkey opens the remote (same as the toolbar shortcut, rebindable).
- Teleporters: distance shown on every same-surface pad ("N tiles away").
- Teleporters: sort dropdown - recently used (default), A-Z, or nearest first. Starred
pads always come first.
- Teleporters: Shift+right-click a pad in the list to rename it (no more walking to the
pad or editing the map tag).
- Teleporters: return history holds the last 3 remote-jump origins (was a single slot);
each shows its own camera button and is consumed on use.
- Teleporters: unpowered-pad map alerts - while a pad's buffer is empty (and teleporting
costs energy), the owning force gets a custom alert. Toggleable map setting.
- Teleporters: teleport sound volume map setting (0-2).
- Teleport-to-player shortcut now shows the teleport flash at both ends (when the pads
toggle is on) in addition to the sound.
- Void: optional filtered void chest (greenish) - destroys only items you pick via
infinity filters set to "exactly 0"; everything else sits. Same tech unlock.
Bugfixes:
- Teleporter GUI search hotkey registered "Control + F", which Factorio 2.1 rejects
(logged "unknown key_sequence" and the Ctrl+F link never worked) - now "CONTROL + F".
Changes:
- One-shot save cleanups moved to migrations/ (run once per save instead of on every
mod-set change).
- Repo: luacheck lint config + GitHub Actions workflow; dev module map in the README.
Version: 0.9.0
Date: 2026-07-15
Features:
- Copy modules with machine settings toggle (default off): shift-click paste moves modules
straight from your inventory (old modules handed back, bot request for what's missing),
handles ghosts and remote view, and makes furnaces/labs/beacons cross-pastable. Port of
the abandoned Copy Paste Modules mod by kajacx (MIT); auto-skipped if the original is
installed. Per-player runtime switch included.
- Teleporters: favorite pads. Right-click a pad in the destination list to star it -
starred pads sort before everything else and show a star prefix.
- Teleporters: the teleporting player now always hears the teleport sound. The world-side
flash sound plays at the destination before you arrive (inaudible cross-surface); a
direct sound now follows the player on pad, remote, return, player-to-player, and
teleport-to-player shortcut jumps.
Bugfixes:
- Krastorio 2 + Cerys: nitric acid works in K2 recipes again. Cerys redefines K2's
kr-nitric-acid fluid with default_temperature 15 and drops K2's other fields, so all
Cerys-produced acid arrived at 15C - below the 25C minimum K2 recipes expect (imersite
crystal plants showed permanent fluid shortage), and the fluid tooltip lost its info.
E-Tech now restores K2's full fluid definition after Cerys and strips temperature bounds
from recipes consuming it, so cold acid already in pipes stays usable. Active only when
both mods are present.
- Jetpack fuel HUD no longer draws over the map/remote view; it hides until you're back in
the world.
Version: 0.8.0
Date: 2026-07-15
Features:
- Absorbed five abandoned 2.0-era mods as optional toggles (all default off, each skipped
automatically when the original mod is still enabled; prototype names kept identical so
entities already placed in a save survive the switch):
- Void chest & void pipe (port of Easy Void by zoryn, MIT). Settings renamed to
etech-void-* (tint RGB + chest slots), so re-set them if you changed the defaults.
- In-game map settings editor (port of Edit Map Settings by Morsk, MIT): pollution,
evolution, expansion, peaceful/no-enemies, spoilage rate, and per-surface map gen
settings. E-Tech change: the top-left mod-gui button is replaced by a toolbar
shortcut (like the teleporter remote); the window otherwise works as before.
- FPS-friendly thrusters (port of FPS Friendly Thrusters by RockPaperKatana, MIT):
strips thruster exhaust plumes.
- Pass-through fusion generators (port of pass-through-fusion-generator by daahl, MIT):
input-output plasma connections on all sides so generators chain.
- Colorful biochamber (port of Colorful Biochamber by meifray, public domain):
per-recipe RGB recolor of the biochamber pools/dome/windows.
Version: 0.7.1
Date: 2026-07-14
Bugfixes:
- Jetpack HUD: remaining-time estimate no longer inflates to hours. The consumption
sample could be measured across the gap between two flights, making burn rate look
tiny; estimates now reset per flight, only accept sane tick deltas, and skip the
sample when the fuel item switches.
Changes:
- Jetpack HUD window fixed at 180px wide to line up with the weapon/quickbar panel,
and the label reads "Est time left ..." like the original mod.
Version: 0.7.0
Date: 2026-07-14
Features:
- Total productivity toggle (default off): allows productivity modules on recipes the
game normally forbids - belts, inserters, rails, pipes, solar, walls, ammo, equipment,
and more, with four category group toggles (logistics / buildings / military / misc).
Port of the abandoned Total Productivity mod by AivanF (LGPLv3, see
LICENSE-third-party.txt), skipped automatically when the original mod is installed.
- Jetpack fuel HUD toggle (default off, needs the Jetpack mod): while flying, a small
movable window shows current fuel + inventory count, a burn bar, and estimated
remaining flight time. Port of Puppy's Jetpack UI (MIT) without the flib dependency,
skipped automatically when the original mod is installed.
Bugfixes:
- The jetpack HUD keeps its window position across restarts and server joins. The
original discarded the saved position when it looked off-screen, judged against a
display resolution that reports a stale default during the first ticks after joining -
the position is now always restored and clamped when the resolution/scale events
deliver real values.
Version: 0.6.4
Date: 2026-07-14
Changes:
- Removed the short-lived Factorissimo map icons experiment (0.6.2/0.6.3, never released):
map tags can't match the recipe-icon look and feel. Saves that ran it get their factory
markers and stored data cleaned up automatically.
Version: 0.6.1
Date: 2026-07-14
Changes:
- Dev build bump (no code change from the final 0.6.0 build). During development each
built zip now gets its own patch version so the game reliably fires
on_configuration_changed and multiplayer version checks stay unambiguous.
Version: 0.6.0
Date: 2026-07-14
Features:
- Teleporter pads toggle (default off): port of the Teleporters mod by Klonan (LGPLv3, see
LICENSE-third-party.txt), updated for Factorio 2.1 and extended. Buildable pads researched
with chemical science; walk onto a pad to get a map of your other pads and click one to
teleport. Pads are named, renamable, and shown as map tags.
- Energy cost: each pad has a 200 MJ electric buffer; teleporting drains the DESTINATION
pad, so an unpowered pad can't be teleported to. Map settings for MJ per teleport
(0 = free), extra MJ per 100 tiles, and a cross-surface multiplier.
- Cross-surface teleporting with a per-player surface filter dropdown in the GUI, custom
display-only surface aliases (rename button next to the dropdown), and an optional
hide-space-platforms setting.
- Wireless remote: toolbar shortcut opens the teleporter list from anywhere once the tech
is researched. Costs a configurable multiple of the pad-to-pad price (default 2x), still
drained from the destination pad.
- Return teleport: after a remote jump the list offers a free Return entry with a live
camera preview of where you came from (configurable time limit, default 10 min).
- Players in the list: your team's online players appear at the top with map previews -
click to teleport to them for free.
- Migration from the original Teleporters mod: run /etech-migrate-teleporters while BOTH
mods are installed to convert every placed teleporter to an E-Tech pad (names recovered
from map tags), convert teleporter items in player inventories, and carry over the
researched technology. Then save and remove the original mod.
- Resource map markers toggle (default off): automatically tags resource patches on the
map - one marker per patch with the resource icon and total amount (infinite resources
like crude oil show well count and average yield). Markers update as chunks are charted,
ore is mined out, or chunks are deleted; deleting a marker mutes that patch;
/etech-markers-rebuild rescans everything (also runs automatically when the toggle is
first enabled on an existing save). Minimum patch size is a map setting. Written from
scratch for E-Tech (public domain) as a 2.1-native replacement for the abandoned
Resource Map Label Marker mod, whose fork crashes on Factorio 2.1.
Leftover markers from removed marker mods are swept automatically when the toggle is
first enabled and whenever a known marker mod is removed; /etech-markers-clean-legacy
does the same on demand (count first, "confirm" to delete). Player-placed tags are
never touched.
Changes:
- The teleport-to-player shortcut's internals moved to an event_handler lib so both
teleport systems can share GUI events. No behavior change.
Version: 0.5.3
Date: 2026-07-11
Changes:
- Mod retitled "E-Tech: Vanilla Recipes for AAI Industry + QoL Toggles" and description
rewritten to reflect the expanded scope. No gameplay changes.
Version: 0.5.2
Date: 2026-07-11
Bugfixes:
- More Factorio 2.1 fixes for the uranium bacteria recipes, now verified field-by-field
against the game's own 2.1 iron-bacteria recipes: removed 'result_is_always_fresh'
(product gets 'reset_freshness_on_craft' like vanilla cultivation), removed
'show_amount_in_title' (gone in 2.1), replaced removed 'organic-or-hand-crafting'
category with 'organic' + 'crafting', added 'auto_recycle = false' to cultivation.
Version: 0.5.1
Date: 2026-07-11
Bugfixes:
- Fixed load error on Factorio 2.1: product 'probability' was renamed to
'independent_probability' (uranium bacteria recipe).
Version: 0.5.0
Date: 2026-07-11
Features:
- Uranium bacteria on Gleba toggle (default off, needs Space Age): port of the abandoned
Simple Gleba Uranium mod by cindersash (MIT, see LICENSE-third-party.txt). Jelly gives a
1% chance of uranium bacteria (Jellynut tech), bacteria + bioflux multiplies it in a
biochamber (Bacteria cultivation tech), and the bacteria spoils into uranium ore.
Prototype names keep the original sgu_ prefix so saves from the old mod keep their items.
Version: 0.4.0
Date: 2026-07-11
Features:
- Restore nuclear fuel crafting toggle (default off): brings back the vanilla nuclear fuel
item and recipe that Krastorio 2 hides. Unlocked by Kovarex enrichment like vanilla when
that tech is available, otherwise enabled from the start.
- Teleport-to-player toolbar shortcut (default off, experimental): with one other player
online, clicking teleports straight to them; with several, a picker window opens.
Works across surfaces and follows the target's physical position.
Version: 0.3.1
Date: 2026-07-08
Features:
- Allow quality modules in asteroid crushing/reprocessing recipes (toggle, default on).
- Nuclear fuel stack size setting (default 1 = vanilla).
- Artillery shell stack size setting (default 1 = vanilla).
- Agricultural science pack spoilage toggle (default on = vanilla; turn off to stop spoiling).
Version: 0.3.0
Date: 2026-07-08
Features:
- New toggle (default on): allow all module types in every beacon, including productivity
and quality modules. Applies to modded beacons too. Opens allowed_effects and clears
allowed_module_categories on every beacon prototype.
Version: 0.2.5
Date: 2026-07-08
Bugfixes:
- Electronic circuit: with Krastorio 2 Spaced Out the baseline is iron plate 2 + copper
cable 4 (no wood; K2SO removes K2's wood ingredient). Wood version only applies with
K2 alone.
- AAI's redundant "Electronic circuit (Wood)" alternate recipe hidden when K2 is present
(K2/K2SO provide their own wood path).
Version: 0.2.4
Date: 2026-07-08
Changes:
- With Krastorio 2: AAI's Single-cylinder engine (motor) recipe is hidden from the player
crafting menu (machines can still craft it - burner lab and fuel processor use it, and
AAI's belt-unlock trigger counts crafted motors).
Version: 0.2.3
Date: 2026-07-08
Bugfixes:
- With Krastorio 2: recipes K2 itself modifies now restore to K2's version instead of plain
vanilla (the pre-AAI state of a K2 game). Fixed: engine-unit (iron plate, not steel),
gun-turret, assembling-machine-1, steam-turbine, electronic-circuit, solar-panel,
heavy-armor, roboport, laser-turret, lab.
Version: 0.2.2
Date: 2026-07-08
Changes:
- Cosmetic restore: engine-unit and electric-engine-unit get their vanilla names and icons
back ("Engine unit" instead of AAI's "Multi-cylinder engine"). Same items as always -
AAI only renamed/reskinned them; assemblers were never switched.
Version: 0.2.1
Date: 2026-07-08
Bugfixes:
- New K2-restore pass: AAI's own Krastorio2-compat rewrites some K2 recipes; those now get
K2's originals back. First entry: Chemical tech card (AAI added a multi-cylinder engine
and changed glass amounts; restored to K2's blank card 5 + glass 15 + adv circuit 5 +
sulfuric acid 50).
Version: 0.2.0
Date: 2026-07-08
Major Features:
- Redesign: single purpose, no per-recipe toggles. All vanilla recipes AAI Industry
changed are unconditionally restored to their vanilla ingredients (45+ recipes:
logistics, inserters, drills, furnaces, assemblers, power, oil processing, science
packs, electric network, military, armor, vehicles).
- Science packs are hand-craftable again (vanilla behaviour).
- Everything AAI adds is kept as-is: burner assembler/lab/turbine, industrial furnace,
area mining drill, fuel processor, wall & gate tiers, stone path, motors, glass, sand,
stone tablets - including their AAI recipes, since they are new items.
- Tech tree and research progression are untouched; recipes unlock where AAI put them.
- Mod-respect guard: a recipe is only restored if it still matches AAI's version (or
contains an AAI-only item). Recipes rewritten by another mod (e.g. Krastorio 2) are
detected and left alone; skips are logged with an [E-Tech] prefix.
Changes:
- Removed all per-recipe/per-bundle startup settings. Only the crashed-ship toggle remains.
Info:
- boiler is not listed: AAI's ingredients already equal vanilla's (only its tech gate
differs, and tech is out of scope).
- offshore-pump ingredients are left as AAI's (vanilla 2.x values unverified; cheap either way).
Version: 0.1.0
Date: 2026-07-07
Features:
- Initial release: per-recipe revert toggles, fluid-basics un-gate, crashed-ship pickup.