Bulk Teleporters

by dorfl

Use spare gigajoules to teleport shipments of items.

Content
3 years ago
0.17 - 1.1
1.83K
Logistics
Owner:
dorfl
Source:
N/A
Homepage:
https://forums.factorio.com/viewtopic...
License:
MIT
Created:
5 years ago
Latest Version:
0.3.0 (3 years ago)
Factorio version:
0.17 - 1.1
Downloaded by:
1.83K users

Use spare gigajoules to teleport shipments of items!

Intended to have real costs, pros and cons, and not be a boring cheat. Feedback appreciated, especially on balancing.

Electricity consumption

Teleport cycles are deliberately expensive to run in order to be not too much of a cheat compared to trains. Once operating at scale teleport networks pretty much require their own dedicated nuclear supply, and massive accumulator buffers help when many teleport cycles run concurrently. Make use of those unloved efficiency modules and power switches to protect the rest of the grid from power spikes!

Range multiplier

Distance extends the teleport cycle duration by 2 seconds per kilometre, which indirectly increases electricity consumption. This will probably eventually be rebalanced or turned into a mod setting.

Teleport networks

Teleporters require an incoming circuit network signal to identify their network. Easiest way is to hook up a constant combinator. Only virtual signals are checked.

  • 0-9 A-Z signals create networks
  • red signal pauses teleportation unless a cycle has already started
  • green signal immediately teleports a shipment regardless of size
  • blue signal marks Rematerializer as high priority

The red signal is the nice way to stop. Flipping a power switch is more definite :)

Sub-nets are available: The number value of a virtual signal is taken into account. A(20) is a different network to A(17) and A(1000) etc.

Teleporting a shipment

Dematerializer tries to teleport a shipment when:

  • Output buffer inventory is full, or
  • Green signal is received

Dematerializers then choose a target rematerializer based on:

  • Target is in one of their networks
  • Target is of the same tier (size, speed, power consumption, etc)
  • Target is not already running a cycle
  • Target has free space in its output buffer (at least 75% of shipment size)
  • Target does not have a red signal

When multiple targets qualify the one with the most free space is chosen.

When a shipment doesn't entirely fit in a rematerializer's output buffer it will be partially (up to 25%) "cached in the energizer matrix" ;-P and stream into the output buffer as space becomes available. This was easier to code, also more performant, than trying to be accurate about item stack sizes and free space checks on every target.

UPS

UPS impact is quite light. Teleporters are checked once a second at most, and less frequently if a cycle is in progress. Any feedback on performance is welcome.