<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.factorio.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Metaflame</id>
	<title>Official Factorio Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.factorio.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Metaflame"/>
	<link rel="alternate" type="text/html" href="https://wiki.factorio.com/Special:Contributions/Metaflame"/>
	<updated>2026-04-24T06:24:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Blueprint_string_format&amp;diff=214101</id>
		<title>Blueprint string format</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Blueprint_string_format&amp;diff=214101"/>
		<updated>2025-05-26T14:53:36Z</updated>

		<summary type="html">&lt;p&gt;Metaflame: Fix: the blueprint_book object key uses an underscore, unlike the item, blueprint-book&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Cleanup|Needs to be updated for 2.0}}&lt;br /&gt;
[[File:blueprint_string_preview.png|thumb|340px|right|Preview of a blueprint string.]]This is a technical description of the blueprint string format, used to share blueprints with other users.&lt;br /&gt;
&lt;br /&gt;
A blueprint string is a JSON representation of the blueprint, compressed with zlib deflate using compression level 9 and then encoded using base64 with a version byte in front of the encoded string. The version byte is currently 0 (for all Factorio versions through 1.1).&lt;br /&gt;
So to get the JSON representation of a blueprint from a blueprint string, skip the first byte, base64 decode the string, and finally decompress using zlib inflate.&lt;br /&gt;
&lt;br /&gt;
== Json representation of a blueprint/blueprint book ==&lt;br /&gt;
&lt;br /&gt;
The json representation of a blueprint or blueprint book is one large object inside another &amp;quot;wrapping&amp;quot; object, its key inside that object is either blueprint or blueprint_book.&lt;br /&gt;
&lt;br /&gt;
=== Blueprint book object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| item&lt;br /&gt;
| String, the name of the item that was saved (&amp;quot;blueprint-book&amp;quot; in vanilla). Note that the key within the wrapping object is &amp;quot;blueprint_book&amp;quot; (with an underscore).&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| label&lt;br /&gt;
| String, the name of the blueprint set by the user.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| label_color&lt;br /&gt;
| The color of the label of this blueprint. Optional. [[#Color object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| blueprints&lt;br /&gt;
| The actual content of the blueprint book, array of objects containing an &amp;quot;index&amp;quot; key and 0-based value and a &amp;quot;blueprint&amp;quot; key with a [[#Blueprint object]] as the value.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| active_index&lt;br /&gt;
| Index of the currently selected blueprint, 0-based.&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| icons&lt;br /&gt;
| The icons of the blueprint book set by the user, array of [[#Icon object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| description&lt;br /&gt;
| The description of the blueprint book. Optional.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| The map version of the map the blueprint was created in, see [[Version string format]].&lt;br /&gt;
| Integer (long)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Blueprint object ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| item&lt;br /&gt;
| String, the name of the item that was saved (&amp;quot;blueprint&amp;quot; in vanilla).&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| label&lt;br /&gt;
| String, the name of the blueprint set by the user.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| label_color&lt;br /&gt;
| The color of the label of this blueprint. Optional. [[#Color object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| entities&lt;br /&gt;
| The actual content of the blueprint, array of [[#Entity object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| tiles&lt;br /&gt;
| The tiles included in the blueprint, array of [[#Tile object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| icons&lt;br /&gt;
| The icons of the blueprint set by the user, array of [[#Icon object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| schedules&lt;br /&gt;
| The schedules for trains in this blueprint, array of [[#Schedule object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| description&lt;br /&gt;
| The description of the blueprint. Optional.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| snap-to-grid&lt;br /&gt;
| The dimensions of the grid to use for snapping. Optional. [[#Position object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| absolute-snapping&lt;br /&gt;
| Whether the blueprint uses absolute or relative snapping. Optional.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| position-relative-to-grid&lt;br /&gt;
| Offset relative to the global absolute snapping grid. Optional. [[#Position object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| The map version of the map the blueprint was created in.&lt;br /&gt;
| Integer (long)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Icon object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| index&lt;br /&gt;
| Index of the icon, 1-based.&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| signal&lt;br /&gt;
| The icon that is displayed, [[#SignalID object]].&lt;br /&gt;
| Object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SignalID object ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| Name of the signal prototype this signal is set to.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| Type of the signal. See [https://lua-api.factorio.com/stable/concepts/SignalIDType.html SignalIDType] for possible values. &amp;lt;br&amp;gt; &#039;&#039;&#039;Note for 2.x:&#039;&#039;&#039; property is optional and defaults to &amp;quot;item&amp;quot;.&lt;br /&gt;
| String&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entity object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| entity_number&lt;br /&gt;
| Index of the entity, 1-based.&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| Prototype name of the entity (e.g. &amp;quot;offshore-pump&amp;quot;).&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| position&lt;br /&gt;
| [[#Position object]], position of the entity within the blueprint.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| direction&lt;br /&gt;
| Direction of the entity, uint (optional).&amp;lt;br&amp;gt; &#039;&#039;&#039;Note for 2.x:&#039;&#039;&#039; Direction appears to be double the previous values&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| orientation&lt;br /&gt;
| Orientation of cargo wagon or locomotive, value 0 to 1 (optional).&lt;br /&gt;
| Floating Point&lt;br /&gt;
|-&lt;br /&gt;
| connections&lt;br /&gt;
| Circuit connection, object with keys starting from 1, values are [[#Connection object]]s (optional).&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| neighbours&lt;br /&gt;
| Copper wire connections, array of entity_numbers (optional).&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| control_behavior&lt;br /&gt;
| [[#Control behavior object]] of this entity (optional).&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| items&lt;br /&gt;
| Item requests by this entity, this is what defines the item-request-proxy when the blueprint is placed, optional. [[#Item request object]]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| recipe&lt;br /&gt;
| Name of the recipe prototype this assembling machine is set to, optional, string.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| bar&lt;br /&gt;
| Used by [[Prototype/Container]], optional. The index of the first inaccessible item slot due to limiting with the red &amp;quot;bar&amp;quot;. 0-based [[Types/ItemStackIndex]].&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| ammo_inventory&lt;br /&gt;
| Ammo inventory of an entity (e.g. [[Spidertron]]), optional. [[#Inventory object]]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| trunk_inventory&lt;br /&gt;
| Boot/Luggage inventory of an entity (e.g. storage inventory of a Spidertron), optional. [[#Inventory object]]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| inventory&lt;br /&gt;
| Cargo wagon inventory configuration, optional. [[#Inventory object]]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| infinity_settings&lt;br /&gt;
| Used by [[Prototype/InfinityContainer]], optional. [[#Infinity settings object]]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| Type of the underground belt or loader, optional. Either &amp;quot;input&amp;quot; or &amp;quot;output&amp;quot;.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| input_priority&lt;br /&gt;
| Input priority of the splitter, optional. Either &amp;quot;right&amp;quot; or &amp;quot;left&amp;quot;, &amp;quot;none&amp;quot; is omitted.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| output_priority&lt;br /&gt;
| Output priority of the splitter, optional. Either &amp;quot;right&amp;quot; or &amp;quot;left&amp;quot;, &amp;quot;none&amp;quot; is omitted.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| filter&lt;br /&gt;
| Filter of the splitter, optional. Name of the item prototype the filter is set to, string.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| filters&lt;br /&gt;
| Filters of the filter inserter or loader, optional. Array of [[#Item filter object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| filter_mode&lt;br /&gt;
| Filter mode of the filter inserter, optional. Either &amp;quot;whitelist&amp;quot; or &amp;quot;blacklist&amp;quot;.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| override_stack_size&lt;br /&gt;
| The stack size the inserter is set to, optional. [[Types/uint8]].&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| drop_position&lt;br /&gt;
| The drop position the inserter is set to, optional. [[#Position object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| pickup_position&lt;br /&gt;
| The pickup position the inserter is set to, optional. [[#Position object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| request_filters&lt;br /&gt;
| Used by [[Prototype/LogisticContainer]], optional. [[#Logistic filter object]].&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| request_from_buffers&lt;br /&gt;
| Boolean. Whether this requester chest can request from buffer chests.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| parameters&lt;br /&gt;
| Used by [[Programmable speaker]], optional. [[#Speaker parameter object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| alert_parameters&lt;br /&gt;
| Used by [[Programmable speaker]], optional. [[#Speaker alert parameter object]]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| auto_launch&lt;br /&gt;
| Used by the rocket silo, optional. Boolean, whether auto launch is enabled.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| variation&lt;br /&gt;
| Used by [[Prototype/SimpleEntityWithForce]] or [[Prototype/SimpleEntityWithOwner]], optional. [[Types/GraphicsVariation]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| color&lt;br /&gt;
| Color of the [[Prototype/SimpleEntityWithForce]], [[Prototype/SimpleEntityWithOwner]], or train station, optional. [[#Color object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| station&lt;br /&gt;
| The name of the train station, optional.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| manual_trains_limit&lt;br /&gt;
| The manually set train limit of the train station, optional.&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| switch_state&lt;br /&gt;
| The current state of the power switch, optional.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| tags&lt;br /&gt;
| Dictionary of arbitrary data, optional. [https://lua-api.factorio.com/latest/concepts/Tags.html Tags].&lt;br /&gt;
| Object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Inventory object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| filters&lt;br /&gt;
| Array of [[#Item filter object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| bar&lt;br /&gt;
| The index of the first inaccessible item slot due to limiting with the red &amp;quot;bar&amp;quot;. 0-based, optional.  [[Types/ItemStackIndex]].&lt;br /&gt;
| Integer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schedule object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| schedule&lt;br /&gt;
| Array of [[#Schedule Record object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| locomotives&lt;br /&gt;
| Array of entity numbers of locomotives using this schedule.&lt;br /&gt;
| Array&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schedule Record object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| station&lt;br /&gt;
| The name of the stop for this schedule record.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| wait_conditions&lt;br /&gt;
| Array of [[#Wait Condition object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| temporary&lt;br /&gt;
| Whether this is a temporary schedule record. Optional.&lt;br /&gt;
| Boolean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Wait Condition object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| One of &amp;quot;time&amp;quot;, &amp;quot;inactivity&amp;quot;, &amp;quot;full&amp;quot;, &amp;quot;empty&amp;quot;, &amp;quot;item_count&amp;quot;, &amp;quot;circuit&amp;quot;, &amp;quot;robots_inactive&amp;quot;, &amp;quot;fluid_count&amp;quot;, &amp;quot;passenger_present&amp;quot;, &amp;quot;passenger_not_present&amp;quot;.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| compare_type&lt;br /&gt;
| Either &amp;quot;and&amp;quot;, or &amp;quot;or&amp;quot;. Tells how this condition is to be compared with the preceding conditions in the corresponding wait_conditions array.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| ticks&lt;br /&gt;
| Number of ticks to wait or of inactivity. Only present when type is &amp;quot;time&amp;quot; or &amp;quot;inactivity&amp;quot;. Optional.&lt;br /&gt;
| uint&lt;br /&gt;
|-&lt;br /&gt;
| condition&lt;br /&gt;
| [https://lua-api.factorio.com/latest/concepts/CircuitCondition.html CircuitCondition object], only present when type is &amp;quot;item_count&amp;quot;, &amp;quot;circuit&amp;quot; or &amp;quot;fluid_count&amp;quot;.&lt;br /&gt;
| Object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tile object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| Prototype name of the tile (e.g. &amp;quot;concrete&amp;quot;)&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| position&lt;br /&gt;
| [[#Position object]], position of the entity within the blueprint.&lt;br /&gt;
| Object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Position object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| x&lt;br /&gt;
| X position within the blueprint, 0 is the center.&lt;br /&gt;
| Floating point&lt;br /&gt;
|-&lt;br /&gt;
| y&lt;br /&gt;
| Y position within the blueprint, 0 is the center.&lt;br /&gt;
| Floating point&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Connection object ===&lt;br /&gt;
Object containing information about the connections to other entities formed by red or green wires.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| First connection point. The default for everything that doesn&#039;t have multiple connection points.[[#Connection point object]]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Second connection point. For example, the &amp;quot;output&amp;quot; part of an arithmetic combinator.[[#Connection point object]]&lt;br /&gt;
| Object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Connection point object ===&lt;br /&gt;
The actual point where a wire is connected to. Contains information about where it is connected to.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| red&lt;br /&gt;
| An array of [[#Connection data object]] containing all the connections from this point created by red wire.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| green&lt;br /&gt;
| An array of [[#Connection data object]] containing all the connections from this point created by green wire.&lt;br /&gt;
| Array&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Connection data object ===&lt;br /&gt;
Information about a single connection between two connection points.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| entity_id&lt;br /&gt;
| ID of the entity this connection is connected with.&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| circuit_id&lt;br /&gt;
| The circuit connector id of the entity this connection is connected to, see [https://lua-api.factorio.com/latest/defines.html#defines.circuit_connector_id defines.circuit_connector_id].&lt;br /&gt;
| Integer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Item request object ===&lt;br /&gt;
1 or more instances of key/value pairs.&lt;br /&gt;
Key is the name of the item, string.&lt;br /&gt;
Value is the amount of items to be requested, [[Types/ItemCountType]].&lt;br /&gt;
&lt;br /&gt;
=== Item filter object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| Name of the item prototype this filter is set to.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| index&lt;br /&gt;
| Index of the filter, 1-based. &lt;br /&gt;
| Integer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Infinity settings object ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| remove_unfiltered_items&lt;br /&gt;
| Boolean. Whether the &amp;quot;remove unfiltered items&amp;quot; checkbox is checked.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| filters&lt;br /&gt;
| Filters of the infinity container, optional. Array of [[#Infinity filter object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Infinity filter object ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| Name of the item prototype the filter is set to, string.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| count&lt;br /&gt;
| Number the filter is set to, [[Types/ItemCountType]].&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| mode&lt;br /&gt;
| Mode of the filter. Either &amp;quot;at-least&amp;quot;, &amp;quot;at-most&amp;quot;, or &amp;quot;exactly&amp;quot;.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| index&lt;br /&gt;
| Index of the filter, 1-based.&lt;br /&gt;
| Integer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Logistic filter object ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| Name of the item prototype this filter is set to.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| index&lt;br /&gt;
| Index of the filter, 1-based.&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| count&lt;br /&gt;
| Number the filter is set to, [[Types/ItemCountType]]. Is 0 for storage chests.&lt;br /&gt;
| Integer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Speaker parameter object ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| playback_volume&lt;br /&gt;
| [[Types/double]]. Volume of the speaker.&lt;br /&gt;
| Floating point&lt;br /&gt;
|-&lt;br /&gt;
| playback_globally&lt;br /&gt;
| Boolean, whether global playback is enabled.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| allow_polyphony&lt;br /&gt;
| Boolean, whether polyphony is allowed.&lt;br /&gt;
| Boolean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Speaker alert parameter object ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| show_alert&lt;br /&gt;
| Boolean, whether an alert is shown.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| show_on_map&lt;br /&gt;
| Boolean, whether an alert icon is shown on the map.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| icon_signal_id&lt;br /&gt;
| The icon that is displayed with the alert, [[#SignalID object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| alert_message&lt;br /&gt;
| String, message of the alert.&lt;br /&gt;
| String&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Color object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| r&lt;br /&gt;
| red, number from 0 to 1.&lt;br /&gt;
| Floating point&lt;br /&gt;
|-&lt;br /&gt;
| g&lt;br /&gt;
| green, number from 0 to 1.&lt;br /&gt;
| Floating point&lt;br /&gt;
|-&lt;br /&gt;
| b&lt;br /&gt;
| blue, number from 0 to 1.&lt;br /&gt;
| Floating point&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| transparency, number from 0 to 1.&lt;br /&gt;
| Floating point&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Control behavior object ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALL fields are optional&#039;&#039;&#039; and depend on the type of the entity.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description !! Data type &lt;br /&gt;
|-&lt;br /&gt;
| logistic_condition&lt;br /&gt;
| [https://lua-api.factorio.com/latest/concepts/CircuitCondition.html CircuitCondition]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| connect_to_logistic_network&lt;br /&gt;
| Whether this entity is connected to the logistic network and enables/disables based on logistic_condition.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| circuit_close_signal&lt;br /&gt;
| Whether this rail signal can be closed by circuit_condition.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| circuit_read_signal&lt;br /&gt;
| Whether or not to read the state of this rail/chain signal.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| red_output_signal&lt;br /&gt;
| [[#SignalID]] to use if the rail/chain signal is currently red.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| orange_output_signal&lt;br /&gt;
| [[#SignalID]] to use if the rail/chain signal is currently orange.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| green_output_signal&lt;br /&gt;
| [[#SignalID]] to use if the rail/chain signal is currently green.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| blue_output_signal&lt;br /&gt;
| [[#SignalID]] to use if the chain signal is currently blue.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| circuit_condition&lt;br /&gt;
| [https://lua-api.factorio.com/latest/concepts/CircuitCondition.html CircuitCondition]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| circuit_enable_disable&lt;br /&gt;
| Enable or disable based on circuit_condition.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| send_to_train&lt;br /&gt;
| Send circuit values to the train to use in schedule conditions.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| read_from_train&lt;br /&gt;
| Get the currently stopped trains cargo.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| read_stopped_train&lt;br /&gt;
| Get the currently stopped trains ID.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| train_stopped_signal&lt;br /&gt;
| [[#SignalID]] to output the train ID on.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| set_trains_limit&lt;br /&gt;
| Whether this stations trains limit will be set through circuit values.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| trains_limit_signal&lt;br /&gt;
| [[#SignalID]] to use to set the trains limit.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| read_trains_count&lt;br /&gt;
| Whether to read this stations currently on route trains count.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| trains_count_signal&lt;br /&gt;
| [[#SignalID]] to output the on route trains count on.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| read_logistics&lt;br /&gt;
| Whether this roboport should output the contents of its network.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| read_robot_stats&lt;br /&gt;
| Whether this roboport should output the robot stats of its network.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| available_logistic_output_signal&lt;br /&gt;
| [[#SignalID]] to output available logistic robots on.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| total_logistic_output_signal&lt;br /&gt;
| [[#SignalID]] to output the total count of logistic robots on.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| available_construction_output_signal&lt;br /&gt;
| [[#SignalID]] to output available construction robots on.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| total_construction_output_signal&lt;br /&gt;
| [[#SignalID]] to output the total count of construction robots on.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| circuit_open_gate&lt;br /&gt;
| Whether to limit the gate opening with circuit_condition.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| circuit_read_sensor&lt;br /&gt;
| Whether to send the wall-gate proximity sensor to the circuit network.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| output_signal&lt;br /&gt;
| [[#SignalID]] to output the wall-gate sensor / accumulator charge on.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| circuit_read_hand_contents&lt;br /&gt;
| Whether to read this belts content or inserters hand.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| circuit_contents_read_mode&lt;br /&gt;
| [https://lua-api.factorio.com/latest/defines.html#defines.control_behavior.transport_belt.content_read_mode defines.control_behavior.transport_belt.content_read_mode]&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| circuit_mode_of_operation&lt;br /&gt;
| &lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| circuit_hand_read_mode&lt;br /&gt;
| [https://lua-api.factorio.com/latest/defines.html#defines.control_behavior.inserter.hand_read_mode defines.control_behavior.inserter.hand_read_mode]&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| circuit_set_stack_size&lt;br /&gt;
| Whether to set the inserters stack size from a circuit signal.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| stack_control_input_signal&lt;br /&gt;
| [[#SignalID]] to use to set the inserters stack size.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| circuit_read_resources&lt;br /&gt;
| Whether this miner should output its remaining resource amounts to the circuit network.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| circuit_resource_read_mode&lt;br /&gt;
| [https://lua-api.factorio.com/latest/defines.html#defines.control_behavior.mining_drill.resource_read_mode defines.control_behavior.mining_drill.resource_read_mode]&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| is_on&lt;br /&gt;
| Whether this constant combinator is currently on or off.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| filters&lt;br /&gt;
| Array of &amp;lt;s&amp;gt;[https://lua-api.factorio.com/latest/concepts/BlueprintLogisticFilter.html ConstantCombinatorParameters].&amp;lt;/s&amp;gt; It&#039;s now a kind of [https://lua-api.factorio.com/latest/concepts/LogisticSections.html LogisticSections] instead.&lt;br /&gt;
&#039;&#039;We might be missing a type for it specifically.&#039;&#039;&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| arithmetic_conditions&lt;br /&gt;
| [https://lua-api.factorio.com/latest/concepts/ArithmeticCombinatorParameters.html ArithmeticCombinatorParameters]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| decider_conditions&lt;br /&gt;
| [https://lua-api.factorio.com/latest/concepts/DeciderCombinatorParameters.html DeciderCombinatorParameters]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| circuit_parameters&lt;br /&gt;
| [https://lua-api.factorio.com/latest/concepts/ProgrammableSpeakerCircuitParameters.html ProgrammableSpeakerCircuitParameters]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| use_colors&lt;br /&gt;
| Whether this lamp should use colors or not.&lt;br /&gt;
| Boolean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
&lt;br /&gt;
== Example code ==&lt;br /&gt;
&lt;br /&gt;
On a typical Bash command line, the blueprint can be decoded like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;echo &amp;quot;$blueprint_string&amp;quot; | cut -c2- | base64 -d | pigz -d&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have &amp;lt;code&amp;gt;pigz&amp;lt;/code&amp;gt; installed, you can use &amp;lt;code&amp;gt;zlib-flate -uncompress&amp;lt;/code&amp;gt; instead (part of &amp;quot;qpdf&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
How to decode a string to Lua table:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local str=&amp;quot;$blueprint_string&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
local bp_to_table=function(instr)&lt;br /&gt;
  &lt;br /&gt;
  --[[version and the body part]]&lt;br /&gt;
  local version=string.sub(instr,1,1);&lt;br /&gt;
  local body=string.sub(instr,2);&lt;br /&gt;
  --[[then decode it]]&lt;br /&gt;
  local json_str=helpers.decode_string(body);&lt;br /&gt;
  --[[then turn it into table]]&lt;br /&gt;
  local output=helpers.json_to_table(json_str);&lt;br /&gt;
  &lt;br /&gt;
  return output;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[and this could test if it print properly]]&lt;br /&gt;
game.print( serpent.block( bp_to_table(str) ) );&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Metaflame</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Railway&amp;diff=210602</id>
		<title>Railway</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Railway&amp;diff=210602"/>
		<updated>2025-02-01T19:38:15Z</updated>

		<summary type="html">&lt;p&gt;Metaflame: Troubleshooting interrupts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
[[File:Railway_from_trailer_2020.png|thumb|right|430px|Railway in the [https://youtu.be/J8SBp4SyvLc official game trailer.]]]&lt;br /&gt;
:&#039;&#039;For the research see [[Railway (research)]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Railway&#039;&#039;&#039; is one of the main transport methods in Factorio. Although the installation of such a network can be complicated and requires a large amount of resources and space, it is faster and more efficient than [[Belt transport system|belts]] and [[Logistic network|robot logistics]], especially over large distances.&lt;br /&gt;
&lt;br /&gt;
Railway construction, however, is not understood instantly. It takes some time to learn the basics, such as automating transportation. Learning how to manage and maintain the upkeep of a larger train network takes time and experience. Rails can be built on the ground, or can be - with the [[Space Age]] expansion - elevated with the help of a [[rail ramp]] and [[rail support]]s so that trains can travel over obstacles.&lt;br /&gt;
&lt;br /&gt;
== Infrastructure ==&lt;br /&gt;
&lt;br /&gt;
To build a railway, tracks (also called rails) must be built for the train to ride on. Typically, this is done via the [[rail planner]], but can also be done manually. Bear in mind that rails are placed on a two-tile grid, so a rail cannot be moved by only one tile.&lt;br /&gt;
&lt;br /&gt;
=== Minimum manually operated railway ===&lt;br /&gt;
As a minimum, a manually operated railway has to consist of:&lt;br /&gt;
* [[Rail]]s (tracks)&lt;br /&gt;
* [[Locomotive]]s&lt;br /&gt;
&lt;br /&gt;
Locomotives can be entered and then manually operated by standing next to them and pressing the {{Key|ENTER}} button.&lt;br /&gt;
&lt;br /&gt;
=== Switches ===&lt;br /&gt;
* There is no visual representation of a working switch, however, the rails will appear to merge. Using the rail planner, the player must place a [[rail]] overlapping an existing rail to form a switch. Switches are forks in tracks that allow a train to pick between two directional options.&lt;br /&gt;
* The crossing of two straight tracks is not usable as a switch, as trains have a limited turning radius. They do, however, connect [[Rail signal| signal blocks]] which helps prevent collisions.&lt;br /&gt;
* Parallel tracks do not interact with each other. However, switching from one track to the other can require extra resources if they are too close together; the track must turn away from the other parallel track and then turn back to it. This can create complicated networks of signals and, as such, one should generally not build parallel tracks unless they are spaced adequately. (Generally, 2 track widths apart works well)&lt;br /&gt;
&lt;br /&gt;
[[File:fff-140-controlled-gates_sm.gif|frame|An example of a safe railway crossing.&amp;lt;br /&amp;gt;[https://wiki.factorio.com/images/Fff-140-controlled-gates.gif Click here] for the full-sized version of the image.]]&lt;br /&gt;
=== Crossing tracks ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be careful when crossing train tracks! Trains are one of the highest damaging entities in the game, and will kill most players instantly on contact.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A checklist of proper track-crossing etiquette:&lt;br /&gt;
&lt;br /&gt;
# Zoom out, so that you can see a train coming.&lt;br /&gt;
# Look left, then right.&lt;br /&gt;
# Check for signals nearby: If a [[rail signal]] suddenly jumps from green to red or green to yellow, a train is coming. Do not cross.&lt;br /&gt;
# Avoid walking near the tracks, as you do not need to be fully on the tracks to get hit.&lt;br /&gt;
# While it is possible to get into/out of a train while it is moving, a miss can cost your life. The sides of the train can still deal damage, as well as the player being able to slip between two rail cars.&lt;br /&gt;
# Heavy [[Energy shield|shields]] can be used to reduce the damage taken. In extreme cases, it is possible to stop a train with your body. This will require several shield modules to not be instantly killed and will drain a large amount of the suit&#039;s energy.&lt;br /&gt;
# All entities with health will take damage getting hit by a train, so take care not to leave a [[car]] or [[tank]] on the tracks. However, this includes hostile forces!&lt;br /&gt;
# Trains far from a [[train stop]] will be traveling at (near) max speed, so take extra precaution when crossing and zoom out further. Trains near a [[train stop]] or signal will slow down to stop and will be traveling slower. Trains of different configurations will also move slower or faster.&lt;br /&gt;
&lt;br /&gt;
A safe railroad crossing like the example shown in the picture can be built. This works by restricting access to the tracks when an oncoming train has the rails reserved. When the player is on the rails, the signals are reserved by the [[circuit network]], and the train must stop and wait until the player leaves the tracks. When a player is inside the area crossing the tracks, the train gates are closed so the player can&#039;t get on the tracks outside the crossing. This is to completely ensure a safe crossing and is often used on servers.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Trains ==&lt;br /&gt;
Train components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|{{Imagelink|Locomotive}} || {{Imagelink|Cargo wagon}} || {{Imagelink|Fluid wagon}} || {{Imagelink|Artillery wagon}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Railway-assemble-train.png|thumb|left|300px|Placing a [[Cargo wagon]] so it is attached to the train.]]&lt;br /&gt;
&lt;br /&gt;
* A train consists of at least one locomotive.&lt;br /&gt;
* Trains can have more than one locomotive and any number of [[wagon]]s.&lt;br /&gt;
* Locomotives can be &#039;&#039;&#039;manually&#039;&#039;&#039; driven forwards or backwards, however, they are generally slower going backwards. The left and right movement keys are used to change direction at switches.&lt;br /&gt;
* Trains can only drive forwards automatically. An automatic train can drive forwards and backwards when two locomotives facing different directions are connected to the train.&lt;br /&gt;
* A train needs [[fuel]] to drive. Fuel can be added by inserters when the train is in manual mode or parked at a station, not when waiting at a signal or standing in automatic mode.&lt;br /&gt;
&lt;br /&gt;
The locomotives&#039; inventory is only used for [[fuel]]. To transport items or fluids [[cargo wagon]]s and/or [[fluid wagon]]s have to be attached to the train. To attach rolling stock, whether a wagon or a locomotive, the player may prepare to place one near an existing train, where a green graphic will show the player that the stock will be attached, showing a connection between the train and the new stock. Alternatively, the player may manually connect rolling stock to trains with the rolling stock connect key, if the cargo wagon is placed far away from a train. Rolling stock can likewise be disconnected with the rolling stock disconnect key.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Stations ==&lt;br /&gt;
[[File:station-example-1.png|thumb|right|256px|A very minimal train station.]]&lt;br /&gt;
&lt;br /&gt;
Train stations are the only place where trains can be loaded or unloaded when they are in automatic mode. Cargo wagons can be filled or emptied by up to twelve adjacent [[inserters]] (six on each side). Inserters can also be used to insert fuel into locomotives. [[Pump]]s are used to transfer fluid into and out of fluid wagons, only three pumps can attach to one fluid wagon at once.&lt;br /&gt;
&lt;br /&gt;
Train stations are usually created by placing a [[train stop]]. Train stops must be on the right-hand side of the track. However, it is also possible to create a temporary train station by opening a locomotive&#039;s GUI and using {{Keybinding|ctrl|lmb}} near a rail in the minimap in the GUI or by entering a locomotive and using {{Keybinding|ctrl|lmb}} near a rail on the world map. This will create a station without requiring a train stop. The temporary train station has a default wait condition of 5 seconds and is removed from the schedule once the train leaves the station.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Signals ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| {{Imagelink|Rail signal}} || {{Imagelink|Rail chain signal}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Rail signals are used to employ multiple trains automatically without the danger of trains crashing into each other. Rail signals split the network into blocks and ensure that only one train can be in every block at any time. Note that driving a train manually ignores all signals, so it is possible for automatic trains to crash into the player if the player ignores red/yellow signals. Always beware of automatic trains and give them the right of way.&lt;br /&gt;
&lt;br /&gt;
The [[Tutorial:Train signals|train signals tutorial]] contains an in-depth explanation of rail signals, blocks and deadlocks.&lt;br /&gt;
&lt;br /&gt;
=== Basic signaling rules ===&lt;br /&gt;
* There can only be one train in a block at any time. A train spanning multiple blocks occupies them all.&lt;br /&gt;
* A red signal means that the following block is occupied by a train.&lt;br /&gt;
* A yellow signal means that a train is approaching and already has the approval to enter the following block.&lt;br /&gt;
* [[Rail signal]]s separate a new block and reflect its state: green - free, yellow - reserved, red - occupied&lt;br /&gt;
* [[Rail chain signal]]s separate a new block and reflect the state of the next signal(s): see above, blue - at least one of the paths is blocked, but not all&lt;br /&gt;
* A train can only pass a signal on the right of the track, or if there is a signal on both sides on the same rail segment. Of course, manual driving overrides this.&lt;br /&gt;
&lt;br /&gt;
== Automated transport ==&lt;br /&gt;
[[File:locomotive_gui.png|thumb|300px|The wait condition tab in the locomotive&#039;s GUI.]]&lt;br /&gt;
&lt;br /&gt;
Trains set on &amp;quot;Automatic&amp;quot; choose their destination stop and route on departure, and after waiting at a chain signal for five seconds, and when their destination stop disables itself by circuit condition. They choose the shortest route using a [[Railway/Train_path_finding|path finding algorithm]] that will get them to an enabled train stop with the right name, taking penalties for any apparent-at-the-time delays into account. If no such train stop exists they will skip the stop and go on to the next.&lt;br /&gt;
&lt;br /&gt;
This section covers items used to make trains automatically transport items between stations. The player should be familiar with creating a rail system.&lt;br /&gt;
&lt;br /&gt;
First, the player has to set up a rail system with at least two train stops, which are placed on the right-hand side of the expected train arrival direction. By hovering over the train stop with the mouse you see the positions of the vehicles for better setting up the train station (including (un)loading machinery, and refueling/repair installations).&lt;br /&gt;
&lt;br /&gt;
When you set up the train schedule (see below) and fuel the train, you can start the train on its schedule by switching from manual to automatic driving mode.&lt;br /&gt;
&lt;br /&gt;
=== Train schedule ===&lt;br /&gt;
The player can set up a list of train stations in the left locomotive&#039;s GUI. The train will route to stops in the given order, if it&#039;s at the end it will continue with the first. Stations can be added by clicking &amp;quot;Add station&amp;quot; in the GUI. A pop-up appears with a list of all stop names. If one is selected, another button appears which allows selecting a wait condition from a pop-up list. Furthermore, the map in the right part of the GUI can be used to add stations to the schedule by using {{keybinding|shift|lmb}} on a station or using {{keybinding|ctrl|lmb}} near a rail in the map to create a temporary train station. These actions can also be performed on the world map when the player is sitting inside the train.&lt;br /&gt;
&lt;br /&gt;
Wait conditions are used to tell the train when to leave the station. There are 15 types of wait conditions:&lt;br /&gt;
* &#039;&#039;&#039;Circuit condition&#039;&#039;&#039; – The train stop is connectable to the [[circuit network]], so the signals can used for wait conditions.&lt;br /&gt;
* &#039;&#039;&#039;Empty cargo&#039;&#039;&#039; – All inventories of the train are empty. Does not include fuel inventories.&lt;br /&gt;
* &#039;&#039;&#039;Fluid count&#039;&#039;&#039; – The train (all fluid wagons summed) contains a specific amount of a certain fluid.&lt;br /&gt;
* &#039;&#039;&#039;Fuel (all locomotives)&#039;&#039;&#039; - All locomotives in the train collectively contain a specific amount of fuel&lt;br /&gt;
* &#039;&#039;&#039;Fuel (any locomotive)&#039;&#039;&#039; - Any one locomotive contains a specific amount of fuel&lt;br /&gt;
* &#039;&#039;&#039;Full cargo&#039;&#039;&#039; - All inventories of the train are full. Does not include fuel inventories&lt;br /&gt;
* &#039;&#039;&#039;Full fuel&#039;&#039;&#039; - All fuel inventories are full. Does not include cargo or fluid inventories&lt;br /&gt;
* &#039;&#039;&#039;Has cargo&#039;&#039;&#039; - Cargo or fluid inventories contain items. &lt;br /&gt;
* &#039;&#039;&#039;Inactivity&#039;&#039;&#039; – No items were added or removed for the specified amount of seconds.&lt;br /&gt;
* &#039;&#039;&#039;Item count&#039;&#039;&#039; – The train (all cargoes summed) contains a specific amount of a certain item. Does not include fuel inventories.&lt;br /&gt;
* &#039;&#039;&#039;Passenger present&#039;&#039;&#039; - At least one [[player]] is inside any part of the train.&lt;br /&gt;
* &#039;&#039;&#039;Passenger not present&#039;&#039;&#039; - No players are inside any part of the train.&lt;br /&gt;
* &#039;&#039;&#039;Station is full&#039;&#039;&#039; - A specified stop is full, according to its set train limit. If the stop has no train limit set, this condition will &#039;&#039;not&#039;&#039; be met.&lt;br /&gt;
* &#039;&#039;&#039;Station is not full&#039;&#039;&#039; - A specified stop is not full, according to its set train limit. If the stop has no train limit set, this condition &#039;&#039;will&#039;&#039; be met.&lt;br /&gt;
* &#039;&#039;&#039;Time passed&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It is also possible to set no wait condition, this causes the train to simply pass by the station without stopping.&lt;br /&gt;
&lt;br /&gt;
Hereafter the word &amp;quot;term&amp;quot; is used to describe &#039;&#039;one&#039;&#039; type of wait condition, and the words &amp;quot;wait condition&amp;quot; are used to describe the whole set of terms (it turns a bit into maths).&lt;br /&gt;
&lt;br /&gt;
If more than one term is added, it is possible to change the connection of those using the logical operators AND and OR. An AND condition will result in true if all terms are true. An OR condition will return true if at least one of the terms is true.&lt;br /&gt;
&lt;br /&gt;
When mixing AND and OR terms, the logic is grouped by the OR terms. When evaluating the wait condition, the first term is evaluated along with all AND terms immediately following up to but excluding the next occurring OR term. If they all evaluate true, the wait condition evaluates true. Otherwise, evaluation continues with that next occurring OR term and all AND terms immediately following it, up to the next OR term. This continues until either an OR group evaluates true and the wait condition is satisfied, or all terms have been checked.&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
[[File:Traingroup gui.png|thumb|300px|The train group GUI. There are 2 trains in &amp;quot;Group A&amp;quot; and 1 train in &amp;quot;Group B&amp;quot;]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:800px&amp;quot;&amp;gt;&lt;br /&gt;
Expand for examples&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Wait until full, up to 30 seconds:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Full cargo inventory&lt;br /&gt;
OR 30 seconds passed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait until cargo full, &#039;&#039;or&#039;&#039; circuit condition Oil &amp;gt; 3000:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Full cargo inventory&lt;br /&gt;
OR Circuit condition - Oil &amp;gt; 3000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait until empty, &#039;&#039;and&#039;&#039; 30 seconds passed, &#039;&#039;and&#039;&#039; 5 seconds of inactivity:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Empty cargo inventory&lt;br /&gt;
AND 30 seconds passed&lt;br /&gt;
AND 5 seconds of inactivity&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait until iron ore is low, &#039;&#039;or&#039;&#039; copper ore is low &#039;&#039;and&#039;&#039; at least 30 seconds passed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cargo: Iron ore &amp;lt; 500&lt;br /&gt;
AND 30 seconds passed&lt;br /&gt;
OR Cargo: Copper ore &amp;lt; 500&lt;br /&gt;
AND 30 seconds passed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Factorio&#039;s wait condition logic is read as disjunctive normal form ([https://en.wikipedia.org/wiki/Disjunctive_normal_form DNF]), and so this last example is processed as (note the parenthesis):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;((Cargo: Iron ore &amp;lt; 500 AND 30 seconds passed) OR (Cargo: Copper ore &amp;lt; 500 AND 30 seconds passed))&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which is the same as this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;((Cargo: Iron ore &amp;lt; 500 OR Cargo: Copper ore &amp;lt; 500) AND 30 seconds passed)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there is no way to write that shorter form in the current UI.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Train groups ===&lt;br /&gt;
Trains are able to be assigned to a group. Selecting the small edit icon next to &amp;quot;no group assigned&amp;quot; will bring up the existing groups in the current world. One can select a group for the train to join, or create a new one. Editing the schedule of one train will change the schedules of all trains in the same group.&lt;br /&gt;
&lt;br /&gt;
=== Schedule interrupts ===&lt;br /&gt;
[[File:Interrupt gui.png|thumb|300px|The Edit Interrupt GUI.]]&lt;br /&gt;
&lt;br /&gt;
Schedule interrupts allow a locomotive to override its current schedule when a certain condition is met. Selecting &amp;quot;Add interrupt&amp;quot; in the locomotive&#039;s GUI will bring up a list of existing interrupts in the current world. One can be selected from the list, or typing in a name will create a new one. Creating one will add it to the locomotive and all locomotives in the current locomotive group.&lt;br /&gt;
&lt;br /&gt;
To work, an interrupt requires two parts: a condition and a target station. When a condition is met, the interrupt will activate and insert the target station as a temporary stop in the locomotive&#039;s schedule. The locomotive will route to the target station and wait there until the specified wait condition is met, at which point it will leave and resume its original schedule. &lt;br /&gt;
&lt;br /&gt;
An interrupt can be triggered on many of the same conditions as waiting at a stop, along with some new conditions:&lt;br /&gt;
* &#039;&#039;&#039;At specified station&#039;&#039;&#039; -  The train is waiting at a specific stop&lt;br /&gt;
* &#039;&#039;&#039;Destination full or no path&#039;&#039;&#039; - The train&#039;s next stop is full, according to its train limit; or the train cannot physically reach its next station&lt;br /&gt;
* &#039;&#039;&#039;Not at specified station&#039;&#039;&#039;&#039; - The train is stopped somewhere other than the specific stop&lt;br /&gt;
&lt;br /&gt;
Multiple trains can have the same interrupt regardless if they are in the same locomotive group or not. Editing an interrupt will change it for all trains which have the interrupt in their system.&lt;br /&gt;
&lt;br /&gt;
Interrupts can be reordered within the locomotive&#039;s GUI like normal stops. If a train has multiple interrupt conditions true at the same time, it will prioritize interrupts that are higher on the list. This is important if one wishes a train to behave a certain way when working with a particular suite of interrupts.&lt;br /&gt;
&lt;br /&gt;
=== Wildcard Interrupts ===&lt;br /&gt;
[[File:interrupt_wildcards.png|thumb|left|300px|The four wildcard signals: Item, Fuel, Fluid, &amp;amp; Signal.]]&lt;br /&gt;
Within interrupts, trains have access to four special &amp;quot;wildcard&amp;quot; signals located within the Unsorted tab, which are special [[Circuit network#Logic signals|logic signals]] that can only be used within interrupts. Wildcard signals come in four types: item, fuel, fluid, and signal. When used as a condition to trigger an interrupt, each one looks at a specific inventory within the train and will replace itself with the signal of the first item it finds. For example, if an interrupt is set to trigger if an item parameter is over 50, and 51 [[iron gear wheel]]s are placed into a cargo wagon, the interrupt will trigger as if the condition was looking for over 50 iron gears. Item, fluid, and fuel wildcards each look at a specific inventory: [[cargo wagon|cargo]] and [[artillery wagon]]s, [[fluid wagon]]s, and [[locomotive]]s, respectively.&lt;br /&gt;
&lt;br /&gt;
When used solely as a condition, wildcards act otherwise identically to the [[circuit network#Anything|anything]] logic signal. What makes them special is their function when used in both the condition and the target.&lt;br /&gt;
&lt;br /&gt;
Wildcards will also replace themselves with any [[rich text]] icons within the names of [[train stop]]s. Instead of selecting a target stop from the list, instead click on the &amp;quot;icon&amp;quot; button next to the green confirm button and select the same type of wildcard as used in the condition. Then, type the name of the station. If the stop has a matching icon in its name, then the train will match the item it contains with that icon, and select that stop as the destination.&lt;br /&gt;
&lt;br /&gt;
The final wildcard, Signal parameter, checks against any signals passed to the train while parked at a train stop. When combined with a signal parameter for a target station, this can make the train go to a stop which has an icon in its name matching the signal it received from the station. When combined with matching the target station based on its contents, this can be utilized to create a generic train system which can select its destination based on the item it receives.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
Below are some things to verify if a rail system or train is not working.&lt;br /&gt;
&lt;br /&gt;
* Is the train fueled? Ensure that the locomotive has [[fuel]] of some kind.&lt;br /&gt;
* Misplaced or non-functional switches? Ensure that the train can plan a path through the switches.&lt;br /&gt;
* Another train on the same [[Railway#Block|block]]? Make sure the path of the train is unobstructed.&lt;br /&gt;
* Train stops placed correctly? Make sure that the yellow arrows when hovering on the stop point towards the end or exit of the stop.&lt;br /&gt;
* Is the train allowed to enter signals from the right direction? Are the signals set correctly?&lt;br /&gt;
* If a track is supposed to be two-way, the rail signals should be opposite each other. You can verify they match up by hovering the cursor over one. For a matched pair, it will show the other.&lt;br /&gt;
&lt;br /&gt;
==== No path ====&lt;br /&gt;
When trains cannot reach the target, a &amp;quot;no path&amp;quot; symbol pops up over the locomotive. Check:&lt;br /&gt;
* Can the train reach its current destination by &#039;&#039;&#039;only driving forward&#039;&#039;&#039;? Build turning slopes or place a locomotive at both ends of a train!&lt;br /&gt;
* Are the train stops standing in the right direction? Train stops must be on the right-hand side of the track (from the forward-facing locomotive&#039;s perspective).  If the train is traveling south, the stop must be on the west side of the track.&lt;br /&gt;
* If you use rail signals, check that the signals are all allowing traffic in the correct direction.&lt;br /&gt;
* Check for interruptions in the train tracks, drive to the station manually to check there are no rail parts missing. Especially near junctions, these can be hard to spot if missing.&lt;br /&gt;
&lt;br /&gt;
If you are still having problems, consider:&lt;br /&gt;
* Driving the train manually, and as you pass each switch, try switching to automatic. When it works, you will know the rough area of the problem.&lt;br /&gt;
[http://imgur.com/a/Nq2Yk A pictorial summary of typical problems].&lt;br /&gt;
&lt;br /&gt;
==== Interrupts ====&lt;br /&gt;
&lt;br /&gt;
When the train is about to leave a station inserted via an interrupt, that &#039;&#039;&#039;same interrupt may retrigger&#039;&#039;&#039;, locking the train in place. Based on your desired behavior, consider the following:&lt;br /&gt;
&lt;br /&gt;
To &#039;&#039;&#039;force the train to simply choose another station&#039;&#039;&#039;, add &amp;quot;Not at specified station&amp;quot; to the interrupt conditions, specifying the same target station. This way, the train will be forced to pick a different interrupt, or travel to a station in its main schedule.&lt;br /&gt;
&lt;br /&gt;
If the train &#039;&#039;&#039;should travel to a different station of the same name&#039;&#039;&#039;: use circuits to disable the station and lower its priority, and add &amp;quot;Station is not full&amp;quot; to the interrupt condition. Note that only disabling the station is not enough to prevent this issue, the train will only choose a different destination with the same name if it has a higher priority. Once there are no other valid stations with the same name (i.e. all of them are disabled, so there is no higher-priority station), the &amp;quot;Station is not full&amp;quot; condition will prevent the train from getting stuck.&lt;br /&gt;
&lt;br /&gt;
== Elevated Rails ==&lt;br /&gt;
[[File:Elevated intersection example.png|thumb|350px|A simple bridge using elevated rails.]]&lt;br /&gt;
{{About/Space age}}&lt;br /&gt;
Elevated rails come in a separate mod which can be enabled independently of Space Age. They come as two new buildings: [[rail ramp]] and [[rail support]]. Ramps and supports are the only items in the game able to be built in the oceans of [[Nauvis]]. When playing with Space Age itself, elevated rails become an important part of the game, as they are critical to bridging the oil oceans of [[Fulgora]]{{SA}} and the lava rivers of [[Vulcanus]]{{SA}}, as well as easily crossing the vast watery landscape on [[Gleba]]{{SA}}.&lt;br /&gt;
&lt;br /&gt;
Elevated rails can be built using the [[rail planner]]. Pressing {{Key|G}} will switch levels, and attempt to build a ramp up or down, if the player has one in their inventory. While holding {{Key|SHIFT}} and targeting a section of rail on the opposite level, the rail planner will automatically place any ramps and/or supports necessary to reach that destination. A rail support must be placed every 16 straight tiles. Disassembling a support or ramp will automatically disassemble any rails which rely on that support.&lt;br /&gt;
&lt;br /&gt;
Players and [[enemies]] cannot walk on elevated rail. A player can enter and exit the train if it is elevated as normal, and will be teleported to the ground. If the player attempts to exit while over water or lava, nothing will happen. Both types of rail signals can be placed on elevated rail, but not train stops. &lt;br /&gt;
&lt;br /&gt;
Certain buildings are too tall to be placed underneath elevated rails:&lt;br /&gt;
* [[Big electric pole]]&lt;br /&gt;
* [[Cargo landing pad]]&lt;br /&gt;
* [[Oil refinery]]&lt;br /&gt;
* [[Roboport]]&lt;br /&gt;
* [[Rocket silo]]&lt;br /&gt;
* [[Agricultural tower]]{{SA}}&lt;br /&gt;
* [[Cargo bay]]{{SA}}&lt;br /&gt;
* [[Lightning rod]]{{SA}}&lt;br /&gt;
* [[Lightning collector]]{{SA}}&lt;br /&gt;
&lt;br /&gt;
== Achievements ==&lt;br /&gt;
{{Achievement|getting-on-track}}&lt;br /&gt;
{{Achievement|trans-factorio-express}}&lt;br /&gt;
{{Achievement|watch-your-step}}&lt;br /&gt;
{{Achievement|getting-on-track-like-a-pro}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Tutorial:Train signals]]&lt;br /&gt;
* [[Railway/Train path finding]]&lt;br /&gt;
* [[Locomotive]]&lt;br /&gt;
* [[Cargo wagon]]&lt;br /&gt;
* [[Fluid wagon]]&lt;br /&gt;
* [[Artillery wagon]]&lt;br /&gt;
&lt;br /&gt;
{{C|Logistics{{!}}#Railway}} {{C|Railway{{!}}#Railway}}&lt;/div&gt;</summary>
		<author><name>Metaflame</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Circuit_network&amp;diff=206154</id>
		<title>Circuit network</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Circuit_network&amp;diff=206154"/>
		<updated>2024-11-13T17:42:31Z</updated>

		<summary type="html">&lt;p&gt;Metaflame: /* Physical network structure */ Add details about new cut-pasting and deconstruction behavior&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
&#039;&#039;&#039;Circuit networks&#039;&#039;&#039; are built using [[Red wire|red]] or [[green wire]], and enable the control of receivers, based upon information broadcast onto the network by connected senders.  Most senders are storage devices, and broadcast their information onto a specific channel, based on the item or liquid the storage device contains.  Each circuit network contains a channel for every kind of item, as well as 48 extra [[#Virtual signals|virtual signals]] which act as user-definable channels. &#039;&amp;lt;span style=&amp;quot;color:#FF6666&amp;quot;&amp;gt;Everything&amp;lt;/span&amp;gt;&#039;, &#039;&amp;lt;span style=&amp;quot;color:#99FF99&amp;quot;&amp;gt;Anything&amp;lt;/span&amp;gt;&#039; and &#039;&amp;lt;span style=&amp;quot;color:#FFFF99&amp;quot;&amp;gt;Each&amp;lt;/span&amp;gt;&#039; are also available wildcards.&lt;br /&gt;
&lt;br /&gt;
[[File:shared_circuit_network.png|thumb|600px|right|Two circuit networks shared over one [[small electric pole]].]]&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Send information ===&lt;br /&gt;
Senders broadcast the amount of items or fluids they contain or other data definable by the player. Each amount is broadcast as a numeric value on a &#039;channel&#039; corresponding to the item.  For example, a Storage Tank containing 1000 Crude Oil will broadcast 1000 on the Crude Oil channel.&lt;br /&gt;
&lt;br /&gt;
The channels are separated from each other, so each network can simultaneously carry a number for each item and fluid in the game, and for each of the extra user-defined channels (digits 0-9, letters A-Z, and 9 different colors). All unused channels have the value zero.&lt;br /&gt;
&lt;br /&gt;
Multiple broadcasts of the same item or fluid are additive: If there are two connected Storage Tanks with 1000 Crude Oil each, the value of the Crude Oil channel within the network will be 2000.&lt;br /&gt;
&lt;br /&gt;
All wires of the same color which are connected together by junctions form a network, i.e. they will pass their signals to each other.  For example, if two red wires are connected to the same combinator input, each wire receives the content from the other.  This can result in feedback if care is not taken; see Feedback (under [[#Combinators|arithmetic combinator]], below) for discussion.&lt;br /&gt;
&lt;br /&gt;
Numbers are in the signed 32 bit integer range, i.e. from -2147483648 to 2147483647 inclusive, and are encoded in [https://en.wikipedia.org/wiki/Two%27s_complement two&#039;s complement representation]. The numbers wrap around on overflow, so e.g. 2147483647 + 10 becomes -2147483639. When entering a number in a combinator it can appear to exceed the 32 bit limit until the GUI is closed, at which point the number will overflow/underflow. [https://forums.factorio.com/58419]&lt;br /&gt;
&lt;br /&gt;
=== Control devices ===&lt;br /&gt;
Receivers can use broadcast information, in most cases to enable/disable the device. They can either compare results between different channels, or compare a channel to a specific value.&lt;br /&gt;
&lt;br /&gt;
Receiving devices sum all signals from each wire connected to them, even red and green wires. For example, if an inserter is connected to a red wire carrying a signal for 20 copper plates and a green wire with 10 copper plates, the input signal set for that receiver will be 30 copper plates.&lt;br /&gt;
&lt;br /&gt;
Multiple wires of the same color will share &amp;amp; sum their signals. For example, 3 chests A, B and C connected in a row (A -&amp;gt; B -&amp;gt; C) with green wire will output the sum of their contents along any green wire connected to any of the chests. However, if a red wire connects chest A to an inserter, that inserter will only be given the contents of A as its input signal.&lt;br /&gt;
&lt;br /&gt;
== Devices ==&lt;br /&gt;
&amp;lt;!-- Todo: need signal icons D, P, V. Probably need to compile all crafting machines and turrets into one word, similar to belts &amp;amp; inserters  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each device that is able to be connected to a circuit network has a [[File:Circuit network panel.png]] icon located in the top right corner of its info pane. Clicking this icon will display the available circuit network options for that device (note: a red or green wire must be connected, otherwise the message &amp;quot;not connected&amp;quot; will display instead). Clicking the [[File:Logistic network panel.png]] icon next to it, the device can be connected to a logistic network if in range of one, which also allows conditions to be set.&lt;br /&gt;
&lt;br /&gt;
Conditions can be set for both circuit (signals of red and green wires are summed) and logistic network, which will together act as a logical AND.&lt;br /&gt;
&lt;br /&gt;
The following devices can be connected to a circuit network:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Icon !! Name !! Possible output signals !! Possible circuit control !! Possible logistic network control&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Transport belt||Transport belts}} || [[Transport belts]] || Transport belts can send their content to the circuit network.&lt;br /&gt;
*&#039;&#039;Pulse mode&#039;&#039;: The signal is sent for only 1 tick when the item enters the belt.&lt;br /&gt;
*&#039;&#039;Hold mode&#039;&#039;: The signal is sent continuously as long as the items are on the belt.&lt;br /&gt;
*&#039;&#039;Hold mode&#039;&#039; (All belts): The signal is sent continuously for all items on the entire transport belt line. The count continues through underground belts, but not splitters or side loading.&lt;br /&gt;
|| Transport belts can be enabled on a condition.&lt;br /&gt;
|| Transport belts can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Inserter||Inserters}} || [[Inserters]] || All inserters can send their held items to the circuit network.&lt;br /&gt;
*&#039;&#039;Pulse mode&#039;&#039;: The signal is sent for only 1 tick when the item is picked up.&lt;br /&gt;
*&#039;&#039;Hold mode&#039;&#039;: The signal is sent continuously as long as the inserter is holding the item.&lt;br /&gt;
|| All inserters can be enabled on a condition. The inserter stack size can also be overridden from a control signal (configurable). Filters can be set on a signal.&lt;br /&gt;
|| All inserters can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Assembling machine}} {{Icon|Oil refinery}} {{Icon|Chemical plant}} {{Icon|Centrifuge}} {{Icon|Crusher|space-age=yes}} {{Icon|Foundry|space-age=yes}} {{Icon|Electromagnetic plant|space-age=yes}} {{Icon|Biochamber|space-age=yes}} {{Icon|Cryogenic plant|space-age=yes}} || [[Assembling machine]]s, [[Oil refinery]], [[Chemical plant]], [[Centrifuge]], [[Crusher]], [[Foundry]], [[Electromagnetic plant]], [[Biochamber]], [[Cryogenic plant]] || All crafting machines can output their contents, output the ingredients of a set recipe, set a given signal when working, and send a given signal when a recipe completes || All crafting machines can enable on a condition and set the recipe based on a signal &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Wooden chest||Chests}} || [[Chests]] || All chests can send their contents to the circuit network. Logistic chests automatically send their contents to the [[logistic network]]. Logistics chests can be enabled on a condition. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Cargo landing pad}} || [[Cargo landing pad]] || The landing pad can send its contents to the circuit network. || The landing pad can have its requests set by the circuit network.{{SA}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Rocket silo}} || [[Rocket silo]] || The rocket silo can output its contents or requests from space platforms.{{SA}} ||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Space platform hub|space-age=yes}} || [[Space platform hub]] || Can output its contents, destination and source planet, current speed, and damage taken&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Read Speed = Signal &#039;&#039;V&#039;&#039;&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Read Damage Taken = Signal &#039;&#039;D&#039;&#039;&lt;br /&gt;
| Platform hub can be sent the contents of the circuit network to use for wait conditions&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Asteroid collector|space-age=yes}} || [[Asteroid collector]] || Can output its contents to the circuit network || Can enable on a condition and set filters on a signal ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Requester chest}} || [[Requester chest]] || Can send its contents to the circuit network. Does &#039;&#039;not&#039;&#039; send its content to the [[logistic network]]. || Its requested items can be set by the circuit network. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Storage tank}} || [[Storage tank]] || The storage tank can send its fluid content to the circuit network. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Gate}} || [[Gate]] || Gates can send a signal to the circuit network.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Player detected = [[File:Signal-G.png|16px]]&lt;br /&gt;
|| Gates can be opened on a condition. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Nuclear reactor}} {{Icon|Heating tower|space-age=yes}} || [[Nuclear reactor]], [[Heating tower]] || The reactor and heating tower can output any fuel to the circuit network and its current temperature&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Read temperature = [[File:Signal-T.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Agricultural tower|space-age=yes}} || [[Agricultural tower]] || Can output any seeds and harvested plants in its inventory || Agricultural tower can be enabled on a condition || Can be enabled on a logistic network condition&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Gun turret}} {{Icon|Laser turret}} {{Icon|Flamethrower turret}} {{Icon|Rocket turret|space-age=yes}} {{Icon|Tesla turret|space-age=yes}} {{Icon|Railgun turret|space-age=yes}} || [[Gun turret]], [[Laser turret]], [[Flamethrower turret]], [[Rocket turret]], [[Tesla turret]], [[Railgun turret]] || Can send their respective ammunition to the circuit network&lt;br /&gt;
* Laser and tesla turrets will not send any signal if this option is selected, due to not using ammo&lt;br /&gt;
|| Can enable, set priorities, and ignore priorities on a condition || Can be enabled on a logistic network condition&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Artillery turret}} || [[Artillery turret]] || Can send its ammunition to the circuit network || Can be enabled on a condition || Can be enabled on a logistic network condition&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Rail signal}} || [[Rail signal]] || Rail signals can send their state to the circuit network.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: [[File:Signal-Red.png|16px]][[File:Signal-Yellow.png|16px]][[File:Signal-Green.png|16px]]&lt;br /&gt;
Note: If red due to circuit network, does NOT output red signal&lt;br /&gt;
|| Rail signals can be set to red on a condition. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Rail chain signal}} || [[Rail chain signal]] || Rail chain signals can send their state to the circuit network.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: [[File:Signal-Red.png|16px]][[File:Signal-Yellow.png|16px]][[File:Signal-Green.png|16px]][[File:Signal-Blue.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Train stop}} || [[Train stop]] || Train stops can send the contents of a stopped train to the circuit network as well as read a unique train identifier code. The amount of trains going to the train stop can be read by the circuit network.&amp;lt;br&amp;gt;When reading the content of a stopped train, fluid amounts are rounded down to the nearest integer, except when the fluid amount is &amp;lt; 1, then it is is rounded to 1. &lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Train Count (en route) = [[File:Signal-C.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Stopped Train ID = [[File:Signal-T.png|16px]]&lt;br /&gt;
|| Train stops can send the contents of the circuit network to the train to use it for wait conditions, as well as enable/disable the stop itself. The maximum amount of trains that can go to the train stop (&amp;quot;train limit&amp;quot;) can be set by the circuit network, as well as the stop priority.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Set Limit = [[File:Signal-L.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Set Priority = Signal &#039;&#039;P&#039;&#039;&lt;br /&gt;
|| Train stops can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Accumulator}} || [[Accumulator]] || It can send its charge level in percent to the circuit network. &lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Charge % = [[File:Signal-A.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Roboport}} || [[Roboport]] || It can send its logistic network contents and/or its robot statistics to the circuit network. The signals used for robot statistics are configurable. &lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Available Logistics Bots = [[File:Signal-X.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Total Logistics Bots = [[File:Signal-Y.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Available Construction Bots = [[File:Signal-Z.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Total Construction Bots = [[File:Signal-T.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Roboports in Network = [[File:Signal-R.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Radar}} || [[Radar]] || Radars will transmit any signals passed into it to all other radars on the same planet.&lt;br /&gt;
Unlike other machine outputs, signals from red and green wires are transmitted separately.&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Display panel}} || [[Display panel]] || || Can display a label and/or custom message on a condition ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Burner mining drill}} || [[Mining drill]]s || All mining drills can send the expected resources, either from the drill itself or from the whole ore patch the drill is on. || Mining drills can be enabled on a condition. || Mining drills can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Pumpjack}} || [[Pumpjack]] || It can output the current oil mining rate. || It can be enabled on a condition. || It can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Power switch}} || [[Power switch]] || || Power switches can connect power networks on a condition. || It can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Programmable speaker}} || [[Programmable speaker]] || || Shows alerts and plays sounds based on circuit network signals. It can be used to make simple tunes.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Lamp}} || [[Lamp]] || || The lamp can be enabled on a condition. &lt;br /&gt;
*&#039;&#039;Color mapping&#039;&#039;: The color is set based on the provided color signals&lt;br /&gt;
*&#039;&#039;Color components&#039;&#039;: The color is set based on the values of incoming red, green, and blue color signals, which should be between 0 and 255&lt;br /&gt;
*&#039;&#039;Packed RGB&#039;&#039;: The color is set based on a single hex encoded RGB color on the white color signal. It should be between 0 and 16777215&lt;br /&gt;
|| The lamp can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Offshore pump}} || [[Offshore pump]] || || The offshore pump can be enabled on a condition. || The offshore pump can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Pump}} || [[Pump]] || || The pump can be enabled on a condition and set its filter on a signal || The pump can be enabled on a logistic network condition.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Physical network structure ==&lt;br /&gt;
A circuit network consists only of those devices connected together with the same color wire. Wire can be strung directly from device to device, or across any intervening power poles. Wire length is limited by its previous connection.&lt;br /&gt;
&lt;br /&gt;
Note that each connected set of wires forms a separate network.  For example, it&#039;s entirely possible to have four red-wire networks and three green-wire networks. If red and green wires happen to touch the same power pole or device, the red and green networks will remain separate and will not link up. However, two red cables or two green cables will link if they touch. Use different colored cables to separate networks in close proximity.&lt;br /&gt;
&lt;br /&gt;
* To connect wires or cables to a power pole, simply click on one entity, then on the base of the power pole.&lt;br /&gt;
* To erase a wire or cable connection, place the same color wire over an existing connection. You don&#039;t get the wire/cable back.&lt;br /&gt;
* To remove &#039;&#039;&#039;all&#039;&#039;&#039; connections from a power pole, shift-click on the pole.  The first shift-click will remove all electrical connections, and the second will remove all red and green wires.&lt;br /&gt;
* When connecting to a [[arithmetic combinator]] or [[decider combinator]], take care to connect the wire to the correct input or output side. Use &amp;quot;Show details&amp;quot; mode to see the orientation of the combinator.&lt;br /&gt;
* Hovering the mouse cursor over an item will highlight all wires which connect to the item.&lt;br /&gt;
* Hovering the mouse cursor over a power pole which is part of a network will display the signals on its network. Some items like combinators will also display their input and output signals when hovered over.&lt;br /&gt;
* Cut-pasting entities tries to preserve all wire connections to external entities and reconnect the new ghost to all its previous connection points, even when pasted multiple times, making it easy to rearrange entities without breaking connections.&lt;br /&gt;
* Deconstructing a power pole tries to keep all affected wire connections intact, forming new wires between previously-connected entities as needed. This can result in redundant wire connections forming when cut-pasting or undoing deconstruction. Note that this doesn&#039;t happen when the power pole is destroyed, though its ghost remains connected.&lt;br /&gt;
&lt;br /&gt;
== Combinators ==&lt;br /&gt;
Combinators can function as both receiving and sending devices and allow more advanced functions to be used on a circuit network.&lt;br /&gt;
&lt;br /&gt;
*The [[constant combinator]] broadcasts up to 20 values on any of the channels for whatever networks it is connected to.  (You cannot currently specify whether a value should be on the red or green channel; if you need different values, use two combinators, one for each color wire.)  You can use any item channel or any of the [[#Virtual signals|virtual signal]] channels.&lt;br /&gt;
**Note that using two of the 20 slots to broadcast values on the &#039;&#039;&#039;same&#039;&#039;&#039; channel is the same as broadcasting the sum of the two values from one slot.&lt;br /&gt;
*The [[arithmetic combinator]] performs arithmetic operations on input values and broadcasts the result to the specified output channel.  The input and output channels can be any item channel or any of the virtual signal channels.&lt;br /&gt;
** Connecting: The arithmetic combinator connects to a red or green network on its &#039;&#039;&#039;input&#039;&#039;&#039; side (the terminals are set into the main body and look like spark plugs) and performs an arithmetic calculation which is broadcast into the specified channel on its &#039;&#039;&#039;output&#039;&#039;&#039; side (the output wires appear to stretch out a bit from the body of the device).&lt;br /&gt;
** Feedback: Note that the input network and the output network &#039;&#039;&#039;are not the same network&#039;&#039;&#039;.  Connecting the output network back to the input network will result in a feedback loop.  For example, adding 1 to the value for copper plates and broadcasting it as copper plates is an action that results in an infinite loop if output is connected back to input.  The value for copper plates will rapidly (but not instantly) shoot upward. (The rate at which it climbs is determined by the current tick rate.) This technique can be combined with decider combinator logic to make electronic clocks, gates, and other systems; see [[Tutorial:Combinator tutorial|Combinator Tutorial]] for advanced techniques.&lt;br /&gt;
** Each:  This combinator can use the &#039;Each&#039; signal for both input and output, in which case &#039;&#039;&#039;all&#039;&#039;&#039; non-zero input channels will have the combinator&#039;s operation performed and broadcast on the output side.  Having Each signals for input and output and using a non-changing operation (like adding zero) is equivalent to having a &#039;one-way&#039; wire; all the information from the input network is copied to the output network, but the reverse is not true.&lt;br /&gt;
**Multi-network: The arithmetic combinator can be joined to both red and green networks on the input side and will sum their inputs.&lt;br /&gt;
*The [[decider combinator]] functions much like an arithmetic combinator, but is designed to compare values. Essentially, it is a conditional. In terms of connecting, feedback, and the Each signal it functions as specified above.  In addition, it can handle the Everything and Anything signals, and performs more complex functions than summing when attached to multiple networks.  See the [[decider combinator]] page for more details on how to use this.&lt;br /&gt;
* The [[selector combinator]] has various functions designed for filtering out and analyzing specific signals from its inputs. It is able to output the largest or smallest signal in a series of inputs, output the stack size of items, count the number of inputs, and output a random input every certain number of game ticks. If [[Space Age]]{{SA}} is enabled, it has three more functions for detecting an item&#039;s rocket capacity, and filtering/transferring [[quality]]{{SA}} grades.&lt;br /&gt;
&lt;br /&gt;
== Virtual signals ==&lt;br /&gt;
[[File:Virtual Signals dialog box.png|thumb|Virtual Signals available for use in the circuit network]]&lt;br /&gt;
Virtual signals are special non-item signals. Other than the three logic signals, virtual signals do not behave differently from item signals.&lt;br /&gt;
&lt;br /&gt;
48 virtual signals can be sent over a network. They include the digits zero through nine, the letters A through Z, a check-mark, dot and info icon, and the colors red, green, blue, yellow, magenta, cyan, white, gray and black.&lt;br /&gt;
&lt;br /&gt;
=== Logic signals ===&lt;br /&gt;
[[File:logic_signals.png|300px|thumb|The icons of the three logic signals]]&lt;br /&gt;
Three of the virtual signals cannot be sent over a network but apply special logic to multiple signals.&lt;br /&gt;
&lt;br /&gt;
==== Everything ====&lt;br /&gt;
&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF6666&amp;quot;&amp;gt;Everything&amp;lt;/span&amp;gt;&#039;&#039; can be used on the left side in conditionals. The condition will be true when the condition is true for each input signal. The condition is also true if there are no signals. This means that the &#039;&#039;everything&#039;&#039; signal behaves as [[:Wikipedia:universal quantification|universal quantification]].&lt;br /&gt;
&lt;br /&gt;
If a signal (rather than a constant number) is used on the right side of the comparison with &#039;&#039;everything&#039;&#039;, it is implicitly excluded from the set of signals that &#039;&#039;everything&#039;&#039; checks, so the signal is not matched against itself. That means it is meaningful test e.g. &#039;&#039;everything&#039;&#039; &amp;gt; &#039;&#039;X&#039;&#039;, without getting a trivially false result on &#039;&#039;X&#039;&#039; &amp;gt; &#039;&#039;X&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The output of a [[decider combinator]] may also use &#039;&#039;everything&#039;&#039;, unless the input is set to &#039;&#039;each&#039;&#039;. When used, the combinator will output signal on every channel with non-zero input as long as the condition is true; the value will either be the input value or 1, depending on the corresponding setting.&lt;br /&gt;
&lt;br /&gt;
==== Anything ====&lt;br /&gt;
&#039;&#039;&amp;lt;span style=&amp;quot;color:#99FF99&amp;quot;&amp;gt;Anything&amp;lt;/span&amp;gt;&#039;&#039; can be used on the left side of conditions. It will be false when there are no inputs. The condition will be true when the condition is true for at least one signal. This means the &#039;&#039;anything&#039;&#039; signal behaves as [[:Wikipedia:existential quantification|existential quantification]].&lt;br /&gt;
&lt;br /&gt;
If a signal (rather than a constant number) is used on the right side of the comparison with &#039;&#039;anything&#039;&#039;, it is implicitly excluded from the set of signals that &#039;&#039;anything&#039;&#039; checks, so the signal is not matched against itself. That means it is meaningful test e.g. &#039;&#039;anything&#039;&#039; &amp;gt;= &#039;&#039;X&#039;&#039;, without getting a trivially true result on &#039;&#039;X&#039;&#039; &amp;gt;= &#039;&#039;X&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
When used in both the input and output of a decider combinator, &#039;&#039;anything&#039;&#039; will return one of the signals that matched.&lt;br /&gt;
&lt;br /&gt;
==== Each ====&lt;br /&gt;
&#039;&#039;&amp;lt;span style=&amp;quot;color:#FFFF99&amp;quot;&amp;gt;Each&amp;lt;/span&amp;gt;&#039;&#039; can only be used in left input side and output of [[decider combinator|decider]] and [[arithmetic combinator|arithmetic]] combinators. The signal can only be used as an output when also used as an input. When used in both the input and output, it makes a combinator perform its action on each input signal individually. The combinator will output the sum of each of the actions if only used in the input.&lt;br /&gt;
&lt;br /&gt;
A combinator using &#039;&#039;each&#039;&#039; is like a stack of combinators with all inputs connected and all outputs connected in parallel. For example, if there are signals &amp;quot;copper&amp;quot; and &amp;quot;iron&amp;quot; present, one combinator would be evaluating conditions for copper, and the other combinator would be evaluating conditions for iron. The different output signals would then be added together on the shared wire.&lt;br /&gt;
&lt;br /&gt;
Unlike &#039;&#039;everything&#039;&#039; and &#039;&#039;anything&#039;&#039; above, if a signal is used on the right hand side of an &#039;&#039;each&#039;&#039; operation, it is NOT implicitly excluded. So if you e.g. have &#039;&#039;each&#039;&#039; * &#039;&#039;X&#039;&#039; then you will also get &#039;&#039;X&#039;&#039; multiplied with itself in the output.&lt;br /&gt;
&lt;br /&gt;
Each as an input will only be processed on signals that have a non-zero value. If you have a [[decider combinator|decider]] condition that inputs and output each, but wants to output only one value for an input signal that passes the condition, it will never output 1 for a signal which has a zero value, even if the condition is one that would be passed for a zero value.&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
*&#039;&#039;&#039;[[Tutorial:Circuit network cookbook]]&#039;&#039;&#039; - &#039;&#039;Example-heavy tutorials; for beginners who want to get to know and use the benefits of the circuit network.&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;[[Tutorial:Combinator tutorial]]&#039;&#039;&#039; - &#039;&#039;Mainly textual and detailed tutorials.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Logistic network ==&lt;br /&gt;
The logistic network used by [[logistic robot]]s is essentially a third network (a wireless one), along with the green and red wired networks. The logistic network is based on coverage by [[roboport]]s.&lt;br /&gt;
&lt;br /&gt;
Some devices can also be connected to the logistic network and enabled based on a condition. If a device has conditions set for circuit and for logistic network, it will become activated if both conditions are true. Devices that can also be controlled with the logistic network:&lt;br /&gt;
* Transport belts&lt;br /&gt;
* Inserters&lt;br /&gt;
* Train stop&lt;br /&gt;
* Mining drills&lt;br /&gt;
* Pumpjack&lt;br /&gt;
* Power switch&lt;br /&gt;
* Lamp&lt;br /&gt;
* Offshore pump&lt;br /&gt;
* Pump&lt;br /&gt;
&lt;br /&gt;
See the [[logistic network]] and [[roboport]] articles for more information.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
{{history|0.15.0|&lt;br /&gt;
* Significantly improved circuit network performance. Up to 25 times less CPU usage and 10% less memory usage.&lt;br /&gt;
* Added the Programmable Speaker: it shows alerts and plays sounds based on circuit network signals. It can be used to make simple songs.&lt;br /&gt;
* Train Stop can output the contents of the stopped train&#039;s cargo.&lt;br /&gt;
* Train Stop can be disabled using the circuit network. Trains will skip disabled Train Stops, allowing simple train control.&lt;br /&gt;
* Mining Drills can be turned on and off using the circuit network. They can also output the remaining expected resources.&lt;br /&gt;
* Pumpjacks can be turned on and off using the circuit network. They can also output the current oil mining rate.&lt;br /&gt;
* Added Modulo, Power, Left Bit Shift, Right Bit Shift, Bitwise AND, Bitwise OR and Bitwise XOR to the Arithmetic Combinator.&lt;br /&gt;
* Added additional operators to the Decider Combinator and Circuit Conditions.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.13.0|&lt;br /&gt;
* Many machines are now connectible to the circuit network.&lt;br /&gt;
* Wire disconnecting is incorporated into the latency hiding.&lt;br /&gt;
* Wires are now highlighted on entity mouseover.&lt;br /&gt;
* Reduced memory usage of circuit network.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.33|&lt;br /&gt;
* Fluid values are rounded to the closest value instead of rounding down when transmitted to circuit network.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.1|&lt;br /&gt;
* One can copy paste circuit network conditions between the [[inserter]], [[lamp]], [[pump]] and [[offshore pump]]. }}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.0|&lt;br /&gt;
* Improvements to circuit network connection, one can connect multiple wires of the same color to the same entity.&lt;br /&gt;
* The [[lamp]], [[storage tank]], [[pump]] and [[offshore pump]] can be connected to the circuit network.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.10.0|&lt;br /&gt;
* [[Blueprint]]s copy circuit network connections.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.8.3|&lt;br /&gt;
* Circuit network contents info has colored slots to specify the network it represents.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.1.0|&lt;br /&gt;
* Introduced}}&lt;br /&gt;
&lt;br /&gt;
{{C|Logistics{{!}}#Circuit network}} {{C|Circuit network{{!}}#Circuit network}}&lt;/div&gt;</summary>
		<author><name>Metaflame</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Circuit_network&amp;diff=206151</id>
		<title>Circuit network</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Circuit_network&amp;diff=206151"/>
		<updated>2024-11-13T17:21:09Z</updated>

		<summary type="html">&lt;p&gt;Metaflame: /* Physical network structure */ Remove now-irrelevant remark about not getting wires back.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
&#039;&#039;&#039;Circuit networks&#039;&#039;&#039; are built using [[Red wire|red]] or [[green wire]], and enable the control of receivers, based upon information broadcast onto the network by connected senders.  Most senders are storage devices, and broadcast their information onto a specific channel, based on the item or liquid the storage device contains.  Each circuit network contains a channel for every kind of item, as well as 48 extra [[#Virtual signals|virtual signals]] which act as user-definable channels. &#039;&amp;lt;span style=&amp;quot;color:#FF6666&amp;quot;&amp;gt;Everything&amp;lt;/span&amp;gt;&#039;, &#039;&amp;lt;span style=&amp;quot;color:#99FF99&amp;quot;&amp;gt;Anything&amp;lt;/span&amp;gt;&#039; and &#039;&amp;lt;span style=&amp;quot;color:#FFFF99&amp;quot;&amp;gt;Each&amp;lt;/span&amp;gt;&#039; are also available wildcards.&lt;br /&gt;
&lt;br /&gt;
[[File:shared_circuit_network.png|thumb|600px|right|Two circuit networks shared over one [[small electric pole]].]]&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Send information ===&lt;br /&gt;
Senders broadcast the amount of items or fluids they contain or other data definable by the player. Each amount is broadcast as a numeric value on a &#039;channel&#039; corresponding to the item.  For example, a Storage Tank containing 1000 Crude Oil will broadcast 1000 on the Crude Oil channel.&lt;br /&gt;
&lt;br /&gt;
The channels are separated from each other, so each network can simultaneously carry a number for each item and fluid in the game, and for each of the extra user-defined channels (digits 0-9, letters A-Z, and 9 different colors). All unused channels have the value zero.&lt;br /&gt;
&lt;br /&gt;
Multiple broadcasts of the same item or fluid are additive: If there are two connected Storage Tanks with 1000 Crude Oil each, the value of the Crude Oil channel within the network will be 2000.&lt;br /&gt;
&lt;br /&gt;
All wires of the same color which are connected together by junctions form a network, i.e. they will pass their signals to each other.  For example, if two red wires are connected to the same combinator input, each wire receives the content from the other.  This can result in feedback if care is not taken; see Feedback (under [[#Combinators|arithmetic combinator]], below) for discussion.&lt;br /&gt;
&lt;br /&gt;
Numbers are in the signed 32 bit integer range, i.e. from -2147483648 to 2147483647 inclusive, and are encoded in [https://en.wikipedia.org/wiki/Two%27s_complement two&#039;s complement representation]. The numbers wrap around on overflow, so e.g. 2147483647 + 10 becomes -2147483639. When entering a number in a combinator it can appear to exceed the 32 bit limit until the GUI is closed, at which point the number will overflow/underflow. [https://forums.factorio.com/58419]&lt;br /&gt;
&lt;br /&gt;
=== Control devices ===&lt;br /&gt;
Receivers can use broadcast information, in most cases to enable/disable the device. They can either compare results between different channels, or compare a channel to a specific value.&lt;br /&gt;
&lt;br /&gt;
Receiving devices sum all signals from each wire connected to them, even red and green wires. For example, if an inserter is connected to a red wire carrying a signal for 20 copper plates and a green wire with 10 copper plates, the input signal set for that receiver will be 30 copper plates.&lt;br /&gt;
&lt;br /&gt;
Multiple wires of the same color will share &amp;amp; sum their signals. For example, 3 chests A, B and C connected in a row (A -&amp;gt; B -&amp;gt; C) with green wire will output the sum of their contents along any green wire connected to any of the chests. However, if a red wire connects chest A to an inserter, that inserter will only be given the contents of A as its input signal.&lt;br /&gt;
&lt;br /&gt;
== Devices ==&lt;br /&gt;
&amp;lt;!-- Todo: need signal icons D, P, V. Probably need to compile all crafting machines and turrets into one word, similar to belts &amp;amp; inserters  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each device that is able to be connected to a circuit network has a [[File:Circuit network panel.png]] icon located in the top right corner of its info pane. Clicking this icon will display the available circuit network options for that device (note: a red or green wire must be connected, otherwise the message &amp;quot;not connected&amp;quot; will display instead). Clicking the [[File:Logistic network panel.png]] icon next to it, the device can be connected to a logistic network if in range of one, which also allows conditions to be set.&lt;br /&gt;
&lt;br /&gt;
Conditions can be set for both circuit (signals of red and green wires are summed) and logistic network, which will together act as a logical AND.&lt;br /&gt;
&lt;br /&gt;
The following devices can be connected to a circuit network:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Icon !! Name !! Possible output signals !! Possible circuit control !! Possible logistic network control&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Transport belt||Transport belts}} || [[Transport belts]] || Transport belts can send their content to the circuit network.&lt;br /&gt;
*&#039;&#039;Pulse mode&#039;&#039;: The signal is sent for only 1 tick when the item enters the belt.&lt;br /&gt;
*&#039;&#039;Hold mode&#039;&#039;: The signal is sent continuously as long as the items are on the belt.&lt;br /&gt;
*&#039;&#039;Hold mode&#039;&#039; (All belts): The signal is sent continuously for all items on the entire transport belt line. The count continues through underground belts, but not splitters or side loading.&lt;br /&gt;
|| Transport belts can be enabled on a condition.&lt;br /&gt;
|| Transport belts can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Inserter||Inserters}} || [[Inserters]] || All inserters can send their held items to the circuit network.&lt;br /&gt;
*&#039;&#039;Pulse mode&#039;&#039;: The signal is sent for only 1 tick when the item is picked up.&lt;br /&gt;
*&#039;&#039;Hold mode&#039;&#039;: The signal is sent continuously as long as the inserter is holding the item.&lt;br /&gt;
|| All inserters can be enabled on a condition. The inserter stack size can also be overridden from a control signal (configurable). Filters can be set on a signal.&lt;br /&gt;
|| All inserters can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Assembling machine}} {{Icon|Oil refinery}} {{Icon|Chemical plant}} {{Icon|Centrifuge}} {{Icon|Crusher|space-age=yes}} {{Icon|Foundry|space-age=yes}} {{Icon|Electromagnetic plant|space-age=yes}} {{Icon|Biochamber|space-age=yes}} {{Icon|Cryogenic plant|space-age=yes}} || [[Assembling machine]]s, [[Oil refinery]], [[Chemical plant]], [[Centrifuge]], [[Crusher]], [[Foundry]], [[Electromagnetic plant]], [[Biochamber]], [[Cryogenic plant]] || All crafting machines can output their contents, output the ingredients of a set recipe, set a given signal when working, and send a given signal when a recipe completes || All crafting machines can enable on a condition and set the recipe based on a signal &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Wooden chest||Chests}} || [[Chests]] || All chests can send their contents to the circuit network. Logistic chests automatically send their contents to the [[logistic network]]. Logistics chests can be enabled on a condition. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Cargo landing pad}} || [[Cargo landing pad]] || The landing pad can send its contents to the circuit network. || The landing pad can have its requests set by the circuit network.{{SA}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Rocket silo}} || [[Rocket silo]] || The rocket silo can output its contents or requests from space platforms.{{SA}} ||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Space platform hub|space-age=yes}} || [[Space platform hub]] || Can output its contents, destination and source planet, current speed, and damage taken&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Read Speed = Signal &#039;&#039;V&#039;&#039;&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Read Damage Taken = Signal &#039;&#039;D&#039;&#039;&lt;br /&gt;
| Platform hub can be sent the contents of the circuit network to use for wait conditions&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Asteroid collector|space-age=yes}} || [[Asteroid collector]] || Can output its contents to the circuit network || Can enable on a condition and set filters on a signal ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Requester chest}} || [[Requester chest]] || Can send its contents to the circuit network. Does &#039;&#039;not&#039;&#039; send its content to the [[logistic network]]. || Its requested items can be set by the circuit network. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Storage tank}} || [[Storage tank]] || The storage tank can send its fluid content to the circuit network. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Gate}} || [[Gate]] || Gates can send a signal to the circuit network.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Player detected = [[File:Signal-G.png|16px]]&lt;br /&gt;
|| Gates can be opened on a condition. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Nuclear reactor}} {{Icon|Heating tower|space-age=yes}} || [[Nuclear reactor]], [[Heating tower]] || The reactor and heating tower can output any fuel to the circuit network and its current temperature&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Read temperature = [[File:Signal-T.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Agricultural tower|space-age=yes}} || [[Agricultural tower]] || Can output any seeds and harvested plants in its inventory || Agricultural tower can be enabled on a condition || Can be enabled on a logistic network condition&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Gun turret}} {{Icon|Laser turret}} {{Icon|Flamethrower turret}} {{Icon|Rocket turret|space-age=yes}} {{Icon|Tesla turret|space-age=yes}} {{Icon|Railgun turret|space-age=yes}} || [[Gun turret]], [[Laser turret]], [[Flamethrower turret]], [[Rocket turret]], [[Tesla turret]], [[Railgun turret]] || Can send their respective ammunition to the circuit network&lt;br /&gt;
* Laser and tesla turrets will not send any signal if this option is selected, due to not using ammo&lt;br /&gt;
|| Can enable, set priorities, and ignore priorities on a condition || Can be enabled on a logistic network condition&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Artillery turret}} || [[Artillery turret]] || Can send its ammunition to the circuit network || Can be enabled on a condition || Can be enabled on a logistic network condition&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Rail signal}} || [[Rail signal]] || Rail signals can send their state to the circuit network.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: [[File:Signal-Red.png|16px]][[File:Signal-Yellow.png|16px]][[File:Signal-Green.png|16px]]&lt;br /&gt;
Note: If red due to circuit network, does NOT output red signal&lt;br /&gt;
|| Rail signals can be set to red on a condition. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Rail chain signal}} || [[Rail chain signal]] || Rail chain signals can send their state to the circuit network.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: [[File:Signal-Red.png|16px]][[File:Signal-Yellow.png|16px]][[File:Signal-Green.png|16px]][[File:Signal-Blue.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Train stop}} || [[Train stop]] || Train stops can send the contents of a stopped train to the circuit network as well as read a unique train identifier code. The amount of trains going to the train stop can be read by the circuit network.&amp;lt;br&amp;gt;When reading the content of a stopped train, fluid amounts are rounded down to the nearest integer, except when the fluid amount is &amp;lt; 1, then it is is rounded to 1. &lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Train Count (en route) = [[File:Signal-C.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Stopped Train ID = [[File:Signal-T.png|16px]]&lt;br /&gt;
|| Train stops can send the contents of the circuit network to the train to use it for wait conditions, as well as enable/disable the stop itself. The maximum amount of trains that can go to the train stop (&amp;quot;train limit&amp;quot;) can be set by the circuit network, as well as the stop priority.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Set Limit = [[File:Signal-L.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Set Priority = Signal &#039;&#039;P&#039;&#039;&lt;br /&gt;
|| Train stops can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Accumulator}} || [[Accumulator]] || It can send its charge level in percent to the circuit network. &lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Charge % = [[File:Signal-A.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Roboport}} || [[Roboport]] || It can send its logistic network contents and/or its robot statistics to the circuit network. The signals used for robot statistics are configurable. &lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Available Logistics Bots = [[File:Signal-X.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Total Logistics Bots = [[File:Signal-Y.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Available Construction Bots = [[File:Signal-Z.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Total Construction Bots = [[File:Signal-T.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Roboports in Network = [[File:Signal-R.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Radar}} || [[Radar]] || Radars will transmit any signals passed into it to all other radars on the same planet.&lt;br /&gt;
Unlike other machine outputs, signals from red and green wires are transmitted separately.&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Display panel}} || [[Display panel]] || || Can display a label and/or custom message on a condition ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Burner mining drill}} || [[Mining drill]]s || All mining drills can send the expected resources, either from the drill itself or from the whole ore patch the drill is on. || Mining drills can be enabled on a condition. || Mining drills can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Pumpjack}} || [[Pumpjack]] || It can output the current oil mining rate. || It can be enabled on a condition. || It can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Power switch}} || [[Power switch]] || || Power switches can connect power networks on a condition. || It can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Programmable speaker}} || [[Programmable speaker]] || || Shows alerts and plays sounds based on circuit network signals. It can be used to make simple tunes.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Lamp}} || [[Lamp]] || || The lamp can be enabled on a condition. &lt;br /&gt;
*&#039;&#039;Color mapping&#039;&#039;: The color is set based on the provided color signals&lt;br /&gt;
*&#039;&#039;Color components&#039;&#039;: The color is set based on the values of incoming red, green, and blue color signals, which should be between 0 and 255&lt;br /&gt;
*&#039;&#039;Packed RGB&#039;&#039;: The color is set based on a single hex encoded RGB color on the white color signal. It should be between 0 and 16777215&lt;br /&gt;
|| The lamp can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Offshore pump}} || [[Offshore pump]] || || The offshore pump can be enabled on a condition. || The offshore pump can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Pump}} || [[Pump]] || || The pump can be enabled on a condition and set its filter on a signal || The pump can be enabled on a logistic network condition.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Physical network structure ==&lt;br /&gt;
A circuit network consists only of those devices connected together with the same color wire. Wire can be strung directly from device to device, or across any intervening power poles. Wire length is limited by its previous connection.&lt;br /&gt;
&lt;br /&gt;
Note that each connected set of wires forms a separate network.  For example, it&#039;s entirely possible to have four red-wire networks and three green-wire networks. If red and green wires happen to touch the same power pole or device, the red and green networks will remain separate and will not link up. However, two red cables or two green cables will link if they touch. Use different colored cables to separate networks in close proximity.&lt;br /&gt;
&lt;br /&gt;
* To connect wires or cables to a power pole, simply click on one entity, then on the base of the power pole.&lt;br /&gt;
* To erase a wire or cable connection, place the same color wire over an existing connection. You don&#039;t get the wire/cable back.&lt;br /&gt;
* To remove &#039;&#039;&#039;all&#039;&#039;&#039; connections from a power pole, shift-click on the pole.  The first shift-click will remove all electrical connections, and the second will remove all red and green wires.&lt;br /&gt;
* When connecting to a [[arithmetic combinator]] or [[decider combinator]], take care to connect the wire to the correct input or output side. Use &amp;quot;Show details&amp;quot; mode to see the orientation of the combinator.&lt;br /&gt;
* Hovering the mouse cursor over an item will highlight all wires which connect to the item.&lt;br /&gt;
* Hovering the mouse cursor over a power pole which is part of a network will display the signals on its network. Some items like combinators will also display their input and output signals when hovered over.&lt;br /&gt;
&lt;br /&gt;
== Combinators ==&lt;br /&gt;
Combinators can function as both receiving and sending devices and allow more advanced functions to be used on a circuit network.&lt;br /&gt;
&lt;br /&gt;
*The [[constant combinator]] broadcasts up to 20 values on any of the channels for whatever networks it is connected to.  (You cannot currently specify whether a value should be on the red or green channel; if you need different values, use two combinators, one for each color wire.)  You can use any item channel or any of the [[#Virtual signals|virtual signal]] channels.&lt;br /&gt;
**Note that using two of the 20 slots to broadcast values on the &#039;&#039;&#039;same&#039;&#039;&#039; channel is the same as broadcasting the sum of the two values from one slot.&lt;br /&gt;
*The [[arithmetic combinator]] performs arithmetic operations on input values and broadcasts the result to the specified output channel.  The input and output channels can be any item channel or any of the virtual signal channels.&lt;br /&gt;
** Connecting: The arithmetic combinator connects to a red or green network on its &#039;&#039;&#039;input&#039;&#039;&#039; side (the terminals are set into the main body and look like spark plugs) and performs an arithmetic calculation which is broadcast into the specified channel on its &#039;&#039;&#039;output&#039;&#039;&#039; side (the output wires appear to stretch out a bit from the body of the device).&lt;br /&gt;
** Feedback: Note that the input network and the output network &#039;&#039;&#039;are not the same network&#039;&#039;&#039;.  Connecting the output network back to the input network will result in a feedback loop.  For example, adding 1 to the value for copper plates and broadcasting it as copper plates is an action that results in an infinite loop if output is connected back to input.  The value for copper plates will rapidly (but not instantly) shoot upward. (The rate at which it climbs is determined by the current tick rate.) This technique can be combined with decider combinator logic to make electronic clocks, gates, and other systems; see [[Tutorial:Combinator tutorial|Combinator Tutorial]] for advanced techniques.&lt;br /&gt;
** Each:  This combinator can use the &#039;Each&#039; signal for both input and output, in which case &#039;&#039;&#039;all&#039;&#039;&#039; non-zero input channels will have the combinator&#039;s operation performed and broadcast on the output side.  Having Each signals for input and output and using a non-changing operation (like adding zero) is equivalent to having a &#039;one-way&#039; wire; all the information from the input network is copied to the output network, but the reverse is not true.&lt;br /&gt;
**Multi-network: The arithmetic combinator can be joined to both red and green networks on the input side and will sum their inputs.&lt;br /&gt;
*The [[decider combinator]] functions much like an arithmetic combinator, but is designed to compare values. Essentially, it is a conditional. In terms of connecting, feedback, and the Each signal it functions as specified above.  In addition, it can handle the Everything and Anything signals, and performs more complex functions than summing when attached to multiple networks.  See the [[decider combinator]] page for more details on how to use this.&lt;br /&gt;
* The [[selector combinator]] has various functions designed for filtering out and analyzing specific signals from its inputs. It is able to output the largest or smallest signal in a series of inputs, output the stack size of items, count the number of inputs, and output a random input every certain number of game ticks. If [[Space Age]]{{SA}} is enabled, it has three more functions for detecting an item&#039;s rocket capacity, and filtering/transferring [[quality]]{{SA}} grades.&lt;br /&gt;
&lt;br /&gt;
== Virtual signals ==&lt;br /&gt;
[[File:Virtual Signals dialog box.png|thumb|Virtual Signals available for use in the circuit network]]&lt;br /&gt;
Virtual signals are special non-item signals. Other than the three logic signals, virtual signals do not behave differently from item signals.&lt;br /&gt;
&lt;br /&gt;
48 virtual signals can be sent over a network. They include the digits zero through nine, the letters A through Z, a check-mark, dot and info icon, and the colors red, green, blue, yellow, magenta, cyan, white, gray and black.&lt;br /&gt;
&lt;br /&gt;
=== Logic signals ===&lt;br /&gt;
[[File:logic_signals.png|300px|thumb|The icons of the three logic signals]]&lt;br /&gt;
Three of the virtual signals cannot be sent over a network but apply special logic to multiple signals.&lt;br /&gt;
&lt;br /&gt;
==== Everything ====&lt;br /&gt;
&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF6666&amp;quot;&amp;gt;Everything&amp;lt;/span&amp;gt;&#039;&#039; can be used on the left side in conditionals. The condition will be true when the condition is true for each input signal. The condition is also true if there are no signals. This means that the &#039;&#039;everything&#039;&#039; signal behaves as [[:Wikipedia:universal quantification|universal quantification]].&lt;br /&gt;
&lt;br /&gt;
If a signal (rather than a constant number) is used on the right side of the comparison with &#039;&#039;everything&#039;&#039;, it is implicitly excluded from the set of signals that &#039;&#039;everything&#039;&#039; checks, so the signal is not matched against itself. That means it is meaningful test e.g. &#039;&#039;everything&#039;&#039; &amp;gt; &#039;&#039;X&#039;&#039;, without getting a trivially false result on &#039;&#039;X&#039;&#039; &amp;gt; &#039;&#039;X&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The output of a [[decider combinator]] may also use &#039;&#039;everything&#039;&#039;, unless the input is set to &#039;&#039;each&#039;&#039;. When used, the combinator will output signal on every channel with non-zero input as long as the condition is true; the value will either be the input value or 1, depending on the corresponding setting.&lt;br /&gt;
&lt;br /&gt;
==== Anything ====&lt;br /&gt;
&#039;&#039;&amp;lt;span style=&amp;quot;color:#99FF99&amp;quot;&amp;gt;Anything&amp;lt;/span&amp;gt;&#039;&#039; can be used on the left side of conditions. It will be false when there are no inputs. The condition will be true when the condition is true for at least one signal. This means the &#039;&#039;anything&#039;&#039; signal behaves as [[:Wikipedia:existential quantification|existential quantification]].&lt;br /&gt;
&lt;br /&gt;
If a signal (rather than a constant number) is used on the right side of the comparison with &#039;&#039;anything&#039;&#039;, it is implicitly excluded from the set of signals that &#039;&#039;anything&#039;&#039; checks, so the signal is not matched against itself. That means it is meaningful test e.g. &#039;&#039;anything&#039;&#039; &amp;gt;= &#039;&#039;X&#039;&#039;, without getting a trivially true result on &#039;&#039;X&#039;&#039; &amp;gt;= &#039;&#039;X&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
When used in both the input and output of a decider combinator, &#039;&#039;anything&#039;&#039; will return one of the signals that matched.&lt;br /&gt;
&lt;br /&gt;
==== Each ====&lt;br /&gt;
&#039;&#039;&amp;lt;span style=&amp;quot;color:#FFFF99&amp;quot;&amp;gt;Each&amp;lt;/span&amp;gt;&#039;&#039; can only be used in left input side and output of [[decider combinator|decider]] and [[arithmetic combinator|arithmetic]] combinators. The signal can only be used as an output when also used as an input. When used in both the input and output, it makes a combinator perform its action on each input signal individually. The combinator will output the sum of each of the actions if only used in the input.&lt;br /&gt;
&lt;br /&gt;
A combinator using &#039;&#039;each&#039;&#039; is like a stack of combinators with all inputs connected and all outputs connected in parallel. For example, if there are signals &amp;quot;copper&amp;quot; and &amp;quot;iron&amp;quot; present, one combinator would be evaluating conditions for copper, and the other combinator would be evaluating conditions for iron. The different output signals would then be added together on the shared wire.&lt;br /&gt;
&lt;br /&gt;
Unlike &#039;&#039;everything&#039;&#039; and &#039;&#039;anything&#039;&#039; above, if a signal is used on the right hand side of an &#039;&#039;each&#039;&#039; operation, it is NOT implicitly excluded. So if you e.g. have &#039;&#039;each&#039;&#039; * &#039;&#039;X&#039;&#039; then you will also get &#039;&#039;X&#039;&#039; multiplied with itself in the output.&lt;br /&gt;
&lt;br /&gt;
Each as an input will only be processed on signals that have a non-zero value. If you have a [[decider combinator|decider]] condition that inputs and output each, but wants to output only one value for an input signal that passes the condition, it will never output 1 for a signal which has a zero value, even if the condition is one that would be passed for a zero value.&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
*&#039;&#039;&#039;[[Tutorial:Circuit network cookbook]]&#039;&#039;&#039; - &#039;&#039;Example-heavy tutorials; for beginners who want to get to know and use the benefits of the circuit network.&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;[[Tutorial:Combinator tutorial]]&#039;&#039;&#039; - &#039;&#039;Mainly textual and detailed tutorials.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Logistic network ==&lt;br /&gt;
The logistic network used by [[logistic robot]]s is essentially a third network (a wireless one), along with the green and red wired networks. The logistic network is based on coverage by [[roboport]]s.&lt;br /&gt;
&lt;br /&gt;
Some devices can also be connected to the logistic network and enabled based on a condition. If a device has conditions set for circuit and for logistic network, it will become activated if both conditions are true. Devices that can also be controlled with the logistic network:&lt;br /&gt;
* Transport belts&lt;br /&gt;
* Inserters&lt;br /&gt;
* Train stop&lt;br /&gt;
* Mining drills&lt;br /&gt;
* Pumpjack&lt;br /&gt;
* Power switch&lt;br /&gt;
* Lamp&lt;br /&gt;
* Offshore pump&lt;br /&gt;
* Pump&lt;br /&gt;
&lt;br /&gt;
See the [[logistic network]] and [[roboport]] articles for more information.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
{{history|0.15.0|&lt;br /&gt;
* Significantly improved circuit network performance. Up to 25 times less CPU usage and 10% less memory usage.&lt;br /&gt;
* Added the Programmable Speaker: it shows alerts and plays sounds based on circuit network signals. It can be used to make simple songs.&lt;br /&gt;
* Train Stop can output the contents of the stopped train&#039;s cargo.&lt;br /&gt;
* Train Stop can be disabled using the circuit network. Trains will skip disabled Train Stops, allowing simple train control.&lt;br /&gt;
* Mining Drills can be turned on and off using the circuit network. They can also output the remaining expected resources.&lt;br /&gt;
* Pumpjacks can be turned on and off using the circuit network. They can also output the current oil mining rate.&lt;br /&gt;
* Added Modulo, Power, Left Bit Shift, Right Bit Shift, Bitwise AND, Bitwise OR and Bitwise XOR to the Arithmetic Combinator.&lt;br /&gt;
* Added additional operators to the Decider Combinator and Circuit Conditions.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.13.0|&lt;br /&gt;
* Many machines are now connectible to the circuit network.&lt;br /&gt;
* Wire disconnecting is incorporated into the latency hiding.&lt;br /&gt;
* Wires are now highlighted on entity mouseover.&lt;br /&gt;
* Reduced memory usage of circuit network.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.33|&lt;br /&gt;
* Fluid values are rounded to the closest value instead of rounding down when transmitted to circuit network.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.1|&lt;br /&gt;
* One can copy paste circuit network conditions between the [[inserter]], [[lamp]], [[pump]] and [[offshore pump]]. }}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.0|&lt;br /&gt;
* Improvements to circuit network connection, one can connect multiple wires of the same color to the same entity.&lt;br /&gt;
* The [[lamp]], [[storage tank]], [[pump]] and [[offshore pump]] can be connected to the circuit network.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.10.0|&lt;br /&gt;
* [[Blueprint]]s copy circuit network connections.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.8.3|&lt;br /&gt;
* Circuit network contents info has colored slots to specify the network it represents.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.1.0|&lt;br /&gt;
* Introduced}}&lt;br /&gt;
&lt;br /&gt;
{{C|Logistics{{!}}#Circuit network}} {{C|Circuit network{{!}}#Circuit network}}&lt;/div&gt;</summary>
		<author><name>Metaflame</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Circuit_network&amp;diff=206150</id>
		<title>Circuit network</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Circuit_network&amp;diff=206150"/>
		<updated>2024-11-13T17:18:08Z</updated>

		<summary type="html">&lt;p&gt;Metaflame: Add note about red-green wire separation to radar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
&#039;&#039;&#039;Circuit networks&#039;&#039;&#039; are built using [[Red wire|red]] or [[green wire]], and enable the control of receivers, based upon information broadcast onto the network by connected senders.  Most senders are storage devices, and broadcast their information onto a specific channel, based on the item or liquid the storage device contains.  Each circuit network contains a channel for every kind of item, as well as 48 extra [[#Virtual signals|virtual signals]] which act as user-definable channels. &#039;&amp;lt;span style=&amp;quot;color:#FF6666&amp;quot;&amp;gt;Everything&amp;lt;/span&amp;gt;&#039;, &#039;&amp;lt;span style=&amp;quot;color:#99FF99&amp;quot;&amp;gt;Anything&amp;lt;/span&amp;gt;&#039; and &#039;&amp;lt;span style=&amp;quot;color:#FFFF99&amp;quot;&amp;gt;Each&amp;lt;/span&amp;gt;&#039; are also available wildcards.&lt;br /&gt;
&lt;br /&gt;
[[File:shared_circuit_network.png|thumb|600px|right|Two circuit networks shared over one [[small electric pole]].]]&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Send information ===&lt;br /&gt;
Senders broadcast the amount of items or fluids they contain or other data definable by the player. Each amount is broadcast as a numeric value on a &#039;channel&#039; corresponding to the item.  For example, a Storage Tank containing 1000 Crude Oil will broadcast 1000 on the Crude Oil channel.&lt;br /&gt;
&lt;br /&gt;
The channels are separated from each other, so each network can simultaneously carry a number for each item and fluid in the game, and for each of the extra user-defined channels (digits 0-9, letters A-Z, and 9 different colors). All unused channels have the value zero.&lt;br /&gt;
&lt;br /&gt;
Multiple broadcasts of the same item or fluid are additive: If there are two connected Storage Tanks with 1000 Crude Oil each, the value of the Crude Oil channel within the network will be 2000.&lt;br /&gt;
&lt;br /&gt;
All wires of the same color which are connected together by junctions form a network, i.e. they will pass their signals to each other.  For example, if two red wires are connected to the same combinator input, each wire receives the content from the other.  This can result in feedback if care is not taken; see Feedback (under [[#Combinators|arithmetic combinator]], below) for discussion.&lt;br /&gt;
&lt;br /&gt;
Numbers are in the signed 32 bit integer range, i.e. from -2147483648 to 2147483647 inclusive, and are encoded in [https://en.wikipedia.org/wiki/Two%27s_complement two&#039;s complement representation]. The numbers wrap around on overflow, so e.g. 2147483647 + 10 becomes -2147483639. When entering a number in a combinator it can appear to exceed the 32 bit limit until the GUI is closed, at which point the number will overflow/underflow. [https://forums.factorio.com/58419]&lt;br /&gt;
&lt;br /&gt;
=== Control devices ===&lt;br /&gt;
Receivers can use broadcast information, in most cases to enable/disable the device. They can either compare results between different channels, or compare a channel to a specific value.&lt;br /&gt;
&lt;br /&gt;
Receiving devices sum all signals from each wire connected to them, even red and green wires. For example, if an inserter is connected to a red wire carrying a signal for 20 copper plates and a green wire with 10 copper plates, the input signal set for that receiver will be 30 copper plates.&lt;br /&gt;
&lt;br /&gt;
Multiple wires of the same color will share &amp;amp; sum their signals. For example, 3 chests A, B and C connected in a row (A -&amp;gt; B -&amp;gt; C) with green wire will output the sum of their contents along any green wire connected to any of the chests. However, if a red wire connects chest A to an inserter, that inserter will only be given the contents of A as its input signal.&lt;br /&gt;
&lt;br /&gt;
== Devices ==&lt;br /&gt;
&amp;lt;!-- Todo: need signal icons D, P, V. Probably need to compile all crafting machines and turrets into one word, similar to belts &amp;amp; inserters  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each device that is able to be connected to a circuit network has a [[File:Circuit network panel.png]] icon located in the top right corner of its info pane. Clicking this icon will display the available circuit network options for that device (note: a red or green wire must be connected, otherwise the message &amp;quot;not connected&amp;quot; will display instead). Clicking the [[File:Logistic network panel.png]] icon next to it, the device can be connected to a logistic network if in range of one, which also allows conditions to be set.&lt;br /&gt;
&lt;br /&gt;
Conditions can be set for both circuit (signals of red and green wires are summed) and logistic network, which will together act as a logical AND.&lt;br /&gt;
&lt;br /&gt;
The following devices can be connected to a circuit network:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Icon !! Name !! Possible output signals !! Possible circuit control !! Possible logistic network control&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Transport belt||Transport belts}} || [[Transport belts]] || Transport belts can send their content to the circuit network.&lt;br /&gt;
*&#039;&#039;Pulse mode&#039;&#039;: The signal is sent for only 1 tick when the item enters the belt.&lt;br /&gt;
*&#039;&#039;Hold mode&#039;&#039;: The signal is sent continuously as long as the items are on the belt.&lt;br /&gt;
*&#039;&#039;Hold mode&#039;&#039; (All belts): The signal is sent continuously for all items on the entire transport belt line. The count continues through underground belts, but not splitters or side loading.&lt;br /&gt;
|| Transport belts can be enabled on a condition.&lt;br /&gt;
|| Transport belts can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Inserter||Inserters}} || [[Inserters]] || All inserters can send their held items to the circuit network.&lt;br /&gt;
*&#039;&#039;Pulse mode&#039;&#039;: The signal is sent for only 1 tick when the item is picked up.&lt;br /&gt;
*&#039;&#039;Hold mode&#039;&#039;: The signal is sent continuously as long as the inserter is holding the item.&lt;br /&gt;
|| All inserters can be enabled on a condition. The inserter stack size can also be overridden from a control signal (configurable). Filters can be set on a signal.&lt;br /&gt;
|| All inserters can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Assembling machine}} {{Icon|Oil refinery}} {{Icon|Chemical plant}} {{Icon|Centrifuge}} {{Icon|Crusher|space-age=yes}} {{Icon|Foundry|space-age=yes}} {{Icon|Electromagnetic plant|space-age=yes}} {{Icon|Biochamber|space-age=yes}} {{Icon|Cryogenic plant|space-age=yes}} || [[Assembling machine]]s, [[Oil refinery]], [[Chemical plant]], [[Centrifuge]], [[Crusher]], [[Foundry]], [[Electromagnetic plant]], [[Biochamber]], [[Cryogenic plant]] || All crafting machines can output their contents, output the ingredients of a set recipe, set a given signal when working, and send a given signal when a recipe completes || All crafting machines can enable on a condition and set the recipe based on a signal &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Wooden chest||Chests}} || [[Chests]] || All chests can send their contents to the circuit network. Logistic chests automatically send their contents to the [[logistic network]]. Logistics chests can be enabled on a condition. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Cargo landing pad}} || [[Cargo landing pad]] || The landing pad can send its contents to the circuit network. || The landing pad can have its requests set by the circuit network.{{SA}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Rocket silo}} || [[Rocket silo]] || The rocket silo can output its contents or requests from space platforms.{{SA}} ||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Space platform hub|space-age=yes}} || [[Space platform hub]] || Can output its contents, destination and source planet, current speed, and damage taken&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Read Speed = Signal &#039;&#039;V&#039;&#039;&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Read Damage Taken = Signal &#039;&#039;D&#039;&#039;&lt;br /&gt;
| Platform hub can be sent the contents of the circuit network to use for wait conditions&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Asteroid collector|space-age=yes}} || [[Asteroid collector]] || Can output its contents to the circuit network || Can enable on a condition and set filters on a signal ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Requester chest}} || [[Requester chest]] || Can send its contents to the circuit network. Does &#039;&#039;not&#039;&#039; send its content to the [[logistic network]]. || Its requested items can be set by the circuit network. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Storage tank}} || [[Storage tank]] || The storage tank can send its fluid content to the circuit network. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Gate}} || [[Gate]] || Gates can send a signal to the circuit network.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Player detected = [[File:Signal-G.png|16px]]&lt;br /&gt;
|| Gates can be opened on a condition. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Nuclear reactor}} {{Icon|Heating tower|space-age=yes}} || [[Nuclear reactor]], [[Heating tower]] || The reactor and heating tower can output any fuel to the circuit network and its current temperature&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Read temperature = [[File:Signal-T.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Agricultural tower|space-age=yes}} || [[Agricultural tower]] || Can output any seeds and harvested plants in its inventory || Agricultural tower can be enabled on a condition || Can be enabled on a logistic network condition&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Gun turret}} {{Icon|Laser turret}} {{Icon|Flamethrower turret}} {{Icon|Rocket turret|space-age=yes}} {{Icon|Tesla turret|space-age=yes}} {{Icon|Railgun turret|space-age=yes}} || [[Gun turret]], [[Laser turret]], [[Flamethrower turret]], [[Rocket turret]], [[Tesla turret]], [[Railgun turret]] || Can send their respective ammunition to the circuit network&lt;br /&gt;
* Laser and tesla turrets will not send any signal if this option is selected, due to not using ammo&lt;br /&gt;
|| Can enable, set priorities, and ignore priorities on a condition || Can be enabled on a logistic network condition&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Artillery turret}} || [[Artillery turret]] || Can send its ammunition to the circuit network || Can be enabled on a condition || Can be enabled on a logistic network condition&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Rail signal}} || [[Rail signal]] || Rail signals can send their state to the circuit network.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: [[File:Signal-Red.png|16px]][[File:Signal-Yellow.png|16px]][[File:Signal-Green.png|16px]]&lt;br /&gt;
Note: If red due to circuit network, does NOT output red signal&lt;br /&gt;
|| Rail signals can be set to red on a condition. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Rail chain signal}} || [[Rail chain signal]] || Rail chain signals can send their state to the circuit network.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: [[File:Signal-Red.png|16px]][[File:Signal-Yellow.png|16px]][[File:Signal-Green.png|16px]][[File:Signal-Blue.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Train stop}} || [[Train stop]] || Train stops can send the contents of a stopped train to the circuit network as well as read a unique train identifier code. The amount of trains going to the train stop can be read by the circuit network.&amp;lt;br&amp;gt;When reading the content of a stopped train, fluid amounts are rounded down to the nearest integer, except when the fluid amount is &amp;lt; 1, then it is is rounded to 1. &lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Train Count (en route) = [[File:Signal-C.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Stopped Train ID = [[File:Signal-T.png|16px]]&lt;br /&gt;
|| Train stops can send the contents of the circuit network to the train to use it for wait conditions, as well as enable/disable the stop itself. The maximum amount of trains that can go to the train stop (&amp;quot;train limit&amp;quot;) can be set by the circuit network, as well as the stop priority.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Set Limit = [[File:Signal-L.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Set Priority = Signal &#039;&#039;P&#039;&#039;&lt;br /&gt;
|| Train stops can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Accumulator}} || [[Accumulator]] || It can send its charge level in percent to the circuit network. &lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Charge % = [[File:Signal-A.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Roboport}} || [[Roboport]] || It can send its logistic network contents and/or its robot statistics to the circuit network. The signals used for robot statistics are configurable. &lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Available Logistics Bots = [[File:Signal-X.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Total Logistics Bots = [[File:Signal-Y.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Available Construction Bots = [[File:Signal-Z.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Total Construction Bots = [[File:Signal-T.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Roboports in Network = [[File:Signal-R.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Radar}} || [[Radar]] || Radars will transmit any signals passed into it to all other radars on the same planet.&lt;br /&gt;
Unlike other machine outputs, signals from red and green wires are transmitted separately.&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Display panel}} || [[Display panel]] || || Can display a label and/or custom message on a condition ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Burner mining drill}} || [[Mining drill]]s || All mining drills can send the expected resources, either from the drill itself or from the whole ore patch the drill is on. || Mining drills can be enabled on a condition. || Mining drills can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Pumpjack}} || [[Pumpjack]] || It can output the current oil mining rate. || It can be enabled on a condition. || It can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Power switch}} || [[Power switch]] || || Power switches can connect power networks on a condition. || It can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Programmable speaker}} || [[Programmable speaker]] || || Shows alerts and plays sounds based on circuit network signals. It can be used to make simple tunes.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Lamp}} || [[Lamp]] || || The lamp can be enabled on a condition. &lt;br /&gt;
*&#039;&#039;Color mapping&#039;&#039;: The color is set based on the provided color signals&lt;br /&gt;
*&#039;&#039;Color components&#039;&#039;: The color is set based on the values of incoming red, green, and blue color signals, which should be between 0 and 255&lt;br /&gt;
*&#039;&#039;Packed RGB&#039;&#039;: The color is set based on a single hex encoded RGB color on the white color signal. It should be between 0 and 16777215&lt;br /&gt;
|| The lamp can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Offshore pump}} || [[Offshore pump]] || || The offshore pump can be enabled on a condition. || The offshore pump can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Pump}} || [[Pump]] || || The pump can be enabled on a condition and set its filter on a signal || The pump can be enabled on a logistic network condition.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Physical network structure ==&lt;br /&gt;
A circuit network consists only of those devices connected together with the same color wire. Wire can be strung directly from device to device, or across any intervening power poles. Wire length is limited by its previous connection.&lt;br /&gt;
&lt;br /&gt;
Note that each connected set of wires forms a separate network.  For example, it&#039;s entirely possible to have four red-wire networks and three green-wire networks. If red and green wires happen to touch the same power pole or device, the red and green networks will remain separate and will not link up. However, two red cables or two green cables will link if they touch. Use different colored cables to separate networks in close proximity.&lt;br /&gt;
&lt;br /&gt;
* To connect wires or cables to a power pole, simply click on one entity, then on the base of the power pole.&lt;br /&gt;
* To erase a wire or cable connection, place the same color wire over an existing connection. You don&#039;t get the wire/cable back.&lt;br /&gt;
* To remove &#039;&#039;&#039;all&#039;&#039;&#039; connections from a power pole, shift-click on the pole.  The first shift-click will remove all electrical connections, and the second will remove all red and green wires. You don&#039;t get the wires back.&lt;br /&gt;
* When connecting to a [[arithmetic combinator]] or [[decider combinator]], take care to connect the wire to the correct input or output side. Use &amp;quot;Show details&amp;quot; mode to see the orientation of the combinator.&lt;br /&gt;
* Hovering the mouse cursor over an item will highlight all wires which connect to the item.&lt;br /&gt;
* Hovering the mouse cursor over a power pole which is part of a network will display the signals on its network. Some items like combinators will also display their input and output signals when hovered over.&lt;br /&gt;
&lt;br /&gt;
== Combinators ==&lt;br /&gt;
Combinators can function as both receiving and sending devices and allow more advanced functions to be used on a circuit network.&lt;br /&gt;
&lt;br /&gt;
*The [[constant combinator]] broadcasts up to 20 values on any of the channels for whatever networks it is connected to.  (You cannot currently specify whether a value should be on the red or green channel; if you need different values, use two combinators, one for each color wire.)  You can use any item channel or any of the [[#Virtual signals|virtual signal]] channels.&lt;br /&gt;
**Note that using two of the 20 slots to broadcast values on the &#039;&#039;&#039;same&#039;&#039;&#039; channel is the same as broadcasting the sum of the two values from one slot.&lt;br /&gt;
*The [[arithmetic combinator]] performs arithmetic operations on input values and broadcasts the result to the specified output channel.  The input and output channels can be any item channel or any of the virtual signal channels.&lt;br /&gt;
** Connecting: The arithmetic combinator connects to a red or green network on its &#039;&#039;&#039;input&#039;&#039;&#039; side (the terminals are set into the main body and look like spark plugs) and performs an arithmetic calculation which is broadcast into the specified channel on its &#039;&#039;&#039;output&#039;&#039;&#039; side (the output wires appear to stretch out a bit from the body of the device).&lt;br /&gt;
** Feedback: Note that the input network and the output network &#039;&#039;&#039;are not the same network&#039;&#039;&#039;.  Connecting the output network back to the input network will result in a feedback loop.  For example, adding 1 to the value for copper plates and broadcasting it as copper plates is an action that results in an infinite loop if output is connected back to input.  The value for copper plates will rapidly (but not instantly) shoot upward. (The rate at which it climbs is determined by the current tick rate.) This technique can be combined with decider combinator logic to make electronic clocks, gates, and other systems; see [[Tutorial:Combinator tutorial|Combinator Tutorial]] for advanced techniques.&lt;br /&gt;
** Each:  This combinator can use the &#039;Each&#039; signal for both input and output, in which case &#039;&#039;&#039;all&#039;&#039;&#039; non-zero input channels will have the combinator&#039;s operation performed and broadcast on the output side.  Having Each signals for input and output and using a non-changing operation (like adding zero) is equivalent to having a &#039;one-way&#039; wire; all the information from the input network is copied to the output network, but the reverse is not true.&lt;br /&gt;
**Multi-network: The arithmetic combinator can be joined to both red and green networks on the input side and will sum their inputs.&lt;br /&gt;
*The [[decider combinator]] functions much like an arithmetic combinator, but is designed to compare values. Essentially, it is a conditional. In terms of connecting, feedback, and the Each signal it functions as specified above.  In addition, it can handle the Everything and Anything signals, and performs more complex functions than summing when attached to multiple networks.  See the [[decider combinator]] page for more details on how to use this.&lt;br /&gt;
* The [[selector combinator]] has various functions designed for filtering out and analyzing specific signals from its inputs. It is able to output the largest or smallest signal in a series of inputs, output the stack size of items, count the number of inputs, and output a random input every certain number of game ticks. If [[Space Age]]{{SA}} is enabled, it has three more functions for detecting an item&#039;s rocket capacity, and filtering/transferring [[quality]]{{SA}} grades.&lt;br /&gt;
&lt;br /&gt;
== Virtual signals ==&lt;br /&gt;
[[File:Virtual Signals dialog box.png|thumb|Virtual Signals available for use in the circuit network]]&lt;br /&gt;
Virtual signals are special non-item signals. Other than the three logic signals, virtual signals do not behave differently from item signals.&lt;br /&gt;
&lt;br /&gt;
48 virtual signals can be sent over a network. They include the digits zero through nine, the letters A through Z, a check-mark, dot and info icon, and the colors red, green, blue, yellow, magenta, cyan, white, gray and black.&lt;br /&gt;
&lt;br /&gt;
=== Logic signals ===&lt;br /&gt;
[[File:logic_signals.png|300px|thumb|The icons of the three logic signals]]&lt;br /&gt;
Three of the virtual signals cannot be sent over a network but apply special logic to multiple signals.&lt;br /&gt;
&lt;br /&gt;
==== Everything ====&lt;br /&gt;
&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF6666&amp;quot;&amp;gt;Everything&amp;lt;/span&amp;gt;&#039;&#039; can be used on the left side in conditionals. The condition will be true when the condition is true for each input signal. The condition is also true if there are no signals. This means that the &#039;&#039;everything&#039;&#039; signal behaves as [[:Wikipedia:universal quantification|universal quantification]].&lt;br /&gt;
&lt;br /&gt;
If a signal (rather than a constant number) is used on the right side of the comparison with &#039;&#039;everything&#039;&#039;, it is implicitly excluded from the set of signals that &#039;&#039;everything&#039;&#039; checks, so the signal is not matched against itself. That means it is meaningful test e.g. &#039;&#039;everything&#039;&#039; &amp;gt; &#039;&#039;X&#039;&#039;, without getting a trivially false result on &#039;&#039;X&#039;&#039; &amp;gt; &#039;&#039;X&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The output of a [[decider combinator]] may also use &#039;&#039;everything&#039;&#039;, unless the input is set to &#039;&#039;each&#039;&#039;. When used, the combinator will output signal on every channel with non-zero input as long as the condition is true; the value will either be the input value or 1, depending on the corresponding setting.&lt;br /&gt;
&lt;br /&gt;
==== Anything ====&lt;br /&gt;
&#039;&#039;&amp;lt;span style=&amp;quot;color:#99FF99&amp;quot;&amp;gt;Anything&amp;lt;/span&amp;gt;&#039;&#039; can be used on the left side of conditions. It will be false when there are no inputs. The condition will be true when the condition is true for at least one signal. This means the &#039;&#039;anything&#039;&#039; signal behaves as [[:Wikipedia:existential quantification|existential quantification]].&lt;br /&gt;
&lt;br /&gt;
If a signal (rather than a constant number) is used on the right side of the comparison with &#039;&#039;anything&#039;&#039;, it is implicitly excluded from the set of signals that &#039;&#039;anything&#039;&#039; checks, so the signal is not matched against itself. That means it is meaningful test e.g. &#039;&#039;anything&#039;&#039; &amp;gt;= &#039;&#039;X&#039;&#039;, without getting a trivially true result on &#039;&#039;X&#039;&#039; &amp;gt;= &#039;&#039;X&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
When used in both the input and output of a decider combinator, &#039;&#039;anything&#039;&#039; will return one of the signals that matched.&lt;br /&gt;
&lt;br /&gt;
==== Each ====&lt;br /&gt;
&#039;&#039;&amp;lt;span style=&amp;quot;color:#FFFF99&amp;quot;&amp;gt;Each&amp;lt;/span&amp;gt;&#039;&#039; can only be used in left input side and output of [[decider combinator|decider]] and [[arithmetic combinator|arithmetic]] combinators. The signal can only be used as an output when also used as an input. When used in both the input and output, it makes a combinator perform its action on each input signal individually. The combinator will output the sum of each of the actions if only used in the input.&lt;br /&gt;
&lt;br /&gt;
A combinator using &#039;&#039;each&#039;&#039; is like a stack of combinators with all inputs connected and all outputs connected in parallel. For example, if there are signals &amp;quot;copper&amp;quot; and &amp;quot;iron&amp;quot; present, one combinator would be evaluating conditions for copper, and the other combinator would be evaluating conditions for iron. The different output signals would then be added together on the shared wire.&lt;br /&gt;
&lt;br /&gt;
Unlike &#039;&#039;everything&#039;&#039; and &#039;&#039;anything&#039;&#039; above, if a signal is used on the right hand side of an &#039;&#039;each&#039;&#039; operation, it is NOT implicitly excluded. So if you e.g. have &#039;&#039;each&#039;&#039; * &#039;&#039;X&#039;&#039; then you will also get &#039;&#039;X&#039;&#039; multiplied with itself in the output.&lt;br /&gt;
&lt;br /&gt;
Each as an input will only be processed on signals that have a non-zero value. If you have a [[decider combinator|decider]] condition that inputs and output each, but wants to output only one value for an input signal that passes the condition, it will never output 1 for a signal which has a zero value, even if the condition is one that would be passed for a zero value.&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
*&#039;&#039;&#039;[[Tutorial:Circuit network cookbook]]&#039;&#039;&#039; - &#039;&#039;Example-heavy tutorials; for beginners who want to get to know and use the benefits of the circuit network.&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;[[Tutorial:Combinator tutorial]]&#039;&#039;&#039; - &#039;&#039;Mainly textual and detailed tutorials.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Logistic network ==&lt;br /&gt;
The logistic network used by [[logistic robot]]s is essentially a third network (a wireless one), along with the green and red wired networks. The logistic network is based on coverage by [[roboport]]s.&lt;br /&gt;
&lt;br /&gt;
Some devices can also be connected to the logistic network and enabled based on a condition. If a device has conditions set for circuit and for logistic network, it will become activated if both conditions are true. Devices that can also be controlled with the logistic network:&lt;br /&gt;
* Transport belts&lt;br /&gt;
* Inserters&lt;br /&gt;
* Train stop&lt;br /&gt;
* Mining drills&lt;br /&gt;
* Pumpjack&lt;br /&gt;
* Power switch&lt;br /&gt;
* Lamp&lt;br /&gt;
* Offshore pump&lt;br /&gt;
* Pump&lt;br /&gt;
&lt;br /&gt;
See the [[logistic network]] and [[roboport]] articles for more information.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
{{history|0.15.0|&lt;br /&gt;
* Significantly improved circuit network performance. Up to 25 times less CPU usage and 10% less memory usage.&lt;br /&gt;
* Added the Programmable Speaker: it shows alerts and plays sounds based on circuit network signals. It can be used to make simple songs.&lt;br /&gt;
* Train Stop can output the contents of the stopped train&#039;s cargo.&lt;br /&gt;
* Train Stop can be disabled using the circuit network. Trains will skip disabled Train Stops, allowing simple train control.&lt;br /&gt;
* Mining Drills can be turned on and off using the circuit network. They can also output the remaining expected resources.&lt;br /&gt;
* Pumpjacks can be turned on and off using the circuit network. They can also output the current oil mining rate.&lt;br /&gt;
* Added Modulo, Power, Left Bit Shift, Right Bit Shift, Bitwise AND, Bitwise OR and Bitwise XOR to the Arithmetic Combinator.&lt;br /&gt;
* Added additional operators to the Decider Combinator and Circuit Conditions.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.13.0|&lt;br /&gt;
* Many machines are now connectible to the circuit network.&lt;br /&gt;
* Wire disconnecting is incorporated into the latency hiding.&lt;br /&gt;
* Wires are now highlighted on entity mouseover.&lt;br /&gt;
* Reduced memory usage of circuit network.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.33|&lt;br /&gt;
* Fluid values are rounded to the closest value instead of rounding down when transmitted to circuit network.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.1|&lt;br /&gt;
* One can copy paste circuit network conditions between the [[inserter]], [[lamp]], [[pump]] and [[offshore pump]]. }}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.0|&lt;br /&gt;
* Improvements to circuit network connection, one can connect multiple wires of the same color to the same entity.&lt;br /&gt;
* The [[lamp]], [[storage tank]], [[pump]] and [[offshore pump]] can be connected to the circuit network.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.10.0|&lt;br /&gt;
* [[Blueprint]]s copy circuit network connections.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.8.3|&lt;br /&gt;
* Circuit network contents info has colored slots to specify the network it represents.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.1.0|&lt;br /&gt;
* Introduced}}&lt;br /&gt;
&lt;br /&gt;
{{C|Logistics{{!}}#Circuit network}} {{C|Circuit network{{!}}#Circuit network}}&lt;/div&gt;</summary>
		<author><name>Metaflame</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Display_panel&amp;diff=206093</id>
		<title>Display panel</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Display_panel&amp;diff=206093"/>
		<updated>2024-11-13T03:27:51Z</updated>

		<summary type="html">&lt;p&gt;Metaflame: Reduce image size&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{:Infobox:Display panel}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
The &#039;&#039;&#039;display panel&#039;&#039;&#039; is a [[circuit network]] entity, essentially being a monitor that can display icons and text above the entity. Roughly every single icon in the game can be shown on a display panel, including the [[quality]]{{SA}} of an item. Descriptions can also be added to these entities. With the use of a circuit network, the display panels can also be set up to showcase different images and messages depending on what conditional signals are being passed to or through it.&lt;br /&gt;
&lt;br /&gt;
If a description is included in a display panel, hovering the mouse over it will display all lines of text. There is an option that allows for the first line of a description to always be displayed above the entity even when not selected, if this option is unselected, no text will appear above the entity unless the player hovers their mouse over it. There is a second option that allows the chosen icon and first line of a description to be shown in the minimap.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that, unlike [[Lamp|lamps]] or [[Programmable speaker|speakers]], display panels do not use any power, and do not require electric network coverage at all.&lt;br /&gt;
&lt;br /&gt;
[[File:display_panel_gui.png|300px|GUI of a display panel.]]&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
Besides being able to show static icons and text, display panels can be connected to the circuit network. This allows the player to specify list of simple conditions and display settings. Conditions are evaluated in order, from top to bottom, showing the icon and text of the first one that matches. If none match, the display turns off.&lt;br /&gt;
&lt;br /&gt;
[[File:Factorio display circuit interface.png|400px|GUI of a display panel when connected to the circuit network]]&lt;br /&gt;
&lt;br /&gt;
Conditions and display settings also offer [[Circuit network#Logic signals|logic signals]] as an option. However, only the Anything signal is meaningful as an output icon. Everything and Anything signals work as a left-side condition operand as expected, satisfying the condition same as a [[decider combinator]] would. When used as an output icon, however, Everything and Each always display the logic signal icon itself (asterisk with a red or yellow background). When the Anything logic signal is used for &#039;&#039;both&#039;&#039; the condition and the output icon, it displays the first signal that passes the condition (first based on default sorting order regardless of the signal&#039;s actual value). When Anything is used as the output icon with any other condition, it displays itself (asterisk with a green background).&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
{{History|2.0.7|&lt;br /&gt;
* Introduced.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Circuit network]]&lt;br /&gt;
&lt;br /&gt;
{{LogisticsNav}}&lt;br /&gt;
{{C|Circuit network}}&lt;/div&gt;</summary>
		<author><name>Metaflame</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Display_panel&amp;diff=206092</id>
		<title>Display panel</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Display_panel&amp;diff=206092"/>
		<updated>2024-11-13T03:26:58Z</updated>

		<summary type="html">&lt;p&gt;Metaflame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{:Infobox:Display panel}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
The &#039;&#039;&#039;display panel&#039;&#039;&#039; is a [[circuit network]] entity, essentially being a monitor that can display icons and text above the entity. Roughly every single icon in the game can be shown on a display panel, including the [[quality]]{{SA}} of an item. Descriptions can also be added to these entities. With the use of a circuit network, the display panels can also be set up to showcase different images and messages depending on what conditional signals are being passed to or through it.&lt;br /&gt;
&lt;br /&gt;
If a description is included in a display panel, hovering the mouse over it will display all lines of text. There is an option that allows for the first line of a description to always be displayed above the entity even when not selected, if this option is unselected, no text will appear above the entity unless the player hovers their mouse over it. There is a second option that allows the chosen icon and first line of a description to be shown in the minimap.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that, unlike [[Lamp|lamps]] or [[Programmable speaker|speakers]], display panels do not use any power, and do not require electric network coverage at all.&lt;br /&gt;
&lt;br /&gt;
[[File:display_panel_gui.png|300px|GUI of a display panel.]]&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
Besides being able to show static icons and text, display panels can be connected to the circuit network. This allows the player to specify list of simple conditions and display settings. Conditions are evaluated in order, from top to bottom, showing the icon and text of the first one that matches. If none match, the display turns off.&lt;br /&gt;
&lt;br /&gt;
[[File:Factorio display circuit interface.png|GUI of a display panel when connected to the circuit network]]&lt;br /&gt;
&lt;br /&gt;
Conditions and display settings also offer [[Circuit network#Logic signals|logic signals]] as an option. However, only the Anything signal is meaningful as an output icon. Everything and Anything signals work as a left-side condition operand as expected, satisfying the condition same as a [[decider combinator]] would. When used as an output icon, however, Everything and Each always display the logic signal icon itself (asterisk with a red or yellow background). When the Anything logic signal is used for &#039;&#039;both&#039;&#039; the condition and the output icon, it displays the first signal that passes the condition (first based on default sorting order regardless of the signal&#039;s actual value). When Anything is used as the output icon with any other condition, it displays itself (asterisk with a green background).&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
{{History|2.0.7|&lt;br /&gt;
* Introduced.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Circuit network]]&lt;br /&gt;
&lt;br /&gt;
{{LogisticsNav}}&lt;br /&gt;
{{C|Circuit network}}&lt;/div&gt;</summary>
		<author><name>Metaflame</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Display_panel_circuit_interface.png&amp;diff=206091</id>
		<title>File:Display panel circuit interface.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Display_panel_circuit_interface.png&amp;diff=206091"/>
		<updated>2024-11-13T03:25:17Z</updated>

		<summary type="html">&lt;p&gt;Metaflame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GUI of the display panel when connected to the circuit network, showing four example conditions.&lt;/div&gt;</summary>
		<author><name>Metaflame</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Infobox:Artillery_(research)&amp;diff=204872</id>
		<title>Infobox:Artillery (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Infobox:Artillery_(research)&amp;diff=204872"/>
		<updated>2024-11-04T14:20:06Z</updated>

		<summary type="html">&lt;p&gt;Metaflame: Add Space Age research changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|prototype-type = technology&lt;br /&gt;
|internal-name = artillery&lt;br /&gt;
|category = Technology&lt;br /&gt;
|cost = Time, 30 + Automation science pack, 1 + Logistic science pack, 1 + Military science pack, 1 + Chemical science pack, 1 + Utility science pack, 1&lt;br /&gt;
|cost-multiplier = 2000&lt;br /&gt;
|required-technologies = Concrete + Military 4, 4 + Radar + Tank&lt;br /&gt;
|allows = Artillery shell range + Artillery shell shooting speed&lt;br /&gt;
|changed-by-space-age-mod = yes&lt;br /&gt;
|space-age-cost = Time, 30 + Automation science pack, 1 + Logistic science pack, 1 + Military science pack, 1 + Chemical science pack, 1 + Utility science pack, 1 + Space science pack, 1 + Metallurgic science pack, 1&lt;br /&gt;
|space-age-cost-multiplier = 1500&lt;br /&gt;
|space-age-required-technologies = Military 4, 4 + Radar + Metallurgic science pack&lt;br /&gt;
|space-age-allows = Artillery shell damage + Artillery shell range + Artillery shell shooting speed&lt;br /&gt;
|effects = Artillery shell + Artillery turret + Artillery wagon&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;[[Category:Infobox page]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Metaflame</name></author>
	</entry>
</feed>