Encoded Network ID, how does it work?

Adds new train stops forming a highly configurable logistic network.

Moderator: Optera

User avatar
Optera
Smart Inserter
Smart Inserter
Posts: 2920
Joined: Sat Jun 11, 2016 6:41 am
Contact:

Re: Get stucked with basic LTN ID problem [solved]

Post by Optera »

Anything that can be said about binary coded signals can be found here: viewtopic.php?f=214&t=60334

Moving your post to that thread.
torne
Filter Inserter
Filter Inserter
Posts: 342
Joined: Sun Jan 01, 2017 11:54 am
Contact:

Re: Get stucked with basic LTN ID problem [solved]

Post by torne »

MisterFister wrote: Thu Sep 16, 2021 1:06 pm Is there any way to ONLY prevent the circular-feedback activity at this location, but to leave all other behavior intact? I.e., a city-block with a reduced-priority LTN-requestor intake trainstop, that can generally receive LTN-routed shipments of materials from any valid provider elsewhere; AND an increased-priority LTN-provider trainstop, capable of fulfilling LTN-routed requests for other locations; BOTH active at the same time; without developing that feedback loop described in this thread's OP?

My likely-flawed understanding is that doing this "properly" might involve redefining multiple unique networkID values for various provider and requestor locations map-wide... and, if true, this would make me irrationally sad.
As long as none of your existing stations have a network ID set on them at all, and the default network ID is set to -1 in the mod settings (this is the default), then you can set this up pretty easily without changing any settings on your existing stations.

Build your reduced-priority LTN requester stop and your increased-priority LTN provider stop as you normally would. To prevent the feedback loop all you need to do is set the network ID on one of them to 1, and on the other to 2.

Since every other station in your network has ID -1, which means they are considered part of all networks, any other provider can deliver to this requester, and any other requester can get deliveries from this provider, but they cannot deliver to each other because 1 and 2 in binary do not overlap.

You can have other pairs of buffer stations by using other powers of 2 as network IDs; make the next pair 4 and 8, then 16 and 32, and so on. You can have up to 16 pairs this way without having to make anything more complex; there are 32 non-overlapping networks since circuit signals in Factorio are 32-bit numbers.

It's only complex to set this up if you *also* use the network IDs for other, unrelated purposes, as then you have to think about exactly which network IDs should be able to deliver to which others, which might be tricky depending how your current setup works. If your base is otherwise allowing deliveries from anywhere to anywhere and you *just* need to stop specific pairs of stations from forming loops, then the above should work.
mrvn
Smart Inserter
Smart Inserter
Posts: 5878
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Encoded Network ID, how does it work?

Post by mrvn »

You really should be using LTN Combinator. Click on the Encode Network ID button and you get this:
ltn-combinator.png
ltn-combinator.png (73.61 KiB) Viewed 1996 times
So you have 32 networks. Simply select the networks you want and the combinator sets the numerical ID for you. To prevent loops in a buffer the input and output must not have any network IDs in common. That's all you have to be careful with.


Another thing you can do if the buffer is only for clearing ore patches that are in the way: Use different train sizes. For example LCCCLCCCL for normal ore mines and for the output of the buffer. But for the input use LCCCL. Set the min/max train size and you can't have a loop. Plus it makes building those temp ore stations simpler if they are smaller.

I usually clean my ore patches in 2 steps. First I clear all the bits that will be below rails or a ore loading station. That ore really has to go. After that I can build the rail grid and put in a normal ore loading station and make the block an ore mine. You can make yourself a blueprint that has miners everywhere rails will go and all connected so it delivers the ore to a small ore station in the next block over. Then it's just place blueprint, wait a while and the ore patch is ready to become a rail block.
Post Reply

Return to “Logistic Train Network”