-
Notifications
You must be signed in to change notification settings - Fork 9
Chapter 28 ‐ Circuit Networks
Circuit network technology is an optional system that allow you to make machines change their behavior according to specific conditions that you decide. Circuit network usage is not required for building or launching rockets, but the technology provides relatively simple solutions to some of the common problems that you might run into. For example, you can set up a chest and its inserter so that the inserter works only when the chest has a certain amount of items in it. In another example, you can block a chemical plant from working when the amount of fluid in a system reaches a threshold of your choice.
Circuit networks are created by manually connecting machines using red or green circuit wires. The wires carry any number of virtual signals between machines with instant speed. Every machine in a network is able to read every signal and some machines are able to publish signals to the network. Some machines can be configured to have “enabled conditions” which dictate that the machines can run only when a particular signal in the network has a particular value or set of values.
Another aspect of circuit networks is combinators, which allow you to manipulate virtual signals so that you can use them in more sophisticated ways. Players can use combinators and design tricks to make complex circuit networks that do smart things. Some have gone as far as building entire computers out of them. This potential for depth can make the circuit network technology seem daunting, but usually you can get a lot of things done using simple networks that do not need combinators.
Factorio Access does not yet support some of the combinators but it supports most forms of reading and most forms of enabled condition setting.
To open the circuit network of a connected building you open its circuit network menu or you select it with the cursor and then you press N
. Everything else can usually be managed from the building’s circuit network menu.
As soon as two applicable machines are connected using a red or green wire, a new circuit network is formed. Connecting a new machine to any of the network’s machines using the same wire color extends the network and adds the machine. If a different wire color is used, or a new machine is connected to another new machine, then a new and separate circuit network is formed.
The length of a circuit wire has a limit, and so electric poles can be used to extend its length. The length limit for structures that are not electric poles is about 10 tiles, while the length limit for electric poles is equal to their regular wire reach limits.
There is practically no limit to the number of machines in one network and the total number of networks.
A machine can be connected to a red network and a green network at the same time, and that will make it read from and publish to both networks at the same time.
Every machine in a network can have at most one type of read behavior, which defines the signals that it can publish to the network, and some machines don’t support this at all. Meanwhile, every machine in a network can have any number of operation behaviours, which define how machines react to signals that they read, and some machines support none.
In practice, read behavior is almost always in hold mode, where the contents of machines are published to the network in perfect sync with their inventories. Also in practice, operation behavior is almost always in the form of an enabled condition, which dictates that the machine can run only when a certain signal value is at a certain threshold.
Factorio Access currently has support for most read behavior cases, and it has support for most enabled condition cases.
The full list of which behaviors are available in the game can be found on the official wiki page for circuit networks.
Some machines, like chests and storage tanks, can have a read behavior set, which makes the network read the contents of the machine. Only one type of read behavior can be set at a time, and usually the only available option is “hold” mode.
In hold mode reading, a signal is for every item held in the machine is published to the network in real time as long as the item is being held. The signal’s value is equal to the item’s quantity inside the machine. The signals update in sync. If a network is reading multiple machines that contain the same item type, then their quantities are added in real time to produce the value of the item’s signal.
As an alternative to “hold” mode, inserters and belts can also be read in “pulse” mode, which sends a one tick pulse to the network for every item that enters the inserter’s hand or the belt’s surface. One tick pulses are useful for making stuff happen only for an instant, such as running an inserter only once.
Several machine including inserters, belts, pumps, and power switches can be set to operate only while the enabled condition for them is true.
The condition works like a boolean logic condition. It always has three parts: the first signal (as the decision signal), the second signal (as the reference signal) and the condition operator in between them.
The decision signal can be any virtual signal, and it is picked using the signal selector menu. The reference signal can be any virtual signal as well, but it can also just be a constant number that you type in. The condition operator is kind you can find in math equations, such as “equal to” or “greater than”.
The circuit network system supports virtual signals that are not item signals or fluid signals. These virtual signals are often used to represent something abstract and they usually are involved in logic stuff that use combinators.
A special subset of virtual signals are the wildcard signals:
- The “everything” signal is used in condition statements. It becomes true if every non-zero signal in the network meets the condition.
- The “anything” signal is used in condition statements. It becomes true of any signal in the network meets the condition.
- The “each” signal is used in arithmetic combinators only. It dictates that the arithmetic operation gets applied to every non-zero signal that is being input.
Some essential use cases are listed here.
- Smart oil cracking. Storage tanks are read and fluid pumps have enabled conditions set so that heavy oil and light oil get cracked only when they are needed.
- Efficient nuclear plants. The steam storage level at a nuclear plant is read so that the reactors get re-fueled only when the steam is low, so that the nuclear fuel is not wasted.
- Smart output chests. Output inserters for machines read output chest contents so that they do not add more to the chests when a threshold is reached. This allows the player to avoid overproduction while also being able to use chests slots without locking them.
Other popular ideas can be found on the official wiki’s tutorial page known as the circuit network cookbook. Note that some of the instructions there may be heavily reliant on images.
Constant combinators are used to inject any signal you want into the network manually. Signals are added using the signal selector. You can toggle a constant combinator on or off by pressing LEFT BRACKET.
Decider combinators are not supported by the mod yet but they allow setting an enabled condition. The enabled condition outputs a signal of your choice, using either the input signal’s value or a value of one.
Arithmetic combinators are not supported by the mod yet but they allow doing real time arithmetic operations on signal values, such as adding the values of two signals ir multiplying a signal value by 10.
A1 - Factorio Access Unique Features
A2 - Optional preset map - Compass Valley
A8 - Launcher Features and Game Setup
Beta Mod Main Page, including controls
Alpha Mod Main Page, now outdated
Chapter 2 - Resources and mining
Chapter 3 - Furnaces, mining drills, and chests
Chapter 4 - Inserters part 1: Inserter logic and burner inserters
Chapter 5 - Transport belts part 1: Segments, lanes, and other basics
Chapter 6 - Fluid handling part 1: Fluid behavior and pipes
Chapter 7 - Electricity part 1: Basics, power distribution, and steam power
Chapter 8 - Technology tree, labs, and science packs
Chapter 9 - Inserters part 2: Electric inserters
Chapter 10 - Transport belts part 2: Underground belts and splitters
Chapter 11 - Assembling machines and automated production
Chapter 12 - Factory building guidance
Chapter 13 - Fluid handling part 2: Flow rates, storage tanks, fluid wagons, pumps, and barrels
Chapter 14 - Oil processing part 1: Transporting oil, basic oil processing, and early oil products
Chapter 15 - Electricity part 2: Larger electric poles, solar power, and accumulators
Chapter 18 - Oil processing part 2: Advanced oil processing and products
Chapter 19 - Landscaping and paving tiles
Chapter 20 - Worker robots part 1 - Roboports and basic services
Chapter 21 - Electricity part 3: Nuclear power
Chapter 22 - Armor equipment and guns
Chapter 23 - Death and enemies
Chapter 25 - Worker robots part 2 - Logistics networks