0.5.0
Compatibility
Changes
Beta testing build. Back up worlds before testing current Switchboard/LFM/network assignment behavior.
Added
- Scheduled auto-scan — Logistics Computers can rescan on
scan.autoScanIntervalTickswithout a player opening the GUI. - Redstone alerts — Logistics Computers emit redstone when
scan.redstoneAlertOnErroris enabled and any ERROR-level warning is active. - Per-link throughput stats — LFM returns server-owned moved counts per link; the computer syncs rolling samples to node details and the stats page.
- Configurable wire traversal depth —
scan.maxWireTraversalStepsreplaces the fixed wired traversal cap for large grids. - Shareable graph blueprints — graph import/export uses compact base64 graph JSON on the clipboard, still validated by the server on save.
- Filter item picker — filter nodes expose a searchable 3x3 ghost item grid with recents while keeping JEI/REI/EMI panels off the modal.
- Mod-aware scan providers — optional AE2, Mekanism, and Create readers augment standard capability scans when those mods are present.
- CC:Tweaked peripheral — Logistics Computers expose scan, warning, storage, power, and network data through optional reflection-based peripheral hooks.
- Multi-computer mesh — computers can link peers and merge saved peer scan snapshots without mutating the peer world or graph.
- Throughput planner — pure stats-page analysis estimates bottlenecks/starvation from route capacity and machine progress snapshots.
- Network Switchboard — connects networks with per-resource LFM permissions and priorities; connected computers show multi-network scan tabs.
- Storage Drawers / Refined Storage scan providers — optional providers read exposed item capabilities from drawer and RS controllers/interfaces when present.
- Linking Card — shift-use a Logistics Computer to copy its network id, then shift-use a router, dongle, or socket to assign it without typing.
- Switchboard canvas UI — LogiGraph-style Switchboard screen with draggable nodes, pan, zoom, saved node positions, and item/fluid/energy bridge permissions.
Fixed / Optimised
-
Endpoint network assignment — newly placed routers, dongles, and sockets auto-join exactly one nearby computer network when unambiguous; otherwise they remain isolated until assigned.
-
Graph node labels — scanned nodes now show device/block name plus id in the title and source network in smaller text at the node footer.
-
GraphCanvasWidget.nodeMap() was rebuilding a
HashMapon every hit-test call (link click, port hover, etc.), ignoring the existing revision-gated cache. Now returnscachedNodesByIddirectly after callingensureModel()— zero extra allocations on frames where the graph hasn't changed. -
LogiFactoryManager DFS —
outboundLinks()previously scanned the entire link list for every routing node visited during a route-through pass (O(links * nodes) per tick). Now builds oneMap<nodeId, List<links>>index at the start of each tick and reuses it for all DFS calls. -
LogiFactoryManager dead code — removed
singleAcceptingSlotandisInputLikeInsertionSlot, neither of which was called anywhere in the codebase. -
NetworkPowerCalculator — logs a
debugline when the wired traversal hitsMAX_COMPONENT_STEPSso large wire grids are visible in logs without flooding them at normal scale.
[0.5.0] — 2026-06-16
The big one: a powered device network, device upgrades, item routing, and a performance/UX pass. Everything still honours the two contracts — diagnostics stay non-mutating, and every world-mutating action is server-authoritative and config-gated.
Added
- Power network — a logical FE network the Logistics Computer draws over connected infrastructure: Network Wire, wired Sockets, one-per-network Wireless Router anchors, wireless Dongles, wireless Extenders, and a fuel-burning Network Generator. The computer tallies devices/extenders/routers each tick and only runs graph automation when the network has enough power.
- Device upgrades — Speed, Stack, Range, and Efficiency upgrade cards (max 4 per type). Install with Shift + right-click using a card; remove one with the Network Screwdriver. Counts are shown on the device's naming screen.
- Numeric identities — devices and networks get globally-unique four-digit IDs
(
NETWORK#0001), allocated by per-world saved data; networks can be named and access-gated (shared / private / whitelist). - Logi Factory Manager item routing — server-gated item movement along the links you draw. All transfers are two-phase (simulate then commit) so a partial insert never voids items.
- Power dashboard — supply/demand history graph in the computer terminal.
Changed
- Performance — networking: standalone extenders and wireless routers now register in a persistent
per-dimension node index on load and drop out on removal (AE2/RS/Powah-style), so power
recalculation no longer scans every block entity in a chunk radius. Power history switched to an
ArrayDequering buffer (O(1) eviction). - Performance — graph canvas: link geometry (projected node lookup + baked Bezier polylines) is
cached per graph revision instead of recomputed every frame, and
DUTheme.linenow coalesces pixel runs into a fewfillrectangles instead of one quad per pixel. Large graphs pan smoothly. - UX: the terminal subtitle now sits directly under the DOOLE'S TOOLS wordmark; the device naming screen no longer overlaps its buttons and spells out how to install/remove upgrades; the Network Generator screen was relaid out so the progress bars no longer run through the fuel slot.
- Label Gun: holograms now also show the names you give network devices, not just block labels.
Removed
- Empty placeholder packages (
conduit,tank,transport,logistics/overclock) and the stale documentation describing soul machines, conduits, tanks, and overclocking that were never implemented. Docs now describe only what ships.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:RE8KiNaJ:QOzpHZva"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:RE8KiNaJ:QOzpHZva"
}

