IRC logs for #openttd on OFTC at 2015-09-26
⏴ go to previous day
00:22:10 *** Biolunar has joined #openttd
00:40:58 *** sim-al2 has joined #openttd
01:49:23 *** supermop has joined #openttd
02:36:55 <Sylf> Thanks, frosch, for the info, in case you read the log :)
03:14:38 *** HerzogDeXtEr1 has joined #openttd
03:53:34 *** Supercheese has joined #openttd
06:56:16 *** Eddi|zuHause has joined #openttd
07:47:56 *** andythenorth has joined #openttd
07:50:05 *** Alberth has joined #openttd
07:50:05 *** ChanServ sets mode: +o Alberth
08:10:47 <andythenorth> “Likelihood of selecting town cargos as a goal” <- does that also make it more likely that industries producing town cargos are chosen as destination?
08:11:06 * andythenorth wondering why BB keeps choosing the same textile mill and sugar refinery and grain mill over and again
08:17:21 <andythenorth> probably just random
08:18:46 *** Hiddenfunstuff has joined #openttd
08:22:37 <Alberth> Zyme: nothing on our wiki? Don't know how reddit thing is different, perhaps they hacked the server?
08:23:20 * andythenorth looks for his BB repo
08:23:26 <Alberth> andy, there is an upper and lower limit on distance, bigger or smaller distances get a smaller chance to be picked.
08:24:22 <andythenorth> the repeating goals are starting to annoy me enough that I might _actually_ try and fix it :P
08:26:43 <andythenorth> can GS be swapped on a running game?
08:28:54 <Zyme> Alberth: there is patches and stuff
08:30:06 <Alberth> I have no doubt about that
08:30:49 <Alberth> andy, for simple code changes it's usually ok. Don't modify strings (only add new ones at the bottom iirc)
08:30:52 <andythenorth> ah ok, so FindChallenge() is where the distance scrore is calculated
08:31:29 <andythenorth> so if the map has limited cargo sources close to secondaries, goals will be repeated easily
08:31:34 <Alberth> sounds like a good area :)
08:32:21 <Alberth> close is realtive, iirc it's between 50 and 200 or so
08:32:29 <andythenorth> it’s rand(200) + 50
08:32:47 <andythenorth> I have had a couple of goals that are maybe 180 tiles distance
08:33:18 <Alberth> 200 should probably be scaled to mapsize
08:34:05 *** Progman has joined #openttd
08:40:41 <andythenorth> ah there is some ‘distance * 2’ in here
08:41:04 <andythenorth> dunno if the repeating goals are just a side effect of distance check and can be tuned out
08:41:18 <andythenorth> or if they need an actual guard to prevent repeat (which could have side effects)
08:42:24 <andythenorth> once the cargo is selected, the distance checks will always use the same destination, unless the map has changed?
08:42:38 <andythenorth> because produce-accept pair will produce same result?
08:44:31 <Flygon> Every time I see the screenshot threads, I wanna screenshot my own games. But I'm afraid that my setups would be too 'primative' for TTDers to like
08:46:41 <andythenorth> what’s the worst that could happen?
08:46:48 <andythenorth> some people on the internets are mean to you?
08:48:09 <Flygon> I don't want to subject them to poor maps
08:50:03 <Alberth> you care too much about random Internet users
08:50:35 <Alberth> like "I won't write here, maybe my English is too bad"
08:51:16 <Supercheese> just do what I do, and don't start your own thread, but post in Random shots or other threads (e.g. Complex junctions)
08:51:33 <Alberth> Complex junctions is easy to improve :p
08:51:45 <Supercheese> all my junctions are complete organig spaghetti
08:51:47 <Alberth> especially a few of the first posts :)
08:52:12 <Supercheese> they're not high-throughput, they're not well-designed, but they're complex all right
08:52:30 <Supercheese> also, why post a junction with no trains on it?
08:52:33 <Supercheese> just looks... empty
08:52:50 <Flygon> This wasn't for posting, it was more seeing if I could make it
08:52:59 <Flygon> I just know now that I can build such a thing in future for future games
08:53:18 <Alberth> nah, don't learn to standardize your junctions
08:53:30 <Alberth> it makes the game so boring, I think
08:53:35 <Supercheese> planning ahead? Bah. humbug
08:53:47 <Flygon> (Also I really fucked this rail network up)
08:54:00 <Supercheese> that's a nice shot
08:54:04 <Supercheese> I like the single-platrofms
08:54:31 <Flygon> Yeah, but the fact that it's all designed as a non-terminus, and one track pair per line
08:54:35 <Flygon> Makes it inherently boring
08:55:34 <Alberth> screenshot forum is dominated by people making nice small villages with small stations
08:55:45 <Alberth> adding some more variety wouldn't hurt, imho
08:55:57 <Flygon> I'll need to do a new Europe game then
08:59:10 <Flygon> I regret 'cheating' my way to Akranes
08:59:27 <Flygon> Going bridgeless would've looked so cool
09:02:46 <andythenorth> people actually play OpenTTD?
09:04:52 <Alberth> most people here just talk about openttd :)
09:05:21 <Supercheese> Yeah I'm actually playing War Thunder right now, not OTTD
09:05:45 <Alberth> (that is, if we're on-topic)
09:06:06 <Supercheese> off-topic is the new on-topic
09:06:35 *** Biolunar has joined #openttd
09:08:23 <andythenorth> what is the acceptable cutoff for repeating a goal
09:08:29 <andythenorth> 15 years? 30 years? never?
09:09:36 <Supercheese> 50 years would surely be enough, perhaps less
09:12:28 <andythenorth> the thing about repeated goals, is they are not really a goal
09:12:34 <andythenorth> because you automatically win it
09:12:51 <andythenorth> so the route building on my map is now stalled :)
09:13:50 <andythenorth> I’ve stopped building, and now I’m just micro-managing vehicle upgrades, because NARS 2 has a daft number of new engines
09:14:33 <andythenorth> but OpenTTD is a route building game, not a train-upgrading game (that is how we end up ‘needing’ daylength) :P
09:19:49 <Flygon> Dutch Road Furnature now supports North American Roads...
09:26:21 <andythenorth> try Road Hog in your game
09:27:03 <andythenorth> not the bananas version, that’s waaaaay old
09:30:24 <andythenorth> Alberth: seems the thing to do would be wrap a condition around line 180 in FindDestinations()
09:30:57 <andythenorth> and maintain (elsewhere) a list of cargo-industry pairs where a goal has been won
09:34:38 *** sla_ro|master has joined #openttd
09:40:57 <Alberth> 180 only does industry targets
09:41:08 <Alberth> around line 250, the pairs are created
09:41:27 <Alberth> if you want to filter on paris of (source, target)
09:41:39 <Alberth> pairs in paris, apparently
09:44:41 <andythenorth> I think it’s best to filter on paris
09:45:39 <andythenorth> another option would be to extend what HasGoal() checks
09:46:35 <Alberth> that test prevents you get 3 goals for bringing oil to the same refinery
09:46:59 <andythenorth> if it also could check for historical winning of the goal, that would be a clean solution
09:47:45 <Alberth> pairs come into play at line 249, as you loop over producers within the acceptors loop
09:47:46 <andythenorth> I see ’already won’ as a subset of duplicate
09:48:51 <Alberth> so never have another oil to the refinery if you already had one?
09:49:12 <Alberth> makes sense, and is even easier than pairs
09:49:21 <andythenorth> there is the annoying case that the map has no goals left
09:49:27 <andythenorth> which is tedious to handle
09:50:17 * andythenorth must to children’s football
09:50:23 <andythenorth> but I want to look at this again later
09:50:24 <Alberth> it tries 20 times or so to find a new pair
09:50:42 <andythenorth> does it message anything if it can’t find *any* goals
09:50:43 <Alberth> so on failure, return "failed" to the main loop
09:51:07 <Alberth> or at least lower the rate
09:51:23 <Alberth> ie no forced update every day or so
09:52:07 <Alberth> new industries will be picked up
09:53:01 <Alberth> probably remove delivered goals when the industry disappears
09:53:16 <andythenorth> oh yes, that’s an extra case to consider :)
09:53:32 <Alberth> it catches the closure event iirc
09:53:33 <andythenorth> so the main loop needs to handle that?
10:09:06 *** gelignite has joined #openttd
10:14:20 *** andythenorth_ has joined #openttd
10:30:01 *** tokai|noir has joined #openttd
10:30:01 *** ChanServ sets mode: +v tokai|noir
10:36:03 <__ln__> hello customer of telecom italia
10:45:43 <__ln__> hello customer of 2001:981:c6c5
10:46:00 <Alberth> hello user of many _ characters
11:16:55 *** roidal_ has joined #openttd
11:20:00 *** andythenorth has joined #openttd
11:29:49 <Eddi|zuHause> why do so many ipv6 addresses start with 2001?
11:38:25 <Eddi|zuHause> so they artificially restricted the namespace to starting with 2 (or 3)?
11:39:20 <Eddi|zuHause> and 2001 basically is for all the early adopters?
11:39:52 <Rubidium> obviously everything starting with 2 is for earth, 3 for mars, ... ;)
11:40:29 <Eddi|zuHause> so a mercury probe would have address starting with 0? what about solar probes?
11:43:09 <peter1138> hmm, my host is masked somehow
11:43:19 <peter1138> but yeah, it starts with a 2
11:59:43 <andythenorth> Alberth: FinalizeGoal() would seem to be the place to update a persistent list of won goals?
12:01:25 <andythenorth> hmm, active_goals is a list, does that keep growing, but completed goal numbers are set to null?
12:02:19 <Alberth> yep, and monitoring stuff runs through the list throwing out old crap
12:03:31 <andythenorth> hmm FinalizeGoal() is also called if the industry closes etc
12:03:40 <andythenorth> I should’t use that
12:03:40 <Alberth> I'd say it belongs in CheckAndFinishGoals
12:03:59 <Alberth> FinalizeGoals is about the goal on its own
12:04:11 <Alberth> you want a company method
12:04:12 *** frosch123 has joined #openttd
12:04:12 <andythenorth> CheckFinished also returns true if timeout < 0?
12:05:46 <andythenorth> UpdateDelivered might do it
12:05:58 <andythenorth> that handles the ‘goal won’ news and such
12:06:15 *** Wormnest has joined #openttd
12:08:40 <Alberth> close enough, I think
12:20:38 <andythenorth> don’t change a GS on a running game
12:20:43 <andythenorth> OpenTTD has frozen
12:22:17 *** Pensacola has joined #openttd
12:22:27 <andythenorth> won’t generate a crashlog even
12:23:15 <andythenorth> zero info in that crashlog
12:23:20 <andythenorth> think it just says I killed the app
12:24:10 <andythenorth> well, that makes updating a GS harder :)
12:26:02 <Alberth> hmm, you updated data, which doesn't get initialized?
12:27:08 <andythenorth> I just added a logging print
12:27:21 <andythenorth> so I could learn how to test a GS
12:28:00 <Alberth> I prepare a savegame with the GS running, and use ./openttd -g <savegame>
12:34:30 <andythenorth> trunk BusyBee kills my openttd
12:35:09 <frosch123> allergies to bees are widespread in my family
12:36:21 <andythenorth> ho, seems I have to restart OpenTTD, then explicitly select ‘none’ for GS, then select BusyBee again
12:36:25 <andythenorth> then it doesn’t crash :P
12:42:21 <andythenorth> ok, the crashes were because the version of BB I had was ancient :P
12:42:45 <andythenorth> and OpenTTD was persisting the settings I assume, but they are changed in more recent BB
12:47:18 <andythenorth> eh, I’ve added a won_goals data structured :P
12:47:28 <andythenorth> dunno if it’s savegame safe, seems to be
12:47:39 * andythenorth must to squirrel docs
12:48:32 <andythenorth> I’ve used a table {}
12:48:45 <andythenorth> seems like a list would be better
12:51:42 <andythenorth> Alberth: if this was python, I’d just move the Goal object from active_goals to won_goals when won
12:51:45 <andythenorth> any reason not to do that?
12:52:20 <andythenorth> probably means we could also list won goals in the story book
12:56:28 <Alberth> there is also monitoring attached
12:56:49 <Alberth> and you're not interested in the goal details, imho
12:57:20 <Alberth> make a new won_goals list in the company?
12:58:17 <andythenorth> I just need to figure out how to store cargo + accept in it
12:58:27 <andythenorth> and if it’s a table or array
12:58:46 <andythenorth> maybe table of tables
12:59:06 <Alberth> table of targets to tables of cargo ?
13:00:34 <andythenorth> {0: {cargo: coal, accept: 0x3sfs213123}} or such
13:00:44 <andythenorth> dunno, squirrel tables I am reading about, they seem mad
13:02:09 <Alberth> inner dict is really a set,
13:02:19 <andythenorth> I had better read about these slots some more, I have not seen anything like them before
13:02:45 <Alberth> there is a difference between making new data, and modifying existing data
13:04:11 <Alberth> simplest is to make the data at construction
13:07:24 <andythenorth> ok, working on that
13:14:48 <andythenorth> ok, I’ve got a table of arrays :D
13:15:09 <andythenorth> {id: [cargo_num, industry_num], …}
13:15:44 <andythenorth> if a player wins hundreds of goals, do I need to be concerned about performance walking that array?
13:15:57 <andythenorth> (when assigning new goals)
13:16:47 <andythenorth> I could just do array of arrays I think
13:16:56 <andythenorth> or I could index by cargo
13:17:13 <andythenorth> faster if indexed on one of the parts of the pair
13:17:34 <Alberth> yeah, that's why I aimed for a table of tables
13:19:05 * andythenorth wonders if squirrel has “if x in [some_array]”
13:19:29 <Alberth> it's not very useful to have that
13:20:26 <andythenorth> oh, does your suggestion imply keeping True and False for every pair? o_O
13:31:19 <Alberth> I think you always need a value in the table
13:31:19 *** Supercheese has joined #openttd
13:31:40 <Alberth> but with a set, you basically don't care, existence of the key is sufficient
13:32:29 <Alberth> so you need some dummy value, typically a boolean, or null, or none, or 0, or 1
13:33:26 <Alberth> given my broad experience in squirrel, it's also very possibly my ideas of tables is plain wrong :p
13:35:45 <andythenorth> they are making my head hurt
13:35:50 <andythenorth> but I will carry on
13:47:54 <Alberth> they are like dicts in python :)
13:55:07 <andythenorth> I can’t find anything like .keys() or .iteritems() or so :)
13:55:15 <andythenorth> maybe everything is done with a loop :P
13:59:26 <Alberth> exp:= keyexp 'in' tableexp
13:59:26 <Alberth> Tests the existence of a slot in a table.
13:59:26 <Alberth> Returns a value different than null if keyexp is a valid key in tableexp
14:01:11 <andythenorth> are we on Squirrel. 2 or 3?
14:01:47 * andythenorth has found the correct section in docs
14:04:58 <Eddi|zuHause> just keep in mind that "in" is actually an expensive operation
14:08:59 <andythenorth> compared to looking up by key, and seeing if null is returned?
14:26:13 <supermop> andythenorth: is busy bee?
15:22:09 <andythenorth> I hate learning new languages :|
15:28:32 <andythenorth> missing index when I try to read the value I’ve just set (line 6)
15:36:16 <andythenorth> the hash (object reference) of the table changes every time I read the object
15:36:19 <andythenorth> that can’t be good?
15:39:36 <andythenorth> squirrel is weird
15:39:50 <andythenorth> can’t write “CompanyData(comp_id).won_goals”
15:39:59 <andythenorth> have to do “cdata = CompanyData(comp_id)”
15:40:05 <andythenorth> then “cdata.won_goals"
16:12:01 * andythenorth wonders how to loop over table keys
16:12:09 <andythenorth> foreach gets the table values
16:18:11 <andythenorth> oh ffs, I didn’t consider just unpacking
16:18:33 *** sim-al2 has joined #openttd
16:42:53 *** Alberth has joined #openttd
16:42:53 *** ChanServ sets mode: +o Alberth
16:45:43 *** gelignite has joined #openttd
17:02:49 <Wolf01> it could be TrueBrain of cocoa too :P
17:15:02 <andythenorth> I had some “andythenorth doesn’t understand Squirrel” issues :P
17:15:40 <andythenorth> it appears to store won goals correctly, it doesn’t attempt to make use of them yet though :)
17:19:52 <Flygon> Meanwhile a surprising amount of RO servers still use .txt databases
17:20:26 <Alberth> reading text files is pretty fast
17:23:00 *** Biolunar_ has joined #openttd
17:23:10 <Flygon> Alberth: The passwords are stored in plaintext
17:23:16 <Flygon> Instead of being encrypted when using SQL
17:23:25 <Alberth> andythenorth: looks ok to me, basically
17:24:02 <andythenorth> tables seem to need a lot of declarative lines
17:24:24 <andythenorth> my_table = { foo={} } seems to sulk
17:25:10 <Alberth> Flygon: at least they are honest, instead of thinking they are safe, but not
17:26:13 <Alberth> andythenorth: you can fold a loop around it, but not worth the trouble
17:26:54 <andythenorth> now I just need to check won_goals in FindChallenge
17:27:40 <Alberth> you can reduce the if (foo in ...) branch by adding inverting the check !(foo in ....)
17:28:21 <Alberth> you can also introduce a local variable for the common part, to make it less massive
17:32:02 <andythenorth> ach, I spent a while looking for a negator on that ‘in’ check :P
17:32:17 <andythenorth> I tried (! and == false and == null :P
17:34:10 <andythenorth> hmm !( doesn’t work
17:44:28 <Alberth> it would be if (!(foo in ...))
17:44:47 <Alberth> which does look like crap, I agree :)
17:47:48 <andythenorth> it’s a funny little language
17:56:23 <Alberth> yes, quite balanced in that respect
18:08:42 <andythenorth> I need to distinguish town or industry
18:09:01 <andythenorth> in the return values from FindDestinations()
18:09:12 <andythenorth> I am impaired by the crying child on my left arm, somewhat
18:24:13 <dlhero> tryin to clone nuts but I can't
18:24:19 <dlhero> anything wrong with hg on server ?
18:37:10 <Alberth> no idea, channel to talk to is #openttdcoop.devzone in general
18:37:21 <andythenorth> might be too big
18:37:23 <Alberth> nuts is probably a bit very big
18:47:48 <andythenorth> eh, the industries seem to be logging the id correctly
18:47:54 <andythenorth> but towns seem to be storing 0 always
18:48:33 <andythenorth> also I really don’t understand scopes in squirrel
18:49:09 <andythenorth> I create an object in the company, but I seem to be able to read arbitrary, non-useful versions of it if I get the scope wrong
18:49:35 <frosch123> dlhero: the webserver at coop terminates connections after 1 minute or so
18:49:46 <frosch123> so no pull or clone can take longer
18:49:58 <frosch123> you can work around that by not pulling everything at once
18:50:12 <frosch123> like hg clone -r10 ... and then hg pull -r20 and so on
18:52:41 <TrueBrain> right; time to finish this dreadful migration of openttd.org services ... will try to minimize the outage :)
18:52:56 <Alberth> don't remember what towns do exactly, although I remember being able to print the town name from it
18:52:58 <dlhero> would appreciate an http link to tip :)
18:53:28 <frosch123> dlhero: there are snapshots on bundles
18:53:39 <frosch123> but you can likely also just download the binary then
18:53:47 <frosch123> no idea what you try to do :)
18:54:38 <dlhero> frosch123: need a tar.gz of the repo
18:59:05 <frosch123> there are no archives with the complete repos
18:59:09 <frosch123> only single revisions
19:00:27 *** Kurimus has joined #openttd
19:09:12 <andythenorth> hard to test if that is working :)
19:09:28 <andythenorth> the towns stuff I’ve left out for now
19:09:35 <andythenorth> hard to prove a negative :P
19:15:02 <Alberth> You can't just access by key?
19:15:14 <andythenorth> I tried that but got an index error
19:15:45 <Alberth> you can't just test whether the key exists, and if it does retrieve it and do the next test?
19:16:19 <andythenorth> erh, yes, that would be much more sensible :P
19:16:53 <TrueBrain> openttd.org website will be down for a few, while I sync data from one machine to the other and reconfigure the network .. joyful :)
19:19:49 <Alberth> you can "return cargo_id in this.won_goals["industries"][accept["ind"]];" but yeah
19:22:57 <TrueBrain> okay, website should be back alive and kicking :)
19:24:01 <Alberth> /me stays away from it for a while
19:25:43 <TrueBrain> does it work for IPv6 too?
19:35:56 *** gelignite has joined #openttd
19:45:26 <DorpsGek> Commit by translators :: r27404 trunk/src/lang/arabic_egypt.txt (2015-09-26 19:45:17 +0200 )
19:45:28 <DorpsGek> -Update from WebTranslator v3.0:
19:45:29 <DorpsGek> arabic_egypt - 64 changes by abdumzn
20:05:52 *** sim-al2 is now known as Guest3049
20:05:53 *** sim-al2 has joined #openttd
20:16:07 <andythenorth> how to test non-repeating goals :P
20:16:21 <andythenorth> I had a lovely game running, but it was ancient BB
20:16:32 *** FLHerne has joined #openttd
20:16:39 <frosch123> add a sign cheat to complete goals :)
20:20:22 <andythenorth> that is a wise suggestion
20:20:36 <andythenorth> or a sign cheat to trigger the goal generation :P
20:20:42 <andythenorth> with parameters :P
20:43:04 <jackyf> good evening, my openttd (1.5.2) seems having a problem connecting to a content server (content.openttd.org:3978, "connection refused"); I wonder if it's a problem with my connection or a server-side issue
20:46:52 <jackyf> TrueBrain: works now, thanks!
20:46:59 <TrueBrain> and tnx for reporting :)
20:48:21 <andythenorth> Alberth: is it plausible that the towns are selected in linear order, ascending from ID 0?
20:48:26 <andythenorth> when assigning town goals
20:48:52 <Alberth> sounds quite plausible to me
20:49:42 <andythenorth> the first one is always reporting 0 :P
20:49:44 <andythenorth> and the second 1
20:49:53 <andythenorth> hopefully not my bug :)
20:50:10 <jackyf> TrueBrain: you are welcome, nice to see a fast fix :)
20:53:29 <andythenorth> that might explain why I haven’t noticed town goals repeating
20:54:24 <andythenorth> Alberth: I think I’m done, needs playtested, commit in a branch? Or to default and revert if bad?
20:56:23 <Alberth> feel free to keep it for a while, else please make bookmark
20:57:16 * andythenorth learns about bookmarks
20:57:19 <andythenorth> every day a schoold day
21:43:45 <Demosthenex> so after the game downloads opengrf, it still says things are missingon the main screen. what else should i get?
21:44:24 *** OsteHovel has joined #openttd
21:50:02 <andythenorth> does it say what is missing?
21:56:34 <Demosthenex> just a red window says that some graphics are missing from base
21:56:39 <Demosthenex> yet i let it autodownload opengrf
21:57:18 <Demosthenex> wild, when i did a download separeately it resolve dit
21:57:19 * andythenorth has no suggestions sorry :(
21:57:27 * andythenorth uses the original graphics
21:58:23 <Demosthenex> yeah, i prefer them over the 32bpp stuff, i can't tell when something breaks down in that one
21:58:30 <Demosthenex> no smoke, or not visible enough
21:58:41 <Demosthenex> so i hear FIRS really changes up the industries?
21:59:50 <Demosthenex> but it's not in the listof online content
22:00:46 <andythenorth> there was a mistake
22:00:54 <andythenorth> and now it’s no longer available
22:01:52 <Demosthenex> i was just reading that
22:04:04 *** Progman has joined #openttd
22:05:58 <Alberth> if you have a savegame requiring that firs, you can get it by content download for the savegame
22:06:23 <Demosthenex> openttd a fatal newgrf error occurred sprite 9679?
22:06:27 <Demosthenex> after adding firs
22:06:51 <Alberth> the new one, I am guessing
22:07:06 <Alberth> which won't run, as you need a trunk openttd for it
22:07:38 <Demosthenex> so i should use 5571 then
22:07:51 <Alberth> or use a newer openttd :)
22:10:39 <andythenorth> yeah, use 1.4.4 ;)
22:11:40 <andythenorth> why can’t I give a train ID 20 (dec)
22:11:55 <andythenorth> it is built as a double-headed engine, no matter what I do
22:15:12 <Demosthenex> wait, which firs for 1.5.2 then?
22:17:15 <Alberth> 1.4.4 is the firs version, rather than an openttd version :)
22:23:53 <frosch123> andythenorth: using default ids uses default properties
22:24:12 <frosch123> using non-default ids uses no properties
22:25:37 <andythenorth> ha I didn’t encounter that previously, due to accident
22:25:46 <andythenorth> all Iron Horse IDs were 1000+
23:07:13 <Demosthenex> so on a long route,is there a way to tell a vehicle to retrace it's steps (ie: route in reverse) instead of going th elong way back to the point of origin? manually adding the stations in reverse order warns me nonstop about duplicate orders...
23:11:10 <frosch123> duplicate orders is only if they follow directly after each other
23:11:48 <frosch123> anyway, do you know about orders without "nonstop"
23:11:56 <frosch123> then you only need two orders for start and end
23:12:03 <frosch123> no intermediate orders
23:12:03 <Demosthenex> these are busses, i've seen nonstop on trains
23:12:12 <Demosthenex> just mang a bus loop
23:16:15 <frosch123> the same exists for road vehicles, but you may have to use the oneway-tool to restrict the routes
23:16:29 <frosch123> so, the vehicles actually drive through the intermediate stations
23:17:42 <frosch123> it's easier with trains :)
23:27:13 <Demosthenex> that was the clue i needed, that a duplicate order is when the last station is repeated. throw in a maintenance at a nearby facility, and done. now i have my loops
23:38:09 <Demosthenex> are there no early game fishing ships?
continue to next day ⏵