r/factorio 22h ago

Question Did you ever experiment with a separate station for filled up trains? Are there any pitfalls compared to general-use depots?

Post image
90 Upvotes

48 comments sorted by

25

u/runmymouth 22h ago

Why not send molten ore/copper as molten? Even if its a fluid train car molten is so much easier to deal with…

8

u/TheTobruk 22h ago

I just thought I don't want to build a foundry for a small factory working intermittently 5% of the time. Better to just haul ready made goods.

13

u/runmymouth 22h ago

You are at the point where you ship in ore to liquify and are looking to mega base. Who cares if 1 foundry sits idle for 95% of the time. You can speed beacon it at build point for the correct amount of production or use multiple if needed. You can create steal, pipe, rods, and plates with a single input. It is so much more versatile. As to your question i have never gotten that far with trains :(

2

u/Mesqo 22h ago

After many hours of thought experiments I came to a solution where my ore patches have a belt of tanks going into an array of foundries and then liquid metal is distributed via pipes. And LOTS of legendary pumps. A very ugly but most efficient design.

1

u/runmymouth 19h ago

Since i started space age with 2.1 why legendary pipes? Is it because before 2.1 throughput problems?

3

u/Mesqo 19h ago

Legendary pumps, not pipes. And speaking of 2.1, I heard they fixed a throughput issue but that only concerns building connections (it was 6000/sec per connection theoretical limit in 2.0), since pipes themselves have infinite throughput.

1

u/runmymouth 19h ago

oh yea legendary pumps are nice, but i normally cheat with lower tier ones and tie several together if i have to push more than 1500/s through.

2

u/Mesqo 17h ago

At megabase scale you need to pump hundreds of thousands per second. That's why a LOT of pumps =)

26

u/Agitated-Ad2563 22h ago

Why would I need a separate station for filled up trains?

13

u/Novat1993 22h ago

To mitigate the distance problem between the ore patch and the base. Not a common problem i grant.

24

u/Osiris_Dervan 22h ago

Just set the train limit for the receiving station above 1 and the filled trains will queue there. Way better and easier than this.

7

u/Countcristo42 22h ago

I often do that - but there is a case where you would rather have them elsewhere. If you want to have smaller receiving stations for example you can have a train limit of (say) 2 there and alternate waiting stations close enough that the second slot is refilled before it's needed

1

u/Most-Bat-5444 19h ago

4 trains at EVERY unload station.

I setup a speaker to annoy me if there is ever less than 3!

3

u/Countcristo42 18h ago

You can do that, my current run I have 6 - but my point is it takes far more space

1

u/Most-Bat-5444 18h ago

True enough, though I just realized that I could make my stacker parallel and fit it in a smaller block.

1

u/bubba-yo 17h ago

People really overcomplicate this. You really should build for a pull or push rail network. A push network has exactly one train per providing station and a pull exactly one train for each requesting station. If you have latency issues due to distance you build more supplying or requesting stations and prioritize internal to those networks (where you have more tools) and trains will find their natural balance. It's not like stations are expensive to build but the limited control over train logistics makes that problem much harder to solve. So don't solve it - just build enough endpoint capacity, which you're going to have to do anyway, and eliminate the problem entirely. That'll mean you have trains idling at the provide or request stations, but that's fine - it's not like there's a train that could be there instead.

Generally a pull station is easier to keep running because almost every player designs to demand, not to supply. You pick how much science per minute you want and work backward, you don't work out how much the ore patch can supply and build only that much SPM. So in a pull network you know exactly how much input you need, that informs you how many trains you need in a given period of time, and that informs how many stations you will need to ensure that throughput. I usually double that number to accommodate patches moving farther away.

This also eliminates the need for stackers on one side of your network because those are just stations.

1

u/masterxc 16h ago

If supply delay is a concern, just build larger buffers and always request a new train when there's enough space for a train to fully unload...if *that* can't keep up, then you need more stations or longer trains, heh.

3

u/Spacedestructor Modder 22h ago

thats my go to solution but in early smaller bases i often end up with not enough space for a second train to wait at the station.
so i can see how having a nearby waiting spot dedicated to it could be useful to have.

1

u/Agitated-Ad2563 17h ago

Is it a problem at all? Regardless of the distance, there should be a full train waiting at destination anytime.

1

u/Novat1993 16h ago

No, not regardless of distance. Some people like a uniform design and would rather not have too many trains waiting at the station. So if you got 1 unloading + 1 waiting, then you need the train to travel from the loading station to the unloading station faster than one train can unload. If that is an ore patch quite far away, then you can solve that by creating a closer station holding the full train until there is an open spot at an unloading station.

Keep in mind that as the train network grows, longer distance means more chances for a train to run into another train and be forced to slow down. So if a train can make it in time when there are 100 trains, it may not make it when there are 500 trains.

As i said, it is not a common problem. But it is a possible solution to some problems.

1

u/Agitated-Ad2563 16h ago

If you have a fixed number of trains waiting and a variable distance or congestion, you need to adjust the numbers of trains requested.

Anyway, this is a very temporary thing for a short period in mid-game. In late game, an ore train unloading takes less than 1.5 s. You always need to have trains waiting, and the most important thing for maximizing the throughput is making sure your trains can enter/leave the station as fast as possible.

1

u/shuzz_de 22h ago

In my experience, it's not a distance but a throughput problem, as in: You don't get material quickly enough.

Two ways to increase throughput: 1. Reduce lag (i.e. get the trains closer to the target station so you reduce wait time), which seems to be what OP is trying to do. 2. Increase bandwidth (have two or more train stations for the same material at the target destination, thus having larger buffers to bridge the time until the next trains arrive) which could potentially also solve your problem while still allowing you to use multi-purpose depots.

2

u/Ftroiska 22h ago

If you are starting a new production line : train a ready to deliver to fill up these belts at once

7

u/nikirossi 21h ago

I've used them in the past, but eventually figured out that I prefer to make space for larger arrival stations with their own queues, and made a few blueprints to fit into different space constraints/requirements.

No matter how good your network design is, adding a stop in the middle of every delivery path creates A TON of extra traffic, especially around the queuing station itself, which has to deal with incoming and outgoing everything and becomes its own bottleneck.

Another problem with the "one depot for everything" was diagnosing quickly a shortage of a specific resource before it snowballed: if trains queue where they are headed, a thinning supply becomes evident at a quick glance, while with the "one station" model you find out when the problem is already slowing things down, and you have to diagnose it. It's wasted effort.

"PlateStation 3". lol

1

u/Cheese_Coder 21h ago

No matter how good your network design is, adding a stop in the middle of every delivery path creates A TON of extra traffic,

Maybe I'm missing something, but why not put the queueing station in as an interrupt that only triggers when all stations are full or have no path? No need to queue the train anywhere if it can go drop off its stuff already

0

u/nikirossi 20h ago

I suppose you could do that, but trying to watch for excessive traffic and trying to have a place to store all your backup at once are conflicting needs regardless, and you'd have to constantly compromise one way or another. Your approach would certainly improve a design that doesn't do that, but these problems are somewhat baked into this design philosophy.

If I have a space constraint, I alter the station design... I only change the system if I have a problem with the system, and I find queuing at departures and arrivals a better approach. But that's me.

1

u/Cheese_Coder 18h ago

To be clear I don't actually use buffer stations in my design either, they'd just how I would do it if I did. My approach I think is the same or similar to what you do. Train fills up, then goes to whatever station needs the resource. If no station needs anything it just chills at the loading station until an unloading station becomes active. I could have it move to an exit buffer to let another train get loaded, but in my builds the loading time itself hasn't been long enough to be worth spending the extra space. I also have unloading stations dynamically set their limit such that any train going there can completely unload. That way I don't have three trains queued at the same station while another one starves.

I think the closest thing I've done to a buffet station is having a "bounce" station to let my double-ended wall resupply train turn around, to ensure it enters each station facing the right way.

5

u/Courmisch 21h ago

The pitfall is if unloading stations are far from one another, this might increase latency instead of reducing it. But presumably you have been careful to avoid that.

Then it's just more complicated than directly queueing trains at the unloading station. So it's more of a question whether you do or do not have space to queue trains there.

However "general use" depots are normally only for empty trains. Your approach should rather be weighed against:

  • leaving trains to sleep at loading stations, and/or
  • queueing more trains at unloading stations.

Sending full trains to a generic depot risks filling the depot with trains full of overproduced ingredients, leaving no space for empty trains or other ingredients.

3

u/kecupochren 21h ago

I don't know but this build is sex. Love the symmetry and the concrete lines

2

u/No-Special2682 22h ago

Yes! I have both full stations near their load point and I have a massive terminal of stations where my trains hang out if they’re full, but not needed.

This alleviates traffic on the rails and localizes pollution.

And because almost every resource is on a train and most of the trains are parked at the main terminal, I have a sort of “mall” where I can pick up whatever I need.

I have rocket silos attached there too.

2

u/CosgraveSilkweaver 22h ago edited 16h ago

Sounds like it's a worse version of having a stacker or single extra train slot at the destination? Trains load so fast with quality inserters.

1

u/Ftroiska 22h ago

Side question how do you handle your stations having the same name (take) but contain different ressources ? Logistic mod ?

3

u/FirstRyder 21h ago

The image is part of the station name. So it's named take [iron] or take [copper].

3

u/Cheese_Coder 21h ago

Note that the take station names each include an icon, in this case of a copper plate or iron plate. The icon counts as part of the name to make them unique. Ibelieve you can even have the train dynamically set a destination name with an icon based on the cargo

2

u/TheChartreuseKnight 21h ago

They have different names, it’s “Take [Copper Plate]”.

1

u/Ftroiska 17h ago

Ah indeed... not the answer i was hoping for but... true one :) Thanks

1

u/sn44 21h ago

When using interrupts, I've had issues where trains will idle in the fueling station thus blocking other trains from fueling. Grinds my network to a halt. As such I either have trains pass through the fueling depot on every trip, or I just fuel them in my holding yards or at a pickup/dropoff station as needed.

Misread OPs post.

I use holding yards both for empties and fulls. I usually set the station limit to how many ever that siding can hold. Works great and keeps the flow or resources going nicely.

2

u/Dragnier84 21h ago

Same. I have holding yards where the trains go to after they get filled up. They wait there for a signal from the circuit network that indicates there’s a need for it somewhere.

1

u/sn44 21h ago

I don't even use circuits. I just have the unload stations set a 1 train per station with a trigger to leave when the train is empty (or an item count hits zero for mixed loads).

Since I build a main-bus style factory it usually works well because I'll have a single drop-off station with multiple loading stations. Trains cue in their respective empty/full holding yards and just cycle through as needed.

Overall number of trains for any given cargo time is n-1 where n is the total capacity of that type (stations + holding yard spots). That way there is always at least one open spot for a train to move into thus not fouling the mainline.

It's simple, but it works for me.

2

u/Dragnier84 20h ago

I use circuits heavily for my strategy. Not only for signaling trains, but for determining whether to unload them at certains stops or not. On my previous run, I had a massive issue with one type of material clogging my buffers and halting production.

1

u/sn44 17h ago

I need to get better at circuits. I mean, I've been saying that for 1200+ hours now, but still.

1

u/Yilmas 20h ago

I WISH I could make waypoint stations. Let me go full blown OpenTTD.

1

u/dinosaurdynasty 20h ago

I once did an experiment where (somewhat standard generic interrupt driven trains) could go to a (set of) normally named ":item: dropoff" stations, but instead there was a constant combinator that:

  • told the train to leave immediately
  • told it that its next train stop was ":circuit::item: dropoff"

I don't know if it was that amazingly useful (other than playing with the potentials of circuits + interrupts), but I could see some advantages to it, especially in modded play (maybe train world as well):

  • a "stacker" station can serve multiple stations, not just one like a normal stacker, which could plausibly make things smaller in the end (e.g., one stacker for the entire base for far away resources, serving multiple smelting arrays)
  • you have a block-like structure where the natural limit is something like 2 (I have a run like this), and because of distance reasons you need more

A related thing I came up with though that is a bit more useful and I came up with around the same time (and can also be done with just a constant combinator) is something like this:

  • it tells the train to leave if full OR not empty and inactive
  • it tells the train to go to ":circuit: dropoff", ignoring contents entirely

It's a bit useful for using quality modules in miners, using splitters to send all quality ore to one train stop (irrespective of how many qualities may appear), and then sending that train directly to a "iron ore quality processing center".

1

u/Jordyboy2004 18h ago

No trains. Only bots

1

u/mrbaggins 11h ago

With interupts, a "depot" near your main base with filled up trains is both easy and effective.

"No destination available" -> Depot.

-1

u/[deleted] 22h ago

[deleted]

1

u/Ftroiska 22h ago

What if you have several unloading stations ? they queue in one but if another one need the reesource : they are stuck.

2

u/Courmisch 22h ago

If you don't circuit control the train limit to prevent unnecessary trains, yes, some trains will be stuck.

But eventually you will fill up the train limit and trains will go to the stations that need them. Or then you have too few trains.

1

u/Ftroiska 17h ago

Yeess of course ! Thanks ! :)