STUCK AGAIN but in a more complex way.
TLDR: should the train scoot based on other materials it currently has, or only materials currently matched up to an unloader? How about materials that the train might have, but ran out of? What should "accepted product" mean?
How this happened: I'm not filtering hoppers, partly because I'm curious how smart the train will be about changing what it loads if something runs out, and partly because it takes too many clicks (or I'm missing something). My train seems to have loaded the first four wagons all with sand, probably because the mine ran out of iron ore. The train does still have iron ore, but in a later wagon, so that only material currently matching an unloading is sand, but that's full.
But if my train scoots forward, it could unload the iron ore, at which point it would satisfy the depart condition. I think it should probably do this, because I see the depart condition and "accepted products" as a rule about the train as a whole.
Of course I can manually assign hoppers and separate platforms etc. to avoid this, but just sharing to help with the cool intelligent trains.
What also works now is changing "Empty of Any Accepted" to "Empty of Iron Ore", but my initial thought is that perhaps it should include all materials that
- this station has a non-paused unloading station for
- this train line has a non-paused loading station for, at any other station it visits
The odd case I forsee with that is that if your train can load iron ore and coal but the coal runs out, it would be willing to immediately leave a station requesting iron ore and coal. I think this is probably best, or else it might never refill on coal. But perhaps if someone stops supplying coal that way, maybe the train should forget about the coal if it's only carrying ore recently.
Anyway lol sorry I write a lot, but maybe that's helpful for your train design thinking. I'll continue enjoying CoI either way, thanks!


