Log in

Interplanetary Logistics


Delivery Cannons

Receiving

The receiving side (bottom) is responsible for sending a signal indicating how much of each item or fluid type it needs. This is typically done by setting a constant requested amount in storage (in this example, 1k stone) and subtracting off the actual amount in storage.

The receiving side should also send a single check signal. That is, at all times, ✔ = 1. This is used to determine whether the circuit network itself is functioning, and fail safe if it isn't.

Sending

The sending side is responsible for receiving the signals and controlling the launching of materials based on the requested amounts.

All inserters should only load if the material that is being requested is positive. E.g. an inserter loading stone into a delivery cannon should only load if stone > 0.

Signals received from the Signal receiver should first go to an arithmetic combinator that multiplies all signals by the check signal, so that if there is no check signal there are no output signals, and nothing is sent.

Delivery Cannon Setup
Both sending and receiving sides of a Delivery Cannon Setup. The sending side is above, and must only fire when there is an amount requested.

Cargo Rockets

Single Purpose Rockets

Setting up rocket logistics is typically simpler, for rockets that only have a single type of payload.

Since rockets will not land at a landing pad that is not empty, this implicitly acts as both storage and a check that the receiving side can actually store the materials. For bulk items sent in their own rocket, simply set the silo to send to e.g. "Stone" and launch when cargo and fuel are full.

Landing pad names shall include an icon of their designated item, a space, and then the name of the item.

A landing pad ready to receieve Sulfur. Note that the name is
generic.
A landing pad ready to receieve Sulfur. Note that the name is generic.

This way, we deliver a full load to any pad with that name.

A Sulfur Rocket ready to land at any Sulfur pad. It will target any landing
pad in the system.
A Sulfur Rocket ready to land at any Sulfur pad. It will target any landing pad in the system.

Mixed Rockets

For mixed rocket loads, we have to rely on the circuitry to tell us what the receiving side needs. Otherwise, we may send too much of one material and back up and deadlock the other needed materials.

The receiving side must be able to warehouse all materials it receives, and so it should not request more than it has empty spaces in storage. It should try to request more than a full rocket load total, of all materials combined, such that we are not launching mostly-empty rockets.

The sending side wires up inserters as above, where material > 0, but there is some additional circuitry around launch conditions:

  • If the rocket is full E = 0, we send a launch signal

OR

  • If * ≤ 0, and the number of filled spaces is above some preset minimum, we send a launch signal.

You will also need to subtract off the amount already in the silo, otherwise the requested amounts will not decrease until the rocket is launched.

I should also note that launching mixed rockets vs. single-purpose rockets is not more efficient assuming the rockets are full. 500 slots is 500 slots. What it saves on is the fixed cost and space of building multiple pads and multiple and the infrastructure required to supply them. They make sense where space is at a premium, such as in orbit, or when products are produced nearby each other and consumed nearby each other.

A mixed rocket taking in several resources
A mixed rocket taking in several resources. The combinators in the top-right send the launch signal, and also send signals that control the inserters.

Universal Supply

The Universal Supply is a round-robin, one-to-many, mixed-payload interplanetary delivery system from a central logistics network on Nauvis. It is used for ad-hoc demands of building supplies and other fixed-costs, and those demands will be filled and delivered automatically to planets that request them.

Each outpost will need to set up its own receiving blueprint, available in the Universal Supply blueprint book.

Once placed, the Signal Transmiter must be set to an unused Universal Supply channel, and the Planet signal in the Constant Combinator (by the signal receiver) must be set to the same number as the channel of the Signal Transmitter. The landing pad should be named Universal Supply, if it isn't already.

The Signal Transmitter being configured to an empty
channel
The Signal Transmitter being configured to an empty channel
The Constant Combinatory being configured the same
way
The Constant Combinatory being configured the same way

Then, place a Deconstruction Planner into the Strongbox next to the landing pad. This will act as a dummy item to enable and disable the pad. If you unload the pad using inserters, they must be filter inserters that blacklist this item.

To make a request, input your request into constant combinators connected to the Signal Transmitter. When you are ready to send the request, send a Green Signal, which communicates that the request is ready to be filled.

A request being made
A request being made

Some time later, the supplies will land in the pad.

A request being received
A request being received

If the request is unable to be filled (e.g. you have requested items that are not available), an alarm will play after some delay to let you know. You may then modify your request, or solve the issue on Nauvis to make those items available.