SSPP Logistics Train Mod

by jagoly

A logistics train mod that aims to be as pleasant to use as possible, even when knee-deep in byproducts. SSPP stands for Source-Sink-Push-Pull.

Content
11 days ago
2.0
584
Logistics Trains

g It wored once, now they are sulking in the depot

2 months ago

I set up one fluid pair of stations (Oil) and one item pair (Copper plate). I can see no errors being reported in the windows but nothing is happening, even when I mess about with a lot of the settings (though I don't understand in detail what they do). To give me a chance to track down the problem, could you answer a few questions?

  1. Can you please describe the difference between a "source" and a "push" station and between a "sink" and a "pull" one? I've tried both and neither seem to make the trains work.

  2. What is the effect of changing the "Throughput" on the way that the dispatching behaves? Again, I've tried setting it to 1, 1000, and 10000. None of those seem to work.

  3. In the Latency, you say that it is extra time that the station should "support". That's an interesting word to use. What does it mean to have too much and too little?

Many thanks!

2 months ago
(updated 2 months ago)

The best way to think of source/push and sink/pull stations is that they are similar to how logistics chests work.
- Source: equivalent to passive provider chests, pull stations can request from these, sink stations can not
- Sink: kind of like storage chests, these only accept items from push stations, but unlike storage chests, they can't be requested from
- Push: equivalent to active provider chests, these may send to either pull or sink stations
- Pull: equivalent to requester chests, these may request from source or push stations
For a vanilla-like system where you don't have byproducts that you need to get rid of, you probably want to use Source for your providers, and Pull for your requesters.

Throughput is the main value the mod uses to decide how big of a buffer a station needs to have. If you set it to 15 on a request station, then you are saying "I want to be able to get 15 items/fluid per second out of this station". If you've added that item to the network, you'll see that adjusting this value changes the "storage needed" value. For providers, throughput doesn't actually affect how the mod behaves, it's just so you know how much storage space you need in your chests or tanks.

Latency is just another value that increases the size of the buffer at a station. It can generally be considered an optional, advanced customisation, and the default value of 30 seconds is usually going to be fine. You might want to set this really high for example if want a station to request a lot more items than it needs, just for storage, for example.

In summary, to get a delivery happening:
- Make sure items/fluids are added in the network window
- Make sure either the provider is set to push, or the requester is set to pull

Also make sure the values the stations show for "current surplus" and "current deficit" are at least the value of "delivery size". If a provider doesn't have enough to provide a full delivery, then a train won't be dispatched. The same for requesters, they need to be missing at least a full delivery's worth.

Also, you've probably already seen them, but all of the options have tooltips (see the little (i) icons), though the explanations in there are fairly terse. Let me know if there's anything else I can clarify :)

2 months ago

That's very helpful, thank you.

My confusion was initially caused by the fact that I instinctively associate the words "source" with "sink" and "push" with "pull", rather than "source" with "pull" and "push" with "sink". Maybe I'm weird like that? :)

I did see this comment in the description of the mod, when I looked more carefully (I tend not to read instructions before I try something, first!):

"Items/fluids from source stations will never be sent to sink stations.",

But, when I then tried it the other way around, I still couldn't get it to work. The extra explanation in your comment above made it all a lot clearer to me. I needed to make sure that the delivery and deficit values are configured to trigger a train.

My iron is shipping properly now!

2 months ago

Awesome, glad to here it!

Your associations are perfectly reasonable, source/sink and push/pull ARE roughly equivalents.
- Source: "I have some items, take them if you want"
- Sink: "I have room for some items, send them if you want"
- Push: "I have some items, take them from me now"
- Pull: "I need some items, send them to me now"

a month ago

Thank you for your helpful answers. I still wonder how to let trains "join" SSPP? Do I only need to add the depot station (e.g. "Item Depot" and "Fluid Depot" separated) to their vanilla scheduler and set them to automatic mode?

a month ago

No, you don't need to touch the schedule. To make SSPP aware of a train, you need to add them to a class; see the "Network (Classes)" section in the readme. Once you've added a train to a class, switching it back to automatic will automatically add the depot to the schedule.

New response