A from-scratch automated train logistics system, and a lean alternative to LTN/Cybersyn. Declare the stock level each station should keep, and the mod runs your trains to maintain it: it reads every station's surplus and shortfall, dispatches idle depot trains from where goods are to where they're needed, loads exact amounts, and parks them again when done. Includes station roles (provider/requester, depot, refuel, sink), automatic train-to-station layout matching, refueling, multi-item deliveries, need-based priority when supply is scarce, and self-healing overstock. Pairs with Smart Filter Inserter for exact item loading.
Mods introducing new content into the game.
Version: 0.1.3
Date: 2026-06-16
Changes:
- Added a mod thumbnail.
Version: 0.1.2
Date: 2026-06-16
Changes:
- Loading no longer needs Smart Filter Inserter or any wiring. PTL drives each loading buffer chest's logistic request directly as an exact amount (minimum = maximum), so robots never over-deliver and the wagon lands on exactly the planned amount, with no overshoot, leftover or trash churn. (Smart Filter Inserter still works if you have it.)
- The loading buffer pre-stages while the train is still inbound and is kept empty when idle, so loading is near-instant on arrival and anything dropped into the buffer by hand flows back to storage on its own.
- Unloading inserters are switched on and off by the mod (active only while a train is actually unloading there), so the signal-U wire is no longer needed. Bays that both load and unload are handled.
- Trains wait for the real result instead of leaving on inactivity: a load finishes when every item is loaded (or the wagon is full), an unload when the wagon is empty. A train that genuinely can't finish (a provider that can't supply it, or a full destination) is reported by the stuck-train warning instead of leaving with a partial load.
Bugfixes:
- Loads no longer over-deliver in robot-cargo-sized chunks (e.g. 4 for a request of 2) that left a leftover churning back and forth.
- An excess load no longer hangs near the end with a robot shuttling the last stack in and out.
- One provider feeding several requesters at once no longer has its live load manifest clobbered by other inbound deliveries.
- A train left "returning" at a depot is recovered instead of sitting idle and tying up the train pool.
Features:
- New /ptl-chest command: inspect a chest's contents and logistic requests.
- Removed the optional Inventory Sensor dependency (no longer used).
Version: 0.1.1
Date: 2026-06-14
Changes:
- Loading is now exact: a provider advertises one item's remaining at a time, so the loading inserter (with Smart Filter Inserter) sets an exact stack size and never overshoots small-count items. The inserter loads back-to-back, so total load time is essentially unchanged. Fluids still load together through their pumps.
- Unloading now empties the whole wagon at the destination and lets any surplus rebalance through normal stocking, instead of trying to stop at a target. Simpler, and a train no longer leaves carrying leftover cargo.
- The "give up waiting" window for loading, refuelling and unloading is now a map setting (default 10s). Set it high to keep a stuck or parked train in place while you inspect it.
- A provider pre-stages a delivery's items into its loading buffer while the train is still en route, so loading starts the moment it arrives.
- A station now emits its outstanding shortfall ("shopping list") and its surplus on the Reader output even when no train is assigned, so base logistics can be wired to it.
Bugfixes:
- Sinks no longer release a train before its wagon is empty (the give-up timer could fire instantly on a sink, and later treated a steadily-draining wagon as stalled).
- A train that skips a full or unreachable scheduled stop is recovered and sent back to a depot instead of looping forever.
- A train re-parked at a depot with a stale schedule (manual reschedule / desync) is detected and its delivery cancelled, instead of sitting idle.
- A train stopping to refuel is no longer mistaken for a skipped stop and wrongly recovered.
- A still-loaded train is detoured through a Sink before parking, rather than parking with cargo.
- Train-to-station layout detection no longer misreads stations that share a stretch of rail.
- Manually-parked trains are accounted for when choosing a return depot.
Features:
- Strict-outpost mode: a station can be set to keep only the items it requests, shipping anything else to a Sink.
- New /ptl-station command (inspect the hovered stop); /ptl-debug now writes a full state dump to script-output/ptl-debug.txt.
Version: 0.1.0
Date: 2026-06-11
Features:
- Declarative stock targets: each station declares the level to keep of an item or fluid; the network tops it up toward the target and drains anything above it.
- Automatic dispatch: idle depot trains are routed to carry goods from stations with a surplus to stations below their target, then returned to a free depot.
- Station roles via a Station Configurator entity: Normal (provides and requests), Depot (idle trains wait here), Refuel (low-fuel trains divert here), Sink (absorbs leftover overstock no station wanted).
- Exact loading: a provider advertises the precise remaining amount to load. Items pair with Smart Filter Inserter; fluid pumps are cut off automatically at the target.
- Train-to-station layout matching: only trains whose carriages match a station's loaders (cargo wagons at item loaders, fluid wagons at pumps, exact length) are sent, in either orientation.
- Multi-item deliveries: one train can carry several items from the same provider in a single trip.
- Need-based priority: when supply is scarce, the most-depleted station is served first.
- Refueling: trains low on fuel divert to a Refuel stop before returning to their depot.
- Auto-onboarding: a new automatic train left with an empty schedule routes itself to a free depot and joins the pool; stranded trains running an old route are reclaimed.
- Warnings: a clickable map ping when one of the mod's trains is stuck with no path / no depot, and when two provider/requester stops share a name (which would misroute trains).
- Settings ride blueprints and copy-paste: each station's mode, role and fluid deadband are stored in its own combinator fields, so they survive blueprinting, ghosts and save/load.
- Configurable fluid request deadband (per map and per station) so steady draw, like steam for power, does not trigger constant trickle deliveries.
- Debug commands: /ptl-debug, /ptl-dump, /ptl-matches, /ptl-deliveries, /ptl-refresh-schedules.