Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
What you are describing would be trivial in the old game Transport Tycoon Deluxe (TTD), which, from what I understand, the developers of Factorio are fans of.
This is how it works in TTD: You make a station with mutliple platforms. With proper signaling, an approaching train will automatically seek out an empty platform, and there will be no backlog or stuck trains. This is because in TTD trains re-evaluate their destination each time they pass a signal. Also, it is possible to have a station with a single name, but multiple platforms for a train to stop at.
In Factorio, you can kind of "hack" the multiple platform stations. If you give both stations the exact same name, then trains can't tell the difference between them. They'll also prefer to stop at the one that is empty, rather than waiting behind a train. You could have 5 stations all marked "iron ore pickup" for instance, and your iron-fetching train is scheduled to go to "iron ore pickup" and would choose one of those 5 stations to travel to in order to complete its route.
The problem is that Factorio trains choose their route when they leave their station, and don't re-evaluate their route if conditions change. After they choose a station that is empty, they head for it. If a train gets there after they leave, they will end up waiting in line behind the other train instead of changing their destination and heading for a different empty station.
This behavior makes it next to impossible to make a fully functional "RO-RO" station in Factorio (roll in, roll out). I had 4-platform stations in TTD that could handle dozens of trains, all rolling in and rolling out so smoothly that you'd never notice how many were served by that single station. There are some hacks and tricks that make it work better in factorio, but they're not quick and intuitive to figure out.
There are also some mods to make trains a bit more dynamic, capable of making a few more decisions.
Ultimately the way Factorio trains are intended to function is to head to specific, set stations in a regular order, and then repeat the exact same sequence over and over. They're not good at making decisions to head elsewhere when certain conditions are met.
Are you sure about the fact with the train not changing the route after another one was faster blocking the target station? I figured this name thing like 2 month ago on my own (by mistake... I love such mistakes) :-D And as far as I can tell when you place signals right the train can still redirect to the next free station. Because rails are made in blocks. Having a "Parking lot" in front of the loading / unloading station, you usually have and extra block in front of the station. And my trains check for an empty station right before they drive into the parking lot. And on 20 blocks there is not much of a chance that another train will block the target.
LIke this: https://i.imgur.com/d6CoDhq.jpg
When they move in I place a "rail signal" to seperate parking lot from the main track. Then comes a "chain signal" If both stations are blocked, the chain signal will be red (obvious) if one is free, it will be blue. Let's say the train will go to station 1 and nother one that is already waiting drives into 1 BEFORE the new trains passes the first rail signal then they change their target because the CHAIN SIGNAL is blue. And blue means "Wait if you can't reach your target" or "Change if you can still reach your target" and the second deceider calculates whenever the chain signal is blue to evaluate the best strategie. That means for the train "Reroll the route to Target X" But when Target X is block, he goes to Target X with the exact same name. You can do this with 5 or 10 stations as you like as long as you use chain singals on the parking lot. I have 25 trains going on this single station when it's done. And I already tried it for 20 Minuted with 25 trains and empty stations around.
(the problem you descriped happens if you just place a rail signal between waiting position and station) Because the rail signal doesn't support redirection. (The Wiki helped me a lot
explaining it)
@Mist of Majora Give it a try... either way. This is the only way for vanilla, as Lips said.
https://i.imgur.com/fCtWVHC.jpg
I am not sure if this would work for you. 2 would be enough to fill the belts I went with 3 for the backup. The splitter condition is set to take from the own station first. Means buttom, middle, top. This will give the 1 and 2 time to load while the 3rd is still unloading.
But I am afraid 8 belts won't be enough later on. For the new factory I will do 6 stations. Ffor a total of 16 belts. 3 station for 8 belts. Maybe just 2 stations if my mega trainstation runs well.
You can do the same with unloading trains. Only have trains come in when a full train can be unloaded or something like that.
https://www.youtube.com/watch?v=C7GDueDo_TY&index=16&list=PL4o6UvJIdPNooxA4WQskzhF0_qe5GTMED
In factorio trains reevaluate their route if standing still for about a second. An occupied station adds length to the pathfinding rather than marking the path as inaccsessible, so unless the path to the free station is much longer a waiting train will choose the free station after about 1 second of waiting by the chain signal. You of course need that chain signal where the train can reevaluate its route.
If trains take too long to choose the furthest station you can use waiting stations to make all distances equal, like this: https://i.imgur.com/2nBfwpA.png
Have a park area right before the stations. At the exit of the park slots, put a chain signal.
Right before the station (at the length of the train or more) put a regular signal. There should be no other signals between the park and the stations.
And you're done!
What happens is that trains will pass right through the chain signals if one of the stations has room. If not, they will stop at the chain signal, thus re-evaluating their route, so that when the signal goes green/blue it will know where to go, even if it wanted to go to the other station when it left the previous station.
If you have as many stations as trains, you can skip the park and just have a straight line with the chain signal. Same effect, but only "parking" for a single train.
As for turning on or off stations, the way I usually do it is to hook up that last signal before the station (the regular one, not the chain signal) to a decider.
Place another decider for each cart in the train and hook them up to the chests for the particular carts in question (so that each cart's loading chests have one decider each).
When "everything" (the red wildcard) is more than what the cart can carry, send a signal.
When the signal decider gets the same number of signals as there are carts, send a signal to the rail signal, activating it and letting trains in again.
If you have a perfect balancer before the loaders, you could skip the deciders for each cart and just hook up ALL loading chests at that station to the last decider and set it to the total carry capacity of the entire train, but that balance is a bit hard to achieve.
Since you have a park for the trains at the pickup, you won't need a depot or to play around with any advanced signal magic. They'll just roll up to the park and wait there patiently until there's a free station with enough ore to fill it.
0eNrtms1uq0gQhd+FtbmiG7qBLOZFRpFF7E6ChMECnJko8rsPGP8k+HRSh7u5i9kksrE/d/2c6qaoj+CpOrh9W9Z98PARlJum7oKHvz+Crnypi2p8r3/fu+AhKHu3C1ZBXezGV21RVsFxFZT11v0bPKjj4ypwdV/2pZu+f3rxvq4PuyfXDh+4fnNzaN/cNjwBVsG+6YbvNPX4QwMnVMMH34f/cT7At2XrNtNVe1zdMfWV2fUD7uW191HtBE2ir1ANoLEYmsihidR6bHwMkEa8Ti1fp5VCIzkzlTKJdWZSJhGjXMokkklFssArIvBKiSOvzubH9is2RVhNxmkOVQgafykY4bmo3CHjX+YMTX8ZgQsS6Vp9HoCLNbLFKkOu1krVn56xsWCxqQxqrkgEyYTpmX5LyeUJmU0gnSGQjkgJejBKFsf0EkZ9F8Yha4aNsG+bav3kXou3smnHL23KdnMo+/Wmajq3vuyQz0XVudX1YuuK7fVa3x7c8QSrJ3Y3ctT4p3XbzxtlObzS8fHxCE26ifO56Ppw8E7d7Zu2D59c1YOA6att2dw2uJPGJF8t911Tb6+o57Lt+vXdUeOtbPvDKWSXdDh9Inx3VdX8E0wO7fpiPLNE44vdvmiLfvyh4K/T5fOPubp4qtx6W3bj/ykcs0i9FvV2XFQ/uKS7C+blwvTZXbMdIBERUOULaLLY4XcBTRDfkPx4FtD/Q3gJYeYLoV3sYpkmxQenH6pqJtzW8j+vHhqf7xdsORaBYnrLwRi1WM527mt4U7K8/sv48eJctj+Wi7mCUX7MJPxV5EjBSp5FsU/BcUIrDEff8NmYQJBlsxFjbpVjpNRh1zf7e8ZtKavh54rpyuBFRPx0w7Urqip01eD4ttyE+2YI6Xf5F1/yQxSqz+fn8Q2jfbHL6dhBXyWRyFc6kjsrUXw6aLg2zaYDxsS0qzAn4e2KIMiwdmGMpe3CnJS2S8GdNslIuzwYOrUxx0S8XbC+GcXahTF6aRFRlioi2ayIWN9tlaGV4bEskR2xwtsZa9xBIYrfSxQsbIbdSzwY+hTq4WS8XbAKGbZPhzE2ou3CHL7YK1iFLFvsPZh4qchyRmNGzzSWWo/GLH3I8hjGCwNWRcvqAlNoWWAMrwpYgCwrCkhJaU1gDC8JWDJSVhGYQtd4jFlw+IEc+uwDKZZU+e1+jVG5nR/HM5/KU75ZATG0HmCtSEk5QEjGqgFTaDFAx2SkFjCElQKm0EqAgspIIWDIUh0kjAxSO5NBHnlkkLEywFbRKoB1OCNVACF5xD1MMb/VOgTNXU9X8Xd60EX93r+W9cuPXWh5ingLY67IjMBR0GQP10geEuQxm2fwEJMLpxumh4hKCRZmqOeSc6RBSMvaio+hOd0swPcNeSbqO4XnxpNK7lR160Jp1IXK6RY5vnFTETfDoFJMEQ4AjRMDE+XnR+CRpk20eHG0EHDHRUX03ohbUiqi73Zwz05F8iaZ/paTfq1Am9dT0vrq0GWf1VpSiFRE73jak6w5ay7mKLp3hh8NKPm0zmVBHg6d6/hpoFIxuyAPJ+GmWuZDLTAPlKFqzZxpINOy81LzYSGMTbmJxvloF5zBkg7kGIiEE2jy6ZwMGg8nmuSTOufRS9GwnFbk7KWMqslJSRk15kYl76GPq2mk9uHTBO4qeHNtN40EZKnWmcqjdCjI/wHO+266
The trains go left for me by default , that's why i only have to alternate the left station's signal.
P.S. Don't forget to put any item on the belt. hope this helps.
Add up the ore in each station and send to a comparitor, highest output gets station enabled, lowest output get station disabled.
Train arrives at station A. Enable Station B, wait one or so seconds, disable Station A. Train arrives at Station B, enable Station A, wait one or so seconds, disable Station B. Repeat up to any number of station in the chain.
Had to make some allowances in the actual track layout that allows for trains to reroute at the last second using the chain signals. This is to handle conditions when a train is stopped at all stations in the chain.
Its not perfect, but it does keep things even. Sometimes it leads to an increase of traffic due to the trains rerouting when all stations are occupied.
I also should have mentioned that I have a bunch of other loading/unloading stations on the map that at least allow the trians to pick a stop as they wish, but those still suffer from being evenly distrubuted.
Zig - that's indeed a good solution for two trains, but I'm not so sure how that'd work in my case with 3 current trains for 2 stops, with double the amount of trains planned. My best guess, as you pointed out, is that it would cause unwanted traffic issues (and possibly having extra trains bypass my steel station altogether and head back to their original port, which would cause a serious loss to keep the station's ore coming in)
Bitchfight - I'll post a screenshot below showing that we may have a similar design minus the fact that I needed to allow for more trains with less inputs/trains. I like your design, and in fact have been challenging myself to make a different design for most of my products, but my issue was even alternating and a train skipping the station altogether (thankfully the latter got fixed).
And thank you for the idea of using a storage chest as a marker to alternate the rail signals. I think I may add a logic rule on top of that to only allow disabling stops when there's one or less trains at the station (I don't want to disable a station when a train is currently parked there). Of course, there's no way to that directly either, and I haven't looked at combinators for a while, but there's gotta be a way using a simliar idea. If there was a way, for instance, to only allow the station to be disabled if the contents of the chest aren't increasing. Lacking that, maybe hooking up a wire to one of the first belts leading form the unloading station to only allow that station to be disabled as long as ore is on it?
https://steamcommunity.com/sharedfiles/filedetails/?id=1426360376
I have several Unloading stations called "Unloading Iron Ore". Full station will be blocked, which forces my train to seek a new station. However if the station a blocked by another train they will try to find another station in a certain radius (which is like 200 blocks or so).
And this works.
Yeah, thats just what happens. When all the stations are occupied, the trains will return back to the "source" station, stop for second, then try to reach the destination again. This is not ideal, I probably need to work out a way to prevent it. Generally though, when this starts to happen it indicates that Im having a bottleneck of supply that needs addressing more then the train behavior.
For example, if you have 2 train unload stations and two trains, they can both use only one of the stations at a time if they aren't both there at once. This means one station gets all the ore. But if it manages to empty out before the second train arrives (or empties out before both trains return), then it wouldn't matter if you had a second station. Then both stations would run out twice as fast as one station empties out.
If you, however, have 2 trains delivering ore faster than 1 station can unload, then that one station will start filling up more and more. Eventually, a train will arrive and not be immediately emptied out, due to the chests being too full. It then sits there longer than it normally does. It will eventually be there long enough that when the second train arrives, the only available station is the second empty one.
Lets say I want to add a second modual to produce steel, but it cant be right next to the original without removing and rebuilding tons of stuff. I also want the second steel modual to have the same pickup station names so I dont have to reconfigure all the current trains. In this case the trains are going to go to shortest path and wait in the holding area when in fact there is available steel waiting at the other module. So I have smelters sitting idle, trains waiting, big ole nasty bottlenecks.
In this case I can make sure eveything is being used to its maximum potential by cycling through all the available stations. Stations have time to buffer so that a train isnt waiting on production, its only waiting on how fast it can be loaded. Since you are cycling through the stations you end up with an average constant wait time, meaning it takes all trains going to get steel around the same amount of time to return with a full load. Not one that returns instantly because it got lucky, and one that sits and waits on production because it arrived at a station a train just departed from.