Exports live factory statistics (power, machines, production, trains, logistics, resources, platforms, research) for an external dashboard. All work is spread across ticks with a hard per-tick budget, so it does not stall the game like /silent-command polling does. Data is written to script-output/fdash/ and is also available via a remote interface for RCON.
Providing the player with new tools or adjusting the game interface, without fundamentally changing gameplay.
Version: 0.2.2
Date: 2026-08-06
Changes:
- No mod changes in this release: 0.2.2 verifies the automated publishing pipeline
(GitHub release + mod portal upload on a version tag). Future versions are released
automatically by pushing a tag.
Version: 0.2.1
Date: 2026-08-02
Changes:
- The research export now resends the full list of researched technologies every 20 runs,
not only when it changes. The dashboard keeps that list in memory to answer "what is
still missing until technology X"; without a periodic resend it would lose the list on
restart and only see it again after the next finished research.
Version: 0.2.0
Date: 2026-08-01
Features:
- The research export now reports the running research as well: name, level, progress,
units done and remaining, science packs and an estimated time from the measured lab rate.
- Reports the research queue, how many technologies are researched in total, and the
technologies that are exactly one prerequisite away from being researchable.
- The one-shot prototype export now includes technologies: prerequisites, cost, science
packs, maximum level and the recipes each one unlocks.
- Recipes carry allow_productivity and the raw product probability, so a throughput
estimate can tell an expected value from a guaranteed one.
- New collector "fluids": tank contents per fluid with fill level and temperature. A full
tank means the consumer is missing, an empty one means the producer is — neither is
visible in the production statistics.
- New collector "stations": train stops grouped by name, with assigned trains against the
train limit. Shows the stations that are never served and the ones that always queue.
- New collector "containers": chest contents aggregated per item. Off by default
(fdash-container-scan) because it reads one inventory per chest.
- New collector "alerts": the game's own alerts from connected players, plus the mod's own
count of destroyed player buildings — on a headless server with nobody connected the
game's alert list is always empty.
- The logistic collector now reports the largest stacks held in each network.
- Ore is reported as individual patches, not just as a sum per resource: centre, remaining
amount, depletion and the drills standing on it. A total of 600 million iron says nothing
if 90 percent of it sits in one patch with no drill on it. The patches are found by
flood-filling the chunks the rolling ore scan visits anyway.
- New collector "threat": evolution factor with its breakdown and the pollution balance,
both free. Counting nests means walking the whole map, so that part is a separate rolling
chunk scan behind fdash-threat-scan, off by default.
Optimizations:
- The full list of researched technologies is only sent when it actually changed. On large
modpacks it is tens of kilobytes, and it changes once every few minutes at most.
Version: 0.1.0
Date: 2026-07-31
Features:
- Initial release.
- Runtime settings for the per-tick entity budget, the chunk budget, the write interval,
the ore scan and the mining-radius refresh, all changeable while the game runs.
- Exports power, machines, production, trains, logistics, circuits, drills, ore patches,
research candidates and Space Age platforms for an external dashboard.
- Snapshot output to script-output/fdash/ with rotating files and an index for tear-free reads.
- Remote interface "fdash" (snapshot, get, keys, status, set_research, export_prototypes)
for reading over RCON instead of files.
- One-shot prototype export to script-output/fdash/prototypes.json.
- Console command /fdash-status.
Optimizations:
- All collectors run under a hard per-tick entity budget and are spread across ticks, so the
cost per tick does not grow with factory size.
- Entity lists are maintained from build events instead of rescanning surfaces every poll.
- Ore is scanned chunk by chunk in a rolling pass instead of one full surface scan.
- The amount of ore inside each drill's mining radius is cached and refreshed on a slow timer.
- Prototype-derived lookups (recipe main products, recipe ingredients, ingredient set,
resource properties) are computed once per session instead of once per poll.