<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://stationeers-wiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thoth</id>
	<title>Stationeers Community Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://stationeers-wiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thoth"/>
	<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/Special:Contributions/Thoth"/>
	<updated>2026-04-03T19:26:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Kit_(Grow_Light)&amp;diff=25511</id>
		<title>Kit (Grow Light)</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Kit_(Grow_Light)&amp;diff=25511"/>
		<updated>2026-01-15T01:44:30Z</updated>

		<summary type="html">&lt;p&gt;Thoth: restore the wall-mount lighting diagram&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Items]][[Category:Lights]][[Category:Electronic]]&lt;br /&gt;
{{Itembox&lt;br /&gt;
 | name            = Kit (GrowLight)&lt;br /&gt;
 | image           = [[File:ItemKitGrowLight.png|Kit(GrowLight)]]&lt;br /&gt;
 | stacks          = 10&lt;br /&gt;
 | paintable       = Yes&lt;br /&gt;
 | constructs      = [[Grow Light]]&lt;br /&gt;
 | recipe_machine1 = Electronics Printer&lt;br /&gt;
 | recipe_cost1    = 5g [[Copper]], 5g [[Steel]], 10g [[Electrum]]&lt;br /&gt;
 | prefabhash      = 341030083&lt;br /&gt;
 | prefabname      = ItemKitGrowLight&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Structurebox&lt;br /&gt;
 | name             = Grow Light&lt;br /&gt;
 | image            = [[File:ItemGrowLight.png]]&lt;br /&gt;
 | placed_with_item = [[Kit (Grow Light)]]&lt;br /&gt;
 | power_usage      = 70W&lt;br /&gt;
 | placed_on_grid   = Small Grid&lt;br /&gt;
 | decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
 | item_rec1        = [[Kit (Grow Light)]]&lt;br /&gt;
 | prefab_hash      = -1758710260&lt;br /&gt;
 | prefab_name      = StructureGrowLight&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Provides artificial sunlight to grow crops.&lt;br /&gt;
&lt;br /&gt;
Crops need [[Water]] and sunlight to grow. Without water the plant will wither and die. Without sunlight/UV light it will stop growing, but won&#039;t wither. &lt;br /&gt;
&lt;br /&gt;
[[Guide_(Farming)|Guide (Farming)]] provides additional info on how to setup farming with hydroponic tray.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Illumination pattern==&lt;br /&gt;
&lt;br /&gt;
The Illumination pattern of the Grow Light has changed as of the [[Update v0.2.6085.26682|Respawn Update: Round Robin Community Starts (Update v0.2.6085.26682)]].&lt;br /&gt;
&lt;br /&gt;
Lighting area is not a focused cone but a 8x7 small grid rectangle with the light being projected out 3 small grids from each side of the grow light. &lt;br /&gt;
&lt;br /&gt;
Previous to this update, the lighting area was a 7x6 rectangle centred on the small [[grid]] of the grow light containing the power connection.&lt;br /&gt;
&lt;br /&gt;
Although ceiling mounting is more logical with regard to real plants growing, it is worth noting that floor mounting will provide the same illumination pattern with no downside.&lt;br /&gt;
&lt;br /&gt;
Ceiling mounting grow lights two large grids above planters will not provide adequate light to the planters.&lt;br /&gt;
&lt;br /&gt;
[[File:Stationeers-grow-light-footprint-jan2026.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
Wall-mounted illumination coverage looks like this:&lt;br /&gt;
&lt;br /&gt;
[[File:GrowLight topDown 2024.svg|frameless|wall-mount grow light coverage]]&lt;br /&gt;
&lt;br /&gt;
==Wall Mounting vs Ceiling Mounting==&lt;br /&gt;
Illumination Radius is at its maximum 2-4 &#039;&#039;&#039;&amp;lt;big&amp;gt;small grids&amp;lt;/big&amp;gt;&#039;&#039;&#039; away which coincides with &#039;&#039;&#039;&amp;lt;big&amp;gt;one large grid size&amp;lt;/big&amp;gt;&#039;&#039;&#039;, so ceiling mounting has &#039;&#039;&#039;the best coverage of 41&#039;&#039;&#039;, against 37 of wall mounting.&lt;br /&gt;
However this creates difficulty for [[LArRE]] or [[Harvie]] as those can only be mounted on ceiling. When either is expected to be used, wall mounting is more flexible then ceiling mounting. Note that Harvie requires space to either side of for chutes, so it can only harvest from trays with some separation between them; a Hydroponics LArRE does not have this limitation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
{{Data Network Header}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
{{Data Parameters}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter Name !! Data Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| On || Boolean || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
{{Data Outputs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Output Name !! Data Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| On || Boolean || &lt;br /&gt;
|-&lt;br /&gt;
| Power || Boolean || &lt;br /&gt;
|-&lt;br /&gt;
| PrefabHash || Integer || &lt;br /&gt;
|-&lt;br /&gt;
| RequiredPower || Integer || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=LArRE_Dock_(Hydroponics)&amp;diff=25446</id>
		<title>LArRE Dock (Hydroponics)</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=LArRE_Dock_(Hydroponics)&amp;diff=25446"/>
		<updated>2026-01-06T16:28:21Z</updated>

		<summary type="html">&lt;p&gt;Thoth: fraction of a page for the LArRE hydroponics to hold my recent observations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Slot Variables ==&lt;br /&gt;
&lt;br /&gt;
This LArRE has a special slot 255 which can sample slot variables from a structure (hydroponics tray/device or import/export chute) under the current station.  While some slot variables are documented on LArRE&#039;s in-game stationpedia page, the slot variables for the adjacent device are only documented on the device&#039;s page.  Not that while the [[Hydroponics Tray]] does not have a data connection, the LArRE slot 255 can sample the same Slot Variables from the tray as are documented for the [[Hydroponics Device]].  It is unclear how or if the slot variables for the Fertilizer slot can be accessed via LArRE&#039;s slot 255.&lt;br /&gt;
&lt;br /&gt;
== Plant growth states ==&lt;br /&gt;
&lt;br /&gt;
This LArRE has a special slot 255 which can sample slot variables from a structure (hydroponics tray/device or import/export chute) under the current station.  When designing a MIPS script to operate LArRE, you must understand how those slot variables change as the crops grow.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Slot Variable !! empty !! early !! crops grown !! seed grown !! seed harvested &amp;amp; crops available !! dead&lt;br /&gt;
|-&lt;br /&gt;
| Occupied|| 0 || 1|| 1|| 1|| 1|| 1&lt;br /&gt;
|-&lt;br /&gt;
| Damage|| 0|| 0|| 0|| 0|| 0|| 1&lt;br /&gt;
|-&lt;br /&gt;
| Health|| 0|| 1|| 1|| 1|| 1|| 0&lt;br /&gt;
|-&lt;br /&gt;
| Growth || 0 || 3 || 4 || 6 || 6 || 6&lt;br /&gt;
|-&lt;br /&gt;
| Mature || 0 || 0 || 1 || 1 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
| Seeding || 0 || -1 || -1 || 1 || 0 || -1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Most crops are consumed by harvesting and must be replanted after the last crop is picked by the LArRE.  They transition from growth 6 to 0 when the last crop is harvested.&lt;br /&gt;
&lt;br /&gt;
There are some crops that are &amp;quot;perennial&amp;quot;, where when the last crop is harvested, a plant remains to grow a new set of fruit and seed.  These crops transition from growth 6 to 3 and seeding from 1 to 0 to -1.&lt;br /&gt;
&lt;br /&gt;
Crops that are under stress (temperature, light, or water) for long enough start gaining damage.  If the environment is not fixed before the damage reaches 1.0 the crop is dead and must be cleared from the tray, and a replacement plant installed.&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=LArRE_Dock_(Collector)&amp;diff=25283</id>
		<title>LArRE Dock (Collector)</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=LArRE_Dock_(Collector)&amp;diff=25283"/>
		<updated>2025-12-31T16:53:35Z</updated>

		<summary type="html">&lt;p&gt;Thoth: extremely incomplete start of an article about the LArRE collecor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;The collector LArRE can suck up nearby loose items when its mode is set to inward and eject stored items when its mode is set to outward.  When set to suck up items, the collector LArRE will automatically stop and retract when full.&lt;br /&gt;
Pressing the activate button while the LArRE arm is at its home dock will move the arm off the main rail.  This allows arms on the same rail to pass by.&amp;lt;/q&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;- Stationpedia&#039;&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hints ==&lt;br /&gt;
&lt;br /&gt;
While the stationpedia uses the word &amp;quot;eject&amp;quot;, the stored items will actually just be dropped.  This can be exploited to feed the items into a [[Chute Inlet]], but the LArRE will drop the items faster than the chute will load them.  If you want to be able to absorb all 10 items unloaded by the LArRE an [[SDB Hopper]] is the most reliable choice.&lt;br /&gt;
&lt;br /&gt;
[[File:LArRE collector drop geometry.png|frameless|illustration of how to catch items dropped by LArRE into a chute]]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=File:LArRE_collector_drop_geometry.png&amp;diff=25282</id>
		<title>File:LArRE collector drop geometry.png</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=File:LArRE_collector_drop_geometry.png&amp;diff=25282"/>
		<updated>2025-12-31T16:47:54Z</updated>

		<summary type="html">&lt;p&gt;Thoth: User created page with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=An illustration of the geometry necessary to catch items dropped by a LArRE collector.}}&lt;br /&gt;
|date=2025-12-31&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Thoth|Thoth]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{licensing|generic}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=LArRE&amp;diff=25281</id>
		<title>LArRE</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=LArRE&amp;diff=25281"/>
		<updated>2025-12-31T16:35:34Z</updated>

		<summary type="html">&lt;p&gt;Thoth: mention the specialized variants&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
| name = Kit (LArRE)&lt;br /&gt;
| image = [[File:ItemKitRoboticArm.png]]&lt;br /&gt;
| prefabhash = -1228287398&lt;br /&gt;
| prefabname = ItemKitRoboticArm&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Kits&lt;br /&gt;
| recipe_machine1 = Electronics Printer&lt;br /&gt;
| recipe_cost1 = 10g [[Inconel]], 5g [[Hastelloy]], 15g [[Astroloy]]&lt;br /&gt;
| constructs = [[LArRE |LArRE Dock]]&lt;br /&gt;
}}&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = LArRE Dock&lt;br /&gt;
| image = [[File:StructureRoboticArmDock.png]]&lt;br /&gt;
| prefab_hash = -1818718810&lt;br /&gt;
| prefab_name = StructureRoboticArmDock&lt;br /&gt;
| power_usage = 10W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[LArRE|Kit (LArRE)]]&lt;br /&gt;
| item_rec1 = [[LArRE|Kit (LArRE)]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Superseded ==&lt;br /&gt;
&lt;br /&gt;
While the original LArRE can still be printed from the [[Electronics Printer]] it has been superseded by a number of specialized variations:&lt;br /&gt;
* [[LArRE Dock (Atmos)]]&lt;br /&gt;
* [[LArRE Dock (Bypass)]]&lt;br /&gt;
* [[LArRE Dock (Cargo)]]&lt;br /&gt;
* [[LArRE Dock (Collector)]]&lt;br /&gt;
* [[LArRE Dock (Hydroponics)]]&lt;br /&gt;
Each variant is constructed from its own dedicated kit.  While some variants provide brand new capability, others overlap with the original, but bring enhanced capability.  For instance the original LArRE could interact with hydroponics and import/export chutes, but the hydroponics variant is able to measure the content of a [[Hydroponics Tray]] beneath the arm without having to sample a separate [[Hydroponics Device]], allowing for denser planting.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;The (L)inear (Ar)ticulated (R)ail (E)ntity or LArRE can be used to plant, harvest and fertilize plants in plant trays. It can also grab items from a [[Powered_Chutes#Chute_Import.2FExport_Bin|Chute Export Bin]] and drop them in a [[Powered_Chutes#Chute_Import.2FExport_Bin|Chute Import Bin]]. LArRE can interact with plant trays or chute bins built under a linear rail station or built under its dock.&amp;lt;/q&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;- Stationpedia&#039;&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LArRE is a robotic arm that can interact with [[Powered_Chutes#Chute_Import.2FExport_Bin|powered chute bins]] and [[Hydroponics_Tray|hydroponic trays]] or [[Hydroponics_Device|devices]].&amp;lt;br/&amp;gt; &lt;br /&gt;
Compared to [[Kit_(Harvie)|Harvie]], LArRE can be configured to care for multiple plants and distribute fertilizer. It can also be used to transport items in general.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The dock can be connected on both sides to a network of [[Linear_Rail|linear rails]] to enable LArRE to move horizontally and vertically. [[Linear_Rail#Station|Linear rail stations]] must be positioned so that LArRE can stop and interact with the device below. The network can only be linear (i.e. without intersections). &amp;lt;br/&amp;gt;&lt;br /&gt;
Each station (including the dock) is assigned a number. &amp;lt;br/&amp;gt;&lt;br /&gt;
Stations can be assigned a negative number unless the rail connections make a loop back to the dock. &amp;lt;br/&amp;gt;&lt;br /&gt;
If the network is modified (by removing or adding a rail), LARrE will be teleported to its dock. LARrE is also susceptible to collisions with players and structures. If it is blocked while moving towards its target station, LArRE will stop and flash an error until the path is cleared or the target is changed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Data Network Header}}&lt;br /&gt;
{{Data Parameters|&lt;br /&gt;
{{Data Parameters/row|Power|Boolean|w=0|Can be read to return if the LArRE Dock is correctly powered or not, set via the power system, return 1 if powered and 0 if not|multiple=2|0|Unpowered|1|Powered}}&lt;br /&gt;
{{Data Parameters/row|Error|Boolean|w=0|1 if device is in error state, otherwise 0|multiple=2|0|&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;|1|Error}}&lt;br /&gt;
{{Data Parameters/row|Activate|Integer|Set this to 1 to make LArRE use its claw (either to place or fetch an item)}}&lt;br /&gt;
{{Data Parameters/row|Setting|Integer|Set this to make LArRE move to a station}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the LArRE Dock.|multiple=2|0|Off|1|On}}&lt;br /&gt;
{{Data Parameters/row|RequiredPower|Integer|w=0|Idle operating power quantity, does not necessarily include extra demand power}}&lt;br /&gt;
{{Data Parameters/row|Idle|Integer|w=0|Returns 1 if the LArRE Dock is currently idle (stationary), otherwise 0 (moving).  Use this to detect if it has completed its movement/action.}}&lt;br /&gt;
{{Data Parameters/row|PrefabHash|Integer|w=0|The hash of the structure}}&lt;br /&gt;
{{Data Parameters/row|ReferenceId|Integer|w=0|Unique Reference Identifier for this object}}&lt;br /&gt;
{{Data Parameters/row|Index|Integer|w=0|The current index for the LArRE Dock on the rails.  Can be non-integer.  This usually does not correlate with Setting since it counts non-station rail sections.}}&lt;br /&gt;
{{Data Parameters/row|NameHash|Integer|w=0|Provides the hash value for the name of the object as a 32 bit integer.}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Data Slots ====&lt;br /&gt;
These are all parameters, that can be read with a [[Kit_(Logic_I/O)#Slots_Reader|Slots Reader]]. The outputs are listed in the order a Slots Reader&#039;s &amp;quot;VAR&amp;quot; setting cycles through them.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number || Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Occupied|| &lt;br /&gt;
|-&lt;br /&gt;
| 0 || OccupantHash ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Quantity ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Damage ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Class ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || MaxQuantity ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || PrefabHash ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SortingCLass ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || ReferenceId ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Renamed to LArRE to better align with its non-acronym name in 2024-July-22&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
[https://steamcommunity.com/sharedfiles/filedetails/?id=3447555043 reference Hydro LArRE implementation by lisnaz]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Solar_Logic_Circuits_Guide&amp;diff=25147</id>
		<title>Solar Logic Circuits Guide</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Solar_Logic_Circuits_Guide&amp;diff=25147"/>
		<updated>2025-12-15T20:44:11Z</updated>

		<summary type="html">&lt;p&gt;Thoth: add illustration of duality of solar panel coordinates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials]][[Category:Solar power]]&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
&lt;br /&gt;
Due to the frequency of game updates, all solutions are subject to change and may or may not be functional.&lt;br /&gt;
&lt;br /&gt;
The designs on this page are valid as of v0.2.5906.26015 (2025-09-16)&lt;br /&gt;
&lt;br /&gt;
While this specific Guide calls out the sensor being place in a specific direction (north - 0 degrees), it&#039;s not necessary to orient your sensors to a specific direction.&lt;br /&gt;
If you find your panels don&#039;t point at the sun, you can add either 0, 90, 180 or 270 to the horizontal until they point at the sun. This guide is an attempt &lt;br /&gt;
to simplify the setup by removing an extra math, and memory chip (6 chips instead of 8). &lt;br /&gt;
&lt;br /&gt;
== Geometry Of [[Solar Panel|Solar Panels]] and [[Sensors#Daylight Sensor|Daylight Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
daylight sensor horizontal.png|Geometry of values measured by daylight sensor in horizontal (yaw) mode&lt;br /&gt;
daylight sensor vertical.png|Geometry of values measured by daylight sensor in vertical (pitch) mode&lt;br /&gt;
solar panel yaw-Horizontal setting.png|Effect of setting horizontal rotation of a solar panel&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Solar tracking using Logic Chips ==&lt;br /&gt;
&lt;br /&gt;
=== Six-chip dual-axis tracking ===&lt;br /&gt;
To get a &amp;quot;100%&amp;quot; accurate solar tracker on planets with an offset solar arc, you need to include the Horizontal component to the solar angle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What do you need:&#039;&#039;&#039;&lt;br /&gt;
* [[Kit (Logic I/O)]] x4&lt;br /&gt;
* [[Kit (Logic Processor)]]&lt;br /&gt;
* [[Kit (Logic Memory)]]&lt;br /&gt;
* [[Sensors|Kit (Sensor)]] &amp;gt; [[Sensors#Daylight Sensor|Daylight Sensor]]&lt;br /&gt;
&lt;br /&gt;
Place the Daylight Sensor facing up, &#039;&#039;&#039;with the Data Port facing north (0 degrees).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Horizontal&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Chip&#039;&#039;&#039; !! &#039;&#039;&#039;Chip label&#039;&#039;&#039; !! &#039;&#039;&#039;IN&#039;&#039;&#039; !! &#039;&#039;&#039;VAR&#039;&#039;&#039; !! &#039;&#039;&#039;OUT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Logic Reader || Horizontal Reader || Daylight Sensor || Horizontal || &lt;br /&gt;
|-&lt;br /&gt;
| Batch Writer || Horizontal Writer || Horizontal Reader || Horizontal || Solar Panel&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Vertical&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Chip&#039;&#039;&#039; !! &#039;&#039;&#039;Chip label&#039;&#039;&#039; !! &#039;&#039;&#039;IN&#039;&#039;&#039; !! &#039;&#039;&#039;VAR&#039;&#039;&#039; !! &#039;&#039;&#039;OUT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Logic Reader || Vertical Reader || Daylight Sensor || Vertical || &lt;br /&gt;
|-&lt;br /&gt;
| Batch Writer || Vertical Writer || Vertical Correction Math || Vertical || Solar Panel&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Chip&#039;&#039;&#039; !! &#039;&#039;&#039;Chip label&#039;&#039;&#039; !! &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Logic Memory || Vertical Correction Memory || 90&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Chip&#039;&#039;&#039; !! &#039;&#039;&#039;Chip label&#039;&#039;&#039; !! &#039;&#039;&#039;IN 1&#039;&#039;&#039; !! &#039;&#039;&#039;IN 2&#039;&#039;&#039; !! &#039;&#039;&#039;OUT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Logic Math || Vertical Correction Math || Vertical Reader || Vertical Correction Memory || Add&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:2022-10-02 Two-axis solar tracking.png|Accurate two-axis solar tracking]]&lt;br /&gt;
&lt;br /&gt;
The panels should align themselves to the sun, you make sure to &#039;&#039;&#039;put the Power Port on the panels facing east (east - 90 degrees).&#039;&#039;&#039; If you&#039;ve already built the panels and logic with the Power Port facing west, swapping the direction of the sensor so that its Data Port faces south will allow the setup to work with no additional changes.&lt;br /&gt;
&lt;br /&gt;
== Solar tracking using Integrated Circuits ==&lt;br /&gt;
This is the most powerful way to track the sun, but the implementation might be a bit daunting at first.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What you need:&#039;&#039;&#039;&lt;br /&gt;
* [[Integrated Circuit (IC10)]]&lt;br /&gt;
* [[Kit (IC Housing)]]&lt;br /&gt;
* [[Sensors|Kit (Sensor)]] &amp;gt; [[Sensors#Daylight Sensor|Daylight Sensor]]&lt;br /&gt;
&lt;br /&gt;
And if you don&#039;t already have one set up:&lt;br /&gt;
* [[Kit (Computer)]]&lt;br /&gt;
* [[Motherboard (IC Editor)|IC Editor Motherboard]]&lt;br /&gt;
&lt;br /&gt;
Place the &#039;&#039;&#039;Daylight Sensor&#039;&#039;&#039; facing up, note which direction the Data Port is facing, and which direction the solar panel Power Port is facing. These two directions are needed in the code. The &#039;&#039;&#039;Daylight Sensor&#039;&#039;&#039; is connected to the &#039;&#039;&#039;d0&#039;&#039;&#039; screw, that&#039;s all you need.&lt;br /&gt;
&lt;br /&gt;
A simple code example can be found here: https://stationeering.com/tools/ic/_2FpmwojGnBq&amp;lt;br&amp;gt;&lt;br /&gt;
This code is considered &amp;quot;inefficient&amp;quot; since it&#039;s hard-coded to spam all types of solar panels, even if you don&#039;t have them.&lt;br /&gt;
&lt;br /&gt;
A better code example can be found here: https://stationeering.com/tools/ic/_2FpoBEcd3QK&amp;lt;br&amp;gt;&lt;br /&gt;
It targets the solar-panel types on &#039;&#039;&#039;d2&#039;&#039;&#039; and (optionally) &#039;&#039;&#039;d3&#039;&#039;&#039;, so it&#039;s less spammy. It also has an option for a display (&#039;&#039;&#039;Kit (Console)&#039;&#039;&#039;) on &#039;&#039;&#039;d1&#039;&#039;&#039; that shows the sum of power output from both types of panels&lt;br /&gt;
&lt;br /&gt;
== duality of orientation ==&lt;br /&gt;
&lt;br /&gt;
Due to the coordinate system used by solar panels, it is actually possible to capture peak sunlight using two different (but related) H,V coordinates.&lt;br /&gt;
&lt;br /&gt;
[[File:stationeers-solar-duality.svg|frameless|panels using different control logic to accomplish the same goal]]&lt;br /&gt;
&lt;br /&gt;
This screenshot shows two sets of solar panels, each with its own daylight sensor.  Each sensor is oriented differently to properly match its panel and formulas.  The panel on the right uses panel.horizontal = daysensor.horizontal; panel.vertical = 90-daysensor.vertical; while the panel on the left uses panel.horizontal = daysensor.horizontal; panel.vertical = daysensor.vertical + 90.  They both achieve the same orientation.&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=File:Stationeers-solar-duality.svg&amp;diff=25146</id>
		<title>File:Stationeers-solar-duality.svg</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=File:Stationeers-solar-duality.svg&amp;diff=25146"/>
		<updated>2025-12-15T20:42:17Z</updated>

		<summary type="html">&lt;p&gt;Thoth: User created page with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Illustrates two sets of solar panels using different formulas to mach different daylight sensor orientations.}}&lt;br /&gt;
|date=2025-12-15&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Thoth|Thoth]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{licensing|generic}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Solar_Logic_Circuits_Guide&amp;diff=25145</id>
		<title>Solar Logic Circuits Guide</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Solar_Logic_Circuits_Guide&amp;diff=25145"/>
		<updated>2025-12-15T20:35:35Z</updated>

		<summary type="html">&lt;p&gt;Thoth: remove a diagram that contains obsolete info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials]][[Category:Solar power]]&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
&lt;br /&gt;
Due to the frequency of game updates, all solutions are subject to change and may or may not be functional.&lt;br /&gt;
&lt;br /&gt;
The designs on this page are valid as of v0.2.5906.26015 (2025-09-16)&lt;br /&gt;
&lt;br /&gt;
While this specific Guide calls out the sensor being place in a specific direction (north - 0 degrees), it&#039;s not necessary to orient your sensors to a specific direction.&lt;br /&gt;
If you find your panels don&#039;t point at the sun, you can add either 0, 90, 180 or 270 to the horizontal until they point at the sun. This guide is an attempt &lt;br /&gt;
to simplify the setup by removing an extra math, and memory chip (6 chips instead of 8). &lt;br /&gt;
&lt;br /&gt;
== Geometry Of [[Solar Panel|Solar Panels]] and [[Sensors#Daylight Sensor|Daylight Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
daylight sensor horizontal.png|Geometry of values measured by daylight sensor in horizontal (yaw) mode&lt;br /&gt;
daylight sensor vertical.png|Geometry of values measured by daylight sensor in vertical (pitch) mode&lt;br /&gt;
solar panel yaw-Horizontal setting.png|Effect of setting horizontal rotation of a solar panel&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Solar tracking using Logic Chips ==&lt;br /&gt;
&lt;br /&gt;
=== Six-chip dual-axis tracking ===&lt;br /&gt;
To get a &amp;quot;100%&amp;quot; accurate solar tracker on planets with an offset solar arc, you need to include the Horizontal component to the solar angle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What do you need:&#039;&#039;&#039;&lt;br /&gt;
* [[Kit (Logic I/O)]] x4&lt;br /&gt;
* [[Kit (Logic Processor)]]&lt;br /&gt;
* [[Kit (Logic Memory)]]&lt;br /&gt;
* [[Sensors|Kit (Sensor)]] &amp;gt; [[Sensors#Daylight Sensor|Daylight Sensor]]&lt;br /&gt;
&lt;br /&gt;
Place the Daylight Sensor facing up, &#039;&#039;&#039;with the Data Port facing north (0 degrees).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Horizontal&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Chip&#039;&#039;&#039; !! &#039;&#039;&#039;Chip label&#039;&#039;&#039; !! &#039;&#039;&#039;IN&#039;&#039;&#039; !! &#039;&#039;&#039;VAR&#039;&#039;&#039; !! &#039;&#039;&#039;OUT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Logic Reader || Horizontal Reader || Daylight Sensor || Horizontal || &lt;br /&gt;
|-&lt;br /&gt;
| Batch Writer || Horizontal Writer || Horizontal Reader || Horizontal || Solar Panel&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Vertical&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Chip&#039;&#039;&#039; !! &#039;&#039;&#039;Chip label&#039;&#039;&#039; !! &#039;&#039;&#039;IN&#039;&#039;&#039; !! &#039;&#039;&#039;VAR&#039;&#039;&#039; !! &#039;&#039;&#039;OUT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Logic Reader || Vertical Reader || Daylight Sensor || Vertical || &lt;br /&gt;
|-&lt;br /&gt;
| Batch Writer || Vertical Writer || Vertical Correction Math || Vertical || Solar Panel&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Chip&#039;&#039;&#039; !! &#039;&#039;&#039;Chip label&#039;&#039;&#039; !! &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Logic Memory || Vertical Correction Memory || 90&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Chip&#039;&#039;&#039; !! &#039;&#039;&#039;Chip label&#039;&#039;&#039; !! &#039;&#039;&#039;IN 1&#039;&#039;&#039; !! &#039;&#039;&#039;IN 2&#039;&#039;&#039; !! &#039;&#039;&#039;OUT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Logic Math || Vertical Correction Math || Vertical Reader || Vertical Correction Memory || Add&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:2022-10-02 Two-axis solar tracking.png|Accurate two-axis solar tracking]]&lt;br /&gt;
&lt;br /&gt;
The panels should align themselves to the sun, you make sure to &#039;&#039;&#039;put the Power Port on the panels facing east (east - 90 degrees).&#039;&#039;&#039; If you&#039;ve already built the panels and logic with the Power Port facing west, swapping the direction of the sensor so that its Data Port faces south will allow the setup to work with no additional changes.&lt;br /&gt;
&lt;br /&gt;
== Solar tracking using Integrated Circuits ==&lt;br /&gt;
This is the most powerful way to track the sun, but the implementation might be a bit daunting at first.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What you need:&#039;&#039;&#039;&lt;br /&gt;
* [[Integrated Circuit (IC10)]]&lt;br /&gt;
* [[Kit (IC Housing)]]&lt;br /&gt;
* [[Sensors|Kit (Sensor)]] &amp;gt; [[Sensors#Daylight Sensor|Daylight Sensor]]&lt;br /&gt;
&lt;br /&gt;
And if you don&#039;t already have one set up:&lt;br /&gt;
* [[Kit (Computer)]]&lt;br /&gt;
* [[Motherboard (IC Editor)|IC Editor Motherboard]]&lt;br /&gt;
&lt;br /&gt;
Place the &#039;&#039;&#039;Daylight Sensor&#039;&#039;&#039; facing up, note which direction the Data Port is facing, and which direction the solar panel Power Port is facing. These two directions are needed in the code. The &#039;&#039;&#039;Daylight Sensor&#039;&#039;&#039; is connected to the &#039;&#039;&#039;d0&#039;&#039;&#039; screw, that&#039;s all you need.&lt;br /&gt;
&lt;br /&gt;
A simple code example can be found here: https://stationeering.com/tools/ic/_2FpmwojGnBq&amp;lt;br&amp;gt;&lt;br /&gt;
This code is considered &amp;quot;inefficient&amp;quot; since it&#039;s hard-coded to spam all types of solar panels, even if you don&#039;t have them.&lt;br /&gt;
&lt;br /&gt;
A better code example can be found here: https://stationeering.com/tools/ic/_2FpoBEcd3QK&amp;lt;br&amp;gt;&lt;br /&gt;
It targets the solar-panel types on &#039;&#039;&#039;d2&#039;&#039;&#039; and (optionally) &#039;&#039;&#039;d3&#039;&#039;&#039;, so it&#039;s less spammy. It also has an option for a display (&#039;&#039;&#039;Kit (Console)&#039;&#039;&#039;) on &#039;&#039;&#039;d1&#039;&#039;&#039; that shows the sum of power output from both types of panels&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Thermal_Convection_and_Radiation_Values&amp;diff=25144</id>
		<title>Thermal Convection and Radiation Values</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Thermal_Convection_and_Radiation_Values&amp;diff=25144"/>
		<updated>2025-12-15T17:55:04Z</updated>

		<summary type="html">&lt;p&gt;Thoth: get rid of mistaken |s&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a collection of thermal convection, radiation, and solar heating values for easy comparison to one another.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Pipe Network===&lt;br /&gt;
Note that all equivalent liquid structures have the same values as their gas counterparts, except for the [[Kit (Liquid Radiator)| &#039;&#039;Liquid Pipe Convection Radiator&#039;&#039;]] which is listed separately.&amp;lt;br&amp;gt;&lt;br /&gt;
Insulated tanks, pipes and in-line tanks have zero for all values.&amp;lt;br&amp;gt;&lt;br /&gt;
Solar heating does not seem to apply to pipe-mounted radiators.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pipe Network Structure !! Thermal Convection !! Thermal Radiation !! Solar Heating&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemPipeStraight.png]]&amp;lt;/div&amp;gt; [[Pipes|Pipe]] || 0.005|| &#039;&#039;0.001&#039;&#039;* || 0.05&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemKitPipeRadiator.png]]&amp;lt;/div&amp;gt; [[Pipe Radiator|Pipe Radiator]] || 0.231 || 3.46 || 2.31&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemPipeRadiator.png]]&amp;lt;/div&amp;gt; [[Pipe Radiator|Pipe Convection Radiator]] || 1.05 || 0.79 || 0.105&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemKitPipeRadiatorLiquid.png]]&amp;lt;/div&amp;gt; [[Kit (Liquid Radiator)| &#039;&#039;Liquid Pipe Convection Radiator&#039;&#039;]] || 1.02 || 0.763 || 0.102&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemKitPassiveLargeRadiatorGas.png]]&amp;lt;/div&amp;gt; [[Medium Radiator|Medium Radiator]] || 1.5 || 30 || 15&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemKitPassiveLargeRadiatorGas.png]]&amp;lt;/div&amp;gt; [[Medium Radiator|Medium Convection Radiator]] || 9.38 || 3 || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemKitLargeExtendableRadiator.png]]&amp;lt;/div&amp;gt; [[Large Extendable Radiator]] || 0.736 || 73.6 || &#039;&#039;950 (at 100% efficiency)&#039;&#039;*&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemKitTank.png]]&amp;lt;/div&amp;gt; [[Tank|Small Tank]] || 0.758 || 0.03 || 1.52&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemKitTank.png]]&amp;lt;/div&amp;gt; [[Tank|Large Tank]] || 4.24 || 0.17 || 8.49&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:StructureInLineTankGas.png]]&amp;lt;/div&amp;gt; [[In-Line Tank Gas]] || 0.025 || 0.001 || 0.25&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:StructureInLineTankSmallGas.png]]&amp;lt;/div&amp;gt; [[In-Line Tank Small Gas]] || 0.015 || 0.001|| 0.152&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; &#039;&#039;Not listed in stationpedia, approximated value&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Items===&lt;br /&gt;
Note that [[Gas Tank MKII]] and liquid variant are insulated, with zeros for all values&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item!! Thermal Convection !! Thermal Radiation !! Solar Heating&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemGasCanisterEmpty.png]]&amp;lt;/div&amp;gt;[[Gas Canister]] || 0.04 || 0.04 || 0.081&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemLiquidCanisterEmpty.png]]&amp;lt;/div&amp;gt;[[Liquid Canister]] || 0.041|| 0.041 || 0.082&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemGasCanisterSmart.png]]&amp;lt;/div&amp;gt;[[Gas Canister (Smart)]] || 0.081 || 0.081 || 0.081&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemLiquidCanisterSmart.png]]&amp;lt;/div&amp;gt;[[Liquid Canister (Smart)]] || 0.084 || 0.084 || 0.084&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:DynamicGasCanisterEmpty.png]]&amp;lt;/div&amp;gt;[[Portable Gas Tank]] || 0.129 || 0.129 || 0.515&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;[[Portable Liquid Tank]] || 0.129 || 0.129 || 0.515&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Devices===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device!! Thermal Convection !! Thermal Radiation !! Solar Heating&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:Furnace.jpg]]&amp;lt;/div&amp;gt;[[Furnace]] || 0.816 || 0.816 || 4.08&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:StructureAdvancedFurnace.png]]&amp;lt;/div&amp;gt;[[Advanced Furnace]] || 1.35 || 1.35 || 1.35&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:H2 Combustor.jpg]]&amp;lt;/div&amp;gt;[[H2 Combustor]] || 0.506 || 0.506 || 0.506&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:Electrolyzer front.png]]&amp;lt;/div&amp;gt;[[Electrolyzer]] || 0.526 || 0.526 || 0.526&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:Evaporation-chamber-icon.png]]&amp;lt;/div&amp;gt;[[Evaporation Chamber]] || 0.007 || || 0.747&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:Condensation-chamber.png]]&amp;lt;/div&amp;gt;[[Condensation Chamber]] || 0.007 || || 0.742&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemHydroponicTray.png]]&amp;lt;/div&amp;gt;[[Hydroponics Tray]] || 0.014|| 0.001 || 0.145&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemHydroponicTray.png]]&amp;lt;/div&amp;gt;[[Hydroponics Device]] || 0.146 || 0.146 || 0.146&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;small&amp;gt; &#039;&#039;Blanks not listed in stationpedia, assumed to be zero&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Suits===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Suit!! Thermal Convection !! Thermal Radiation !! Solar Heating&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemSpaceHelmet.png]]&amp;lt;/div&amp;gt; [[Space Helmet]] || || || 1.26&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemEvaSuit.png]]&amp;lt;/div&amp;gt; [[EVA Suit]] || 0.205 || 0.205 || 8.19&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemHardsuitHelmet.png]]&amp;lt;/div&amp;gt; [[Hardsuit Helmet]] || || || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemHardSuit.png]]&amp;lt;/div&amp;gt; [[Hardsuit]] || 0.062 || 0.062 || 6.23&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;[[HARM Helmet]] || || ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;[[HARM Suit]] || || 0.04 || 0.159&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; [[Emergency EVA Helmet]]||  ||  || 1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemEmergencyEvaSuit.png]]&amp;lt;/div&amp;gt; [[Emergency EVA Suit]] || 0.132 || 0.132 || 0.662&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;small&amp;gt; &#039;&#039;Blanks not listed in stationpedia, assumed to be zero&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=external links=&lt;br /&gt;
&lt;br /&gt;
* [https://discord.com/channels/276525882049429515/395912153795788803/1393151312983621703 Discord post containing formulas for radiation and convection ]&lt;br /&gt;
* [https://discord.com/channels/276525882049429515/395912153795788803/1398761976477384755 Discord post containing formulas for counterflow heat exchanger]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Thermal_Convection_and_Radiation_Values&amp;diff=25143</id>
		<title>Thermal Convection and Radiation Values</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Thermal_Convection_and_Radiation_Values&amp;diff=25143"/>
		<updated>2025-12-15T17:50:34Z</updated>

		<summary type="html">&lt;p&gt;Thoth: Add some links to discord posts about convection and radiation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a collection of thermal convection, radiation, and solar heating values for easy comparison to one another.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Pipe Network===&lt;br /&gt;
Note that all equivalent liquid structures have the same values as their gas counterparts, except for the [[Kit (Liquid Radiator)| &#039;&#039;Liquid Pipe Convection Radiator&#039;&#039;]] which is listed separately.&amp;lt;br&amp;gt;&lt;br /&gt;
Insulated tanks, pipes and in-line tanks have zero for all values.&amp;lt;br&amp;gt;&lt;br /&gt;
Solar heating does not seem to apply to pipe-mounted radiators.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pipe Network Structure !! Thermal Convection !! Thermal Radiation !! Solar Heating&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemPipeStraight.png]]&amp;lt;/div&amp;gt; [[Pipes|Pipe]] || 0.005|| &#039;&#039;0.001&#039;&#039;* || 0.05&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemKitPipeRadiator.png]]&amp;lt;/div&amp;gt; [[Pipe Radiator|Pipe Radiator]] || 0.231 || 3.46 || 2.31&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemPipeRadiator.png]]&amp;lt;/div&amp;gt; [[Pipe Radiator|Pipe Convection Radiator]] || 1.05 || 0.79 || 0.105&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemKitPipeRadiatorLiquid.png]]&amp;lt;/div&amp;gt; [[Kit (Liquid Radiator)| &#039;&#039;Liquid Pipe Convection Radiator&#039;&#039;]] || 1.02 || 0.763 || 0.102&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemKitPassiveLargeRadiatorGas.png]]&amp;lt;/div&amp;gt; [[Medium Radiator|Medium Radiator]] || 1.5 || 30 || 15&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemKitPassiveLargeRadiatorGas.png]]&amp;lt;/div&amp;gt; [[Medium Radiator|Medium Convection Radiator]] || 9.38 || 3 || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemKitLargeExtendableRadiator.png]]&amp;lt;/div&amp;gt; [[Large Extendable Radiator]] || 0.736 || 73.6 || &#039;&#039;950 (at 100% efficiency)&#039;&#039;*&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemKitTank.png]]&amp;lt;/div&amp;gt; [[Tank|Small Tank]] || 0.758 || 0.03 || 1.52&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemKitTank.png]]&amp;lt;/div&amp;gt; [[Tank|Large Tank]] || 4.24 || 0.17 || 8.49&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:StructureInLineTankGas.png]]&amp;lt;/div&amp;gt; [[In-Line Tank Gas]] || 0.025 || 0.001 || 0.25&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:StructureInLineTankSmallGas.png]]&amp;lt;/div&amp;gt; [[In-Line Tank Small Gas]] || 0.015 || 0.001|| 0.152&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; &#039;&#039;Not listed in stationpedia, approximated value&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Items===&lt;br /&gt;
Note that [[Gas Tank MKII]] and liquid variant are insulated, with zeros for all values&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Item!! Thermal Convection !! Thermal Radiation !! Solar Heating&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemGasCanisterEmpty.png]]&amp;lt;/div&amp;gt;[[Gas Canister]] || 0.04 || 0.04 || 0.081&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemLiquidCanisterEmpty.png]]&amp;lt;/div&amp;gt;[[Liquid Canister]] || 0.041|| 0.041 || 0.082&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemGasCanisterSmart.png]]&amp;lt;/div&amp;gt;[[Gas Canister (Smart)]] || 0.081 || 0.081 || 0.081&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemLiquidCanisterSmart.png]]&amp;lt;/div&amp;gt;[[Liquid Canister (Smart)]] || 0.084 || 0.084 || 0.084&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:DynamicGasCanisterEmpty.png]]&amp;lt;/div&amp;gt;[[Portable Gas Tank]] || 0.129 || 0.129 || 0.515&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;[[Portable Liquid Tank]] || 0.129 || 0.129 || 0.515&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Devices===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device!! Thermal Convection !! Thermal Radiation !! Solar Heating&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:Furnace.jpg]]&amp;lt;/div&amp;gt;[[Furnace]] || 0.816 || 0.816 || 4.08&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:StructureAdvancedFurnace.png]]&amp;lt;/div&amp;gt;[[Advanced Furnace]] || 1.35 || 1.35 || 1.35&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:H2 Combustor.jpg]]&amp;lt;/div&amp;gt;[[H2 Combustor]] || 0.506 || 0.506 || 0.506&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:Electrolyzer front.png]]&amp;lt;/div&amp;gt;[[Electrolyzer]] || 0.526 || 0.526 || 0.526&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:Evaporation-chamber-icon.png]]&amp;lt;/div&amp;gt;[[Evaporation Chamber]] || 0.007 || || 0.747&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:Condensation-chamber.png]]&amp;lt;/div&amp;gt;[[Condensation Chamber]] || 0.007 || || 0.742&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemHydroponicTray.png]]&amp;lt;/div&amp;gt;[[Hydroponics Tray]] || 0.014|| 0.001 || 0.145&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemHydroponicTray.png]]&amp;lt;/div&amp;gt;[[Hydroponics Device]] || 0.146 || 0.146 || 0.146&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;small&amp;gt; &#039;&#039;Blanks not listed in stationpedia, assumed to be zero&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Suits===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Suit!! Thermal Convection !! Thermal Radiation !! Solar Heating&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemSpaceHelmet.png]]&amp;lt;/div&amp;gt; [[Space Helmet]] || || || 1.26&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemEvaSuit.png]]&amp;lt;/div&amp;gt; [[EVA Suit]] || 0.205 || 0.205 || 8.19&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemHardsuitHelmet.png]]&amp;lt;/div&amp;gt; [[Hardsuit Helmet]] || || || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemHardSuit.png]]&amp;lt;/div&amp;gt; [[Hardsuit]] || 0.062 || 0.062 || 6.23&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;[[HARM Helmet]] || || ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;[[HARM Suit]] || || 0.04 || 0.159&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; [[Emergency EVA Helmet]]||  ||  || 1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div class=&amp;quot;stationeers-icon&amp;quot;&amp;gt;[[image:ItemEmergencyEvaSuit.png]]&amp;lt;/div&amp;gt; [[Emergency EVA Suit]] || 0.132 || 0.132 || 0.662&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;small&amp;gt; &#039;&#039;Blanks not listed in stationpedia, assumed to be zero&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=external links=&lt;br /&gt;
&lt;br /&gt;
* [https://discord.com/channels/276525882049429515/395912153795788803/1393151312983621703| Discord post containing formulas for radiation and convection ]&lt;br /&gt;
* [https://discord.com/channels/276525882049429515/395912153795788803/1398761976477384755| Discord post containing formulas for counterflow heat exchanger]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Gas_condensation&amp;diff=25053</id>
		<title>Gas condensation</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Gas_condensation&amp;diff=25053"/>
		<updated>2025-12-12T02:21:13Z</updated>

		<summary type="html">&lt;p&gt;Thoth: add some implementation details regarding cybernetics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While gas condensing into liquid is a problem that can lead to burst pipes and system failure, it can also be used to transfer energy between atmospheres.&lt;br /&gt;
&lt;br /&gt;
Liquid [[Volatiles]], [[Oxygen]], and [[Nitrous Oxide]] are useful in [[Rocketry]].  Liquid [[Nitrogen]] is useful with [[Cryotube]]s to resurrect incapacitated players.&lt;br /&gt;
&lt;br /&gt;
While there are devices like [[Condensation Valve]] , [[Expansion Valve]], [[Pressurant Valve]], and [[Purge Valve]], the real workhorses are the [[Evaporation Chamber]] and [[Condensation Chamber]] built from the [[Kit (Phase Change Device)]].&lt;br /&gt;
&lt;br /&gt;
== Mars example ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mars condensation schematic.svg|frameless|Mars condensation schematic]]&lt;br /&gt;
&lt;br /&gt;
This diagrams oversimplifies a few things.  The condensers can fill the liquid pipes to bursting under some transient conditions.&lt;br /&gt;
* it is necessary to set the pollutant condenser to 3150-600*(VolumeOfLiquid/Volume) kPa[http://www.purplefrog.com/~thoth/stationeers-cookbook/condenser-pollutant-limiter.html].  This will tune the condenser to match the consumption of the gang of pollutant evaporators.&lt;br /&gt;
* It is necessary to set the gang of volatiles condensers to 4400-2000(VolumeOfLiquid/Volume) kPa[http://www.purplefrog.com/~thoth/stationeers-cookbook/condenser-volatiles-limiter.html].  This will tune the condensers to match the consumption of the volatiles evaporator.&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Evaporation_Chamber&amp;diff=25051</id>
		<title>Evaporation Chamber</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Evaporation_Chamber&amp;diff=25051"/>
		<updated>2025-12-11T22:25:19Z</updated>

		<summary type="html">&lt;p&gt;Thoth: first draft of the page describing the Evaporation chamber&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Structurebox&lt;br /&gt;
| name = Evapration Chamber&lt;br /&gt;
| image = [[File:Evaporation-chamber-icon.png|frameless]]&lt;br /&gt;
| prefab_hash = -1429782576&lt;br /&gt;
| prefab_name = StructureEvaporationChamber&lt;br /&gt;
| placed_with_item = &#039;&#039;&#039;Kit (Phase Change Device)&#039;&#039;&#039;&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| const_with_tool1 = [[Wrench]]&lt;br /&gt;
| const_with_item1 = 2 x [[Steel Sheets]]&lt;br /&gt;
| const_with_tool2 = [[Welding Torch]]&lt;br /&gt;
| const_with_item2 = 2 x [[Steel Sheets]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The evaporator is a device focused on evaporating gasses by depressurizing them and warming them.&lt;br /&gt;
It includes a liquid input, a gas output, and a gas connection for the heat exchange gas.  There is a setting for the target pressure that controls how much gas will be pumped out of the chamber into the connected pipe.  Any gas that evaporates and brings the pressure above the target will be transferred to the output pipe.  There is also a flush lever that will release all contents into the local atmosphere.&lt;br /&gt;
&lt;br /&gt;
The evaporation chamber fills itself with the liquid input line. If the liquid evaporates, the chamber itself cools down due to the latent heat of condensation and any gasses in excess of the pressure set-point are pumped out via the gas output. The exchange gas connection equalizes the temperature between the chamber and the exchange gas by exchanging energy between the two. If the exchange gas is colder, then the chamber will cool down. &lt;br /&gt;
But almost every use case of the evaporator is for the exchange gas to be warmer than the chamber in order to replace the latent heat of condensation and support ongoing evaporation.&lt;br /&gt;
&lt;br /&gt;
It is often paired with a [[Condensation Chamber]] to transfer heat from one system to another.&lt;br /&gt;
&lt;br /&gt;
When the evaporator is turned off it no longer loads liquid from the input, or transfers excess gas to the output, but the chamber continues to equalize with the exchange gas.  If not properly managed, this can lead to problems, both as the chamber reaches steady state, and again when the chamber is turned back on and pumps out the excess evaporated gas.&lt;br /&gt;
&lt;br /&gt;
In one example, you could feed an evaporator with liquid [[Pollutant]] and set the chamber to 1900kPa.  As the gas evaporates, the latent heat is drawn out of the gas in the chamber, cooling it.  This is usually used to transfer heat from the exchange gas into the chamber.  This can cool the exchange gas to as low as ?180 kelvin? (although the temperature will be different in an active system where the exchange gas is receiving heat from elsewhere).&lt;br /&gt;
&lt;br /&gt;
=Failure modes=&lt;br /&gt;
==Ice==&lt;br /&gt;
It is possible to set the pressure low enough that it cools the gas to the point that it starts to form ice.  For instance, an evaporator full of Pollutant at 600kPa can form ice which can accumulate to burst the pipes on the output side.  This can be prevented if the exchange gas is warm enough to keep the chamber from approaching the freezing point, but it tends to happen when the system is left unattended and processes slow down.  To prevent this, use a pressure setting such that the gas/liquid equilibrium temperature is above the freezing point.&lt;br /&gt;
&lt;br /&gt;
==Output gas over-pressure==&lt;br /&gt;
While unlikely in an active system, it is theoretically possible that the evaporation chamber could pump gas into the output connection that causes pressure to rise until the pipe fails.  This is most likely to happen when part of the greater system is deactivated and gas pipes shift into a new equilibrium.  The easy solution is to use a [[Backpressure Regulator]] to transfer excess gas to storage.&lt;br /&gt;
&lt;br /&gt;
==Exchange gas low pressure==&lt;br /&gt;
Low pressure in the exchange gas connection can limit the speed of heat transfer.  150kPa is a good starting point.&lt;br /&gt;
&lt;br /&gt;
==Exchange gas freezing==&lt;br /&gt;
Make sure that the exchange gas can avoid condensation or freezing should the evaporation chamber achieve equilibrium.&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=File:Evaporation-chamber-icon.png&amp;diff=25050</id>
		<title>File:Evaporation-chamber-icon.png</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=File:Evaporation-chamber-icon.png&amp;diff=25050"/>
		<updated>2025-12-11T22:24:21Z</updated>

		<summary type="html">&lt;p&gt;Thoth: User created page with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=The icon for the Evaporation Chamber in the in-game encyclopedia}}&lt;br /&gt;
|date=2025-12-11&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Thoth|Thoth]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{licensing|generic}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Condensation_Chamber&amp;diff=25049</id>
		<title>Condensation Chamber</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Condensation_Chamber&amp;diff=25049"/>
		<updated>2025-12-11T22:13:04Z</updated>

		<summary type="html">&lt;p&gt;Thoth: include clarification of the heat transfer mechanism suggested by discord, also fill in missing information for the structurebox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Structurebox&lt;br /&gt;
| name = Condensation Chamber&lt;br /&gt;
| image = [[File:Condensation-chamber.png|frameless]]&lt;br /&gt;
| prefab_hash = 1420719315&lt;br /&gt;
| prefab_name = StructureCondensationChamber&lt;br /&gt;
| placed_with_item = &#039;&#039;&#039;Kit (Phase Change Device)&#039;&#039;&#039;&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| const_with_tool1 = [[Wrench]]&lt;br /&gt;
| const_with_item1 = 2 x [[Steel Sheets]]&lt;br /&gt;
| const_with_tool2 = [[Welding Torch]]&lt;br /&gt;
| const_with_item2 = 2 x [[Steel Sheets]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The condenser is a device focused on condensing gasses by pressurizing them and cooling them.&lt;br /&gt;
It includes a gas input, a liquid output, and a gas connection for the heat exchange gas.  There is a setting for the target pressure that controls how much gas will be loaded from the input into the chamber.  There is also a flush lever that will release all contents into the local atmosphere.&lt;br /&gt;
&lt;br /&gt;
==Operation==&lt;br /&gt;
The condensation chamber fills itself with the gas input line to the pressure set-point from the dial. &lt;br /&gt;
If the gasses condense, the chamber itself heats up due to the latent heat of condensation and the liquids leave out the liquid output. &lt;br /&gt;
The exchange gas connection equalizes the temperature between the chamber and the exchange gas by exchanging energy between the two.  &lt;br /&gt;
If the exchange gas is warmer, then the chamber will heat up.&lt;br /&gt;
But almost every use case of the condenser is for the exchange gas to be cooler than the chamber in order to transport the latent heat of condensation away and support ongoing condensation.&lt;br /&gt;
&lt;br /&gt;
It is often paired with an [[Evaporation Chamber]] to transfer heat from one system to another.&lt;br /&gt;
&lt;br /&gt;
When the condenser is turned off it no longer loads gas from the input, or pumps liquid to the output. It continues to equalize with the exchange gas.  If not properly managed, this can lead to problems, both as the chamber reaches steady state, and again when the chamber is turned back on and pumps out the condensed liquid.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
In one example you could feed it with [[Pollutant]] to 4000 KPa and use pressurized Mars atmosphere to cool it.  As the gas condenses the remaining gas absorbs the latent heat of condensation and increases in temperature.  Its temperature is slowly equalized with the temperature of the gas in the exchange connection.  If the gas in the exchange connection is not cooled some other way (using radiators, or by replacing some of it with fresh atmosphere) then eventually the chamber will reach equilibrium with the exchange gas and no more liquid will condense.  Any gas that does condense into liquid is transferred into the connected liquid pipe.&lt;br /&gt;
&lt;br /&gt;
==Failure modes==&lt;br /&gt;
===Burst liquid pipe===&lt;br /&gt;
As liquid is transferred into the attached liquid pipe there is a possibility that the pipe will become so full of liquid that the gas in that pipe is squeezed beyond the pressure limit of the pipe (6MPa) and bursts.  To prevent this, include cybernetics to either turn off the Condenser (good for &amp;quot;closed&amp;quot; liquid output like rocket fuel storage) or adjust its pressure to limit future condensation (good for loops that feed an evaporator) before the pipe becomes too full.&lt;br /&gt;
&lt;br /&gt;
===Exchange gas low pressure===&lt;br /&gt;
Low pressure in the exchange gas connection can limit the speed of heat transfer.  150kPa is a good starting point.&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=File:Condensation-chamber.png&amp;diff=25048</id>
		<title>File:Condensation-chamber.png</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=File:Condensation-chamber.png&amp;diff=25048"/>
		<updated>2025-12-11T22:09:04Z</updated>

		<summary type="html">&lt;p&gt;Thoth: User created page with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=The icon for the condensation chamber from the in-game encyclopedia.}}&lt;br /&gt;
|date=2025-12-11&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Thoth|Thoth]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{licensing|generic}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Condensation_Chamber&amp;diff=25045</id>
		<title>Condensation Chamber</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Condensation_Chamber&amp;diff=25045"/>
		<updated>2025-12-11T18:07:00Z</updated>

		<summary type="html">&lt;p&gt;Thoth: first draft of description of Condensation Chamber&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Structurebox&lt;br /&gt;
| name = Condensation Chamber&lt;br /&gt;
| prefab_hash = ?&lt;br /&gt;
| prefab_name = ?&lt;br /&gt;
| placed_with_item = &#039;&#039;&#039;Kit (Phase Change Device)&#039;&#039;&#039;&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The condenser is a device focused on condensing gasses by pressurizing them and cooling them.&lt;br /&gt;
It includes a gas input, a liquid output, and a gas connection for the heat exchange gas.  There is a setting for the target pressure that controls how much gas will be loaded from the input into the chamber.  There is also a flush lever that will release all contents into the local atmosphere.&lt;br /&gt;
&lt;br /&gt;
It is often paired with an [[Evaporation Chamber]] to transfer heat from one system to another.&lt;br /&gt;
&lt;br /&gt;
When the condenser is turned off it no longer loads gas from the input, or pumps liquid to the output. It continues to equalize with the exchange gas.  If not properly managed, this can lead to problems, both as the chamber reaches steady state, and again when the chamber is turned back on and pumps out the condensed liquid.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
In one example you could feed it with [[Pollutant]] at 4000 KPa and use pressurized Mars atmosphere to cool it.  As the gas condenses the remaining gas absorbs the latent heat of condensation and increases in temperature.  Its temperature is slowly equalized with the temperature of the gas in the exchange connection.  If the gas in the exchange connection is not cooled some other way (using radiators, or by replacing some of it with fresh atmosphere) then eventually the chamber will reach equilibrium with the exchange gas and no more liquid will condense.  Any gas that does condense into liquid is transferred into the connected liquid pipe.&lt;br /&gt;
&lt;br /&gt;
==Failure modes==&lt;br /&gt;
===Burst liquid pipe===&lt;br /&gt;
As liquid is transferred into the attached liquid pipe there is a possibility that the pipe will become so full of liquid that the gas in that pipe is squeezed beyond the pressure limit of the pipe (6MPa) and bursts.  To prevent this, include cybernetics to either turn off the Condenser (good for &amp;quot;closed&amp;quot; liquid output like rocket fuel storage) or adjust its pressure to limit future condensation (good for loops that feed an evaporator) before the pipe becomes too full.&lt;br /&gt;
&lt;br /&gt;
===Exchange gas low pressure===&lt;br /&gt;
Low pressure in the exchange gas connection can limit the speed of heat transfer.  150kPa is a good starting point.&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Gas_condensation&amp;diff=25003</id>
		<title>Gas condensation</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Gas_condensation&amp;diff=25003"/>
		<updated>2025-12-10T19:19:10Z</updated>

		<summary type="html">&lt;p&gt;Thoth: add mention of cryotubes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While gas condensing into liquid is a problem that can lead to burst pipes and system failure, it can also be used to transfer energy between atmospheres.&lt;br /&gt;
&lt;br /&gt;
Liquid [[Volatiles]], [[Oxygen]], and [[Nitrous Oxide]] are useful in [[Rocketry]].  Liquid [[Nitrogen]] is useful with [[Cryotube]]s to resurrect incapacitated players.&lt;br /&gt;
&lt;br /&gt;
While there are devices like [[Condensation Valve]] , [[Expansion Valve]], [[Pressurant Valve]], and [[Purge Valve]], the real workhorses are the [[Evaporation Chamber]] and [[Condensation Chamber]] built from the [[Kit (Phase Change Device)]].&lt;br /&gt;
&lt;br /&gt;
== Mars example ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mars condensation schematic.svg|frameless|Mars condensation schematic]]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Rocket_Engines&amp;diff=25002</id>
		<title>Rocket Engines</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Rocket_Engines&amp;diff=25002"/>
		<updated>2025-12-10T19:13:11Z</updated>

		<summary type="html">&lt;p&gt;Thoth: link to new Gas condensation article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Rocketry]]&lt;br /&gt;
&lt;br /&gt;
Rocket Engines give you their max output in kN with this you can calculate what they can reasonably carry into orbit depending on the planet or moon you are on. Force = Mass * Acceleration. Acceleration is equal to the planet&#039;s gravity, Mass is given in kg per part of the rocket, and Force is kN. If your thrust force listed below is less than the weight of the rocket in kN then you will not even take off. It is better to have a thrust much higher than the weight of the rocket or else you risk running out of fuel on launch and on landing.&lt;br /&gt;
&lt;br /&gt;
[[Gas condensation|Liquid propellants]] bring greater efficiencies. Using Nitrous Oxide as oxidizer provides excessive thrust values. Keep in mind that N2O fuel mix is 1.9375 times heavier at same moles, or 2.15 times heavier at same volume, while thrust boost is around 1.5-1.7. Engine efficiency determines &amp;quot;bonus&amp;quot; thrust multiplier, meaning engine with higher efficiency will give more thrust consuming same amount of fuel. Thus using liquid engines is more favorable if one can cool fuel down, moreover Pressure Fed Engines consume fuel inversely proportional to its temperature. On the other hand if [[Volatiles]] and [[Oxygen]] are in excess (e.g. farm on [[Vulcan]]) is may be much easier to opt for Pressure Fed Gas Engine. It will provide ~40kN at 20°C.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:auto; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
  {| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
    ! rowspan=2 | Name&lt;br /&gt;
    ! rowspan=2 | Base Power Usage&lt;br /&gt;
    ! rowspan=2 | Rocket Mass Contribution&lt;br /&gt;
    ! rowspan=2 | Max Thrust&lt;br /&gt;
    ! colspan=2 | Real Max Thrust&lt;br /&gt;
    ! rowspan=2 | Efficiency&lt;br /&gt;
    ! rowspan=2 | Exhaust Velocity&lt;br /&gt;
    |-&lt;br /&gt;
&lt;br /&gt;
    ! Using O2&lt;br /&gt;
    ! Using N2O&lt;br /&gt;
    |-&lt;br /&gt;
&lt;br /&gt;
    ! &amp;lt;b&amp;gt;[[Pressure Fed Gas Engine]]&amp;lt;/b&amp;gt;&lt;br /&gt;
    | 10W&lt;br /&gt;
    | 500kg&lt;br /&gt;
    | 40,3kN&lt;br /&gt;
    | 61,0kN&lt;br /&gt;
    | 41,9kN&amp;lt;ref&amp;gt;N2O must be much hotter to avoid condensing therefore decreasing pumping rate&amp;lt;/ref&amp;gt;&lt;br /&gt;
    | 96%&lt;br /&gt;
    | 3,86km/s (Isp: 394s)&lt;br /&gt;
    |-&lt;br /&gt;
&lt;br /&gt;
    ! &amp;lt;b&amp;gt;[[Pumped Gas Engine]]&amp;lt;/b&amp;gt;&lt;br /&gt;
    | 200W&lt;br /&gt;
    | 500kg&lt;br /&gt;
    | 16,2kN&lt;br /&gt;
    | 16,5kN&lt;br /&gt;
    | 24,5kN&lt;br /&gt;
    | 100%&lt;br /&gt;
    | 4,02km/s (Isp: 411s)&lt;br /&gt;
    |-&lt;br /&gt;
&lt;br /&gt;
    ! &amp;lt;b&amp;gt;[[Pumped Liquid Engine]]&amp;lt;/b&amp;gt;&lt;br /&gt;
    | 200W&lt;br /&gt;
    | 500kg&lt;br /&gt;
    | 17,6kN&lt;br /&gt;
    | 18,7kN&lt;br /&gt;
    | 31,3kN&lt;br /&gt;
    | 140%&lt;br /&gt;
    | 5,47km/s (Isp: 559s)&lt;br /&gt;
    |-&lt;br /&gt;
&lt;br /&gt;
    ! &amp;lt;b&amp;gt;[[Pressure Fed Liquid Engine]]&amp;lt;/b&amp;gt;&lt;br /&gt;
    | 20W&lt;br /&gt;
    | 500kg&lt;br /&gt;
    | 29,2kN&lt;br /&gt;
    | 43,4kN - 38,1kN&lt;br /&gt;
    | 74,5kN - 61,3kN&lt;br /&gt;
    | 160%&lt;br /&gt;
    | 6,18km/s (Isp: 631s)&lt;br /&gt;
    |-&lt;br /&gt;
&lt;br /&gt;
    ! colspan=8 | &amp;lt;i&amp;gt;Update 0.2.4726.21691 - 18/01/2024&amp;lt;/i&amp;gt; &amp;lt;span class=&amp;quot;right&amp;quot;&amp;gt;[[Rocket_Engines]]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Gas_condensation&amp;diff=25001</id>
		<title>Gas condensation</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Gas_condensation&amp;diff=25001"/>
		<updated>2025-12-10T19:09:18Z</updated>

		<summary type="html">&lt;p&gt;Thoth: starter page for gas condensation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While gas condensing into liquid is a problem that can lead to burst pipes and system failure, it can also be used to transfer energy between atmospheres, and liquid propellant is useful in [[Rocketry]].&lt;br /&gt;
&lt;br /&gt;
While there are devices like [[Condensation Valve]] , [[Expansion Valve]], [[Pressurant Valve]], and [[Purge Valve]], the real workhorses are the [[Evaporation Chamber]] and [[Condensation Chamber]] built from the [[Kit (Phase Change Device)]].&lt;br /&gt;
&lt;br /&gt;
# Mars example&lt;br /&gt;
&lt;br /&gt;
[[File:Mars condensation schematic.svg|frameless|Mars condensation schematic]]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=File:Mars_condensation_schematic.svg&amp;diff=25000</id>
		<title>File:Mars condensation schematic.svg</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=File:Mars_condensation_schematic.svg&amp;diff=25000"/>
		<updated>2025-12-10T19:04:14Z</updated>

		<summary type="html">&lt;p&gt;Thoth: User created page with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=This is a schematic of a gas liquification chain optimized for Mars}}&lt;br /&gt;
|date=2025-08-08&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Thoth|Thoth]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{licensing|generic}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Liquid]]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Cryotube&amp;diff=22873</id>
		<title>Cryotube</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Cryotube&amp;diff=22873"/>
		<updated>2025-06-23T17:42:25Z</updated>

		<summary type="html">&lt;p&gt;Thoth: discuss some practical problems that must be overcome to properly operate the chamber&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
[[Category:Machines]]&lt;br /&gt;
{{Itembox&lt;br /&gt;
 | name        = Kit (Cryotube)&lt;br /&gt;
 | createdwith = [[Hydraulic Pipe Bender]] &#039;&#039;&#039;MK2&#039;&#039;&#039;&lt;br /&gt;
 | cost        = 10g [[Gold]], 10g [[Copper]], 35g [[Steel]], 5g [[Silver]]&lt;br /&gt;
}}&lt;br /&gt;
{{Structurebox&lt;br /&gt;
 | name             = Cryotube&lt;br /&gt;
 | image            = [[File:Cyrotube.jpg|133KBpx|frameless|center|Cyrotube]]&lt;br /&gt;
 | power_usage      = 10W&lt;br /&gt;
 | placed_with_item = [[Kit (Cryotube)]]&lt;br /&gt;
 | placed_on_grid   = Small Grid&lt;br /&gt;
 | decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
 | item_rec1        = [[Kit (Cryotube)]]&lt;br /&gt;
}}&lt;br /&gt;
== Description == &lt;br /&gt;
A Cryotube can heal players and organs as well as revive dead players, the cryotube also functions as a [[sleeper]]; has one gas input, one power input, and one data input.&lt;br /&gt;
&lt;br /&gt;
When opened the cryotube will expel its gas from the tube into the room it is in, it does not appear to backflow.&lt;br /&gt;
&lt;br /&gt;
=== Healing Players ===&lt;br /&gt;
For healing, feed the cryotube any breathable air mix (Pure 02, O2/N2 mix etc.) at room temperature (0-30C). this will heal a player and repair damaged lungs. Be sure to have a system to filter out the C02.&lt;br /&gt;
&lt;br /&gt;
=== Reviving Dead Players ===&lt;br /&gt;
To Revive a player, the cryotube must be fed more than 80Kpa of [[Nitrogen]] at a temperature of less than -150C, other gasses can be included so long as there is at least a partial pressure of 80kpa Nitrogen.&amp;lt;ref&amp;gt;[https://discord.com/channels/276525882049429515/811149668729356350/1138252121377079367 Discord] it&#039;s expecting 80 kPa of N2 at -150C - Risu&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Practical considerations ==&lt;br /&gt;
&lt;br /&gt;
The pipe connection on the unit is for gas pipes.  Avoid conditions that lead to significant build-up of liquid or ice inside the pipe.&lt;br /&gt;
&lt;br /&gt;
The stationeer must remove their pressure suit to get into the cryotube so it should be in a room with a breathable atmosphere.&lt;br /&gt;
&lt;br /&gt;
When the cryotube is opened gas is exchanged with the surrounding atmosphere.  When it is closed gas is exchanged with the connected gas pipe.  Ideally the connected gas supply will be similar to the room gas mix (i.e. 81% N2O, 19% O2 at 100kPa) .  However, since the stationeer will be exhaling CO2 this will end up in the connected gas supply.  When used as a resurrection chamber the CO2 that ends up in the cryogenic gas will freeze, and when too much crystalizes in the pipe, the pipe will fail.&lt;br /&gt;
&lt;br /&gt;
=== Suggestion ===&lt;br /&gt;
&lt;br /&gt;
One strategy for providing cryogenic gas to the chamber is to pressurize a pipe to 101 kPa with a breathable atmosphere (perhaps imported from the room containing the cryotube). Connect that pipe to the heat exchange connection of an [[Evaporation Chamber]] which is supplied with liquid nitrogen and is set for 800 kPa.  This should (when supplied with cold enough liquid nitrogen) stabilize below -150C.  This keeps the cryotube gas separate from the pure liquid nitrogen, and can be scrubbed of problematic gasses using [[Filtration]].&lt;br /&gt;
&lt;br /&gt;
Remember that as the gas in the pipe cools the pressure diminishes, so a [[Pressure Regulator]] may be of use to load more gas from the room.&lt;br /&gt;
&lt;br /&gt;
{{Data Network Header}}&lt;br /&gt;
&lt;br /&gt;
{{Data Parameters}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter Name !! Data Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Open || Boolean || Opens the CryoTube, when set to 1. Closes it, when set to 0.&lt;br /&gt;
|-&lt;br /&gt;
| On || Boolean || Turns the CryoTube on, when set to 1. Turns it off, when set to 0.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Data Outputs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Output Name !! Data Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Power || Boolean || Returns whether the CryoTube is turned on and receives power. (0 for no, 1 for yes)&lt;br /&gt;
|-&lt;br /&gt;
| Open || Boolean || Returns whether the CryoTube is open. (0 for no, 1 for yes)&lt;br /&gt;
|-&lt;br /&gt;
| Error || Boolean || Returns whether the CryoTube is flashing an error. (0 for no, 1 for yes)&lt;br /&gt;
|-&lt;br /&gt;
| On || Boolean || Returns whether the CryoTube is turned on. (0 for no, 1 for yes)&lt;br /&gt;
|-&lt;br /&gt;
| RequiredPower || Integer || Returns the current amount of power, required by the CryoTube, in watts.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References === &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Rocket_Destination_Code_List&amp;diff=22234</id>
		<title>Rocket Destination Code List</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Rocket_Destination_Code_List&amp;diff=22234"/>
		<updated>2024-09-20T16:27:52Z</updated>

		<summary type="html">&lt;p&gt;Thoth: Add Mars&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rocket destination codes in Stationeers are displayed in the Map of of a [[Computer]] with a [[Rocket Control Motherboard]] are displayed as 8 pairs of decimal digits separated by dashes.  For example Prograde Moon Transfer is 00-00-00-00-00-00-02-10 .  The topology of the graph is encoded in the Destination code.  The space map can be considered to have a &amp;quot;root&amp;quot; like Europa Orbit = 00-00-00-00-00-00-00-10 and each destination further away adds a 2-digit number to the left (see Prograde Moon Transfer above).&lt;br /&gt;
&lt;br /&gt;
In the data parameters of the [[Rocket Avionics]] the DestinationCode and CurrentCode are represented as integers without the dashes, and do not need the leading zeros, and do not display the leading zeros in the Rocket panel of the Computer.&lt;br /&gt;
&lt;br /&gt;
= Asteroid Belt =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Destination Code !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 10|| Europa Orbit&lt;br /&gt;
|-&lt;br /&gt;
| 0110|| Io Orbit&lt;br /&gt;
|-&lt;br /&gt;
| 010110 || Tidal Fragments&lt;br /&gt;
|-&lt;br /&gt;
| 020110 || Io Condensate&lt;br /&gt;
|-&lt;br /&gt;
| 0210 || Prograde Moon Transfer&lt;br /&gt;
|-&lt;br /&gt;
| 010210 || Ersa&lt;br /&gt;
|-&lt;br /&gt;
| 020210 || Dia Fragments&lt;br /&gt;
|-&lt;br /&gt;
| 030210 || Retrograde Moon Transfer&lt;br /&gt;
|-&lt;br /&gt;
| 01030210 || Mneme Cluster&lt;br /&gt;
|-&lt;br /&gt;
| 02030210 || Lost Moon&lt;br /&gt;
|-&lt;br /&gt;
| 03030210 || Kore&lt;br /&gt;
|-&lt;br /&gt;
| 0310 || Ganymeded Orbit&lt;br /&gt;
|-&lt;br /&gt;
| 010310 || Ferrous Asteroids&lt;br /&gt;
|-&lt;br /&gt;
| 020310 || Geyser Spouts&lt;br /&gt;
|-&lt;br /&gt;
| 030310 || Callisto Orbit&lt;br /&gt;
|-&lt;br /&gt;
| 4010 || &#039;&#039;&#039;Asteroid Belt&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Mars =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Destination Code !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Mars Orbit&lt;br /&gt;
|-&lt;br /&gt;
| 0116 || Phobos&lt;br /&gt;
|-&lt;br /&gt;
| 010116 || Deimos&lt;br /&gt;
|-&lt;br /&gt;
| 01010116 || Mars Lagrange Transfer&lt;br /&gt;
|-&lt;br /&gt;
| 0101010116 || Mars L4&lt;br /&gt;
|-&lt;br /&gt;
| 010101010116 || Rich Asteroids&lt;br /&gt;
|-&lt;br /&gt;
| 020101010116 || Oxygenated Ice Cluster&lt;br /&gt;
|-&lt;br /&gt;
| 0201010116 || Mars L5&lt;br /&gt;
|-&lt;br /&gt;
| 010201010116 || Hydrogenated Gas Cloud&lt;br /&gt;
|-&lt;br /&gt;
| 020201010116 || Lost Moon Fragments&lt;br /&gt;
|-&lt;br /&gt;
| 02010116 || Ferrous Asteroid Sector&lt;br /&gt;
|-&lt;br /&gt;
| 03010116 || Columnar Asteroids&lt;br /&gt;
|-&lt;br /&gt;
| 020116 || Frozen Vapors&lt;br /&gt;
|-&lt;br /&gt;
| 030116 || Metallic Field&lt;br /&gt;
|-&lt;br /&gt;
| 040116 || Rocky Asteroid&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Rocket_Overview&amp;diff=22233</id>
		<title>Rocket Overview</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Rocket_Overview&amp;diff=22233"/>
		<updated>2024-09-20T15:27:59Z</updated>

		<summary type="html">&lt;p&gt;Thoth: add link to Rocket Destination Code List&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;2023 December patch overhauled the rocket system.  Instances of the old modular rocket disappeared when loading old saves.&lt;br /&gt;
&lt;br /&gt;
The new system is even more modular that the old system.  Under the old system you started with an engine and fuel tanks, and then added mining and storage modules and capped it off with a control nose cone.&lt;br /&gt;
&lt;br /&gt;
The new system still has a vertical stack, but you have to arrange discrete components like fuel tanks, wiring, chutes, and pipes inside a grid within the rocket.&lt;br /&gt;
&lt;br /&gt;
Before you even get started, you will need to make a [[Rocket Manufactory]].&lt;br /&gt;
&lt;br /&gt;
== Building the Base Station ==&lt;br /&gt;
You need a [[Computer]] with a [[Rocket Control Motherboard]] attached to a [[Logic Uplink]] tuned to the [[Logic Rocket Downlink|downlink]] component on the rocket.&lt;br /&gt;
&lt;br /&gt;
A [[Launch Mount]] must be built on a set of 4 ([[Steel Frames|steel]] or [[Iron Frames|iron]]) frames.&lt;br /&gt;
&lt;br /&gt;
Add enough [[Launch Tower]] parts to support umbilicals corresponding to each of your umbilical sockets (Power, Gas|Liquid, Chute). Leave 2 metres between the rocket and the tower so the umbilicals have room. Warning: retract your umbilicals before launching.&lt;br /&gt;
&lt;br /&gt;
== Building the Rocket ==&lt;br /&gt;
&lt;br /&gt;
===Propulsion system===&lt;br /&gt;
* [[Engine Mount]]. This must be built on the Launch Mount.&lt;br /&gt;
* Some kind of engine:  [[Pressure Fed Gas Engine]], [[Pumped Gas Engine]], [[Pressure Fed Liquid Engine]] or [[Pumped Liquid Engine]]&lt;br /&gt;
* One or more [[Fuselage]]s for fuel tanks&lt;br /&gt;
* One or more fuel tanks matching your engine: [[Special:MyLanguage/Kit (Rocket Gas Fuel Tank)|Gas Capsule Tank Small]], [[Special:MyLanguage/Kit (Rocket Gas Fuel Tank)|Gas Capsule Tank Medium]], [[Liquid Capsule Tank Small]] or [[Liquid Capsule Tank Medium]]&lt;br /&gt;
* [[Umbilical Socket (Gas)]] or [[Umbilical Socket (Liquid)]] depending on your engine&lt;br /&gt;
* [[Kit (Pipe)]] or [[Kit (Insulated Pipe)]] for connecting the fuel tanks and engine&lt;br /&gt;
Gas-fuelled rockets use a 2:1 [[Volatiles]]:[[Oxygen]] mixture.  You can fit about 30,000 moles of gas in a medium capsule tank.&lt;br /&gt;
&lt;br /&gt;
===Power payload system===&lt;br /&gt;
* One or more [[Fuselage]]s &lt;br /&gt;
* One or more [[Auxiliary Rocket Battery]] or [[Battery (Medium)]]&lt;br /&gt;
* [[Umbilical Socket (Power)]]&lt;br /&gt;
&lt;br /&gt;
===Scanning payload system===&lt;br /&gt;
In order to map space you will need a rocket with the following:&lt;br /&gt;
* One or more [[Fuselage]]s&lt;br /&gt;
* [[Rocket Scanner]]&lt;br /&gt;
* [[Rocket Scanner Head]] (this is a consumable)&lt;br /&gt;
You do not need to put these on the same rocket as your mining equipment.  Keeping them separate will allow you to map and mine separately.&lt;br /&gt;
&lt;br /&gt;
===Mining payload system===&lt;br /&gt;
* One or more [[Fuselage]]s &lt;br /&gt;
* [[Umbilical Socket (Chute)]]&lt;br /&gt;
* [[Rocket Miner]]&lt;br /&gt;
* One of seven different drill heads for the Rocket Miner: [[Mining-Drill Head (Basic)]], [[Mining-Drill Head (Durable)]], [[Mining-Drill Head (High Speed Ice)]], [[Mining-Drill Head (High Speed Mineral)]], [[Mining-Drill Head (Ice)]], [[Mining-Drill Head (Long Term)]], [[Mining-Drill Head (Mineral)]]. This is a consumable item.&lt;br /&gt;
* One or more [[Cargo Storage (Small)]] or [[Cargo Storage (Medium)]]&lt;br /&gt;
Use [[Chute]]s to connect your miner to the storage and the storage to the umbilical socket.&lt;br /&gt;
&lt;br /&gt;
===Guidance system===&lt;br /&gt;
* [[Logic Rocket Downlink]]&lt;br /&gt;
* [[Rocket Avionics]] (must be built or the rocket will not even show up on the computer)&lt;br /&gt;
&lt;br /&gt;
===Rocket top===&lt;br /&gt;
* [[Fairing]] on the top&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
Important: You do not have to build all of the systems from scratch and/or separately: you can combine parts of the payload and guidance system into the same Fuselages to optimize and keep the rocket as small as possible.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Access Bridge]]&lt;br /&gt;
* [[Rocket Celestial Tracker]]&lt;br /&gt;
* [[Rocket Circuit Housing]]&lt;br /&gt;
* [[Transformer Small (Rocket)]]&lt;br /&gt;
* [[Rocket Destination Code List]]&lt;br /&gt;
* [http://www.purplefrog.com/~thoth/art/stationeers-rocket-engine/rocket-landing.html MIPS-based throttle control for rocket landing]&lt;br /&gt;
&lt;br /&gt;
[[File:Stationeers-space-map.png|thumb|an example of the space map in the rocket control interface]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rocketry]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Rocket_Destination_Code_List&amp;diff=22232</id>
		<title>Rocket Destination Code List</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Rocket_Destination_Code_List&amp;diff=22232"/>
		<updated>2024-09-20T15:27:34Z</updated>

		<summary type="html">&lt;p&gt;Thoth: Created page with &amp;quot;Rocket destination codes in Stationeers are displayed in the Map of of a Computer with a Rocket Control Motherboard are displayed as 8 pairs of decimal digits separate...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rocket destination codes in Stationeers are displayed in the Map of of a [[Computer]] with a [[Rocket Control Motherboard]] are displayed as 8 pairs of decimal digits separated by dashes.  For example Prograde Moon Transfer is 00-00-00-00-00-00-02-10 .  The topology of the graph is encoded in the Destination code.  The space map can be considered to have a &amp;quot;root&amp;quot; like Europa Orbit = 00-00-00-00-00-00-00-10 and each destination further away adds a 2-digit number to the left (see Prograde Moon Transfer above).&lt;br /&gt;
&lt;br /&gt;
In the data parameters of the [[Rocket Avionics]] the DestinationCode and CurrentCode are represented as integers without the dashes, and do not need the leading zeros, and do not display the leading zeros in the Rocket panel of the Computer.&lt;br /&gt;
&lt;br /&gt;
= Asteroid Belt =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Destination Code !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 10|| Europa Orbit&lt;br /&gt;
|-&lt;br /&gt;
| 0110|| Io Orbit&lt;br /&gt;
|-&lt;br /&gt;
| 010110 || Tidal Fragments&lt;br /&gt;
|-&lt;br /&gt;
| 020110 || Io Condensate&lt;br /&gt;
|-&lt;br /&gt;
| 0210 || Prograde Moon Transfer&lt;br /&gt;
|-&lt;br /&gt;
| 010210 || Ersa&lt;br /&gt;
|-&lt;br /&gt;
| 020210 || Dia Fragments&lt;br /&gt;
|-&lt;br /&gt;
| 030210 || Retrograde Moon Transfer&lt;br /&gt;
|-&lt;br /&gt;
| 01030210 || Mneme Cluster&lt;br /&gt;
|-&lt;br /&gt;
| 02030210 || Lost Moon&lt;br /&gt;
|-&lt;br /&gt;
| 03030210 || Kore&lt;br /&gt;
|-&lt;br /&gt;
| 0310 || Ganymeded Orbit&lt;br /&gt;
|-&lt;br /&gt;
| 010310 || Ferrous Asteroids&lt;br /&gt;
|-&lt;br /&gt;
| 020310 || Geyser Spouts&lt;br /&gt;
|-&lt;br /&gt;
| 030310 || Callisto Orbit&lt;br /&gt;
|-&lt;br /&gt;
| 4010 || &#039;&#039;&#039;Asteroid Belt&#039;&#039;&#039;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Rocket_Overview&amp;diff=22231</id>
		<title>Rocket Overview</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Rocket_Overview&amp;diff=22231"/>
		<updated>2024-09-20T15:11:09Z</updated>

		<summary type="html">&lt;p&gt;Thoth: reference my external math paper about rocket landing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;2023 December patch overhauled the rocket system.  Instances of the old modular rocket disappeared when loading old saves.&lt;br /&gt;
&lt;br /&gt;
The new system is even more modular that the old system.  Under the old system you started with an engine and fuel tanks, and then added mining and storage modules and capped it off with a control nose cone.&lt;br /&gt;
&lt;br /&gt;
The new system still has a vertical stack, but you have to arrange discrete components like fuel tanks, wiring, chutes, and pipes inside a grid within the rocket.&lt;br /&gt;
&lt;br /&gt;
Before you even get started, you will need to make a [[Rocket Manufactory]].&lt;br /&gt;
&lt;br /&gt;
== Building the Base Station ==&lt;br /&gt;
You need a [[Computer]] with a [[Rocket Control Motherboard]] attached to a [[Logic Uplink]] tuned to the [[Logic Rocket Downlink|downlink]] component on the rocket.&lt;br /&gt;
&lt;br /&gt;
A [[Launch Mount]] must be built on a set of 4 ([[Steel Frames|steel]] or [[Iron Frames|iron]]) frames.&lt;br /&gt;
&lt;br /&gt;
Add enough [[Launch Tower]] parts to support umbilicals corresponding to each of your umbilical sockets (Power, Gas|Liquid, Chute). Leave 2 metres between the rocket and the tower so the umbilicals have room. Warning: retract your umbilicals before launching.&lt;br /&gt;
&lt;br /&gt;
== Building the Rocket ==&lt;br /&gt;
&lt;br /&gt;
===Propulsion system===&lt;br /&gt;
* [[Engine Mount]]. This must be built on the Launch Mount.&lt;br /&gt;
* Some kind of engine:  [[Pressure Fed Gas Engine]], [[Pumped Gas Engine]], [[Pressure Fed Liquid Engine]] or [[Pumped Liquid Engine]]&lt;br /&gt;
* One or more [[Fuselage]]s for fuel tanks&lt;br /&gt;
* One or more fuel tanks matching your engine: [[Special:MyLanguage/Kit (Rocket Gas Fuel Tank)|Gas Capsule Tank Small]], [[Special:MyLanguage/Kit (Rocket Gas Fuel Tank)|Gas Capsule Tank Medium]], [[Liquid Capsule Tank Small]] or [[Liquid Capsule Tank Medium]]&lt;br /&gt;
* [[Umbilical Socket (Gas)]] or [[Umbilical Socket (Liquid)]] depending on your engine&lt;br /&gt;
* [[Kit (Pipe)]] or [[Kit (Insulated Pipe)]] for connecting the fuel tanks and engine&lt;br /&gt;
Gas-fuelled rockets use a 2:1 [[Volatiles]]:[[Oxygen]] mixture.  You can fit about 30,000 moles of gas in a medium capsule tank.&lt;br /&gt;
&lt;br /&gt;
===Power payload system===&lt;br /&gt;
* One or more [[Fuselage]]s &lt;br /&gt;
* One or more [[Auxiliary Rocket Battery]] or [[Battery (Medium)]]&lt;br /&gt;
* [[Umbilical Socket (Power)]]&lt;br /&gt;
&lt;br /&gt;
===Scanning payload system===&lt;br /&gt;
In order to map space you will need a rocket with the following:&lt;br /&gt;
* One or more [[Fuselage]]s&lt;br /&gt;
* [[Rocket Scanner]]&lt;br /&gt;
* [[Rocket Scanner Head]] (this is a consumable)&lt;br /&gt;
You do not need to put these on the same rocket as your mining equipment.  Keeping them separate will allow you to map and mine separately.&lt;br /&gt;
&lt;br /&gt;
===Mining payload system===&lt;br /&gt;
* One or more [[Fuselage]]s &lt;br /&gt;
* [[Umbilical Socket (Chute)]]&lt;br /&gt;
* [[Rocket Miner]]&lt;br /&gt;
* One of seven different drill heads for the Rocket Miner: [[Mining-Drill Head (Basic)]], [[Mining-Drill Head (Durable)]], [[Mining-Drill Head (High Speed Ice)]], [[Mining-Drill Head (High Speed Mineral)]], [[Mining-Drill Head (Ice)]], [[Mining-Drill Head (Long Term)]], [[Mining-Drill Head (Mineral)]]. This is a consumable item.&lt;br /&gt;
* One or more [[Cargo Storage (Small)]] or [[Cargo Storage (Medium)]]&lt;br /&gt;
Use [[Chute]]s to connect your miner to the storage and the storage to the umbilical socket.&lt;br /&gt;
&lt;br /&gt;
===Guidance system===&lt;br /&gt;
* [[Logic Rocket Downlink]]&lt;br /&gt;
* [[Rocket Avionics]] (must be built or the rocket will not even show up on the computer)&lt;br /&gt;
&lt;br /&gt;
===Rocket top===&lt;br /&gt;
* [[Fairing]] on the top&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
Important: You do not have to build all of the systems from scratch and/or separately: you can combine parts of the payload and guidance system into the same Fuselages to optimize and keep the rocket as small as possible.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Access Bridge]]&lt;br /&gt;
* [[Rocket Celestial Tracker]]&lt;br /&gt;
* [[Rocket Circuit Housing]]&lt;br /&gt;
* [[Transformer Small (Rocket)]]&lt;br /&gt;
* [http://www.purplefrog.com/~thoth/art/stationeers-rocket-engine/rocket-landing.html MIPS-based throttle control for rocket landing]&lt;br /&gt;
&lt;br /&gt;
[[File:Stationeers-space-map.png|thumb|an example of the space map in the rocket control interface]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rocketry]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Rocket_Avionics&amp;diff=22218</id>
		<title>Rocket Avionics</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Rocket_Avionics&amp;diff=22218"/>
		<updated>2024-09-13T02:20:58Z</updated>

		<summary type="html">&lt;p&gt;Thoth: document data network parameters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Structurebox&lt;br /&gt;
| name             = Rocket Avionics&lt;br /&gt;
| image            = [[File:StructureRocketAvionics.png]]&lt;br /&gt;
| other            = &lt;br /&gt;
| power_usage      = 10W&lt;br /&gt;
| burst_pressure   = &lt;br /&gt;
| prefab_hash      = 808389066&lt;br /&gt;
| prefab_name      = StructureRocketAvionics&lt;br /&gt;
| placed_with_item = [[Kit (Avionics)]]&lt;br /&gt;
| placed_on_grid   = &lt;br /&gt;
| stage_image1     = &lt;br /&gt;
| const_with_tool1 = [[Screwdriver]]&lt;br /&gt;
| const_with_item1 = 2 x [[Electronic Parts]]&lt;br /&gt;
| decon_with_tool1 = &lt;br /&gt;
| item_rec1        = &lt;br /&gt;
| stage_image2     = &lt;br /&gt;
| const_with_tool2 = [[Welding Torch]]&lt;br /&gt;
| const_with_item2 = 4 x [[Steel Sheets]]&lt;br /&gt;
| decon_with_tool2 = &lt;br /&gt;
| item_rec2        = &lt;br /&gt;
}}&lt;br /&gt;
==Description==&lt;br /&gt;
Must be built on the rocket to show up on the base station computer.&lt;br /&gt;
&lt;br /&gt;
=== Data network parameters ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! Parameter Name&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Data Type&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Value&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Size&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Richness&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Density&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CurrentCode&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
| The current location code of the rocket&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
! Sites&lt;br /&gt;
| integer&lt;br /&gt;
| &lt;br /&gt;
| The number of mining sites adjacent to this map location. Will be -1 if there are none to Discover.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ChartedNavPoints&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NavPoints&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
| a count of adjacent nav points&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Survey&lt;br /&gt;
| float&lt;br /&gt;
| 0-1&lt;br /&gt;
| Represents the scanning progress for a location with harvestable resources.  Will be -1 if there are none to Survey.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Chart&lt;br /&gt;
| float&lt;br /&gt;
| 0-1&lt;br /&gt;
| Represents the scanning progress for a location with adjacent primary locations (like a planet, moon, or lagrange transfer point).  It will cycle between 0 and 1 for each nav point.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Discover&lt;br /&gt;
| float&lt;br /&gt;
| 0-1&lt;br /&gt;
| Represents the scanning progress for a location adjacent to harvestable resources (cloud of gas or cluster or rocks)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|RatioPollutedWater&lt;br /&gt;
|-&lt;br /&gt;
| RatioLiquidHydrogen&lt;br /&gt;
|-&lt;br /&gt;
| Apex&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|ReEntryAltitude&lt;br /&gt;
|-&lt;br /&gt;
| FlightControlRule&lt;br /&gt;
|-&lt;br /&gt;
| BurnTimeREmaining&lt;br /&gt;
|-&lt;br /&gt;
| TimeToDestination&lt;br /&gt;
|-&lt;br /&gt;
| ThrustToWeight&lt;br /&gt;
|-&lt;br /&gt;
| Weight&lt;br /&gt;
|-&lt;br /&gt;
| Thrust&lt;br /&gt;
|-&lt;br /&gt;
| DryMass&lt;br /&gt;
|-&lt;br /&gt;
| Mass&lt;br /&gt;
|-&lt;br /&gt;
| AutoShutoff&lt;br /&gt;
|-&lt;br /&gt;
| ReferenceId&lt;br /&gt;
|-&lt;br /&gt;
| Acceleration&lt;br /&gt;
|-&lt;br /&gt;
| DestinationCode&lt;br /&gt;
|-&lt;br /&gt;
| Progress&lt;br /&gt;
|-&lt;br /&gt;
| PrefabHash&lt;br /&gt;
|-&lt;br /&gt;
| VelocityRelativeY&lt;br /&gt;
|-&lt;br /&gt;
| TotalMoles&lt;br /&gt;
|-&lt;br /&gt;
| RequiredPower&lt;br /&gt;
|&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| On&lt;br /&gt;
|-&lt;br /&gt;
| Quantity&lt;br /&gt;
|&lt;br /&gt;
| -1&lt;br /&gt;
|-&lt;br /&gt;
| Reagents&lt;br /&gt;
|-&lt;br /&gt;
| Temperature&lt;br /&gt;
|-&lt;br /&gt;
| Error&lt;br /&gt;
|-&lt;br /&gt;
! Mode&lt;br /&gt;
| integer&lt;br /&gt;
| &lt;br /&gt;
| 1 = Idle (not scanning, whether stationary or in transit); 2 = Mine; 3 = Survey;  4 = Discover; 5 = Chart&lt;br /&gt;
|-&lt;br /&gt;
| Power&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | On&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Boolean&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0&lt;br /&gt;
| Turns the device off.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 1&lt;br /&gt;
| Turns the device on.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | &amp;lt;i&amp;gt;Update 0.2.4726.21691 - 19/01/2024&amp;lt;/i&amp;gt; &amp;lt;span class=&amp;quot;right&amp;quot;&amp;gt;[[Pumped_Liquid_Engine/Data Network|/Data_Network]]&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Rocket Overview]]&lt;br /&gt;
[[Category:Rocketry]]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Pumped_Liquid_Engine&amp;diff=22217</id>
		<title>Pumped Liquid Engine</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Pumped_Liquid_Engine&amp;diff=22217"/>
		<updated>2024-09-12T22:13:36Z</updated>

		<summary type="html">&lt;p&gt;Thoth: add annotated screenshot of liquid fuel ports&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox | decat = yes&lt;br /&gt;
 | title = Kit (Pumped Liquid Engine)&lt;br /&gt;
 | image = [[File:ItemKitPumpedLiquidEngine.png]]&lt;br /&gt;
 | header1 = Fabrication&lt;br /&gt;
   {{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Created with&lt;br /&gt;
    |  data1 = [[Rocket_Manufactory|Rocket Manufactory (Tier One)]]&lt;br /&gt;
    | label2 = Cost&lt;br /&gt;
    |  data2 = 60000 [[Energy]], 15g [[Ingot_(Steel)|Steel]], 5g [[Ingot_(Electrum)|Electrum]], 10g [[Ingot_(Constantan)|Constantan]]&lt;br /&gt;
   }}&lt;br /&gt;
 | header2 = Temperature&lt;br /&gt;
   {{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Flashpoint&lt;br /&gt;
    |  data1 = 373K (100°C)&lt;br /&gt;
    | label2 = Autoignition&lt;br /&gt;
    |  data2 = 573K (300°C)&lt;br /&gt;
   }}&lt;br /&gt;
 | header3 = Other properties&lt;br /&gt;
   {{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Paintable&lt;br /&gt;
    |  data1 = Yes&lt;br /&gt;
    | label2 = Stack Size&lt;br /&gt;
    |  data2 = 1&lt;br /&gt;
   }}&lt;br /&gt;
 | header4 = Prefabs&lt;br /&gt;
   {{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Prefab Hash&lt;br /&gt;
    |  data1 = 1921918951&lt;br /&gt;
    | label2 = Prefab Name&lt;br /&gt;
    |  data2 = ItemKitPumpedLiquidEngine&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox | decat = yes&lt;br /&gt;
 | title = Pumped Liquid Engine&lt;br /&gt;
 | image = [[File:StructurePumpedLiquidEngine.png]]&lt;br /&gt;
 | header1 = Operation&lt;br /&gt;
   {{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label10 = Base Power Usage&lt;br /&gt;
    |  data10 = 200W&lt;br /&gt;
    | label11 = Rocket Mass Contribution&lt;br /&gt;
    |  data11 = 500kg&lt;br /&gt;
    | label12 = Max Thrust&lt;br /&gt;
    |  data12 = 17,6kN&lt;br /&gt;
    | label13 = Efficiency&lt;br /&gt;
    |  data13 = 140%&lt;br /&gt;
    | label14 = Exhaust Velocity&lt;br /&gt;
    |  data14 = 5,47km/s (Isp: 559s)&lt;br /&gt;
   }}&lt;br /&gt;
 | header2 = Contruction&lt;br /&gt;
   {{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label20 = Total cost&lt;br /&gt;
    |  data20 = 2,5g [[Ingot_(Iron)|Iron]], 17g [[Ingot_(Steel)|Steel]], 5g [[Ingot_(Electrum)|Electrum]], 10g [[Ingot_(Constantan)|Constantan]]&lt;br /&gt;
    | label21 = Constructed from&lt;br /&gt;
    |  data21 = Kit (Pumped Liquid Engine)&lt;br /&gt;
    | label22 = Placed on&lt;br /&gt;
    |  data22 = &lt;br /&gt;
    | label23 = Size&lt;br /&gt;
    |  data23 = &lt;br /&gt;
   }}&lt;br /&gt;
 | header4 = Other properties&lt;br /&gt;
   {{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label40 = Paintable&lt;br /&gt;
    |  data40 = Yes&lt;br /&gt;
   }}&lt;br /&gt;
 | header5 = Prefabs&lt;br /&gt;
   {{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label50 = Prefab Hash&lt;br /&gt;
    |  data50 = -23091440019&lt;br /&gt;
    | label51 = Prefab Name&lt;br /&gt;
    |  data51 = StructurePumpedLiquidEngine&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:auto; overflow:auto; border-radius:10px; background-color:white;&amp;quot;&amp;gt;&amp;lt;p style=&amp;quot;margin:5px 0px 5px 10px;&amp;quot;&amp;gt;&amp;lt;i&amp;gt;&amp;quot;Liquid propellants bring greater efficiencies with [[Pumped Liquid Engine]]. Two inputs are provided so Stationeers can seperate their fuels, the Setting variable controls the mixing ratio of the inputs. The engine is designed to run on [[Volatiles|Liquid Volatiles]] and [[Oxygen|Liquid Oxygen]], some Stationeers have reported excessive thrust values by switching to [[Nitrous_Oxide|Liquid Nitrous Oxide]].&amp;quot;&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;- Stationpedia&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comparison ==&lt;br /&gt;
{{:Rocket_Engines}}&lt;br /&gt;
&lt;br /&gt;
== Data Network Properties ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-datanetworkproperties&amp;quot; style=&amp;quot;width:auto; overflow:auto; text-indent:10px; border: 2px solid #253C60; border-radius:10px;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Click here to see/hide all the &amp;lt;span style=&amp;quot;color:#E57125;&amp;quot;&amp;gt;data network properties&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-datanetworkproperties&amp;quot;&amp;gt;&amp;lt;br&amp;gt;{{:Pumped_Liquid_Engine/Data_Network}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plumbing ==&lt;br /&gt;
&lt;br /&gt;
The most straightforward way to store fuel is to fill one tank with volatiles, and the other with oxidizer.  In order to make the gasses match the display on the rocket control computer, the ingredients must be connected to the correct port on the rocket engine.&lt;br /&gt;
&lt;br /&gt;
[[File:Rocket-engine-pumped-liquid.png|The two liquid ports on a rocket engine|400px]]&lt;br /&gt;
&lt;br /&gt;
== Build States ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-buildstates&amp;quot; style=&amp;quot;width:auto; overflow:auto; text-indent:10px; border: 2px solid #253C60; border-radius:10px;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Click here to see/hide all the &amp;lt;span style=&amp;quot;color:#E57125;&amp;quot;&amp;gt;build states&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-buildstates&amp;quot;&amp;gt;&amp;lt;br&amp;gt;{{:Pumped_Liquid_Engine/Build_States}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
[[Category:Items]]&lt;br /&gt;
[[Category:Kits]]&lt;br /&gt;
[[Category:Rocketry]]&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=File:Rocket-engine-pumped-liquid.png&amp;diff=22216</id>
		<title>File:Rocket-engine-pumped-liquid.png</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=File:Rocket-engine-pumped-liquid.png&amp;diff=22216"/>
		<updated>2024-09-12T22:11:59Z</updated>

		<summary type="html">&lt;p&gt;Thoth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;rocket engine with the two liquid propellant connections labelled&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Pumped_Liquid_Engine/Data_Network&amp;diff=22215</id>
		<title>Pumped Liquid Engine/Data Network</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Pumped_Liquid_Engine/Data_Network&amp;diff=22215"/>
		<updated>2024-09-12T22:04:41Z</updated>

		<summary type="html">&lt;p&gt;Thoth: document Setting and Ratio&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:auto; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
=== Input Data (Write) ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! Parameter Name&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Data Type&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Value&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | On&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Boolean&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0&lt;br /&gt;
| Turns the device off.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 1&lt;br /&gt;
| Turns the device on.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Setting&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| A variable setting that can be read or written, depending on the device.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Throttle&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| Increases the rate at which the machine workes (range: 0-100)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | &amp;lt;i&amp;gt;Update 0.2.4726.21691 - 19/01/2024&amp;lt;/i&amp;gt; &amp;lt;span class=&amp;quot;right&amp;quot;&amp;gt;[[Pumped_Liquid_Engine/Data Network|/Data_Network]]&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Output Data (Read) ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! Parameter Name&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Data Type&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Value&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Power&lt;br /&gt;
| Boolean&lt;br /&gt;
| &lt;br /&gt;
| Can be read to return if the device is correctly powered or not, set cia the power system, return 1 if powered and 0 if not.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Error&lt;br /&gt;
| Boolean&lt;br /&gt;
| &lt;br /&gt;
| 1 if device is in error state, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Pressure&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| The current pressure reading of the device.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Temperature&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| The current temperature reading of the device.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Setting&lt;br /&gt;
| float&lt;br /&gt;
| 70&lt;br /&gt;
| A writable value to control the mixing Ratio percentage.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! RatioOxygen&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| The ratio of [[Oxygen]] in device atmosphere.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! RatioCarbonDioxide&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| The ratio of [[Carbon Dioxide]] in device atmosphere.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! RatioNitrogen&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| The ratio of [[Nitrogen]] in device atmosphere.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! RatioPollutant&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| The ratio of [[Pollutant]] in device atmosphere.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! RatioVolatiles&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| The ratio of [[Volatiles]] in device atmosphere.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! RatioVolatiles&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| The ratio of water in device atmosphere.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Maximum&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| Maximum setting of the device.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Ratio&lt;br /&gt;
| float&lt;br /&gt;
| Setting/100.0&lt;br /&gt;
| read-only version of the Setting that converts from the percentage to a 0-1 fraction.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Ratio&lt;br /&gt;
| Boolean&lt;br /&gt;
| &lt;br /&gt;
| The current state of the device, 0 for off, 1 for on.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! RequiredPower&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| Idle operating power quantity, does not nevessarily include extra demand power.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! TotalMoles&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| Returns the total moles of the device.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! RatioNitrousOxide&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| The ratio of [[Nitrous Oxide]] in device atmosphere.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! PrefabHash&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| The hash of the structure.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Combustion&lt;br /&gt;
| Boolean&lt;br /&gt;
| &lt;br /&gt;
| The assess atmosphere is on fire. Returns 1 if atmosphere is on fire, 0 if not.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Throttle&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| Increases the rate at which the machie works (range: 0-100)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! ReferenceId&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| Unique Reference Identifier for this object.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! PassedMoles&lt;br /&gt;
| ???&lt;br /&gt;
| &lt;br /&gt;
| The number of moles that passed through this device on the previous simulation tick.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | &amp;lt;i&amp;gt;Update 0.2.4726.21691 - 19/01/2024&amp;lt;/i&amp;gt; &amp;lt;span class=&amp;quot;right&amp;quot;&amp;gt;[[Pumped_Liquid_Engine/Data Network|/Data_Network]]&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Advanced_Composter&amp;diff=22213</id>
		<title>Advanced Composter</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Advanced_Composter&amp;diff=22213"/>
		<updated>2024-09-11T17:10:44Z</updated>

		<summary type="html">&lt;p&gt;Thoth: rewrite the recipes according to experimental results with latest release.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Taken from Stationeers Stationpedia... &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&amp;quot;the advanced composter creates fertilizer out of organic matter.&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;It accepts food, decayed food, or biomass. It requires water and power to operate, accelerating the natural composting process.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;When processing, it releases Nitrogen and Volatiles, as well as a small amount of heat.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Fertilizer is produced at a 1:3 ratio of fertilizer to ingredients. The fertilizer&#039;s effects on plants will vary depending on the respective proportions of its ingredients.&amp;quot;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! INGREDIENTS !! EFFECT&lt;br /&gt;
|-&lt;br /&gt;
| Food || Increases Yield up to 2x&lt;br /&gt;
|-&lt;br /&gt;
| [[Decayed food]] || Increases Growth Speed up to 2x&lt;br /&gt;
|-&lt;br /&gt;
| [[Biomass]] || Increases Growth Cycles before the Fertilizer runs out, up to 5x&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Usage:&lt;br /&gt;
* Connect a [[Water|H2O]] pipe with at least 20 mol H2O&lt;br /&gt;
* Connect power&lt;br /&gt;
* Insert at least 3 ingredients into the input slot on the side&lt;br /&gt;
* Turn on the On switch, it will grind the ingredients&lt;br /&gt;
* Point at the panel and it will tell you how many are ready for processing.  You need at least 3 to produce 1 fertilizer&lt;br /&gt;
* Press the Activate button, and it will start processing, including outputting H2 and N2&lt;br /&gt;
* When done processing, a fertilizer will be ejected from the output slot&lt;br /&gt;
More information:&lt;br /&gt;
* Constructed from the [[Kit (Advanced Composter)]] which can be produced in the [[Electronics Printer Mk. II]] (Tier Two)&lt;br /&gt;
&lt;br /&gt;
== Recipes ==&lt;br /&gt;
&lt;br /&gt;
* 3 [[Fern]] or 3 [[Biomass]] or 3 [[Decayed food]]&lt;br /&gt;
* ~20 moles of [[Water]]&lt;br /&gt;
&lt;br /&gt;
produces&lt;br /&gt;
&lt;br /&gt;
* 1 [[Fertilizer]]&lt;br /&gt;
* ~49 moles [[Nitrogen]] (at 45&amp;amp;deg;C)&lt;br /&gt;
* ~49 moles [[Volatiles]]&lt;br /&gt;
&lt;br /&gt;
The exact moles consumed or produced is slightly variable.&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Kit_(Grow_Light)&amp;diff=22159</id>
		<title>Kit (Grow Light)</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Kit_(Grow_Light)&amp;diff=22159"/>
		<updated>2024-09-04T18:38:08Z</updated>

		<summary type="html">&lt;p&gt;Thoth: fix mistake in illumination pattern&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Items]][[Category:Lights]]&lt;br /&gt;
{{Itembox&lt;br /&gt;
 | name        = Kit (GrowLight)&lt;br /&gt;
 | image       = [[File:ItemKitGrowLight.png|Kit(GrowLight)]]&lt;br /&gt;
 | createdwith = [[Electronics Printer]]&lt;br /&gt;
 | cost        = 5g [[Copper]], 5g [[Steel]], 10g [[Electrum]]&lt;br /&gt;
}}&lt;br /&gt;
{{Structurebox&lt;br /&gt;
 | name             = Grow Light&lt;br /&gt;
 &lt;br /&gt;
 | image            = [[File:ItemGrowLight.png]]&lt;br /&gt;
 | placed_with_item = [[Kit (Grow Light)]]&lt;br /&gt;
 | power_usage      = 70W&lt;br /&gt;
 | placed_on_grid   = Small Grid&lt;br /&gt;
 | decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
 | item_rec1        = [[Kit (Grow Light)]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Provides artificial sunlight to grow crops.&lt;br /&gt;
&lt;br /&gt;
Crops need [[Water]] and sunlight to grow. Without water the plant will wither and die. Without sunlight/UV light it will stop growing, but won&#039;t wither. &lt;br /&gt;
&lt;br /&gt;
[[Guide_(Farming)|Guide (Farming)]] provides additional info on how to setup farming with hydroponic tray.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Illumination pattern==&lt;br /&gt;
Lighting area is not a focused cone but a 7x6 rectangle.&lt;br /&gt;
&lt;br /&gt;
[[File:GrowLight topDown 2024.svg|frameless|wall-mount grow light coverage]]&lt;br /&gt;
&lt;br /&gt;
==Wall Mounting vs Ceiling Mounting==&lt;br /&gt;
Illumination Radius is at its maximum 2-4 &#039;&#039;&#039;&amp;lt;big&amp;gt;small grids&amp;lt;/big&amp;gt;&#039;&#039;&#039; away which coincides with &#039;&#039;&#039;&amp;lt;big&amp;gt;one large grid size&amp;lt;/big&amp;gt;&#039;&#039;&#039;, so ceiling mounting has &#039;&#039;&#039;the best coverage of 41&#039;&#039;&#039;, against 37 of wall mounting.&lt;br /&gt;
However this creates difficulty for [[Harvie]] as that can only be mounted on ceiling. Harvie also requires additional space for chutes on either side, so farming plots need to be two rows apart, negating the density benefit of ceiling mounting. &lt;br /&gt;
&lt;br /&gt;
So when [[Harvie]] is expected, wall mounting is more flexible then ceiling mounting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
{{Data Network Header}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
{{Data Parameters}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter Name !! Data Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| On || Boolean || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
{{Data Outputs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Output Name !! Data Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| On || Boolean || &lt;br /&gt;
|-&lt;br /&gt;
| Power || Boolean || &lt;br /&gt;
|-&lt;br /&gt;
| PrefabHash || Integer || &lt;br /&gt;
|-&lt;br /&gt;
| RequiredPower || Integer || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=File:GrowLight_topDown_2024.svg&amp;diff=22158</id>
		<title>File:GrowLight topDown 2024.svg</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=File:GrowLight_topDown_2024.svg&amp;diff=22158"/>
		<updated>2024-09-04T18:37:10Z</updated>

		<summary type="html">&lt;p&gt;Thoth: Thoth uploaded a new version of File:GrowLight topDown 2024.svg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=a diagram of grow light coverage using wall-mount}}&lt;br /&gt;
|date=2024-09-04&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Thoth|Thoth]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{licensing|generic}}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Kit_(Grow_Light)&amp;diff=22157</id>
		<title>Kit (Grow Light)</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Kit_(Grow_Light)&amp;diff=22157"/>
		<updated>2024-09-04T18:24:34Z</updated>

		<summary type="html">&lt;p&gt;Thoth: revise grow light coverage diagram&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Items]][[Category:Lights]]&lt;br /&gt;
{{Itembox&lt;br /&gt;
 | name        = Kit (GrowLight)&lt;br /&gt;
 | image       = [[File:ItemKitGrowLight.png|Kit(GrowLight)]]&lt;br /&gt;
 | createdwith = [[Electronics Printer]]&lt;br /&gt;
 | cost        = 5g [[Copper]], 5g [[Steel]], 10g [[Electrum]]&lt;br /&gt;
}}&lt;br /&gt;
{{Structurebox&lt;br /&gt;
 | name             = Grow Light&lt;br /&gt;
 &lt;br /&gt;
 | image            = [[File:ItemGrowLight.png]]&lt;br /&gt;
 | placed_with_item = [[Kit (Grow Light)]]&lt;br /&gt;
 | power_usage      = 70W&lt;br /&gt;
 | placed_on_grid   = Small Grid&lt;br /&gt;
 | decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
 | item_rec1        = [[Kit (Grow Light)]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Provides artificial sunlight to grow crops.&lt;br /&gt;
&lt;br /&gt;
Crops need [[Water]] and sunlight to grow. Without water the plant will wither and die. Without sunlight/UV light it will stop growing, but won&#039;t wither. &lt;br /&gt;
&lt;br /&gt;
[[Guide_(Farming)|Guide (Farming)]] provides additional info on how to setup farming with hydroponic tray.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Illumination pattern==&lt;br /&gt;
Lighting area is not a focused cone but a 7x5 rectangle.&lt;br /&gt;
&lt;br /&gt;
[[File:GrowLight topDown 2024.svg|frameless|wall-mount grow light coverage]]&lt;br /&gt;
&lt;br /&gt;
==Wall Mounting vs Ceiling Mounting==&lt;br /&gt;
Illumination Radius is at its maximum 2-4 &#039;&#039;&#039;&amp;lt;big&amp;gt;small grids&amp;lt;/big&amp;gt;&#039;&#039;&#039; away which coincides with &#039;&#039;&#039;&amp;lt;big&amp;gt;one large grid size&amp;lt;/big&amp;gt;&#039;&#039;&#039;, so ceiling mounting has &#039;&#039;&#039;the best coverage of 41&#039;&#039;&#039;, against 37 of wall mounting.&lt;br /&gt;
However this creates difficulty for [[Harvie]] as that can only be mounted on ceiling. Harvie also requires additional space for chutes on either side, so farming plots need to be two rows apart, negating the density benefit of ceiling mounting. &lt;br /&gt;
&lt;br /&gt;
So when [[Harvie]] is expected, wall mounting is more flexible then ceiling mounting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
{{Data Network Header}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
{{Data Parameters}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter Name !! Data Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| On || Boolean || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
{{Data Outputs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Output Name !! Data Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| On || Boolean || &lt;br /&gt;
|-&lt;br /&gt;
| Power || Boolean || &lt;br /&gt;
|-&lt;br /&gt;
| PrefabHash || Integer || &lt;br /&gt;
|-&lt;br /&gt;
| RequiredPower || Integer || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=File:GrowLight_topDown_2024.svg&amp;diff=22156</id>
		<title>File:GrowLight topDown 2024.svg</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=File:GrowLight_topDown_2024.svg&amp;diff=22156"/>
		<updated>2024-09-04T18:22:12Z</updated>

		<summary type="html">&lt;p&gt;Thoth: User created page with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=a diagram of grow light coverage using wall-mount}}&lt;br /&gt;
|date=2024-09-04&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Thoth|Thoth]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{licensing|generic}}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=IC10/instructions&amp;diff=21740</id>
		<title>IC10/instructions</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=IC10/instructions&amp;diff=21740"/>
		<updated>2024-07-26T23:31:01Z</updated>

		<summary type="html">&lt;p&gt;Thoth: turns out this is only a problem for the independent batch slot reader&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
See [[IC10]] for the primary page for the IC10 instruction set. This page lists all available instructions&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utility ==&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=alias|description=Labels register or device reference with name, device references also affect what shows on the screws on the IC base.|syntax=alias str r?{{!}}d?&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
alias dAutoHydro1 d0&lt;br /&gt;
alias vTemperature r0&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=define|description=Creates a label that will be replaced throughout the program with the provided value.|syntax=define str num&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
define ultimateAnswer 42&lt;br /&gt;
move r0 ultimateAnswer # Store 42 in register 0&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=hcf|description=Halt and catch fire|syntax=hcf}}&lt;br /&gt;
{{ICInstruction|instruction=sleep|description=Pauses execution on the IC for a seconds|syntax=sleep a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=yield|description=Pauses execution for 1 tick|syntax=yield}}&lt;br /&gt;
&lt;br /&gt;
== Mathematical ==&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=abs|description=Register = the absolute value of a|syntax=abs r? a(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
define negativeNumber -10&lt;br /&gt;
abs r0 negativeNumber # Compute the absolute value of -10 and store it in register 0&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=add|description=Register = a + b.|syntax=add r? a(r?{{!}}num) b(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|add r0 r0 1 # increment r0 by one}}&lt;br /&gt;
{{ICCode|&lt;br /&gt;
define num1 10&lt;br /&gt;
define num2 20&lt;br /&gt;
add r0 num1 num2 # Add 10 and 20 and store the result in register 0&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=ceil|description=Register = smallest integer greater than a|syntax=ceil r? a(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
define floatNumber 10.3&lt;br /&gt;
ceil r0 floatNumber # Compute the ceiling of 10.3 and store it in register 0&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=div|description=Register = a / b|syntax=div r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=exp|description=exp(a) or e^a|syntax=exp r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=floor|description=Register = largest integer less than a|syntax=floor r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=log|description=base e log(a) or ln(a)|syntax=log r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=max|description=Register = max of a or b|syntax=max r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=min|description=Register = min of a or b|syntax=min r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=mod|description=Register = a mod b (note: NOT a % b)|syntax=mod r? a(r?{{!}}num) b(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
mod r0 10 20&lt;br /&gt;
# Expected: r0 = 10&lt;br /&gt;
&lt;br /&gt;
mod r1 22 20&lt;br /&gt;
# Expected: r1 = 2&lt;br /&gt;
&lt;br /&gt;
mod r2 22 -20&lt;br /&gt;
# Expected: r2 = 18&lt;br /&gt;
&lt;br /&gt;
mod r2 22 -10&lt;br /&gt;
# Expected: r2 = 18&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=move|description=Register = provided num or register value.|syntax=move r? a(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|move r0 42 # Store 42 in register 0}}}}&lt;br /&gt;
{{ICInstruction|instruction=mul|description=Register = a * b|syntax=mul r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=rand|description=Register = a random value x with 0 &amp;lt;= x &amp;lt; 1|syntax=rand r?}}&lt;br /&gt;
{{ICInstruction|instruction=round|description=Register = a rounded to nearest integer|syntax=round r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sqrt|description=Register = square root of a|syntax=sqrt r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sub|description=Register = a - b.|syntax=sub r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=trunc|description=Register = a with fractional part removed|syntax=trunc r? a(r?{{!}}num)}}&lt;br /&gt;
&lt;br /&gt;
=== Mathematical / Trigonometric ===&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=acos|description=Returns the angle (radians) whos cos is the specified value|syntax=acos r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=asin|description=Returns the angle (radians) whos sine is the specified value|syntax=asin r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=atan|description=Returns the angle (radians) whos tan is the specified value|syntax=atan r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=atan2|description=Returns the angle (radians) whose tangent is the quotient of two specified values: a (y) and b (x)|syntax=atan2 r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=cos|description=Returns the cosine of the specified angle (radians)|syntax=cos r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sin|description=Returns the sine of the specified angle (radians)|syntax=sin r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=tan|description=Returns the tan of the specified angle (radians) |syntax=tan r? a(r?{{!}}num)}}&lt;br /&gt;
&lt;br /&gt;
== Stack ==&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=clr|description=Clears the stack memory for the provided device.|syntax=clr d?}}&lt;br /&gt;
{{ICInstruction|instruction=clrd|description=Seeks directly for the provided device id and clears the stack memory of that device|syntax=clrd id(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=get|description=Using the provided device, attempts to read the stack value at the provided address, and places it in the register.|syntax=get r? d? address(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=getd|description=Seeks directly for the provided device id, attempts to read the stack value at the provided address, and places it in the register.|syntax=getd r? id(r?{{!}}num) address(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=peek|description=Register = the value at the top of the stack|syntax=peek r?}}&lt;br /&gt;
{{ICInstruction|instruction=poke|description=Stores the provided value at the provided address in the stack.|syntax=poke address(r?{{!}}num) value(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=pop|description=Register = the value at the top of the stack and decrements sp|syntax=pop r?}}&lt;br /&gt;
{{ICInstruction|instruction=push|description=Pushes the value of a to the stack at sp and increments sp|syntax=push a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=put|description=Using the provided device, attempts to write the provided value to the stack at the provided address.|syntax=put d? address(r?{{!}}num) value(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=putd|description=Seeks directly for the provided device id, attempts to write the provided value to the stack at the provided address.|syntax=putd id(r?{{!}}num) address(r?{{!}}num) value(r?{{!}}num)}}&lt;br /&gt;
&lt;br /&gt;
== Slot/Logic ==&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=l|description=Loads device LogicType to register by housing index value.|syntax=l r? d? logicType&lt;br /&gt;
|example=&lt;br /&gt;
Read from the device on d0 into register 0&lt;br /&gt;
{{ICCode|l r0 d0 Setting}}&lt;br /&gt;
Read the pressure from a sensor&lt;br /&gt;
{{ICCode|l r1 d5 Pressure}}&lt;br /&gt;
This also works with aliases. For example:&lt;br /&gt;
{{ICCode|&lt;br /&gt;
alias Sensor d0&lt;br /&gt;
l r0 Sensor Temperature&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=ld|description=Loads device LogicType to register by direct ID reference.|syntax=ld r? id(r?{{!}}num) logicType}}&lt;br /&gt;
{{ICInstruction|instruction=lr|description=Loads reagent of device&#039;s ReagentMode where a hash of the reagent type to check for. ReagentMode can be either Contents (0), Required (1), Recipe (2). Can use either the word, or the number.|syntax=lr r? d? reagentMode int}}&lt;br /&gt;
{{ICInstruction|instruction=ls|description=Loads slot LogicSlotType on device to register.|syntax=ls r? d? slotIndex logicSlotType&lt;br /&gt;
|example=&lt;br /&gt;
Read from the second slot of device on d0, stores 1 in r0 if it&#039;s occupied, 0 otherwise.&lt;br /&gt;
{{ICCode|ls r0 d0 2 Occupied}}&lt;br /&gt;
And here is the code to read the charge of an AIMeE:&lt;br /&gt;
{{ICCode|&lt;br /&gt;
alias robot d0&lt;br /&gt;
alias charge r10&lt;br /&gt;
ls charge robot 0 Charge&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=s|description=Stores register value to LogicType on device by housing index value.|syntax=s d? logicType r?&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
s d0 Setting r0&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=sd|description=Stores register value to LogicType on device by direct ID reference.|syntax=sd id(r?{{!}}num) logicType r?}}&lt;br /&gt;
{{ICInstruction|instruction=ss|description=Stores register value to device stored in a slot LogicSlotType on device.|syntax=ss d? slotIndex logicSlotType r?}}&lt;br /&gt;
{{ICInstruction|instruction=rmap|description=Given a reagent hash, store the corresponding prefab hash that the device expects to fulfill the reagent requirement. For example, on an autolathe, the hash for Iron will store the hash for ItemIronIngot.|syntax=rmap r? d? reagentHash(r?{{!}}num)}}&lt;br /&gt;
&lt;br /&gt;
=== Slot/Logic / Batched ===&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=lb|description=Loads LogicType from all output network devices with provided type hash using the provide batch mode. Average (0), Sum (1), Minimum (2), Maximum (3). Can use either the word, or the number.|syntax=lb r? deviceHash logicType batchMode&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|lb r0 HASH(&amp;quot;StructureWallLight&amp;quot;) On Sum}}}}&lt;br /&gt;
{{ICInstruction|instruction=lbn|description=Loads LogicType from all output network devices with provided type and name hashes using the provide batch mode. Average (0), Sum (1), Minimum (2), Maximum (3). Can use either the word, or the number.|syntax=lbn r? deviceHash nameHash logicType batchMode}}&lt;br /&gt;
{{ICInstruction|instruction=lbns|description=Loads LogicSlotType from slotIndex from all output network devices with provided type and name hashes using the provide batch mode. Average (0), Sum (1), Minimum (2), Maximum (3). Can use either the word, or the number.|syntax=lbns r? deviceHash nameHash slotIndex logicSlotType batchMode}}&lt;br /&gt;
{{ICInstruction|instruction=lbs|description=Loads LogicSlotType from slotIndex from all output network devices with provided type hash using the provide batch mode. Average (0), Sum (1), Minimum (2), Maximum (3). Can use either the word, or the number.|syntax=lbs r? deviceHash slotIndex logicSlotType batchMode}}&lt;br /&gt;
{{ICInstruction|instruction=sb|description=Stores register value to LogicType on all output network devices with provided type hash.|syntax=sb deviceHash logicType r?&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|sb HASH(&amp;quot;StructureWallLight&amp;quot;) On 1}}}}&lt;br /&gt;
{{ICInstruction|instruction=sbn|description=Stores register value to LogicType on all output network devices with provided type hash and name.|syntax=sbn deviceHash nameHash logicType r?}}&lt;br /&gt;
{{ICInstruction|instruction=sbs|description=Stores register value to LogicSlotType on all output network devices with provided type hash in the provided slot.|syntax=sbs deviceHash slotIndex logicSlotType r?}}&lt;br /&gt;
&lt;br /&gt;
== Bitwise ==&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=and|description=Performs a bitwise logical AND operation on the binary representation of two values. Each bit of the result is determined by evaluating the corresponding bits of the input values. If both bits are 1, the resulting bit is set to 1. Otherwise the resulting bit is set to 0.|syntax=and r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=nor|description=Performs a bitwise logical NOR (NOT OR) operation on the binary representation of two values. Each bit of the result is determined by evaluating the corresponding bits of the input values. If both bits are 0, the resulting bit is set to 1. Otherwise, if at least one bit is 1, the resulting bit is set to 0.|syntax=nor r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=not|description=Performs a bitwise logical NOT operation flipping each bit of the input value, resulting in a binary complement. If a bit is 1, it becomes 0, and if a bit is 0, it becomes 1.|syntax=not r? a(r?{{!}}num)&lt;br /&gt;
|note=&lt;br /&gt;
This is a bitwise operation, the NOT of 1 =&amp;gt; -2, etc. You may want to use seqz instead}}&lt;br /&gt;
{{ICInstruction|instruction=or|description=Performs a bitwise logical OR operation on the binary representation of two values. Each bit of the result is determined by evaluating the corresponding bits of the input values. If either bit is 1, the resulting bit is set to 1. If both bits are 0, the resulting bit is set to 0.|syntax=or r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sla|description=Performs a bitwise arithmetic left shift operation on the binary representation of a value. It shifts the bits to the left and fills the vacated rightmost bits with a copy of the sign bit (the most significant bit).|syntax=sla r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sll|description=Performs a bitwise logical left shift operation on the binary representation of a value. It shifts the bits to the left and fills the vacated rightmost bits with zeros.|syntax=sll r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sra|description=Performs a bitwise arithmetic right shift operation on the binary representation of a value. It shifts the bits to the right and fills the vacated leftmost bits with a copy of the sign bit (the most significant bit).|syntax=sra r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=srl|description=Performs a bitwise logical right shift operation on the binary representation of a value. It shifts the bits to the right and fills the vacated leftmost bits with zeros|syntax=srl r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=xor|description=Performs a bitwise logical XOR (exclusive OR) operation on the binary representation of two values. Each bit of the result is determined by evaluating the corresponding bits of the input values. If the bits are different (one bit is 0 and the other is 1), the resulting bit is set to 1. If the bits are the same (both 0 or both 1), the resulting bit is set to 0.|syntax=xor r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
&lt;br /&gt;
== Comparison ==&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=select|description=Register = b if a is non-zero, otherwise c|syntax=select r? a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
select r1 r0 10 100&lt;br /&gt;
}}&lt;br /&gt;
|note=&lt;br /&gt;
This operation can be used as a simple ternary condition}}&lt;br /&gt;
&lt;br /&gt;
=== Comparison / Device Pin ===&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=sdns|description=Register = 1 if device is not set, otherwise 0|syntax=sdns r? d?}}&lt;br /&gt;
{{ICInstruction|instruction=sdse|description=Register = 1 if device is set, otherwise 0.|syntax=sdse r? d?}}&lt;br /&gt;
&lt;br /&gt;
=== Comparison / Value ===&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=sap|description=Register = 1 if abs(a - b) &amp;lt;= max(c * max(abs(a), abs(b)), float.epsilon * 8), otherwise 0|syntax=sap r? a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sapz|description=Register = 1 if abs(a) &amp;lt;= max(b * abs(a), float.epsilon * 8), otherwise 0|syntax=sapz r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=seq|description=Register = 1 if a == b, otherwise 0|syntax=seq r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=seqz|description=Register = 1 if a == 0, otherwise 0|syntax=seqz r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sge|description=Register = 1 if a &amp;gt;= b, otherwise 0|syntax=sge r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sgez|description=Register = 1 if a &amp;gt;= 0, otherwise 0|syntax=sgez r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sgt|description=Register = 1 if a &amp;gt; b, otherwise 0|syntax=sgt r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sgtz|description=Register = 1 if a &amp;gt; 0, otherwise 0|syntax=sgtz r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sle|description=Register = 1 if a &amp;lt;= b, otherwise 0|syntax=sle r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=slez|description=Register = 1 if a &amp;lt;= 0, otherwise 0|syntax=slez r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=slt|description=Register = 1 if a &amp;lt; b, otherwise 0|syntax=slt r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sltz|description=Register = 1 if a &amp;lt; 0, otherwise 0|syntax=sltz r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sna|description=Register = 1 if abs(a - b) &amp;gt; max(c * max(abs(a), abs(b)), float.epsilon * 8), otherwise 0|syntax=sna r? a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=snan|description=Register = 1 if a is NaN, otherwise 0|syntax=snan r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=snanz|description=Register = 0 if a is NaN, otherwise 1|syntax=snanz r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=snaz|description=Register = 1 if abs(a) &amp;gt; max(b * abs(a), float.epsilon), otherwise 0|syntax=snaz r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sne|description=Register = 1 if a != b, otherwise 0|syntax=sne r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=snez|description=Register = 1 if a != 0, otherwise 0|syntax=snez r? a(r?{{!}}num)}}&lt;br /&gt;
&lt;br /&gt;
== Branching ==&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=j|description=Jump execution to line a|syntax=j int&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|j 0 # jump line 0}}&lt;br /&gt;
{{ICCode|&lt;br /&gt;
j label # jump to a label&lt;br /&gt;
&lt;br /&gt;
label:&lt;br /&gt;
# your code here&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=jal|description=Jump execution to line a and store next line number in ra|syntax=jal int&lt;br /&gt;
|example=&lt;br /&gt;
jal provides a way to do function calls in IC10 mips&lt;br /&gt;
&lt;br /&gt;
{{ICCode|&lt;br /&gt;
move r0 1000&lt;br /&gt;
move r1 0&lt;br /&gt;
start:&lt;br /&gt;
jal average&lt;br /&gt;
s db Setting r0&lt;br /&gt;
yield&lt;br /&gt;
j start&lt;br /&gt;
&lt;br /&gt;
average:&lt;br /&gt;
add r0 r0 r1&lt;br /&gt;
div r0 r0 2&lt;br /&gt;
j ra # jump back&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=jr|description=Relative jump to line a|syntax=jr int}}&lt;br /&gt;
&lt;br /&gt;
=== Branching / Device Pin ===&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=bdns|description=Branch to line a if device d isn&#039;t set|syntax=bdns d? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bdnsal|description=Jump execution to line a and store next line number if device is not set|syntax=bdnsal d? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bdse|description=Branch to line a if device d is set|syntax=bdse d? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bdseal|description=Jump execution to line a and store next line number if device is set|syntax=bdseal d? a(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
#Store line number and jump to line 32 if d0 is assigned.&lt;br /&gt;
bdseal d0 32&lt;br /&gt;
}}&lt;br /&gt;
{{ICCode|&lt;br /&gt;
#Store line in ra and jump to label HarvestCrop if device d0 is assigned.&lt;br /&gt;
bdseal d0 HarvestCrop&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=brdns|description=Relative jump to line a if device is not set|syntax=brdns d? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brdse|description=Relative jump to line a if device is set|syntax=brdse d? a(r?{{!}}num)}}&lt;br /&gt;
&lt;br /&gt;
=== Branching / Comparison ===&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=bap|description=Branch to line d if abs(a - b) &amp;lt;= max(c * max(abs(a), abs(b)), float.epsilon * 8)|syntax=bap a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num) d(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brap|description=Relative branch to line d if abs(a - b) &amp;lt;= max(c * max(abs(a), abs(b)), float.epsilon * 8)|syntax=brap a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num) d(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bapal|description=Branch to line c if a != b and store next line number in ra|syntax=bapal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num) d(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bapz|description=Branch to line c if abs(a) &amp;lt;= max(b * abs(a), float.epsilon * 8)|syntax=bapz a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brapz|description=Relative branch to line c if abs(a) &amp;lt;= max(b * abs(a), float.epsilon * 8)|syntax=brapz a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bapzal|description=Branch to line c if abs(a) &amp;lt;= max(b * abs(a), float.epsilon * 8) and store next line number in ra|syntax=bapzal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=beq|description=Branch to line c if a == b|syntax=beq a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=breq|description=Relative branch to line c if a == b|syntax=breq a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=beqal|description=Branch to line c if a == b and store next line number in ra|syntax=beqal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=beqz|description=Branch to line b if a == 0|syntax=beqz a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=breqz|description=Relative branch to line b if a == 0|syntax=breqz a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=beqzal|description=Branch to line b if a == 0 and store next line number in ra|syntax=beqzal a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bge|description=Branch to line c if a &amp;gt;= b|syntax=bge a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brge|description=Relative jump to line c if a &amp;gt;= b|syntax=brge a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bgeal|description=Branch to line c if a &amp;gt;= b and store next line number in ra|syntax=bgeal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bgez|description=Branch to line b if a &amp;gt;= 0|syntax=bgez a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brgez|description=Relative branch to line b if a &amp;gt;= 0|syntax=brgez a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bgezal|description=Branch to line b if a &amp;gt;= 0 and store next line number in ra|syntax=bgezal a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bgt|description=Branch to line c if a &amp;gt; b|syntax=bgt a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
An example of a &#039;&#039;&#039;Schmitt&#039;&#039;&#039; trigger, turning on a device if the temperature is too low, and turning it off if it&#039;s too high and finally&lt;br /&gt;
doing nothing if the temperature is within the desired range.&lt;br /&gt;
{{ICCode|&lt;br /&gt;
alias sensor d0&lt;br /&gt;
alias device d1&lt;br /&gt;
&lt;br /&gt;
define mintemp 293.15&lt;br /&gt;
define maxtemp 298.15&lt;br /&gt;
&lt;br /&gt;
start:&lt;br /&gt;
yield&lt;br /&gt;
l r0 sensor Temperature&lt;br /&gt;
# If the temperature &amp;lt; mintemp, turn on the device&lt;br /&gt;
blt r0 mintemp turnOn&lt;br /&gt;
# If the temperature &amp;gt; maxtemp, turn off the device&lt;br /&gt;
bgt r0 maxtemp turnOff&lt;br /&gt;
j start&lt;br /&gt;
&lt;br /&gt;
turnOn:&lt;br /&gt;
s device On 1&lt;br /&gt;
j start&lt;br /&gt;
turnOff:&lt;br /&gt;
s device On 0&lt;br /&gt;
j start&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=brgt|description=relative jump to line c if a &amp;gt; b|syntax=brgt a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bgtal|description=Branch to line c if a &amp;gt; b and store next line number in ra|syntax=bgtal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bgtz|description=Branch to line b if a &amp;gt; 0|syntax=bgtz a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brgtz|description=Relative branch to line b if a &amp;gt; 0|syntax=brgtz a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bgtzal|description=Branch to line b if a &amp;gt; 0 and store next line number in ra|syntax=bgtzal a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=ble|description=Branch to line c if a &amp;lt;= b|syntax=ble a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brle|description=Relative jump to line c if a &amp;lt;= b|syntax=brle a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bleal|description=Branch to line c if a &amp;lt;= b and store next line number in ra|syntax=bleal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=blez|description=Branch to line b if a &amp;lt;= 0|syntax=blez a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brlez|description=Relative branch to line b if a &amp;lt;= 0|syntax=brlez a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=blezal|description=Branch to line b if a &amp;lt;= 0 and store next line number in ra|syntax=blezal a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=blt|description=Branch to line c if a &amp;lt; b|syntax=blt a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
An example of a &#039;&#039;&#039;Schmitt&#039;&#039;&#039; trigger, turning on a device if the temperature is too low, and turning it off if it&#039;s too high and finally&lt;br /&gt;
doing nothing if the temperature is within the desired range.&lt;br /&gt;
{{ICCode|&lt;br /&gt;
alias sensor d0&lt;br /&gt;
alias device d1&lt;br /&gt;
&lt;br /&gt;
define mintemp 293.15&lt;br /&gt;
define maxtemp 298.15&lt;br /&gt;
&lt;br /&gt;
start:&lt;br /&gt;
yield&lt;br /&gt;
l r0 sensor Temperature&lt;br /&gt;
# If the temperature &amp;lt; mintemp, turn on the device&lt;br /&gt;
blt r0 mintemp turnOn&lt;br /&gt;
# If the temperature &amp;gt; maxtemp, turn off the device&lt;br /&gt;
bgt r0 maxtemp turnOff&lt;br /&gt;
j start&lt;br /&gt;
&lt;br /&gt;
turnOn:&lt;br /&gt;
s device On 1&lt;br /&gt;
j start&lt;br /&gt;
turnOff:&lt;br /&gt;
s device On 0&lt;br /&gt;
j start&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=brlt|description=Relative jump to line c if a &amp;lt; b|syntax=brlt a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bltal|description=Branch to line c if a &amp;lt; b and store next line number in ra|syntax=bltal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bltz|description=Branch to line b if a &amp;lt; 0|syntax=bltz a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brltz|description=Relative branch to line b if a &amp;lt; 0|syntax=brltz a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bltzal|description=Branch to line b if a &amp;lt; 0 and store next line number in ra|syntax=bltzal a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bna|description=Branch to line d if abs(a - b) &amp;gt; max(c * max(abs(a), abs(b)), float.epsilon * 8)|syntax=bna a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num) d(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brna|description=Relative branch to line d if abs(a - b) &amp;gt; max(c * max(abs(a), abs(b)), float.epsilon * 8)|syntax=brna a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num) d(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bnaal|description=Branch to line d if abs(a - b) &amp;lt;= max(c * max(abs(a), abs(b)), float.epsilon * 8) and store next line number in ra|syntax=bnaal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num) d(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bnan|description=Branch to line b if a is not a number (NaN)|syntax=bnan a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brnan|description=Relative branch to line b if a is not a number (NaN)|syntax=brnan a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bnaz|description=Branch to line c if abs(a) &amp;gt; max (b * abs(a), float.epsilon * 8)|syntax=bnaz a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brnaz|description=Relative branch to line c if abs(a) &amp;gt; max(b * abs(a), float.epsilon * 8)|syntax=brnaz a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bnazal|description=Branch to line c if abs(a) &amp;gt; max (b * abs(a), float.epsilon * 8) and store next line number in ra|syntax=bnazal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bne|description=Branch to line c if a != b|syntax=bne a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brne|description=Relative branch to line c if a != b|syntax=brne a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bneal|description=Branch to line c if a != b and store next line number in ra|syntax=bneal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bnez|description=branch to line b if a != 0|syntax=bnez a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brnez|description=Relative branch to line b if a != 0|syntax=brnez a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bnezal|description=Branch to line b if a != 0 and store next line number in ra|syntax=bnezal a(r?{{!}}num) b(r?{{!}}num)}}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=IC10/instructions&amp;diff=21739</id>
		<title>IC10/instructions</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=IC10/instructions&amp;diff=21739"/>
		<updated>2024-07-26T20:29:27Z</updated>

		<summary type="html">&lt;p&gt;Thoth: document lbns negative value bug&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
See [[IC10]] for the primary page for the IC10 instruction set. This page lists all available instructions&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utility ==&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=alias|description=Labels register or device reference with name, device references also affect what shows on the screws on the IC base.|syntax=alias str r?{{!}}d?&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
alias dAutoHydro1 d0&lt;br /&gt;
alias vTemperature r0&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=define|description=Creates a label that will be replaced throughout the program with the provided value.|syntax=define str num&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
define ultimateAnswer 42&lt;br /&gt;
move r0 ultimateAnswer # Store 42 in register 0&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=hcf|description=Halt and catch fire|syntax=hcf}}&lt;br /&gt;
{{ICInstruction|instruction=sleep|description=Pauses execution on the IC for a seconds|syntax=sleep a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=yield|description=Pauses execution for 1 tick|syntax=yield}}&lt;br /&gt;
&lt;br /&gt;
== Mathematical ==&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=abs|description=Register = the absolute value of a|syntax=abs r? a(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
define negativeNumber -10&lt;br /&gt;
abs r0 negativeNumber # Compute the absolute value of -10 and store it in register 0&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=add|description=Register = a + b.|syntax=add r? a(r?{{!}}num) b(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|add r0 r0 1 # increment r0 by one}}&lt;br /&gt;
{{ICCode|&lt;br /&gt;
define num1 10&lt;br /&gt;
define num2 20&lt;br /&gt;
add r0 num1 num2 # Add 10 and 20 and store the result in register 0&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=ceil|description=Register = smallest integer greater than a|syntax=ceil r? a(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
define floatNumber 10.3&lt;br /&gt;
ceil r0 floatNumber # Compute the ceiling of 10.3 and store it in register 0&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=div|description=Register = a / b|syntax=div r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=exp|description=exp(a) or e^a|syntax=exp r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=floor|description=Register = largest integer less than a|syntax=floor r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=log|description=base e log(a) or ln(a)|syntax=log r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=max|description=Register = max of a or b|syntax=max r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=min|description=Register = min of a or b|syntax=min r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=mod|description=Register = a mod b (note: NOT a % b)|syntax=mod r? a(r?{{!}}num) b(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
mod r0 10 20&lt;br /&gt;
# Expected: r0 = 10&lt;br /&gt;
&lt;br /&gt;
mod r1 22 20&lt;br /&gt;
# Expected: r1 = 2&lt;br /&gt;
&lt;br /&gt;
mod r2 22 -20&lt;br /&gt;
# Expected: r2 = 18&lt;br /&gt;
&lt;br /&gt;
mod r2 22 -10&lt;br /&gt;
# Expected: r2 = 18&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=move|description=Register = provided num or register value.|syntax=move r? a(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|move r0 42 # Store 42 in register 0}}}}&lt;br /&gt;
{{ICInstruction|instruction=mul|description=Register = a * b|syntax=mul r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=rand|description=Register = a random value x with 0 &amp;lt;= x &amp;lt; 1|syntax=rand r?}}&lt;br /&gt;
{{ICInstruction|instruction=round|description=Register = a rounded to nearest integer|syntax=round r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sqrt|description=Register = square root of a|syntax=sqrt r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sub|description=Register = a - b.|syntax=sub r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=trunc|description=Register = a with fractional part removed|syntax=trunc r? a(r?{{!}}num)}}&lt;br /&gt;
&lt;br /&gt;
=== Mathematical / Trigonometric ===&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=acos|description=Returns the angle (radians) whos cos is the specified value|syntax=acos r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=asin|description=Returns the angle (radians) whos sine is the specified value|syntax=asin r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=atan|description=Returns the angle (radians) whos tan is the specified value|syntax=atan r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=atan2|description=Returns the angle (radians) whose tangent is the quotient of two specified values: a (y) and b (x)|syntax=atan2 r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=cos|description=Returns the cosine of the specified angle (radians)|syntax=cos r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sin|description=Returns the sine of the specified angle (radians)|syntax=sin r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=tan|description=Returns the tan of the specified angle (radians) |syntax=tan r? a(r?{{!}}num)}}&lt;br /&gt;
&lt;br /&gt;
== Stack ==&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=clr|description=Clears the stack memory for the provided device.|syntax=clr d?}}&lt;br /&gt;
{{ICInstruction|instruction=clrd|description=Seeks directly for the provided device id and clears the stack memory of that device|syntax=clrd id(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=get|description=Using the provided device, attempts to read the stack value at the provided address, and places it in the register.|syntax=get r? d? address(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=getd|description=Seeks directly for the provided device id, attempts to read the stack value at the provided address, and places it in the register.|syntax=getd r? id(r?{{!}}num) address(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=peek|description=Register = the value at the top of the stack|syntax=peek r?}}&lt;br /&gt;
{{ICInstruction|instruction=poke|description=Stores the provided value at the provided address in the stack.|syntax=poke address(r?{{!}}num) value(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=pop|description=Register = the value at the top of the stack and decrements sp|syntax=pop r?}}&lt;br /&gt;
{{ICInstruction|instruction=push|description=Pushes the value of a to the stack at sp and increments sp|syntax=push a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=put|description=Using the provided device, attempts to write the provided value to the stack at the provided address.|syntax=put d? address(r?{{!}}num) value(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=putd|description=Seeks directly for the provided device id, attempts to write the provided value to the stack at the provided address.|syntax=putd id(r?{{!}}num) address(r?{{!}}num) value(r?{{!}}num)}}&lt;br /&gt;
&lt;br /&gt;
== Slot/Logic ==&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=l|description=Loads device LogicType to register by housing index value.|syntax=l r? d? logicType&lt;br /&gt;
|example=&lt;br /&gt;
Read from the device on d0 into register 0&lt;br /&gt;
{{ICCode|l r0 d0 Setting}}&lt;br /&gt;
Read the pressure from a sensor&lt;br /&gt;
{{ICCode|l r1 d5 Pressure}}&lt;br /&gt;
This also works with aliases. For example:&lt;br /&gt;
{{ICCode|&lt;br /&gt;
alias Sensor d0&lt;br /&gt;
l r0 Sensor Temperature&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=ld|description=Loads device LogicType to register by direct ID reference.|syntax=ld r? id(r?{{!}}num) logicType}}&lt;br /&gt;
{{ICInstruction|instruction=lr|description=Loads reagent of device&#039;s ReagentMode where a hash of the reagent type to check for. ReagentMode can be either Contents (0), Required (1), Recipe (2). Can use either the word, or the number.|syntax=lr r? d? reagentMode int}}&lt;br /&gt;
{{ICInstruction|instruction=ls|description=Loads slot LogicSlotType on device to register.|syntax=ls r? d? slotIndex logicSlotType&lt;br /&gt;
|example=&lt;br /&gt;
Read from the second slot of device on d0, stores 1 in r0 if it&#039;s occupied, 0 otherwise.&lt;br /&gt;
{{ICCode|ls r0 d0 2 Occupied}}&lt;br /&gt;
And here is the code to read the charge of an AIMeE:&lt;br /&gt;
{{ICCode|&lt;br /&gt;
alias robot d0&lt;br /&gt;
alias charge r10&lt;br /&gt;
ls charge robot 0 Charge&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=s|description=Stores register value to LogicType on device by housing index value.|syntax=s d? logicType r?&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
s d0 Setting r0&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=sd|description=Stores register value to LogicType on device by direct ID reference.|syntax=sd id(r?{{!}}num) logicType r?}}&lt;br /&gt;
{{ICInstruction|instruction=ss|description=Stores register value to device stored in a slot LogicSlotType on device.|syntax=ss d? slotIndex logicSlotType r?}}&lt;br /&gt;
{{ICInstruction|instruction=rmap|description=Given a reagent hash, store the corresponding prefab hash that the device expects to fulfill the reagent requirement. For example, on an autolathe, the hash for Iron will store the hash for ItemIronIngot.|syntax=rmap r? d? reagentHash(r?{{!}}num)}}&lt;br /&gt;
&lt;br /&gt;
=== Slot/Logic / Batched ===&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=lb|description=Loads LogicType from all output network devices with provided type hash using the provide batch mode. Average (0), Sum (1), Minimum (2), Maximum (3). Can use either the word, or the number.|syntax=lb r? deviceHash logicType batchMode&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|lb r0 HASH(&amp;quot;StructureWallLight&amp;quot;) On Sum}}}}&lt;br /&gt;
{{ICInstruction|instruction=lbn|description=Loads LogicType from all output network devices with provided type and name hashes using the provide batch mode. Average (0), Sum (1), Minimum (2), Maximum (3). Can use either the word, or the number.|syntax=lbn r? deviceHash nameHash logicType batchMode}}&lt;br /&gt;
{{ICInstruction|instruction=lbns|description=Loads LogicSlotType from slotIndex from all output network devices with provided type and name hashes using the provide batch mode. Average (0), Sum (1), Minimum (2), Maximum (3). Can use either the word, or the number.  As of update 0.2.5087.23112 this has a bug where if all the values are &amp;lt;0 the result is zero.  This can be a problem when checking for HydroponicsDevice.0.Seeding &amp;lt;0. |syntax=lbns r? deviceHash nameHash slotIndex logicSlotType batchMode}}&lt;br /&gt;
{{ICInstruction|instruction=lbs|description=Loads LogicSlotType from slotIndex from all output network devices with provided type hash using the provide batch mode. Average (0), Sum (1), Minimum (2), Maximum (3). Can use either the word, or the number.|syntax=lbs r? deviceHash slotIndex logicSlotType batchMode}}&lt;br /&gt;
{{ICInstruction|instruction=sb|description=Stores register value to LogicType on all output network devices with provided type hash.|syntax=sb deviceHash logicType r?&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|sb HASH(&amp;quot;StructureWallLight&amp;quot;) On 1}}}}&lt;br /&gt;
{{ICInstruction|instruction=sbn|description=Stores register value to LogicType on all output network devices with provided type hash and name.|syntax=sbn deviceHash nameHash logicType r?}}&lt;br /&gt;
{{ICInstruction|instruction=sbs|description=Stores register value to LogicSlotType on all output network devices with provided type hash in the provided slot.|syntax=sbs deviceHash slotIndex logicSlotType r?}}&lt;br /&gt;
&lt;br /&gt;
== Bitwise ==&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=and|description=Performs a bitwise logical AND operation on the binary representation of two values. Each bit of the result is determined by evaluating the corresponding bits of the input values. If both bits are 1, the resulting bit is set to 1. Otherwise the resulting bit is set to 0.|syntax=and r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=nor|description=Performs a bitwise logical NOR (NOT OR) operation on the binary representation of two values. Each bit of the result is determined by evaluating the corresponding bits of the input values. If both bits are 0, the resulting bit is set to 1. Otherwise, if at least one bit is 1, the resulting bit is set to 0.|syntax=nor r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=not|description=Performs a bitwise logical NOT operation flipping each bit of the input value, resulting in a binary complement. If a bit is 1, it becomes 0, and if a bit is 0, it becomes 1.|syntax=not r? a(r?{{!}}num)&lt;br /&gt;
|note=&lt;br /&gt;
This is a bitwise operation, the NOT of 1 =&amp;gt; -2, etc. You may want to use seqz instead}}&lt;br /&gt;
{{ICInstruction|instruction=or|description=Performs a bitwise logical OR operation on the binary representation of two values. Each bit of the result is determined by evaluating the corresponding bits of the input values. If either bit is 1, the resulting bit is set to 1. If both bits are 0, the resulting bit is set to 0.|syntax=or r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sla|description=Performs a bitwise arithmetic left shift operation on the binary representation of a value. It shifts the bits to the left and fills the vacated rightmost bits with a copy of the sign bit (the most significant bit).|syntax=sla r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sll|description=Performs a bitwise logical left shift operation on the binary representation of a value. It shifts the bits to the left and fills the vacated rightmost bits with zeros.|syntax=sll r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sra|description=Performs a bitwise arithmetic right shift operation on the binary representation of a value. It shifts the bits to the right and fills the vacated leftmost bits with a copy of the sign bit (the most significant bit).|syntax=sra r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=srl|description=Performs a bitwise logical right shift operation on the binary representation of a value. It shifts the bits to the right and fills the vacated leftmost bits with zeros|syntax=srl r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=xor|description=Performs a bitwise logical XOR (exclusive OR) operation on the binary representation of two values. Each bit of the result is determined by evaluating the corresponding bits of the input values. If the bits are different (one bit is 0 and the other is 1), the resulting bit is set to 1. If the bits are the same (both 0 or both 1), the resulting bit is set to 0.|syntax=xor r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
&lt;br /&gt;
== Comparison ==&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=select|description=Register = b if a is non-zero, otherwise c|syntax=select r? a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
select r1 r0 10 100&lt;br /&gt;
}}&lt;br /&gt;
|note=&lt;br /&gt;
This operation can be used as a simple ternary condition}}&lt;br /&gt;
&lt;br /&gt;
=== Comparison / Device Pin ===&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=sdns|description=Register = 1 if device is not set, otherwise 0|syntax=sdns r? d?}}&lt;br /&gt;
{{ICInstruction|instruction=sdse|description=Register = 1 if device is set, otherwise 0.|syntax=sdse r? d?}}&lt;br /&gt;
&lt;br /&gt;
=== Comparison / Value ===&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=sap|description=Register = 1 if abs(a - b) &amp;lt;= max(c * max(abs(a), abs(b)), float.epsilon * 8), otherwise 0|syntax=sap r? a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sapz|description=Register = 1 if abs(a) &amp;lt;= max(b * abs(a), float.epsilon * 8), otherwise 0|syntax=sapz r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=seq|description=Register = 1 if a == b, otherwise 0|syntax=seq r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=seqz|description=Register = 1 if a == 0, otherwise 0|syntax=seqz r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sge|description=Register = 1 if a &amp;gt;= b, otherwise 0|syntax=sge r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sgez|description=Register = 1 if a &amp;gt;= 0, otherwise 0|syntax=sgez r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sgt|description=Register = 1 if a &amp;gt; b, otherwise 0|syntax=sgt r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sgtz|description=Register = 1 if a &amp;gt; 0, otherwise 0|syntax=sgtz r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sle|description=Register = 1 if a &amp;lt;= b, otherwise 0|syntax=sle r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=slez|description=Register = 1 if a &amp;lt;= 0, otherwise 0|syntax=slez r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=slt|description=Register = 1 if a &amp;lt; b, otherwise 0|syntax=slt r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sltz|description=Register = 1 if a &amp;lt; 0, otherwise 0|syntax=sltz r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sna|description=Register = 1 if abs(a - b) &amp;gt; max(c * max(abs(a), abs(b)), float.epsilon * 8), otherwise 0|syntax=sna r? a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=snan|description=Register = 1 if a is NaN, otherwise 0|syntax=snan r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=snanz|description=Register = 0 if a is NaN, otherwise 1|syntax=snanz r? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=snaz|description=Register = 1 if abs(a) &amp;gt; max(b * abs(a), float.epsilon), otherwise 0|syntax=snaz r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=sne|description=Register = 1 if a != b, otherwise 0|syntax=sne r? a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=snez|description=Register = 1 if a != 0, otherwise 0|syntax=snez r? a(r?{{!}}num)}}&lt;br /&gt;
&lt;br /&gt;
== Branching ==&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=j|description=Jump execution to line a|syntax=j int&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|j 0 # jump line 0}}&lt;br /&gt;
{{ICCode|&lt;br /&gt;
j label # jump to a label&lt;br /&gt;
&lt;br /&gt;
label:&lt;br /&gt;
# your code here&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=jal|description=Jump execution to line a and store next line number in ra|syntax=jal int&lt;br /&gt;
|example=&lt;br /&gt;
jal provides a way to do function calls in IC10 mips&lt;br /&gt;
&lt;br /&gt;
{{ICCode|&lt;br /&gt;
move r0 1000&lt;br /&gt;
move r1 0&lt;br /&gt;
start:&lt;br /&gt;
jal average&lt;br /&gt;
s db Setting r0&lt;br /&gt;
yield&lt;br /&gt;
j start&lt;br /&gt;
&lt;br /&gt;
average:&lt;br /&gt;
add r0 r0 r1&lt;br /&gt;
div r0 r0 2&lt;br /&gt;
j ra # jump back&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=jr|description=Relative jump to line a|syntax=jr int}}&lt;br /&gt;
&lt;br /&gt;
=== Branching / Device Pin ===&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=bdns|description=Branch to line a if device d isn&#039;t set|syntax=bdns d? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bdnsal|description=Jump execution to line a and store next line number if device is not set|syntax=bdnsal d? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bdse|description=Branch to line a if device d is set|syntax=bdse d? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bdseal|description=Jump execution to line a and store next line number if device is set|syntax=bdseal d? a(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
{{ICCode|&lt;br /&gt;
#Store line number and jump to line 32 if d0 is assigned.&lt;br /&gt;
bdseal d0 32&lt;br /&gt;
}}&lt;br /&gt;
{{ICCode|&lt;br /&gt;
#Store line in ra and jump to label HarvestCrop if device d0 is assigned.&lt;br /&gt;
bdseal d0 HarvestCrop&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=brdns|description=Relative jump to line a if device is not set|syntax=brdns d? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brdse|description=Relative jump to line a if device is set|syntax=brdse d? a(r?{{!}}num)}}&lt;br /&gt;
&lt;br /&gt;
=== Branching / Comparison ===&lt;br /&gt;
&lt;br /&gt;
{{ICInstruction|instruction=bap|description=Branch to line d if abs(a - b) &amp;lt;= max(c * max(abs(a), abs(b)), float.epsilon * 8)|syntax=bap a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num) d(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brap|description=Relative branch to line d if abs(a - b) &amp;lt;= max(c * max(abs(a), abs(b)), float.epsilon * 8)|syntax=brap a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num) d(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bapal|description=Branch to line c if a != b and store next line number in ra|syntax=bapal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num) d(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bapz|description=Branch to line c if abs(a) &amp;lt;= max(b * abs(a), float.epsilon * 8)|syntax=bapz a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brapz|description=Relative branch to line c if abs(a) &amp;lt;= max(b * abs(a), float.epsilon * 8)|syntax=brapz a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bapzal|description=Branch to line c if abs(a) &amp;lt;= max(b * abs(a), float.epsilon * 8) and store next line number in ra|syntax=bapzal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=beq|description=Branch to line c if a == b|syntax=beq a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=breq|description=Relative branch to line c if a == b|syntax=breq a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=beqal|description=Branch to line c if a == b and store next line number in ra|syntax=beqal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=beqz|description=Branch to line b if a == 0|syntax=beqz a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=breqz|description=Relative branch to line b if a == 0|syntax=breqz a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=beqzal|description=Branch to line b if a == 0 and store next line number in ra|syntax=beqzal a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bge|description=Branch to line c if a &amp;gt;= b|syntax=bge a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brge|description=Relative jump to line c if a &amp;gt;= b|syntax=brge a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bgeal|description=Branch to line c if a &amp;gt;= b and store next line number in ra|syntax=bgeal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bgez|description=Branch to line b if a &amp;gt;= 0|syntax=bgez a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brgez|description=Relative branch to line b if a &amp;gt;= 0|syntax=brgez a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bgezal|description=Branch to line b if a &amp;gt;= 0 and store next line number in ra|syntax=bgezal a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bgt|description=Branch to line c if a &amp;gt; b|syntax=bgt a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
An example of a &#039;&#039;&#039;Schmitt&#039;&#039;&#039; trigger, turning on a device if the temperature is too low, and turning it off if it&#039;s too high and finally&lt;br /&gt;
doing nothing if the temperature is within the desired range.&lt;br /&gt;
{{ICCode|&lt;br /&gt;
alias sensor d0&lt;br /&gt;
alias device d1&lt;br /&gt;
&lt;br /&gt;
define mintemp 293.15&lt;br /&gt;
define maxtemp 298.15&lt;br /&gt;
&lt;br /&gt;
start:&lt;br /&gt;
yield&lt;br /&gt;
l r0 sensor Temperature&lt;br /&gt;
# If the temperature &amp;lt; mintemp, turn on the device&lt;br /&gt;
blt r0 mintemp turnOn&lt;br /&gt;
# If the temperature &amp;gt; maxtemp, turn off the device&lt;br /&gt;
bgt r0 maxtemp turnOff&lt;br /&gt;
j start&lt;br /&gt;
&lt;br /&gt;
turnOn:&lt;br /&gt;
s device On 1&lt;br /&gt;
j start&lt;br /&gt;
turnOff:&lt;br /&gt;
s device On 0&lt;br /&gt;
j start&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=brgt|description=relative jump to line c if a &amp;gt; b|syntax=brgt a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bgtal|description=Branch to line c if a &amp;gt; b and store next line number in ra|syntax=bgtal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bgtz|description=Branch to line b if a &amp;gt; 0|syntax=bgtz a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brgtz|description=Relative branch to line b if a &amp;gt; 0|syntax=brgtz a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bgtzal|description=Branch to line b if a &amp;gt; 0 and store next line number in ra|syntax=bgtzal a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=ble|description=Branch to line c if a &amp;lt;= b|syntax=ble a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brle|description=Relative jump to line c if a &amp;lt;= b|syntax=brle a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bleal|description=Branch to line c if a &amp;lt;= b and store next line number in ra|syntax=bleal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=blez|description=Branch to line b if a &amp;lt;= 0|syntax=blez a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brlez|description=Relative branch to line b if a &amp;lt;= 0|syntax=brlez a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=blezal|description=Branch to line b if a &amp;lt;= 0 and store next line number in ra|syntax=blezal a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=blt|description=Branch to line c if a &amp;lt; b|syntax=blt a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)&lt;br /&gt;
|example=&lt;br /&gt;
An example of a &#039;&#039;&#039;Schmitt&#039;&#039;&#039; trigger, turning on a device if the temperature is too low, and turning it off if it&#039;s too high and finally&lt;br /&gt;
doing nothing if the temperature is within the desired range.&lt;br /&gt;
{{ICCode|&lt;br /&gt;
alias sensor d0&lt;br /&gt;
alias device d1&lt;br /&gt;
&lt;br /&gt;
define mintemp 293.15&lt;br /&gt;
define maxtemp 298.15&lt;br /&gt;
&lt;br /&gt;
start:&lt;br /&gt;
yield&lt;br /&gt;
l r0 sensor Temperature&lt;br /&gt;
# If the temperature &amp;lt; mintemp, turn on the device&lt;br /&gt;
blt r0 mintemp turnOn&lt;br /&gt;
# If the temperature &amp;gt; maxtemp, turn off the device&lt;br /&gt;
bgt r0 maxtemp turnOff&lt;br /&gt;
j start&lt;br /&gt;
&lt;br /&gt;
turnOn:&lt;br /&gt;
s device On 1&lt;br /&gt;
j start&lt;br /&gt;
turnOff:&lt;br /&gt;
s device On 0&lt;br /&gt;
j start&lt;br /&gt;
}}}}&lt;br /&gt;
{{ICInstruction|instruction=brlt|description=Relative jump to line c if a &amp;lt; b|syntax=brlt a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bltal|description=Branch to line c if a &amp;lt; b and store next line number in ra|syntax=bltal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bltz|description=Branch to line b if a &amp;lt; 0|syntax=bltz a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brltz|description=Relative branch to line b if a &amp;lt; 0|syntax=brltz a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bltzal|description=Branch to line b if a &amp;lt; 0 and store next line number in ra|syntax=bltzal a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bna|description=Branch to line d if abs(a - b) &amp;gt; max(c * max(abs(a), abs(b)), float.epsilon * 8)|syntax=bna a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num) d(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brna|description=Relative branch to line d if abs(a - b) &amp;gt; max(c * max(abs(a), abs(b)), float.epsilon * 8)|syntax=brna a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num) d(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bnaal|description=Branch to line d if abs(a - b) &amp;lt;= max(c * max(abs(a), abs(b)), float.epsilon * 8) and store next line number in ra|syntax=bnaal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num) d(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bnan|description=Branch to line b if a is not a number (NaN)|syntax=bnan a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brnan|description=Relative branch to line b if a is not a number (NaN)|syntax=brnan a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bnaz|description=Branch to line c if abs(a) &amp;gt; max (b * abs(a), float.epsilon * 8)|syntax=bnaz a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brnaz|description=Relative branch to line c if abs(a) &amp;gt; max(b * abs(a), float.epsilon * 8)|syntax=brnaz a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bnazal|description=Branch to line c if abs(a) &amp;gt; max (b * abs(a), float.epsilon * 8) and store next line number in ra|syntax=bnazal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bne|description=Branch to line c if a != b|syntax=bne a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brne|description=Relative branch to line c if a != b|syntax=brne a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bneal|description=Branch to line c if a != b and store next line number in ra|syntax=bneal a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bnez|description=branch to line b if a != 0|syntax=bnez a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brnez|description=Relative branch to line b if a != 0|syntax=brnez a(r?{{!}}num) b(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bnezal|description=Branch to line b if a != 0 and store next line number in ra|syntax=bnezal a(r?{{!}}num) b(r?{{!}}num)}}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=IC10&amp;diff=21731</id>
		<title>IC10</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=IC10&amp;diff=21731"/>
		<updated>2024-07-25T15:45:41Z</updated>

		<summary type="html">&lt;p&gt;Thoth: add short narrative about batch insructions and ReferenceIds&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:IC10 Programming]]&lt;br /&gt;
=Scripting language for IC10 housings / chips=&lt;br /&gt;
MIPS is [[Stationeers]]&#039; inspiration for the in-game scripting language called IC10. It runs on [[Integrated Circuit (IC10)|IC10 chips]] crafted at the [[Electronics Printer]]. &lt;br /&gt;
&lt;br /&gt;
==Registers==&lt;br /&gt;
Internal registers &#039;&#039;&#039;r?&#039;&#039;&#039;: The IC contains 16 CPU registers, numbered &#039;&#039;&#039;r0&#039;&#039;&#039; to &#039;&#039;&#039;r15&#039;&#039;&#039;. From now on referred to as &#039;&#039;&#039;r?&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Device registers &#039;&#039;&#039;d? logicType&#039;&#039;&#039;: Device registers are written to and from the IC. A device register is numbered &#039;&#039;&#039;d0&#039;&#039;&#039; to &#039;&#039;&#039;d5&#039;&#039;&#039; (select via screw), or &#039;&#039;&#039;db&#039;&#039;&#039; (connected device). From now on referred to as &#039;&#039;&#039;d?&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Logic and algorithmic with &#039;&#039;&#039;Internal registers&#039;&#039;&#039; ===&lt;br /&gt;
All calculations are exclusively performed to and from &#039;&#039;&#039;r?&#039;&#039;&#039; registers, or generally more understood as variables in programming. You can use aliases to give convenient names with the &amp;lt;code&amp;gt;alias string r?|d?&amp;lt;/code&amp;gt;command (see below). &lt;br /&gt;
&lt;br /&gt;
Internal registers can be manipulated in various ways. &lt;br /&gt;
* Write constant values &amp;lt;code&amp;gt;move r? (r?|num)&amp;lt;/code&amp;gt;: Example: &amp;lt;code&amp;gt;move r0 2&amp;lt;/code&amp;gt; sets r0 to the number 2.&lt;br /&gt;
* Calculate: Calculations are done to- and from these registers, like &amp;lt;code&amp;gt;add r? a(r?|num) b(r?|num)&amp;lt;/code&amp;gt;. Example: &amp;lt;code&amp;gt;add r1 r0 3&amp;lt;/code&amp;gt; adds 3 to r0, and writes to r1.&lt;br /&gt;
&lt;br /&gt;
Note, for any kind of if statements or loop behaviours, knowing about labels, branching, and jumps is essential knowledge. See below.&lt;br /&gt;
&lt;br /&gt;
=== IO to &#039;&#039;&#039;Device registers&#039;&#039;&#039; ===&lt;br /&gt;
Acronym &#039;&#039;&#039;d?&#039;&#039;&#039; stands for device, where ? is a number corresponding to the screw device selector on the socket.&lt;br /&gt;
You can also read/write to the device where the IC is planted in using device &#039;&#039;&#039;db&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Generally, there are up to 6 devices which can be set using the screwdriver &#039;&#039;&#039;d0&#039;&#039;&#039; to &#039;&#039;&#039;d5&#039;&#039;&#039;. A special device register &#039;&#039;&#039;db&#039;&#039;&#039; is the device wherever the IC is mounted upon. Very convenient for atmospheric devices where no separate IC socket is required.&lt;br /&gt;
&lt;br /&gt;
Note, the IC is completely unaware where d? is actually connected to. So if you get a logicType error, check d? number, or check if the screw has been set opn the socket. An alias is only convenient to convey what is expected to be set on the d? screw, it does not actually set or program the screq.&lt;br /&gt;
&lt;br /&gt;
* Read from device (load) &amp;lt;code&amp;gt;l r? d? logicType&amp;lt;/code&amp;gt;: Reads logicType, like Pressure from a [[Sensors|gas sensor]], from device d? to register r?. Values can be read from connected devices and put into the register using the &#039;&#039;&#039;l&#039;&#039;&#039; (load) command. For example, if you want to load the state of a door. &amp;lt;br&amp;gt; Example: &amp;lt;code&amp;gt;l r0 Door Open&amp;lt;/code&amp;gt; reads the &#039;Open&#039; field of an object named &#039;Door&#039;, that would be connected to the IC housing of the chip.&lt;br /&gt;
* Write to a device (set) &amp;lt;code&amp;gt;s d? logicType r?&amp;lt;/code&amp;gt;: Write a value from a register back to a device using the command &amp;lt;code&amp;gt;s d? logicType r?&amp;lt;/code&amp;gt;. For example, if d0 is set to a door using the screwdriver, &amp;lt;code&amp;gt;s d0 Open 0&amp;lt;/code&amp;gt; sets the &#039;Open&#039; status of the d0 (a door) to 0, effectively closing the door.&lt;br /&gt;
&lt;br /&gt;
=== batch IO to - &#039;&#039;&#039;Device registers&#039;&#039;&#039; ===&lt;br /&gt;
&#039;&#039;&#039;Batch writing&#039;&#039;&#039; needs to be done to a specific &#039;&#039;&#039;deviceHash&#039;&#039;&#039; instead of d?. Is unique per device type, which you can find in the [[Stationpedia]] entries.&lt;br /&gt;
* &amp;lt;code&amp;gt;lb r? deviceHash logicType batchMode&amp;lt;/code&amp;gt; &lt;br /&gt;
* &amp;lt;code&amp;gt;sb deviceHash logicType r?&amp;lt;/code&amp;gt;&lt;br /&gt;
Additionally, using the following batch commands, a &#039;&#039;&#039;nameHash&#039;&#039;&#039; can be provided to only modify devices with a certain name.&lt;br /&gt;
* &amp;lt;code&amp;gt;lbn r? deviceHash nameHash logicType batchMode &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sbn deviceHash nameHash logicType r?&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;batchMode&#039;&#039;&#039; is a parameter equal to 0, 1, 2, or 3. These are also defined as the constants &#039;&#039;&#039;Average&#039;&#039;&#039;, &#039;&#039;&#039;Sum&#039;&#039;&#039;, &#039;&#039;&#039;Minimum&#039;&#039;&#039;, and &#039;&#039;&#039;Maximum&#039;&#039;&#039; respectively. The word or number can be used.&lt;br /&gt;
&lt;br /&gt;
Combining one of these functions with the &amp;lt;code&amp;gt;HASH()&amp;lt;/code&amp;gt; function can be advantageous:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;lbn r0 HASH(&amp;quot;StructureGasSensor&amp;quot;) HASH(&amp;quot;Sensor 1&amp;quot;) Temperature Average&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This code will load the average temperature of all gas sensors on the network named &amp;quot;Sensor 1&amp;quot; onto register &#039;&#039;&#039;r0&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the batch read (lb/lbn) is done on a network without any matching devices the results will be as specified in the table:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Batch read with no devices&lt;br /&gt;
|-&lt;br /&gt;
! Batch Mode !! Result&lt;br /&gt;
|-&lt;br /&gt;
| Average (0) || nan&lt;br /&gt;
|-&lt;br /&gt;
| Sum (1) || 0&lt;br /&gt;
|-&lt;br /&gt;
| Minimum (2) || 0&lt;br /&gt;
|-&lt;br /&gt;
| Maximum (3) || ninf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
Here are some examples demonstrating all three operations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;move r0 10&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;Sets register &#039;&#039;&#039;r0&#039;&#039;&#039; to the value 10&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;move r0 r1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;Copies the value of register &#039;&#039;&#039;r1&#039;&#039;&#039; to register &#039;&#039;&#039;r0&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;l r0 d0 Temperature&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;Reads the Temperature parameter from device &#039;&#039;&#039;d0&#039;&#039;&#039; and places the value in register &#039;&#039;&#039;r0&#039;&#039;&#039;.&lt;br /&gt;
Note: not all devices have a Temperature parameter, check the in-game stationpedia.&lt;br /&gt;
&lt;br /&gt;
To set a device specific value (like &#039;&#039;&#039;On&#039;&#039;&#039;), you can write into this value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s d0 On r0&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;Writes the value from register &#039;&#039;&#039;r0&#039;&#039;&#039; out to &#039;&#039;&#039;On&#039;&#039;&#039; parameter of device &#039;&#039;&#039;d0&#039;&#039;&#039;. In this example the device will be turned On, if valve of register r0 equals 1, otherwise (register r0 equals 0) it will turned off. See section [[IC10#Device_Variables|Device Variables]].&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended to use labels (like: &#039;&#039;someVariable&#039;&#039;) instead of a direct reference to the register. See &#039;&#039;&#039;alias&#039;&#039;&#039; in section [[IC10#Instructions|Instructions]].&lt;br /&gt;
&lt;br /&gt;
=== Special registers ===&lt;br /&gt;
There are two more registers. One called &#039;&#039;&#039;ra&#039;&#039;&#039; (return address) and one called &#039;&#039;&#039;sp&#039;&#039;&#039; (stack pointer). The &#039;&#039;&#039;ra&#039;&#039;&#039; is used by certain jump and branching instructions (those ending with &#039;&#039;&#039;-al&#039;&#039;&#039;) to remember which line in the script it should return to. The &#039;&#039;&#039;sp&#039;&#039;&#039; tracks the next index within the stack (a memory that can store up to 512 values) to be pushed (written) to or popped (read) from. Neither &#039;&#039;&#039;ra&#039;&#039;&#039; or &#039;&#039;&#039;sp&#039;&#039;&#039; is protected, their values can be changed by instructions like any other register.&lt;br /&gt;
&lt;br /&gt;
==Stack Memory==&lt;br /&gt;
;push r?: adds the value  &#039;&#039;&#039;r?&#039;&#039;&#039; and increments the &#039;&#039;&#039;sp&#039;&#039;&#039; by 1.&lt;br /&gt;
;pop r?: loads the value in the stack memory at index &amp;lt;code&amp;gt;sp-1&amp;lt;/code&amp;gt; into register &#039;&#039;&#039;r?&#039;&#039;&#039; and decrements the &#039;&#039;&#039;sp&#039;&#039;&#039; by 1.&lt;br /&gt;
;peek r?: loads the value in the stack memory at index &amp;lt;code&amp;gt;sp-1&amp;lt;/code&amp;gt; into register &#039;&#039;&#039;r?&#039;&#039;&#039;.&lt;br /&gt;
;get r? d? address(r?|num): loads the value in the stack memory at index &amp;lt;code&amp;gt;address&amp;lt;/code&amp;gt; on provided device into register &#039;&#039;&#039;r?&#039;&#039;&#039;.&lt;br /&gt;
;getd r? id(r?|num) address(r?|num): loads the value in the stack memory at index &amp;lt;code&amp;gt;address&amp;lt;/code&amp;gt; on provided device id into register &#039;&#039;&#039;r?&#039;&#039;&#039;.&lt;br /&gt;
;put d? address(r?|num) value(r?|num): adds the value to the stack memory off the provided device at index &amp;lt;code&amp;gt;address&amp;lt;/code&amp;gt;.&lt;br /&gt;
;putd id(r?|num) address(r?|num) value(r?|num) : adds the value to the stack memory off the provided device id at index &amp;lt;code&amp;gt;address&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As mentioned previously, &#039;&#039;&#039;sp&#039;&#039;&#039; can be both written to and read from any time. When reading (&#039;&#039;&#039;peek&#039;&#039;&#039; or &#039;&#039;&#039;pop&#039;&#039;&#039;), &#039;&#039;&#039;sp&#039;&#039;&#039; must be between 1 and 512, inclusive. While writing (&#039;&#039;&#039;push&#039;&#039;&#039;), &#039;&#039;&#039;sp&#039;&#039;&#039; must be between 0 and 511, inclusive.&lt;br /&gt;
&lt;br /&gt;
Stack memory is persistent on logic chips. This means that if you have a logic chip and push values to the stack, the code that pushes those values can be removed and the stack will retain those values.&lt;br /&gt;
&lt;br /&gt;
Note that this does not carry over to any other logic chips which receive the program of the original; They will need to have their stack memories programmed individually.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stack Traversing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Traversing the stack can be done similarly to how an array would be traversed in some other languages:&lt;br /&gt;
{{ICCode|&lt;br /&gt;
#this will traverse indices {min value} through {max value}-1&lt;br /&gt;
move sp {min value}&lt;br /&gt;
loop:&lt;br /&gt;
add sp sp 1&lt;br /&gt;
peek r0&lt;br /&gt;
&lt;br /&gt;
#do something here with your stack values (loaded into r0)&lt;br /&gt;
&lt;br /&gt;
blt sp {max value} loop&lt;br /&gt;
&lt;br /&gt;
#continue on&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use the pop function&#039;s decrementing to make a more efficient loop:&lt;br /&gt;
{{ICCode|&lt;br /&gt;
move sp {max value}&lt;br /&gt;
add sp sp 1&lt;br /&gt;
loop:&lt;br /&gt;
pop r0&lt;br /&gt;
&lt;br /&gt;
#do something here with your stack values (loaded into r0)&lt;br /&gt;
&lt;br /&gt;
bgt sp {min value} loop&lt;br /&gt;
&lt;br /&gt;
#continue on&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Device Ports==&lt;br /&gt;
ICs can interact with up to 6 other devices via d0 - d5, as well as the device it&#039;s attached to via db. To change or set a device, use a screwdriver and adjust the device in the IC housing. You can read or set any of the device&#039;s properties, so it is possible to do things like read the pressure or oxygen content of a room on the same Device port. &lt;br /&gt;
&lt;br /&gt;
Additionally, is possible to set other IC housings as devices, allowing you to create programs that run across multiple ICs together. For example, an Gas Mixing IC could check the &#039;&#039;&#039; Setting&#039;&#039;&#039;  field of a Atmosphere Sensor IC and act based on the value of the sensor chip.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;l&#039;&#039;&#039; (load) or &#039;&#039;&#039;s&#039;&#039;&#039; (set) instructions you have to read or set these values to your device. Examples:&lt;br /&gt;
{{ICCode|&lt;br /&gt;
#Reads the &#039;Temperature&#039; from an atmosphere sensor&lt;br /&gt;
# at device port &#039;d0&#039; into register &#039;r0&#039;.&lt;br /&gt;
l r0 d0 Temperature&lt;br /&gt;
}} &lt;br /&gt;
{{ICCode|&lt;br /&gt;
# Writes the value of the register &#039;r0&#039; to the&lt;br /&gt;
# device on port &#039;d1&#039; into the variable &#039;Setting&#039;.&lt;br /&gt;
s d1 Setting r0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Labels==&lt;br /&gt;
Labels are used to make it easier to jump between lines in the script. The label will have a numerical value that is the same as its line number. Even though it&#039;s possible to use a labels value for calculations, doing so is a bad idea since any changes to the code can change the line numbers of the labels.&lt;br /&gt;
{{ICCode|&lt;br /&gt;
main: # define a jump mark with label &#039;main&#039;&lt;br /&gt;
j main # jumps back to &#039;main&#039;&lt;br /&gt;
}}&lt;br /&gt;
==Constants==&lt;br /&gt;
Instead of using a register to store a fixed value, a constant can be made. Using this name will refer to the assigned value. With the help of Constants you can save register places.&lt;br /&gt;
{{ICCode|&lt;br /&gt;
# defines a Constant with name &#039;pi&#039;&lt;br /&gt;
# and set its value to 3.14159&lt;br /&gt;
define pi 3.14159&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
You can use these constants like any other variables (see: alias in section [[IC10#Instructions|Instructions]]). Example:&lt;br /&gt;
{{ICCode|&lt;br /&gt;
# set the value of register &#039;r0&#039; to the value of constant named &#039;pi&#039;.&lt;br /&gt;
move r0 pi &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Indirect referencing==&lt;br /&gt;
This is a way of accessing a register by using another register as a pointer. Adding an additional r in front of the register turns on this behaviour. The value stored in the register being used as the pointer must be between 0 to 15, this will then point to a register from r0 to r15, higher or lower values will cause an error.&lt;br /&gt;
{{ICCode|&lt;br /&gt;
move r0 5 # stores the value 5 in r0&lt;br /&gt;
move rr0 10 &lt;br /&gt;
# is now the same as &#039;move r5 10&#039; &lt;br /&gt;
# since r0 has the value 5, rr0 points at the register r5&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Additional r&#039;s can be added to do indirect referencing multiple times in a row.&lt;br /&gt;
{{ICCode|&lt;br /&gt;
move r1 2&lt;br /&gt;
move r2 3&lt;br /&gt;
move rrr1 4&lt;br /&gt;
# is now the same as &#039;move r3 4&#039;&lt;br /&gt;
# since r1 points at r2 which points at r3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This also works with devices&lt;br /&gt;
{{ICCode|&lt;br /&gt;
move r0 2 # stores the value 2 in r0&lt;br /&gt;
s dr0 On 1 &lt;br /&gt;
# is now the same as &#039;s d2 On 1&#039;&lt;br /&gt;
# r0 has the value 2 so dr0 points at d2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Network Referencing / Channels==&lt;br /&gt;
&lt;br /&gt;
All cable networks have 8 Channels which can have data loaded from/stored to via a device and connection reference. Connections for each supported device are listed in the stationpedia. All &#039;connections&#039; a device can make are a connection (pipe, chute, cable), but only cable networks have channels.&lt;br /&gt;
&lt;br /&gt;
The 8 channels (Channel0 to Channel7) are however volatile, in that data is destroyed if any part of the cable network is changed, removed, or added to, and also whenever the world is exited. All these channels default to NaN. Strictly speaking, they default to what we would call &amp;quot;quiet NaN&amp;quot;, in that its not an error it simply means its not a number yet. Recommend you use these channels for reading and writing between networks, rather than as a data store. This effectively means an IC can read all the networks for all devices to connected to it, so not just their own local network, but any networks any device they can reference is connected to.&lt;br /&gt;
{{ICCode|&lt;br /&gt;
# d0 is device zero, and the :0 refers&lt;br /&gt;
# to that device&#039;s 0 connection&lt;br /&gt;
l r0 d0:0 Channel0}}&lt;br /&gt;
&lt;br /&gt;
For example: on an IC Housing, the 0 connection is the data port and 1 is power, so you could write out r0 to Channel0 of the power network of the Housing using &amp;lt;code&amp;gt;s db:1 Channel0 r0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Comments==&lt;br /&gt;
Comments can be placed using a &#039;&#039;&#039;#&#039;&#039;&#039; symbol. All comments are ignored by the game when it reads commands. Below is an example of valid code with two comments.&lt;br /&gt;
{{ICCode|&lt;br /&gt;
alias MyAlias r0 # Text after the hash tag will be ignored to the end of the line.&lt;br /&gt;
# You can also write comments on their own lines, like this.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Debugging advices==&lt;br /&gt;
The value stored in a register or variable can easily be displayed by writing it to the Setting parameter of the IC housing. This has no side effects. To see the value, just stand close to the IC housing and look directly at the housing.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;s db Setting r0&amp;lt;/code&amp;gt;. # sets/writes the value of register &#039;&#039;&#039;r0&#039;&#039;&#039; into the parameter &#039;&#039;&#039;Setting&#039;&#039;&#039; of the IC Housing(&#039;&#039;&#039;db&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
To check if a certain block of code is executed, use the above trick but with a random number that you choose, like the line number.&amp;lt;br&amp;gt; This example will display the number 137 on the IC housing.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;s db Setting 137&amp;lt;/code&amp;gt;  # sets/writes the number 137 into the parameter &#039;&#039;&#039;Setting&#039;&#039;&#039; of the IC Housing(&#039;&#039;&#039;db&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Always use unique names for labels. When a label is named after a IC10 keyword like &amp;quot;Temperature:&amp;quot; or &amp;quot;Setting:&amp;quot; the original meaning of the keyword is overwritten, so when an instruction tries to use it an error will occur.&lt;br /&gt;
&lt;br /&gt;
A [[Cartridge#Configuration|configuration cartridge]] installed in a [[Handheld_Tablet|tablet]]  can be used to see all available values and configuration parameter for all devices you focus on.&lt;br /&gt;
&lt;br /&gt;
==Learning IC10==&lt;br /&gt;
IC10 can be difficult to get started with. So here is a list of instructions that are useful for beginners. These can be used to write many different scripts.&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
* &amp;lt;code&amp;gt;alias&amp;lt;/code&amp;gt; make the script easier to read by assigning a name to a register or device, example: &amp;lt;code&amp;gt;alias rTemperature r15&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;label:&amp;lt;/code&amp;gt; where &amp;quot;label&amp;quot; can be replaced with almost any word, jump and branch instructions can use these in place of line numbers, example: &amp;lt;code&amp;gt;start:&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;yield&amp;lt;/code&amp;gt; pause for 1-tick and then resume, if not used the script will automatically pause for 1-tick after 128 lines&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Jumps:&lt;br /&gt;
*&amp;lt;code&amp;gt;j someLabelName&amp;lt;/code&amp;gt; jump to line with &#039;&#039;&#039;someLabelName&#039;&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;jal someLabelName&amp;lt;/code&amp;gt; stores the next line number into the register ra (return address) and then jump to &#039;&#039;&#039;someLabelName&#039;&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;j ra&amp;lt;/code&amp;gt; jump to register ra (return address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Branching (jump-if):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;beq a(r?|num) b(r?|num) c(r?|num)&amp;lt;/code&amp;gt; if &#039;&#039;&#039;a&#039;&#039;&#039; is equal to &#039;&#039;&#039;b&#039;&#039;&#039; goto &#039;&#039;&#039;c&#039;&#039;&#039;  (label or linenumber) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;bne a(r?|num) b(r?|num) c(r?|num)&amp;lt;/code&amp;gt; if  &#039;&#039;&#039;a&#039;&#039;&#039; not-equal &#039;&#039;&#039;b&#039;&#039;&#039; goto  &#039;&#039;&#039;c&#039;&#039;&#039; (label or linenumber) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;bgt a(r?|num) b(r?|num) c(r?|num)&amp;lt;/code&amp;gt; if  &#039;&#039;&#039;a&#039;&#039;&#039; greater than &#039;&#039;&#039;b&#039;&#039;&#039; goto   &#039;&#039;&#039;c&#039;&#039;&#039; (label or linenumber) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;blt a(r?|num) b(r?|num) c(r?|num)&amp;lt;/code&amp;gt; if  &#039;&#039;&#039;a&#039;&#039;&#039; less than &#039;&#039;&#039;b&#039;&#039;&#039; goto &#039;&#039;&#039;c&#039;&#039;&#039; (label or linenumber) &amp;lt;br&amp;gt;&lt;br /&gt;
The suffix -al can be added to each of these (example: beqal) to save the &#039;&#039;&#039;next&#039;&#039;&#039; line number into the &amp;quot;return address&amp;quot; register. this is called using &amp;lt;code&amp;gt;j ra&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Device interactions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
l (load)&lt;br /&gt;
lb (load batch, requires one of the following: 0(Average) / 1(Sum) / 2(Minimum) / 3(Maximum))&lt;br /&gt;
ls (load slot)&lt;br /&gt;
s (store)&lt;br /&gt;
sb (store batch)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Logic and Math:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
seqz (common NOT-gate: turns 0 into 1, and all other values into 0)&lt;br /&gt;
move&lt;br /&gt;
add (addition)&lt;br /&gt;
sub (subtraction)&lt;br /&gt;
mul (multiplication)&lt;br /&gt;
div (division)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Common device variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
On (1 is on, 0 is off)&lt;br /&gt;
Open (1 is open, 0 is closed)&lt;br /&gt;
Setting (meaning varies between devices, example: a LED display(console) will show this value)&lt;br /&gt;
Activate (1 usually means running, example: a Daylight sensor is 1 when the sun shines on it)&lt;br /&gt;
Temperature (in Kelvin, Celsius - 273.15)&lt;br /&gt;
Pressure (in kPa)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Notes:&lt;br /&gt;
&amp;lt;br&amp;gt;-All instructions and variables can be seen in-game in the IC editor window by clicking the &amp;quot;f&amp;quot;, &amp;quot;x&amp;quot; and &amp;quot;s(x)&amp;quot; buttons on the top right.&lt;br /&gt;
&amp;lt;br&amp;gt;-The stationpedia is the best source to see which variables are available to each device.&lt;br /&gt;
&amp;lt;br&amp;gt;-Most scripts are loops, they end with a jump instruction that leads back up to the start. Otherwise they will just run once and then stop.&lt;br /&gt;
&lt;br /&gt;
Two practice scripts:&lt;br /&gt;
&amp;lt;br&amp;gt;Automatic Night Light: Load &amp;quot;Activate&amp;quot; from a Daylight sensor, flip the value with a NOT-gate, store the value to the &amp;quot;On&amp;quot; variable of one or more lights.&lt;br /&gt;
&amp;lt;br&amp;gt;Automatic Wall Cooler: Read &amp;quot;Temperature&amp;quot; from a Gas Sensor. Branch if the value is greater than X, turn on the cooler. Branch if the value is less than Y, turn off the cooler. (Wall coolers need a minimum of 12.5 kPa pressure in the connected pipe)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Accessing devices via batch or ReferenceId ==&lt;br /&gt;
&lt;br /&gt;
The IC housing has 6 pins you can use to configure the devices it&lt;br /&gt;
uses.  This provides flexibility to let the installer configure which&lt;br /&gt;
devices will be controlled by the IC.&lt;br /&gt;
&lt;br /&gt;
Alternatives for accessing devices include the batch load/store and&lt;br /&gt;
the ReferenceId load/store instructions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# get the average charge ratio across station batteries&lt;br /&gt;
lb r0 HASH(&amp;quot;StructureBattery&amp;quot;) Ratio Average&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# get the ReferenceId for the sorter named &amp;quot;Sorter Corn&amp;quot;&lt;br /&gt;
lbn r1 HASH(&amp;quot;StructureLogicSorter&amp;quot;) HASH(&amp;quot;Sorter Corn&amp;quot;) ReferenceId Maximum&lt;br /&gt;
ble r1 ninf ra&lt;br /&gt;
#use the ReferenceId to set that sorter&#039;s mode.&lt;br /&gt;
sd r1 Mode 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using the 6 configuration pins makes it easy to write reusable MIPS&lt;br /&gt;
scripts where the installer uses the pins to select the devices that&lt;br /&gt;
will be managed.&lt;br /&gt;
&lt;br /&gt;
Using batch-name instructions frees you from the hassle of adjusting&lt;br /&gt;
the pins, but requires you to name the devices via the [Labeler].  It&lt;br /&gt;
can also allow you to control more than 6 devices.&lt;br /&gt;
&lt;br /&gt;
=== Batch instructions ===&lt;br /&gt;
&lt;br /&gt;
lb, lbs, sb, sbs&lt;br /&gt;
lbn, lbns, sbn (missing: sbns)&lt;br /&gt;
&lt;br /&gt;
=== foreign device instructions ===&lt;br /&gt;
&lt;br /&gt;
clrd, getd, putd,&lt;br /&gt;
ld, sd, (no slot access yet)&lt;br /&gt;
&lt;br /&gt;
=Instructions=&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
See [[IC10/instructions]]&lt;br /&gt;
&lt;br /&gt;
{{:IC10/instructions}}&lt;br /&gt;
&lt;br /&gt;
[https://www.cs.tufts.edu/comp/140/lectures/Day_3/mips_summary.pdf Other examples]&lt;br /&gt;
&lt;br /&gt;
== Conditional functions cheatsheet ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! suffix !! description !! branch to line !! branch and store return address !! relative jump to line !! set register&lt;br /&gt;
|-&lt;br /&gt;
| prefix: ||  || b- || b-al || br- || s-&lt;br /&gt;
|-&lt;br /&gt;
|  || unconditional || j    || jal    || jr    || &lt;br /&gt;
|-&lt;br /&gt;
| -eq  || if a == b || beq  || beqal  || breq  || seq&lt;br /&gt;
|-&lt;br /&gt;
| -eqz || if a == 0 || beqz || beqzal || breqz || seqz&lt;br /&gt;
|-&lt;br /&gt;
| -ge  || if a &amp;gt;= b || bge  || bgeal  || brge  || sge&lt;br /&gt;
|-&lt;br /&gt;
| -gez || if a &amp;gt;= 0 || bgez || bgezal || brgez || sgez&lt;br /&gt;
|-&lt;br /&gt;
| -gt  || if a &amp;gt; b  || bgt  || bgtal  || brgt  || sgt&lt;br /&gt;
|-&lt;br /&gt;
| -gtz || if a &amp;gt; 0  || bgtz || bgtzal || brgtz || sgtz&lt;br /&gt;
|-&lt;br /&gt;
| -le  || if a &amp;lt;= b || ble  || bleal  || brle  || sle&lt;br /&gt;
|-&lt;br /&gt;
| -lez || if a &amp;lt;= 0 || blez || blezal || brlez || slez&lt;br /&gt;
|-&lt;br /&gt;
| -lt  || if a &amp;lt; b  || blt  || bltal  || brlt  || slt&lt;br /&gt;
|-&lt;br /&gt;
| -ltz || if a &amp;lt; 0  || bltz || bltzal || brltz || sltz&lt;br /&gt;
|-&lt;br /&gt;
| -ne  || if a != b || bne  || bneal  || brne  || sne&lt;br /&gt;
|-&lt;br /&gt;
| -nez || if a != 0 || bnez || bnezal || brnez || snez&lt;br /&gt;
|-&lt;br /&gt;
| -nan || if a == NaN || bnan ||  || brnan || snan&lt;br /&gt;
|-&lt;br /&gt;
| -nanz || if a != NaN ||  ||  || || snanz&lt;br /&gt;
|-&lt;br /&gt;
| -dns || if device d is not set          || bdns || bdnsal || brdns || sdns&lt;br /&gt;
|-&lt;br /&gt;
| -dse || if device d is set              || bdse || bdseal || brdse || sdse&lt;br /&gt;
|-&lt;br /&gt;
| -ap  || if a approximately equals b     || bap  || bapal  || brap  || sap&lt;br /&gt;
|-&lt;br /&gt;
| -apz || if a approximately equals 0     || bapz || bapzal || brapz || sapz&lt;br /&gt;
|-&lt;br /&gt;
| -na  || if a not approximately equals b || bna  || bnaal  || brna  || sna&lt;br /&gt;
|-&lt;br /&gt;
| -naz || if a not approximately equals 0 || bnaz || bnazal || brnaz || snaz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All &amp;lt;code&amp;gt;b-&amp;lt;/code&amp;gt; commands require target line as last argument, all &amp;lt;code&amp;gt;s-&amp;lt;/code&amp;gt; commands require register to store result as first argument. All &amp;lt;code&amp;gt;br-&amp;lt;/code&amp;gt; commands require number to jump relatively as last argument. e.g. &amp;lt;code&amp;gt;breq a b 3&amp;lt;/code&amp;gt; means if a=b then jump to 3 lines after.&lt;br /&gt;
&lt;br /&gt;
All approximate functions require additional argument denoting how close two numbers need to be considered equal. E.g.: &amp;lt;code&amp;gt;sap r0 100 101 0.01&amp;lt;/code&amp;gt; will consider 100 and 101 almost equal (not more than 1%=0.01 different) and will set r0 to 1. The exact formula is &amp;lt;code&amp;gt;if abs(a - b) &amp;lt;= max(c * max(abs(a), abs(b)), float.epsilon * 8)&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;-ap&amp;lt;/code&amp;gt; and is similar for other approximate functions.&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Machine_epsilon&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
  FLT_EPSILON = 2^(−23) ≈ 1.19e−07;        &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;float (32 bit)&amp;lt;/span&amp;gt;&lt;br /&gt;
  DBL_EPSILON = 2^(−52) ≈ 2.20e−16;        &amp;lt;span style=&amp;quot;color:#4c9700;&amp;quot;&amp;gt;double (64 bit)&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;if abs(100 - 101) &amp;lt;= max(0.01 * max(abs(100), abs(101)), float.epsilon * 8)&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;if abs(-1) &amp;lt;= max(0.01 * 101), float.epsilon * 8)&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;if 1 &amp;lt;= max(0.01 * 101, float.epsilon * 8)&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
  if 1 &amp;lt;= max(1.01, FLT_EPSILON * 8)&lt;br /&gt;
  if 1 &amp;lt;= max(1.01, DBL_EPSILON * 8)&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;if 1 &amp;lt;= max(1.01, 1.19e−07 * 8)&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#4c9700;&amp;quot;&amp;gt;if 1 &amp;lt;= max(1.01, 2.20e−16 * 8)&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;if 1 &amp;lt;= max(1.01, 0.000000952)&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#4c9700;&amp;quot;&amp;gt;if 1 &amp;lt;= max(1.01, 0.00000000000000176)&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;if 1 &amp;lt;= 1.01   TRUE   1&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#4c9700;&amp;quot;&amp;gt;if 1 &amp;lt;= 1.01   TRUE   1&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Device Variables==&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Activate&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Activate&lt;br /&gt;
:1 if device is activated (usually means running), otherwise 0&lt;br /&gt;
:&amp;lt;code&amp;gt;l r0 d0 Activate # sets r0 to 1 if on or 0 if off&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;AirRelease&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;AirRelease&lt;br /&gt;
&amp;lt;div id=&amp;quot;Charge&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Charge&lt;br /&gt;
:    The current charge the device has.&lt;br /&gt;
&amp;lt;div id=&amp;quot;CLearMemory&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;ClearMemory&lt;br /&gt;
:    When set to 1, clears the counter memory (e.g. ExportCount).  Will set itself back to 0 when triggered.&lt;br /&gt;
&amp;lt;div id=&amp;quot;Color&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Color&lt;br /&gt;
:    &amp;lt;div style=&amp;quot;display: inline-block; vertical-align: top; height: 20px; width: 20px; border: 1px solid black; margin-right: 5px; background-color:#212AA5;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;amp;nbsp;0 (or lower) = Blue&lt;br /&gt;
:    &amp;lt;div style=&amp;quot;display: inline-block; vertical-align: top; height: 20px; width: 20px; border: 1px solid black; margin-right: 5px; background-color:#7B7B7B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;amp;nbsp;1 = Grey &lt;br /&gt;
:    &amp;lt;div style=&amp;quot;display: inline-block; vertical-align: top; height: 20px; width: 20px; border: 1px solid black; margin-right: 5px; background-color:#3F9B39;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;amp;nbsp;2 = Green &lt;br /&gt;
:    &amp;lt;div style=&amp;quot;display: inline-block; vertical-align: top; height: 20px; width: 20px; border: 1px solid black; margin-right: 5px; background-color:#FF662B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;amp;nbsp;3 = Orange &lt;br /&gt;
:    &amp;lt;div style=&amp;quot;display: inline-block; vertical-align: top; height: 20px; width: 20px; border: 1px solid black; margin-right: 5px; background-color:#E70200;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;amp;nbsp;4 = Red &lt;br /&gt;
:    &amp;lt;div style=&amp;quot;display: inline-block; vertical-align: top; height: 20px; width: 20px; border: 1px solid black; margin-right: 5px; background-color:#FFBC1B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;amp;nbsp;5 = Yellow &lt;br /&gt;
:    &amp;lt;div style=&amp;quot;display: inline-block; vertical-align: top; height: 20px; width: 20px; border: 1px solid black; margin-right: 5px; background-color:#E7E7E7;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;amp;nbsp;6 = White &lt;br /&gt;
:    &amp;lt;div style=&amp;quot;display: inline-block; vertical-align: top; height: 20px; width: 20px; border: 1px solid black; margin-right: 5px; background-color:#080908;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;amp;nbsp;7 = Black &lt;br /&gt;
:    &amp;lt;div style=&amp;quot;display: inline-block; vertical-align: top; height: 20px; width: 20px; border: 1px solid black; margin-right: 5px; background-color:#633C2B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;amp;nbsp;8 = Brown &lt;br /&gt;
:    &amp;lt;div style=&amp;quot;display: inline-block; vertical-align: top; height: 20px; width: 20px; border: 1px solid black; margin-right: 5px; background-color:#63633F;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;amp;nbsp;9 = Khaki &lt;br /&gt;
:    &amp;lt;div style=&amp;quot;display: inline-block; vertical-align: top; height: 20px; width: 20px; border: 1px solid black; margin-right: 5px; background-color:#E41C99;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;amp;nbsp;10 = Pink &lt;br /&gt;
:    &amp;lt;div style=&amp;quot;display: inline-block; vertical-align: top; height: 20px; width: 20px; border: 1px solid black; margin-right: 5px; background-color:#732CA7;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;amp;nbsp;11 (or higher) = Purple &lt;br /&gt;
&amp;lt;div id=&amp;quot;CompletionRatio&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;CompletionRatio&lt;br /&gt;
&amp;lt;div id=&amp;quot;ElevatorLevel&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;ElevatorLevel&lt;br /&gt;
&amp;lt;div id=&amp;quot;ElevatorSpeed&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;ElevatorSpeed&lt;br /&gt;
&amp;lt;div id=&amp;quot;Error&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Error&lt;br /&gt;
:	1 if device is in error state, otherwise 0&lt;br /&gt;
&amp;lt;div id=&amp;quot;ExportCount&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;ExportCount&lt;br /&gt;
:    How many items exporfted since last ClearMemory.&lt;br /&gt;
&amp;lt;div id=&amp;quot;Filtration&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Filtration&lt;br /&gt;
:	The current state of the filtration system.  For example filtration = 1 for a Hardsuit when filtration is On.&lt;br /&gt;
&amp;lt;div id=&amp;quot;Harvest&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Harvest&lt;br /&gt;
:	Performs the harvesting action for any plant based machinery.&lt;br /&gt;
:  &amp;lt;code&amp;gt;s d0 Harvest 1 # Performs 1 harvest action on device d0&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;Horizontal&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Horizontal&lt;br /&gt;
&amp;lt;div id=&amp;quot;HorizontalRatio&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;HorizontalRatio&lt;br /&gt;
&amp;lt;div id=&amp;quot;Idle&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Idle&lt;br /&gt;
&amp;lt;div id=&amp;quot;ImportCount&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;ImportCount&lt;br /&gt;
&amp;lt;div id=&amp;quot;Lock&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Lock&lt;br /&gt;
&amp;lt;div id=&amp;quot;Maximum&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Maximum&lt;br /&gt;
&amp;lt;div id=&amp;quot;Mode&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Mode&lt;br /&gt;
&amp;lt;div id=&amp;quot;On&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;On&lt;br /&gt;
&amp;lt;div id=&amp;quot;Open&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Open&lt;br /&gt;
&amp;lt;div id=&amp;quot;Output&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Output&lt;br /&gt;
&amp;lt;div id=&amp;quot;Plant&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Plant&lt;br /&gt;
:    Performs the planting operation for any plant based machinery.&lt;br /&gt;
:  &amp;lt;code&amp;gt;s d0 Plant 1 # Plants one crop in device d0&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;PositionX&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;PositionX&lt;br /&gt;
&amp;lt;div id=&amp;quot;PositionY&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;PositionY&lt;br /&gt;
&amp;lt;div id=&amp;quot;PositionZ&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;PositionZ&lt;br /&gt;
&amp;lt;div id=&amp;quot;Power&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Power&lt;br /&gt;
&amp;lt;div id=&amp;quot;PowerActual&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;PowerActual&lt;br /&gt;
&amp;lt;div id=&amp;quot;PowerPotential&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;PowerPotential&lt;br /&gt;
&amp;lt;div id=&amp;quot;PowerRequired&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;PowerRequired&lt;br /&gt;
&amp;lt;div id=&amp;quot;Pressure&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Pressure&lt;br /&gt;
&amp;lt;div id=&amp;quot;PressureExternal&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;PressureExternal&lt;br /&gt;
&amp;lt;div id=&amp;quot;PressureInteral&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;PressureInteral&lt;br /&gt;
&amp;lt;div id=&amp;quot;PressureSetting&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;PressureSetting&lt;br /&gt;
&amp;lt;div id=&amp;quot;Quantity&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Quantity&lt;br /&gt;
:	Total quantity in the device.&lt;br /&gt;
&amp;lt;div id=&amp;quot;Ratio&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Ratio&lt;br /&gt;
:	Context specific value depending on device, 0 to 1 based ratio.&lt;br /&gt;
&amp;lt;div id=&amp;quot;RatioCarbonDioxide&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;RatioCarbonDioxide&lt;br /&gt;
&amp;lt;div id=&amp;quot;RatioNitrogen&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;RatioNitrogen&lt;br /&gt;
:	The ratio of nitrogen in device atmosphere.&lt;br /&gt;
&amp;lt;div id=&amp;quot;RatioOxygen&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;RatioOxygen&lt;br /&gt;
:	The ratio of oxygen in device atmosphere.&lt;br /&gt;
&amp;lt;div id=&amp;quot;RatioPollutant&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;RatioPollutant&lt;br /&gt;
:	The ratio of pollutant in device atmosphere.&lt;br /&gt;
&amp;lt;div id=&amp;quot;RatioVolatiles&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;RatioVolatiles&lt;br /&gt;
:	The ratio of volatiles in device atmosphere.&lt;br /&gt;
&amp;lt;div id=&amp;quot;RatioWater&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;RatioWater&lt;br /&gt;
:	The ratio of water in device atmosphere.&lt;br /&gt;
&amp;lt;div id=&amp;quot;Reagents&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Reagents&lt;br /&gt;
&amp;lt;div id=&amp;quot;RecipeHash&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;RecipeHash&lt;br /&gt;
&amp;lt;div id=&amp;quot;RequestHash&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;ReferenceId&lt;br /&gt;
:    Unique Identifier of a Device, this value is different for every device in a save.&lt;br /&gt;
&amp;lt;div id=&amp;quot;ReferenceId&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;RequestHash&lt;br /&gt;
&amp;lt;div id=&amp;quot;RequiredPower&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;RequiredPower&lt;br /&gt;
&amp;lt;div id=&amp;quot;Setting&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Setting&lt;br /&gt;
&amp;lt;div id=&amp;quot;SolarAngle&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;SolarAngle&lt;br /&gt;
:    Solar angle of the device.&lt;br /&gt;
:  &amp;lt;code&amp;gt;l r0 d0 SolarAngle # Sets r0 to the solar angle of d0.&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;Temperature&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Temperature&lt;br /&gt;
&amp;lt;div id=&amp;quot;TemperatureSettings&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;TemperatureSettings&lt;br /&gt;
&amp;lt;div id=&amp;quot;TotalMoles&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;TotalMoles&lt;br /&gt;
&amp;lt;div id=&amp;quot;VelocityMagnitude&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;VelocityMagnitude&lt;br /&gt;
&amp;lt;div id=&amp;quot;VelocityRelativeX&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;VelocityRelativeX&lt;br /&gt;
&amp;lt;div id=&amp;quot;VelocityRelativeY&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;VelocityRelativeY&lt;br /&gt;
&amp;lt;div id=&amp;quot;VelocityRelativeZ&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;VelocityRelativeZ&lt;br /&gt;
&amp;lt;div id=&amp;quot;Vertical&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Vertical&lt;br /&gt;
:	Vertical setting of the device.&lt;br /&gt;
&amp;lt;div id=&amp;quot;VerticalRatio&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;VerticalRatio&lt;br /&gt;
:	Ratio of vertical setting for device.&lt;br /&gt;
&amp;lt;div id=&amp;quot;Volume&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Volume&lt;br /&gt;
:	Returns the device atmosphere volume&lt;br /&gt;
&lt;br /&gt;
==Slot Variables==&lt;br /&gt;
In general (always?) slots are assigned as follows.&lt;br /&gt;
:Slot 0: Import&lt;br /&gt;
:Slot 1: Export&lt;br /&gt;
:Slot 2: Inside Machine&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Occupied&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Occupied&lt;br /&gt;
:&amp;lt;code&amp;gt;ls r0 d0 2 Occupied #Stores 1 in r0 if d0 has more seeds&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;ls vOccupied dThisVictim 2 Occupied #stores 1 in vOccupied if dThisVictim has more seeds&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;OccupantHash&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;OccupantHash&lt;br /&gt;
&amp;lt;div id=&amp;quot;Quantity&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Quantity&lt;br /&gt;
&amp;lt;div id=&amp;quot;Damage&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Damage&lt;br /&gt;
&amp;lt;div id=&amp;quot;Efficiency&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Efficiency&lt;br /&gt;
&amp;lt;div id=&amp;quot;Health&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Health&lt;br /&gt;
&amp;lt;div id=&amp;quot;Growth&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Growth&lt;br /&gt;
:&amp;lt;code&amp;gt;ls r0 d0 0 Growth # Store the numerical growth stage of d0 in r0&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;div id=&amp;quot;Pressure&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Pressure&lt;br /&gt;
&amp;lt;div id=&amp;quot;Temperature&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Temperature&lt;br /&gt;
&amp;lt;div id=&amp;quot;Charge&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Charge&lt;br /&gt;
&amp;lt;div id=&amp;quot;ChargeRatio&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;ChargeRatio&lt;br /&gt;
&amp;lt;div id=&amp;quot;Class&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Class&lt;br /&gt;
&amp;lt;div id=&amp;quot;PressureWaste&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;PressureWaste&lt;br /&gt;
&amp;lt;div id=&amp;quot;PressureAir&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;PressureAir&lt;br /&gt;
&amp;lt;div id=&amp;quot;MaxQuantity&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;MaxQuantity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Mature&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
;Mature&lt;br /&gt;
:&amp;lt;code&amp;gt;ls r0 d0 0 Mature # Store 1 in r0 if d0 has a mature crop&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;ls vMature dThisVictim 0 Mature # Store 1 in vMature if dThisVictim has a mature crop&amp;lt;/code&amp;gt;&lt;br /&gt;
;ReferenceId&lt;br /&gt;
:    Unique Identifier of a Device, this value is different for every device in a save.&lt;br /&gt;
&amp;lt;div id=&amp;quot;ReferenceId&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Examples=&lt;br /&gt;
Previous examples were obsolete due to game changes, or confusing, they have been moved into the Discussions section&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Harvie automation===&lt;br /&gt;
This script uses the batch instruction &amp;lt;code&amp;gt;sb ...&amp;lt;/code&amp;gt; to control all Harvie devices on the network. But only one Harvie and one Tray will be the &#039;&#039;master&#039;&#039; and have their values read, the rest of the Harvies will repeat exactly what this unit does. Some problems with this design is that different types of crops mature at different speeds, and if seeds were manually planted and the master unit recieved the first seed, the harvesting action will be performed too early on all the other plants since they are growing a few seconds slower.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; data-expandtext=&amp;quot;{{int:Expand, Automated Harvie Script}}&amp;quot; data-collapsetext=&amp;quot;{{int:Collapse, Automated Harvie Script}}&amp;quot;&amp;gt;&lt;br /&gt;
{{ICCode|&lt;br /&gt;
alias dHarvie d0&lt;br /&gt;
alias dTray d1&lt;br /&gt;
&lt;br /&gt;
alias rHarvieHash r8&lt;br /&gt;
alias rTrayHash r9&lt;br /&gt;
l rHarvieHash dHarvie PrefabHash&lt;br /&gt;
l rTrayHash dTray PrefabHash&lt;br /&gt;
&lt;br /&gt;
main:&lt;br /&gt;
yield&lt;br /&gt;
#read plant data from the Tray&lt;br /&gt;
ls r0 dTray 0 Mature&lt;br /&gt;
#harvestable plants return 1, young plants return 0&lt;br /&gt;
#nothing planted returns -1&lt;br /&gt;
beq r0 -1 plantCrop&lt;br /&gt;
beq r0 1 harvestCrop&lt;br /&gt;
ls r0 dTray 0 Seeding&lt;br /&gt;
#seeds available returns 1, all seeds picked returns 0&lt;br /&gt;
#plants too young or old for seeds returns -1&lt;br /&gt;
beq r0 1 harvestCrop&lt;br /&gt;
j main&lt;br /&gt;
&lt;br /&gt;
plantCrop:&lt;br /&gt;
#stop the planting if no seeds available&lt;br /&gt;
#otherwise it will plant nothing repeatedly&lt;br /&gt;
ls r0 dHarvie 0 Occupied&lt;br /&gt;
beq r0 0 main&lt;br /&gt;
sb rHarvieHash Plant 1&lt;br /&gt;
j main&lt;br /&gt;
&lt;br /&gt;
harvestCrop:&lt;br /&gt;
sb rHarvieHash Harvest 1&lt;br /&gt;
j main&lt;br /&gt;
&lt;br /&gt;
### End Script ###&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Solar Panel 2-axis tracking===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; data-expandtext=&amp;quot;{{int:Expand, Solar Panel 2-axis tracking}}&amp;quot; data-collapsetext=&amp;quot;{{int:Collapse, Solar Panel 2-axis tracking}}&amp;quot;&amp;gt;&lt;br /&gt;
{{ICCode|&lt;br /&gt;
#2 Axis Solar Tracking adapted from CowsAreEvil.&lt;br /&gt;
#Place all panels in uniform manner.&lt;br /&gt;
#Set one to 15 Vertical(Min value). 0 Horizontal.&lt;br /&gt;
#Take note direction panel faces.&lt;br /&gt;
#Place daylight sensor flat pointing in the direction&lt;br /&gt;
#the panel now faces. (Cable port facing opposite)&lt;br /&gt;
&lt;br /&gt;
#Alias the sensor to d0&lt;br /&gt;
alias sensor d0&lt;br /&gt;
&lt;br /&gt;
# define the Panel variants&lt;br /&gt;
define Heavy -934345724&lt;br /&gt;
define HeavyDual -1545574413&lt;br /&gt;
define Solar -2045627372&lt;br /&gt;
define SolarDual -539224550&lt;br /&gt;
&lt;br /&gt;
start:&lt;br /&gt;
yield&lt;br /&gt;
#Check for daylight.&lt;br /&gt;
l r0 sensor Activate&lt;br /&gt;
beqz r0 reset&lt;br /&gt;
#Read the Horizontal data.&lt;br /&gt;
l r0 sensor Horizontal&lt;br /&gt;
#Set batch to the panels.&lt;br /&gt;
sb Heavy Horizontal r0&lt;br /&gt;
sb HeavyDual Horizontal r0&lt;br /&gt;
sb Solar Horizontal r0&lt;br /&gt;
sb SolarDual Horizontal r0&lt;br /&gt;
#Read the Vertical data and subtract 90&lt;br /&gt;
l r0 sensor Vertical&lt;br /&gt;
sub r0 90 r0&lt;br /&gt;
#Set batch to the panels.&lt;br /&gt;
sb Heavy Vertical r0&lt;br /&gt;
sb HeavyDual Vertical r0&lt;br /&gt;
sb Solar Vertical r0&lt;br /&gt;
sb SolarDual Vertical r0&lt;br /&gt;
j start&lt;br /&gt;
&lt;br /&gt;
reset:&lt;br /&gt;
yield&lt;br /&gt;
sb Heavy Horizontal 270 #Edit this to face sunrise.&lt;br /&gt;
sb HeavyDual Horizontal 270 #Edit this&lt;br /&gt;
sb Solar Horizontal 270 #Edit this&lt;br /&gt;
sb SolarDual Horizontal 270 #Edit this&lt;br /&gt;
sb Heavy Vertical 0&lt;br /&gt;
sb HeavyDual Vertical 0&lt;br /&gt;
sb Solar Vertical 0&lt;br /&gt;
sb SolarDual Vertical 0&lt;br /&gt;
sleep 10&lt;br /&gt;
j start&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
===Example experiment: how many lines of code are executed each tick?===&lt;br /&gt;
To determine this, a script without &amp;lt;code&amp;gt;yield&amp;lt;/code&amp;gt; will be used. It should have as few lines as possible (so no labels are used, but a reset value at the top will be needed) and count the number of lines, the IC Housing will be used to display the result.&lt;br /&gt;
{{ICCode|&lt;br /&gt;
move r0 1   #the first line has number 0&lt;br /&gt;
add r0 r0 3&lt;br /&gt;
s db Setting r0&lt;br /&gt;
j 1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Result (the numbers appears every 0.5 seconds):&lt;br /&gt;
&amp;lt;br&amp;gt;127&lt;br /&gt;
&amp;lt;br&amp;gt;256 (+129)&lt;br /&gt;
&amp;lt;br&amp;gt;385 (+129)&lt;br /&gt;
&amp;lt;br&amp;gt;511 (+126)&lt;br /&gt;
&amp;lt;br&amp;gt;640 (+129)&lt;br /&gt;
&amp;lt;br&amp;gt;769 (+129)&lt;br /&gt;
&amp;lt;br&amp;gt;895 (+126)&lt;br /&gt;
&amp;lt;br&amp;gt;1024 (+129)&lt;br /&gt;
&amp;lt;br&amp;gt;1153 (+129)&lt;br /&gt;
&lt;br /&gt;
There is a repeating +129, +129, +126 sequence, a hint that the real value is 128. Which also happens to be the number of lines in a script, which makes sense. A variation of this experiment will show that empty rows are also counted towards this number.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=Links=&lt;br /&gt;
----&lt;br /&gt;
* Stationeers online IC10 Emulators so you can develop your code without repeatedly dying in game&lt;br /&gt;
** [https://ic10.dev/] Stationeers Code Simulator&lt;br /&gt;
** [https://ic10emu.dev] Stationeers IC10 Editor &amp;amp; Emulator - A feature packed code editor for Stationeers IC10 code, paired with a robust debugger and emulator. Edit, test, and share code.&lt;br /&gt;
** [https://stationeering.com/tools/ic] Stationeering provides a simulation of the IC10 chip inside Stationeers. IDE with error checking, full visibility of stack and registers.&lt;br /&gt;
* [http://www.easy68k.com/] EASy68K is a 68000 Structured Assembly Language IDE.&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=Traineratwot.stationeers-ic10] syntax highlighting for IC10 MIPS for Visual Studio Code (updated Feb 10th 2022)&lt;br /&gt;
* [https://pastebin.com/6Uw1KSRN] syntax highlighting for IC10 MIPS for KDE kwrite/kate text editor&lt;br /&gt;
* [https://drive.google.com/file/d/1yEsJ-u94OkuMQ8K6fY7Ja1HNpLcAdjo_/view] syntax highlighting for IC10 MIPS for Notepad++&lt;br /&gt;
* [https://drive.google.com/file/d/1Xrv5U0ZI5jDcPv7yX7EAAxaGk5hKP0xO/view?usp=sharing] syntax highlighting for IC10 MIPS for Notepad++ (updated: 11/08/2022)&lt;br /&gt;
* [https://pastebin.com/3kmGy0NN] syntax highlighting for IC10 MIPS for Notepad++ (updated: 23/03/2024)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Index=&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+Functions &lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
*[[#abs|abs]]&lt;br /&gt;
*[[#add|add]]&lt;br /&gt;
*[[#alias|alias]]&lt;br /&gt;
*[[#and|and]]&lt;br /&gt;
*[[#beq|beq]]&lt;br /&gt;
*[[#bgez|bgez]]&lt;br /&gt;
*[[#bgtz|bgtz]]&lt;br /&gt;
*[[#blez|blez]]&lt;br /&gt;
*[[#bltz|bltz]]&lt;br /&gt;
*[[#bne|bne]]&lt;br /&gt;
*[[#breq|breq]]&lt;br /&gt;
*[[#brgez|brgez]]&lt;br /&gt;
*[[#brgtz|brgtz]]&lt;br /&gt;
*[[#brlez|brlez]]&lt;br /&gt;
*[[#brltz|brltz]]&lt;br /&gt;
*[[#brne|brne]]&lt;br /&gt;
*[[#ceil|cell]]&lt;br /&gt;
*[[#div|div]]&lt;br /&gt;
*[[#exp|exp]]&lt;br /&gt;
*[[#floor|floor]]&lt;br /&gt;
*[[#j|j]]&lt;br /&gt;
*[[#jr|jr]]&lt;br /&gt;
*[[#l|l]]&lt;br /&gt;
*[[#log|log]]&lt;br /&gt;
*[[#ls|ls]]&lt;br /&gt;
*[[#max|max]]&lt;br /&gt;
*[[#min|min]]&lt;br /&gt;
*[[#mod|mod]]&lt;br /&gt;
*[[#move|move]]&lt;br /&gt;
*[[#mul|mul]]&lt;br /&gt;
*[[#nor|nor]]&lt;br /&gt;
*[[#or|or]]&lt;br /&gt;
*[[#rand|rand]]&lt;br /&gt;
*[[#round|round]]&lt;br /&gt;
*[[#s|s]]&lt;br /&gt;
*[[#slt|slt]]&lt;br /&gt;
*[[#sqrt|sqrt]]&lt;br /&gt;
*[[#sub|sub]]&lt;br /&gt;
*[[#trunc|trunc]]&lt;br /&gt;
*[[#xor|xor]]xor&lt;br /&gt;
*[[#yield|yield]]&lt;br /&gt;
*[[##|#]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|+Device Variables &lt;br /&gt;
&amp;lt;div  class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
*[[#Activate|Activate]]&lt;br /&gt;
*[[#AirRelease|AirRelease]]&lt;br /&gt;
*[[#Charge|Charge]]&lt;br /&gt;
*[[#CLearMemory|CLearMemory]]&lt;br /&gt;
*[[#Color|Color]]&lt;br /&gt;
*[[#CompletionRatio|CompletionRatio]]&lt;br /&gt;
*[[#ElevatorLevel|ElevatorLevel]]&lt;br /&gt;
*[[#ElevatorSpeed|ElevatorSpeed]]&lt;br /&gt;
*[[#Error|Error]]&lt;br /&gt;
*[[#ExportCount|ExportCount]]&lt;br /&gt;
*[[#Filtration|Filtration]]&lt;br /&gt;
*[[#Harvest|Harvest]]&lt;br /&gt;
*[[#Horizontal|Horizontal]]&lt;br /&gt;
*[[#HorizontalRatio|HorizontalRatio]]&lt;br /&gt;
*[[#Idle|Idle]]&lt;br /&gt;
*[[#ImportCount|ImportCount]]&lt;br /&gt;
*[[#Lock|Lock]]&lt;br /&gt;
*[[#Maximum|Maximum]]&lt;br /&gt;
*[[#Mode|Mode]]&lt;br /&gt;
*[[#On|On]]&lt;br /&gt;
*[[#Open|Open]]&lt;br /&gt;
*[[#Output|Output]]&lt;br /&gt;
*[[#Plant|Plant]]&lt;br /&gt;
*[[#PositionX|PositionX]]&lt;br /&gt;
*[[#PositionY|PositionY]]&lt;br /&gt;
*[[#PositionZ|PositionZ]]&lt;br /&gt;
*[[#Power|Power]]&lt;br /&gt;
*[[#PowerActual|PowerActual]]&lt;br /&gt;
*[[#PowerPotential|PowerPotential]]&lt;br /&gt;
*[[#PowerRequired|PowerRequired]]&lt;br /&gt;
*[[#Pressure|Pressure]]&lt;br /&gt;
*[[#PressureExternal|PressureExternal]]&lt;br /&gt;
*[[#PressureInteral|PressureInteral]]&lt;br /&gt;
*[[#PressureSetting|PressureSetting]]&lt;br /&gt;
*[[#Quantity|Quantity]]&lt;br /&gt;
*[[#Ratio|Ratio]]&lt;br /&gt;
*[[#RatioCarbonDioxide|RatioCarbonDioxide]]&lt;br /&gt;
*[[#RatioNitrogen|RatioNitrogen]]&lt;br /&gt;
*[[#RatioOxygen|RatioOxygen]]&lt;br /&gt;
*[[#RatioPollutant|RatioPollutant]]&lt;br /&gt;
*[[#RatioVolatiles|RatioVolatiles]]&lt;br /&gt;
*[[#RatioWater|RatioWater]]&lt;br /&gt;
*[[#Reagents|Reagents]]&lt;br /&gt;
*[[#RecipeHash|RecipeHash]]&lt;br /&gt;
*[[#RequestHash|RequestHash]]&lt;br /&gt;
*[[#RequiredPower|RequiredPower]]&lt;br /&gt;
*[[#Setting|Setting]]&lt;br /&gt;
*[[#SolarAngle|SolarAngle]]&lt;br /&gt;
*[[#Temperature|Temperature]]&lt;br /&gt;
*[[#TemperatureSettings|TemperatureSettings]]&lt;br /&gt;
*[[#TotalMoles|TotalMoles]]&lt;br /&gt;
*[[#VelocityMagnitude|VelocityMagnitude]]&lt;br /&gt;
*[[#VelocityRelativeX|VelocityRelativeX]]&lt;br /&gt;
*[[#VelocityRelativeY|VelocityRelativeY]]&lt;br /&gt;
*[[#VelocityRelativeZ|VelocityRelativeZ]]&lt;br /&gt;
*[[#Vertical|Vertical]]&lt;br /&gt;
*[[#VerticalRatio|VerticalRatio]]&lt;br /&gt;
*[[#Volume|Volume]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|+Slot Variables &lt;br /&gt;
&amp;lt;div  class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
*[[#Occupied|Occupied]]&lt;br /&gt;
*[[#OccupantHash|OccupantHash]]&lt;br /&gt;
*[[#Quantity|Quantity]]&lt;br /&gt;
*[[#Damage|Damage]]&lt;br /&gt;
*[[#Efficiency|Efficiency]]&lt;br /&gt;
*[[#Health|Health]]&lt;br /&gt;
*[[#Growth|Growth]]&lt;br /&gt;
*[[#Pressure|Pressure]]&lt;br /&gt;
*[[#Temperature|Temperature]]&lt;br /&gt;
*[[#Charge|Charge]]&lt;br /&gt;
*[[#ChargeRatio|ChargeRatio]]&lt;br /&gt;
*[[#Class|Class]]&lt;br /&gt;
*[[#PressureWaste|PressureWaste]]&lt;br /&gt;
*[[#PressureAir|PressureAir]]&lt;br /&gt;
*[[#MaxQuantity|MaxQuantity]]&lt;br /&gt;
*[[#Mature|Mature]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Logic_Sorter&amp;diff=21721</id>
		<title>Logic Sorter</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Logic_Sorter&amp;diff=21721"/>
		<updated>2024-07-24T01:13:22Z</updated>

		<summary type="html">&lt;p&gt;Thoth: add bit layout of the six current instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Machines]]&lt;br /&gt;
[[Category:Import/Export]]&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = Logic Sorter&lt;br /&gt;
| image = [[File:StructureLogicSorter.png]]&lt;br /&gt;
| prefab_hash = 873418029&lt;br /&gt;
| prefab_name = StructureLogicSorter&lt;br /&gt;
| power_usage = 5W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (Sorter)]]&lt;br /&gt;
| item_rec1 = [[Kit (Sorter)]]&lt;br /&gt;
}}&lt;br /&gt;
{{Distinguish|Sorter}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Contains an Internal Memory which is assessed to check whether something should be sorted. When an item is in the Import slot Slot, the stack is checked and if result is true the thing is moved to the Export2 slot slot, otherwise it is moved to the Export slot slot. The Mode is used in how the stack is assessed, by default the mode is ALL, so every instruction in the stack would need to return true.&amp;lt;/q&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;- Stationpedia&#039;&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Logic sorter is similar in almost every way to the previous sorter but has a internal memory that can be configured with logic and bit shifting to sort items passing through. When an item enters the import slot, it is checked against the filters in memory.  If the Mode is 0(All) then every filter must return true for the item to be sent to the export 2 slot.  If the mode is 1(Any) then as long as one of the filters returns true, the item matches and will be sent to the export 2 slot.&lt;br /&gt;
&lt;br /&gt;
==Filter Instructions==&lt;br /&gt;
Check the in game Stationpedia [F1 on your keyboard] for formatting and instruction sizes to determine how to populate the memory.  Be warned that the stationpedia fails to document the endianness (bit 0 is the least significant bit).  While the stationpedia does document that the Logic Sorter has 256 bytes of memory, it is addressed as 32 x 8-byte (64-bit) numbers.&lt;br /&gt;
&lt;br /&gt;
If you wish your sorter to send [[Steel Ingot]]s to the second output you should place the value 0xd8f8af8d_01 ( = 931885190401 decimal ) into memory 0.  More complicated programs will have to consider whether they want to use Mode 0 (match All), Mode 1 (match Any), or Mode 2 (match None).&lt;br /&gt;
&lt;br /&gt;
It is more readable to calculate the instructions using MIPS like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias sorter d0&lt;br /&gt;
define steel HASH(&amp;quot;ItemSteelIngot&amp;quot;)&lt;br /&gt;
s sorter Mode 1 # Any&lt;br /&gt;
clr sorter # erase any stale instructions in RAM&lt;br /&gt;
sll r0 steel 8&lt;br /&gt;
or r0 r0 SorterInstruction.FilterPrefabHashEquals&lt;br /&gt;
put sorter 0 r0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sorter Instruction !! OP Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| FilterPrefabHashEquals || 1 || Compares Hash of item in import slot to the set hash and returns true if equal.&lt;br /&gt;
|-&lt;br /&gt;
| FilterPrefabHashNotEquals || 2 || Compares Hash of item in import slot to the set hash and returns true if not equal.&lt;br /&gt;
|-&lt;br /&gt;
| FilterSortingClassCompare || 3 || Compares the sorting class of an object in input slot. Example would be all ores. &lt;br /&gt;
|-&lt;br /&gt;
| FilterSlotTypeCompare || 4 || Compares the item type of an object in the input slot. See slot type table below for item comparisons.&lt;br /&gt;
|-&lt;br /&gt;
| FilterQuantityCompare || 5 || Compares the stack size of the items in the import slot. &lt;br /&gt;
|-&lt;br /&gt;
|LimitNextExecutionCount || 6 || Ensures the next executable instruction will only return true a specified number of times. Each time it returns true, it decrements by one. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MSB                                                          LSB&lt;br /&gt;
6666555555555544444444443333333333222222222211111111110000000000&lt;br /&gt;
3210987654321098765432109876543210987654321098765432109876543210&lt;br /&gt;
FilterPrefabHashEquals&lt;br /&gt;
########################(                   PREFAB_HASH)(     1)&lt;br /&gt;
FilterPrefabHashNotEquals&lt;br /&gt;
########################(                   PREFAB_HASH)(     2)&lt;br /&gt;
FilterSortingClassCompare&lt;br /&gt;
################################( SORTING_CLASS)(CONDOP)(     3)&lt;br /&gt;
FilterSlotTypeCompare&lt;br /&gt;
################################(     SLOT_TYPE)(CONDOP)(     4)&lt;br /&gt;
FilterQuantityCompare&lt;br /&gt;
################################(      QUANTITY)(CONDOP)(     5)&lt;br /&gt;
LimitNextExecutionByCount&lt;br /&gt;
########################(                         COUNT)(     6)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Data Network Header}}&lt;br /&gt;
&lt;br /&gt;
{{Data Parameters|&lt;br /&gt;
{{Data Parameters/row|Power|Boolean|w=0|Can be read to return if the Logic Sorter is correctly powered or not, set via the power system, return 1 if powered and 0 if not|multiple=2|0|Unpowered|1|Powered}}&lt;br /&gt;
{{Data Parameters/row|Mode|Integer|The mode of the Logic Sorter.|multiple=3|0|All|1|Any|2|None}}&lt;br /&gt;
{{Data Parameters/row|Error|Boolean|w=0|1 if device is in error state, otherwise 0|multiple=2|0|&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;|1|Error}}&lt;br /&gt;
{{Data Parameters/row|Lock|Boolean|Disable manual operation of the Logic Sorter.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the Logic Sorter.|multiple=2|0|Off|1|On}}&lt;br /&gt;
{{Data Parameters/row|RequiredPower|Integer|w=0|Idle operating power quantity, does not necessarily include extra demand power}}&lt;br /&gt;
{{Data Parameters/row|ClearMemory|Integer|r=0|When set to 1, clears the counter memory (e.g. ExportCount). Will set itself back to 0 when actioned}}&lt;br /&gt;
{{Data Parameters/row|ExportCount|Integer|w=0|How many items exported since last ClearMemory}}&lt;br /&gt;
{{Data Parameters/row|ImportCount|Integer|w=0|How many items imported since last ClearMemory}}&lt;br /&gt;
{{Data Parameters/row|PrefabHash|Integer|w=0|The hash of the structure}}&lt;br /&gt;
{{Data Parameters/row|ReferenceId|Integer|w=0|Unique Reference Identifier for this object}}&lt;br /&gt;
{{Data Parameters/row|NameHash|Integer|w=0|Provides the hash value for the name of the object as a 32 bit integer.}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Data Slots ===&lt;br /&gt;
These are all parameters, that can be read with a [[Kit_(Logic_I/O)#Slots_Reader|Slots Reader]]. The outputs are listed in the order a Slots Reader&#039;s &amp;quot;VAR&amp;quot; setting cycles through them.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number || Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Import || Import slot.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Export (reject) || Export slot.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Export (accept) || Export slot.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Data Disk || Diskslot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Data Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| MaxQuantity || Integer || Returns maximum stacksize.&lt;br /&gt;
|-&lt;br /&gt;
| Damage || Integer || Item durability in percent.&lt;br /&gt;
|-&lt;br /&gt;
| Class || Integer || Item class ID for slot type comparison.&lt;br /&gt;
|-&lt;br /&gt;
| SortingClass || Integer || Class group of items. &lt;br /&gt;
|-&lt;br /&gt;
| Quantity || Integer || Size of item stack.&lt;br /&gt;
|-&lt;br /&gt;
| PrefabHash || Integer || Returns [[ItemHash]] of item in slot.&lt;br /&gt;
|-&lt;br /&gt;
| Occupied || Boolean || Returns whether the slot occupied. (0 for no, 1 for yes).&lt;br /&gt;
|-&lt;br /&gt;
| OccupantHash || Integer || Returns [[ItemHash]] of item in slot.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Item Slot Classes / Types ==&lt;br /&gt;
&lt;br /&gt;
Reading the &#039;&#039;class&#039;&#039; attribute of the input slot will give one of the following values:&lt;br /&gt;
&lt;br /&gt;
Note that you can use &amp;lt;pre style=&amp;quot;display: inline&amp;quot;&amp;gt;SlotClass.&amp;lt;Item&amp;gt;&amp;lt;/pre&amp;gt; directly in IC code instead of the numeric value&lt;br /&gt;
*NOTE The classes listed in this section are FilterSlotTypeCompare and NOT sorting class.  eg: SortingClass.Ores vs SlotClass.Ore&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Item values and descriptions&lt;br /&gt;
! Item !! Value !! Description !! Item !! Value !! Description !! Item !! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| None || 0 || || Helmet || 1 || || Suit || 2 ||&lt;br /&gt;
|-&lt;br /&gt;
| Back || 3 || || GasFilter || 4 || || GasCanister || 5 ||&lt;br /&gt;
|-&lt;br /&gt;
| Motherboard || 6 || || Circuitboard || 7 || || DataDisk || 8 ||&lt;br /&gt;
|-&lt;br /&gt;
| Organ || 9 || || Ore || 10 || Includes reagent mixes from recycler and ices || Plant || 11 ||&lt;br /&gt;
|-&lt;br /&gt;
| Uniform || 12 || || Entity || 13 || || Battery || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
| Egg || 15 || || Belt || 16 || || Tool || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
| Appliance || 18 || || Ingot || 19 || || Torpedo || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
| Cartridge || 21 || || AccessCard || 22 || || Magazine || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
| Circuit || 24 || || Bottle || 25 || || ProgrammableChip || 26 ||&lt;br /&gt;
|-&lt;br /&gt;
| Glasses || 27 || || CreditCard || 28 || || DirtCanister || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
| SensorProcessingUnit || 30 || || LiquidCanister || 31 || || LiquidBottle || 32 ||&lt;br /&gt;
|-&lt;br /&gt;
| Wreckage || 33 || || SoundCartridge || 34 || || DrillHead || 35 ||&lt;br /&gt;
|-&lt;br /&gt;
| ScanningHead || 36 || || Flare || 37 || || Blocked || 38 ||&lt;br /&gt;
|-&lt;br /&gt;
| SuitMod || 39 || || Crate || 40 || || Portables || 41 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Logic_Sorter&amp;diff=21717</id>
		<title>Logic Sorter</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Logic_Sorter&amp;diff=21717"/>
		<updated>2024-07-23T01:58:42Z</updated>

		<summary type="html">&lt;p&gt;Thoth: /* Filter Instructions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Machines]]&lt;br /&gt;
[[Category:Import/Export]]&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = Logic Sorter&lt;br /&gt;
| image = [[File:StructureLogicSorter.png]]&lt;br /&gt;
| prefab_hash = 873418029&lt;br /&gt;
| prefab_name = StructureLogicSorter&lt;br /&gt;
| power_usage = 5W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (Sorter)]]&lt;br /&gt;
| item_rec1 = [[Kit (Sorter)]]&lt;br /&gt;
}}&lt;br /&gt;
{{Distinguish|Sorter}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Contains an Internal Memory which is assessed to check whether something should be sorted. When an item is in the Import slot Slot, the stack is checked and if result is true the thing is moved to the Export2 slot slot, otherwise it is moved to the Export slot slot. The Mode is used in how the stack is assessed, by default the mode is ALL, so every instruction in the stack would need to return true.&amp;lt;/q&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;- Stationpedia&#039;&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Logic sorter is similar in almost every way to the previous sorter but has a internal memory that can be configured with logic and bit shifting to sort items passing through. When an item enters the import slot, it is checked against the filters in memory.  If the Mode is 0(All) then every filter must return true for the item to be sent to the export 2 slot.  If the mode is 1(Any) then as long as one of the filters returns true, the item matches and will be sent to the export 2 slot.&lt;br /&gt;
&lt;br /&gt;
==Filter Instructions==&lt;br /&gt;
Check the in game Stationpedia [F1 on your keyboard] for formatting and instruction sizes to determine how to populate the memory.  Be warned that the stationpedia fails to document the endianness (bit 0 is the least significant bit).  While the stationpedia does document that the Logic Sorter has 256 bytes of memory, it is addressed as 32 x 8-byte (64-bit) numbers.&lt;br /&gt;
&lt;br /&gt;
If you wish your sorter to send [[Steel Ingot]]s to the second output you should place the value 0xd8f8af8d_01 ( = 931885190401 decimal ) into memory 0.  More complicated programs will have to consider whether they want to use Mode 0 (match All), Mode 1 (match Any), or Mode 2 (match None).&lt;br /&gt;
&lt;br /&gt;
It is more readable to calculate the instructions using MIPS like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias sorter d0&lt;br /&gt;
define steel HASH(&amp;quot;ItemSteelIngot&amp;quot;)&lt;br /&gt;
s sorter Mode 1 # Any&lt;br /&gt;
clr sorter # erase any stale instructions in RAM&lt;br /&gt;
sll r0 steel 8&lt;br /&gt;
or r0 r0 SorterInstruction.FilterPrefabHashEquals&lt;br /&gt;
put sorter 0 r0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sorter Instruction !! OP Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| FilterPrefabHashEquals || 1 || Compares Hash of item in import slot to the set hash and returns true if equal.&lt;br /&gt;
|-&lt;br /&gt;
| FilterPrefabHashNotEquals || 2 || Compares Hash of item in import slot to the set hash and returns true if not equal.&lt;br /&gt;
|-&lt;br /&gt;
| FilterSortingClassCompare || 3 || Compares the sorting class of an object in input slot. Example would be all ores. &lt;br /&gt;
|-&lt;br /&gt;
| FilterSlotTypeCompare || 4 || Compares the item type of an object in the input slot. See slot type table below for item comparisons.&lt;br /&gt;
|-&lt;br /&gt;
| FilterQuantityCompare || 5 || Compares the stack size of the items in the import slot. &lt;br /&gt;
|-&lt;br /&gt;
|LimitNextExecutionCount || 6 || Ensures the next executable instruction will only return true a specified number of times. Each time it returns true, it decrements by one. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Data Network Header}}&lt;br /&gt;
&lt;br /&gt;
{{Data Parameters|&lt;br /&gt;
{{Data Parameters/row|Power|Boolean|w=0|Can be read to return if the Logic Sorter is correctly powered or not, set via the power system, return 1 if powered and 0 if not|multiple=2|0|Unpowered|1|Powered}}&lt;br /&gt;
{{Data Parameters/row|Mode|Integer|The mode of the Logic Sorter.|multiple=3|0|All|1|Any|2|None}}&lt;br /&gt;
{{Data Parameters/row|Error|Boolean|w=0|1 if device is in error state, otherwise 0|multiple=2|0|&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;|1|Error}}&lt;br /&gt;
{{Data Parameters/row|Lock|Boolean|Disable manual operation of the Logic Sorter.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the Logic Sorter.|multiple=2|0|Off|1|On}}&lt;br /&gt;
{{Data Parameters/row|RequiredPower|Integer|w=0|Idle operating power quantity, does not necessarily include extra demand power}}&lt;br /&gt;
{{Data Parameters/row|ClearMemory|Integer|r=0|When set to 1, clears the counter memory (e.g. ExportCount). Will set itself back to 0 when actioned}}&lt;br /&gt;
{{Data Parameters/row|ExportCount|Integer|w=0|How many items exported since last ClearMemory}}&lt;br /&gt;
{{Data Parameters/row|ImportCount|Integer|w=0|How many items imported since last ClearMemory}}&lt;br /&gt;
{{Data Parameters/row|PrefabHash|Integer|w=0|The hash of the structure}}&lt;br /&gt;
{{Data Parameters/row|ReferenceId|Integer|w=0|Unique Reference Identifier for this object}}&lt;br /&gt;
{{Data Parameters/row|NameHash|Integer|w=0|Provides the hash value for the name of the object as a 32 bit integer.}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Data Slots ===&lt;br /&gt;
These are all parameters, that can be read with a [[Kit_(Logic_I/O)#Slots_Reader|Slots Reader]]. The outputs are listed in the order a Slots Reader&#039;s &amp;quot;VAR&amp;quot; setting cycles through them.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number || Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Import || Import slot.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Export (reject) || Export slot.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Export (accept) || Export slot.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Data Disk || Diskslot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Data Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| MaxQuantity || Integer || Returns maximum stacksize.&lt;br /&gt;
|-&lt;br /&gt;
| Damage || Integer || Item durability in percent.&lt;br /&gt;
|-&lt;br /&gt;
| Class || Integer || Item class ID for slot type comparison.&lt;br /&gt;
|-&lt;br /&gt;
| SortingClass || Integer || Class group of items. &lt;br /&gt;
|-&lt;br /&gt;
| Quantity || Integer || Size of item stack.&lt;br /&gt;
|-&lt;br /&gt;
| PrefabHash || Integer || Returns [[ItemHash]] of item in slot.&lt;br /&gt;
|-&lt;br /&gt;
| Occupied || Boolean || Returns whether the slot occupied. (0 for no, 1 for yes).&lt;br /&gt;
|-&lt;br /&gt;
| OccupantHash || Integer || Returns [[ItemHash]] of item in slot.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Item Slot Classes / Types ==&lt;br /&gt;
&lt;br /&gt;
Reading the &#039;&#039;class&#039;&#039; attribute of the input slot will give one of the following values:&lt;br /&gt;
&lt;br /&gt;
Note that you can use &amp;lt;pre style=&amp;quot;display: inline&amp;quot;&amp;gt;SlotClass.&amp;lt;Item&amp;gt;&amp;lt;/pre&amp;gt; directly in IC code instead of the numeric value&lt;br /&gt;
*NOTE The classes listed in this section are FilterSlotTypeCompare and NOT sorting class.  eg: SortingClass.Ores vs SlotClass.Ore&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Item values and descriptions&lt;br /&gt;
! Item !! Value !! Description !! Item !! Value !! Description !! Item !! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| None || 0 || || Helmet || 1 || || Suit || 2 ||&lt;br /&gt;
|-&lt;br /&gt;
| Back || 3 || || GasFilter || 4 || || GasCanister || 5 ||&lt;br /&gt;
|-&lt;br /&gt;
| Motherboard || 6 || || Circuitboard || 7 || || DataDisk || 8 ||&lt;br /&gt;
|-&lt;br /&gt;
| Organ || 9 || || Ore || 10 || Includes reagent mixes from recycler and ices || Plant || 11 ||&lt;br /&gt;
|-&lt;br /&gt;
| Uniform || 12 || || Entity || 13 || || Battery || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
| Egg || 15 || || Belt || 16 || || Tool || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
| Appliance || 18 || || Ingot || 19 || || Torpedo || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
| Cartridge || 21 || || AccessCard || 22 || || Magazine || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
| Circuit || 24 || || Bottle || 25 || || ProgrammableChip || 26 ||&lt;br /&gt;
|-&lt;br /&gt;
| Glasses || 27 || || CreditCard || 28 || || DirtCanister || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
| SensorProcessingUnit || 30 || || LiquidCanister || 31 || || LiquidBottle || 32 ||&lt;br /&gt;
|-&lt;br /&gt;
| Wreckage || 33 || || SoundCartridge || 34 || || DrillHead || 35 ||&lt;br /&gt;
|-&lt;br /&gt;
| ScanningHead || 36 || || Flare || 37 || || Blocked || 38 ||&lt;br /&gt;
|-&lt;br /&gt;
| SuitMod || 39 || || Crate || 40 || || Portables || 41 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Logic_Sorter&amp;diff=21716</id>
		<title>Logic Sorter</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Logic_Sorter&amp;diff=21716"/>
		<updated>2024-07-23T01:54:23Z</updated>

		<summary type="html">&lt;p&gt;Thoth: rephrase more compactly, and without using the inaccurate term &amp;quot;stack&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Machines]]&lt;br /&gt;
[[Category:Import/Export]]&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = Logic Sorter&lt;br /&gt;
| image = [[File:StructureLogicSorter.png]]&lt;br /&gt;
| prefab_hash = 873418029&lt;br /&gt;
| prefab_name = StructureLogicSorter&lt;br /&gt;
| power_usage = 5W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (Sorter)]]&lt;br /&gt;
| item_rec1 = [[Kit (Sorter)]]&lt;br /&gt;
}}&lt;br /&gt;
{{Distinguish|Sorter}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Contains an Internal Memory which is assessed to check whether something should be sorted. When an item is in the Import slot Slot, the stack is checked and if result is true the thing is moved to the Export2 slot slot, otherwise it is moved to the Export slot slot. The Mode is used in how the stack is assessed, by default the mode is ALL, so every instruction in the stack would need to return true.&amp;lt;/q&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;- Stationpedia&#039;&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Logic sorter is similar in almost every way to the previous sorter but has a internal memory that can be configured with logic and bit shifting to sort items passing through. When an item enters the import slot, it is checked against the filters in memory.  If the Mode is 0(All) then every filter must return true for the item to be sent to the export 2 slot.  If the mode is 1(Any) then as long as one of the filters returns true, the item matches and will be sent to the export 2 slot.&lt;br /&gt;
&lt;br /&gt;
==Filter Instructions==&lt;br /&gt;
Check the in game Stationpedia [F1 on your keyboard] for formatting and instruction sizes to determine how to populate the memory.  Be warned that the stationpedia fails to document the endianness (bit 0 is the least significant bit).  While the stationpedia does document that the Logic Sorter has 256 bytes of memory, it is addressed as 32 x 8-byte (64-bit) numbers.&lt;br /&gt;
&lt;br /&gt;
If you wish your sorter to send [[Steel Ingot]]s to the second output you should place the value 0xd8f8af8d_01 ( = 931885190401 decimal ) into memory 0.  More complicated programs will have to consider whether they want to use Mode 0 (match Any) or Mode 1 (match All).&lt;br /&gt;
&lt;br /&gt;
It is more readable to calculate the instructions using MIPS like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias sorter d0&lt;br /&gt;
define steel HASH(&amp;quot;ItemSteelIngot&amp;quot;)&lt;br /&gt;
s sorter Mode 1 # Any&lt;br /&gt;
clr sorter # erase any stale instructions in RAM&lt;br /&gt;
sll r0 steel 8&lt;br /&gt;
or r0 r0 SorterInstruction.FilterPrefabHashEquals&lt;br /&gt;
put sorter 0 r0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sorter Instruction !! OP Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| FilterPrefabHashEquals || 1 || Compares Hash of item in import slot to the set hash and returns true if equal.&lt;br /&gt;
|-&lt;br /&gt;
| FilterPrefabHashNotEquals || 2 || Compares Hash of item in import slot to the set hash and returns true if not equal.&lt;br /&gt;
|-&lt;br /&gt;
| FilterSortingClassCompare || 3 || Compares the sorting class of an object in input slot. Example would be all ores. &lt;br /&gt;
|-&lt;br /&gt;
| FilterSlotTypeCompare || 4 || Compares the item type of an object in the input slot. See slot type table below for item comparisons.&lt;br /&gt;
|-&lt;br /&gt;
| FilterQuantityCompare || 5 || Compares the stack size of the items in the import slot. &lt;br /&gt;
|-&lt;br /&gt;
|LimitNextExecutionCount || 6 || Ensures the next executable instruction will only return true a specified number of times. Each time it returns true, it decrements by one. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Data Network Header}}&lt;br /&gt;
&lt;br /&gt;
{{Data Parameters|&lt;br /&gt;
{{Data Parameters/row|Power|Boolean|w=0|Can be read to return if the Logic Sorter is correctly powered or not, set via the power system, return 1 if powered and 0 if not|multiple=2|0|Unpowered|1|Powered}}&lt;br /&gt;
{{Data Parameters/row|Mode|Integer|The mode of the Logic Sorter.|multiple=3|0|All|1|Any|2|None}}&lt;br /&gt;
{{Data Parameters/row|Error|Boolean|w=0|1 if device is in error state, otherwise 0|multiple=2|0|&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;|1|Error}}&lt;br /&gt;
{{Data Parameters/row|Lock|Boolean|Disable manual operation of the Logic Sorter.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the Logic Sorter.|multiple=2|0|Off|1|On}}&lt;br /&gt;
{{Data Parameters/row|RequiredPower|Integer|w=0|Idle operating power quantity, does not necessarily include extra demand power}}&lt;br /&gt;
{{Data Parameters/row|ClearMemory|Integer|r=0|When set to 1, clears the counter memory (e.g. ExportCount). Will set itself back to 0 when actioned}}&lt;br /&gt;
{{Data Parameters/row|ExportCount|Integer|w=0|How many items exported since last ClearMemory}}&lt;br /&gt;
{{Data Parameters/row|ImportCount|Integer|w=0|How many items imported since last ClearMemory}}&lt;br /&gt;
{{Data Parameters/row|PrefabHash|Integer|w=0|The hash of the structure}}&lt;br /&gt;
{{Data Parameters/row|ReferenceId|Integer|w=0|Unique Reference Identifier for this object}}&lt;br /&gt;
{{Data Parameters/row|NameHash|Integer|w=0|Provides the hash value for the name of the object as a 32 bit integer.}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Data Slots ===&lt;br /&gt;
These are all parameters, that can be read with a [[Kit_(Logic_I/O)#Slots_Reader|Slots Reader]]. The outputs are listed in the order a Slots Reader&#039;s &amp;quot;VAR&amp;quot; setting cycles through them.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number || Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Import || Import slot.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Export (reject) || Export slot.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Export (accept) || Export slot.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Data Disk || Diskslot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Data Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| MaxQuantity || Integer || Returns maximum stacksize.&lt;br /&gt;
|-&lt;br /&gt;
| Damage || Integer || Item durability in percent.&lt;br /&gt;
|-&lt;br /&gt;
| Class || Integer || Item class ID for slot type comparison.&lt;br /&gt;
|-&lt;br /&gt;
| SortingClass || Integer || Class group of items. &lt;br /&gt;
|-&lt;br /&gt;
| Quantity || Integer || Size of item stack.&lt;br /&gt;
|-&lt;br /&gt;
| PrefabHash || Integer || Returns [[ItemHash]] of item in slot.&lt;br /&gt;
|-&lt;br /&gt;
| Occupied || Boolean || Returns whether the slot occupied. (0 for no, 1 for yes).&lt;br /&gt;
|-&lt;br /&gt;
| OccupantHash || Integer || Returns [[ItemHash]] of item in slot.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Item Slot Classes / Types ==&lt;br /&gt;
&lt;br /&gt;
Reading the &#039;&#039;class&#039;&#039; attribute of the input slot will give one of the following values:&lt;br /&gt;
&lt;br /&gt;
Note that you can use &amp;lt;pre style=&amp;quot;display: inline&amp;quot;&amp;gt;SlotClass.&amp;lt;Item&amp;gt;&amp;lt;/pre&amp;gt; directly in IC code instead of the numeric value&lt;br /&gt;
*NOTE The classes listed in this section are FilterSlotTypeCompare and NOT sorting class.  eg: SortingClass.Ores vs SlotClass.Ore&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Item values and descriptions&lt;br /&gt;
! Item !! Value !! Description !! Item !! Value !! Description !! Item !! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| None || 0 || || Helmet || 1 || || Suit || 2 ||&lt;br /&gt;
|-&lt;br /&gt;
| Back || 3 || || GasFilter || 4 || || GasCanister || 5 ||&lt;br /&gt;
|-&lt;br /&gt;
| Motherboard || 6 || || Circuitboard || 7 || || DataDisk || 8 ||&lt;br /&gt;
|-&lt;br /&gt;
| Organ || 9 || || Ore || 10 || Includes reagent mixes from recycler and ices || Plant || 11 ||&lt;br /&gt;
|-&lt;br /&gt;
| Uniform || 12 || || Entity || 13 || || Battery || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
| Egg || 15 || || Belt || 16 || || Tool || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
| Appliance || 18 || || Ingot || 19 || || Torpedo || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
| Cartridge || 21 || || AccessCard || 22 || || Magazine || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
| Circuit || 24 || || Bottle || 25 || || ProgrammableChip || 26 ||&lt;br /&gt;
|-&lt;br /&gt;
| Glasses || 27 || || CreditCard || 28 || || DirtCanister || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
| SensorProcessingUnit || 30 || || LiquidCanister || 31 || || LiquidBottle || 32 ||&lt;br /&gt;
|-&lt;br /&gt;
| Wreckage || 33 || || SoundCartridge || 34 || || DrillHead || 35 ||&lt;br /&gt;
|-&lt;br /&gt;
| ScanningHead || 36 || || Flare || 37 || || Blocked || 38 ||&lt;br /&gt;
|-&lt;br /&gt;
| SuitMod || 39 || || Crate || 40 || || Portables || 41 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Logic_Sorter&amp;diff=21715</id>
		<title>Logic Sorter</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Logic_Sorter&amp;diff=21715"/>
		<updated>2024-07-23T01:46:38Z</updated>

		<summary type="html">&lt;p&gt;Thoth: add example MIPS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Machines]]&lt;br /&gt;
[[Category:Import/Export]]&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = Logic Sorter&lt;br /&gt;
| image = [[File:StructureLogicSorter.png]]&lt;br /&gt;
| prefab_hash = 873418029&lt;br /&gt;
| prefab_name = StructureLogicSorter&lt;br /&gt;
| power_usage = 5W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (Sorter)]]&lt;br /&gt;
| item_rec1 = [[Kit (Sorter)]]&lt;br /&gt;
}}&lt;br /&gt;
{{Distinguish|Sorter}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Contains an Internal Memory which is assessed to check whether something should be sorted. When an item is in the Import slot Slot, the stack is checked and if result is true the thing is moved to the Export2 slot slot, otherwise it is moved to the Export slot slot. The Mode is used in how the stack is assessed, by default the mode is ALL, so every instruction in the stack would need to return true.&amp;lt;/q&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;- Stationpedia&#039;&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This section is still a work in progress. &lt;br /&gt;
Logic sorter is similar in almost every way to the previous sorter but has a internal memory, a.k.a stack, that can be accessed with logic and bit shifting to sort items passing through. When an item enters the import slot, its checked against the stack and if the result is true, moves the item to the export 2 slot, otherwise its moved to the export slot. The mode is how the stack is assessed. If mode is set to &amp;quot;ALL&amp;quot;, every instruction in the stack would need to return as true.&lt;br /&gt;
&lt;br /&gt;
==Filter Instructions==&lt;br /&gt;
Check the in game Stationpedia [F1 on your keyboard] for formatting and instruction sizes to determine how to populate the memory.  Be warned that the stationpedia fails to document the endianness (bit 0 is the least significant bit).  While the stationpedia does document that the Logic Sorter has 256 bytes of memory, it is addressed as 32 x 8-byte (64-bit) numbers.&lt;br /&gt;
&lt;br /&gt;
If you wish your sorter to send [[Steel Ingot]]s to the second output you should place the value 0xd8f8af8d_01 ( = 931885190401 decimal ) into memory 0.  More complicated programs will have to consider whether they want to use Mode 0 (match Any) or Mode 1 (match All).&lt;br /&gt;
&lt;br /&gt;
It is more readable to calculate the instructions using MIPS like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias sorter d0&lt;br /&gt;
define steel HASH(&amp;quot;ItemSteelIngot&amp;quot;)&lt;br /&gt;
s sorter Mode 1 # Any&lt;br /&gt;
clr sorter # erase any stale instructions in RAM&lt;br /&gt;
sll r0 steel 8&lt;br /&gt;
or r0 r0 SorterInstruction.FilterPrefabHashEquals&lt;br /&gt;
put sorter 0 r0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sorter Instruction !! OP Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| FilterPrefabHashEquals || 1 || Compares Hash of item in import slot to the set hash and returns true if equal.&lt;br /&gt;
|-&lt;br /&gt;
| FilterPrefabHashNotEquals || 2 || Compares Hash of item in import slot to the set hash and returns true if not equal.&lt;br /&gt;
|-&lt;br /&gt;
| FilterSortingClassCompare || 3 || Compares the sorting class of an object in input slot. Example would be all ores. &lt;br /&gt;
|-&lt;br /&gt;
| FilterSlotTypeCompare || 4 || Compares the item type of an object in the input slot. See slot type table below for item comparisons.&lt;br /&gt;
|-&lt;br /&gt;
| FilterQuantityCompare || 5 || Compares the stack size of the items in the import slot. &lt;br /&gt;
|-&lt;br /&gt;
|LimitNextExecutionCount || 6 || Ensures the next executable instruction will only return true a specified number of times. Each time it returns true, it decrements by one. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Data Network Header}}&lt;br /&gt;
&lt;br /&gt;
{{Data Parameters|&lt;br /&gt;
{{Data Parameters/row|Power|Boolean|w=0|Can be read to return if the Logic Sorter is correctly powered or not, set via the power system, return 1 if powered and 0 if not|multiple=2|0|Unpowered|1|Powered}}&lt;br /&gt;
{{Data Parameters/row|Mode|Integer|The mode of the Logic Sorter.|multiple=3|0|All|1|Any|2|None}}&lt;br /&gt;
{{Data Parameters/row|Error|Boolean|w=0|1 if device is in error state, otherwise 0|multiple=2|0|&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;|1|Error}}&lt;br /&gt;
{{Data Parameters/row|Lock|Boolean|Disable manual operation of the Logic Sorter.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the Logic Sorter.|multiple=2|0|Off|1|On}}&lt;br /&gt;
{{Data Parameters/row|RequiredPower|Integer|w=0|Idle operating power quantity, does not necessarily include extra demand power}}&lt;br /&gt;
{{Data Parameters/row|ClearMemory|Integer|r=0|When set to 1, clears the counter memory (e.g. ExportCount). Will set itself back to 0 when actioned}}&lt;br /&gt;
{{Data Parameters/row|ExportCount|Integer|w=0|How many items exported since last ClearMemory}}&lt;br /&gt;
{{Data Parameters/row|ImportCount|Integer|w=0|How many items imported since last ClearMemory}}&lt;br /&gt;
{{Data Parameters/row|PrefabHash|Integer|w=0|The hash of the structure}}&lt;br /&gt;
{{Data Parameters/row|ReferenceId|Integer|w=0|Unique Reference Identifier for this object}}&lt;br /&gt;
{{Data Parameters/row|NameHash|Integer|w=0|Provides the hash value for the name of the object as a 32 bit integer.}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Data Slots ===&lt;br /&gt;
These are all parameters, that can be read with a [[Kit_(Logic_I/O)#Slots_Reader|Slots Reader]]. The outputs are listed in the order a Slots Reader&#039;s &amp;quot;VAR&amp;quot; setting cycles through them.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number || Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Import || Import slot.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Export (reject) || Export slot.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Export (accept) || Export slot.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Data Disk || Diskslot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Data Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| MaxQuantity || Integer || Returns maximum stacksize.&lt;br /&gt;
|-&lt;br /&gt;
| Damage || Integer || Item durability in percent.&lt;br /&gt;
|-&lt;br /&gt;
| Class || Integer || Item class ID for slot type comparison.&lt;br /&gt;
|-&lt;br /&gt;
| SortingClass || Integer || Class group of items. &lt;br /&gt;
|-&lt;br /&gt;
| Quantity || Integer || Size of item stack.&lt;br /&gt;
|-&lt;br /&gt;
| PrefabHash || Integer || Returns [[ItemHash]] of item in slot.&lt;br /&gt;
|-&lt;br /&gt;
| Occupied || Boolean || Returns whether the slot occupied. (0 for no, 1 for yes).&lt;br /&gt;
|-&lt;br /&gt;
| OccupantHash || Integer || Returns [[ItemHash]] of item in slot.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Item Slot Classes / Types ==&lt;br /&gt;
&lt;br /&gt;
Reading the &#039;&#039;class&#039;&#039; attribute of the input slot will give one of the following values:&lt;br /&gt;
&lt;br /&gt;
Note that you can use &amp;lt;pre style=&amp;quot;display: inline&amp;quot;&amp;gt;SlotClass.&amp;lt;Item&amp;gt;&amp;lt;/pre&amp;gt; directly in IC code instead of the numeric value&lt;br /&gt;
*NOTE The classes listed in this section are FilterSlotTypeCompare and NOT sorting class.  eg: SortingClass.Ores vs SlotClass.Ore&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Item values and descriptions&lt;br /&gt;
! Item !! Value !! Description !! Item !! Value !! Description !! Item !! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| None || 0 || || Helmet || 1 || || Suit || 2 ||&lt;br /&gt;
|-&lt;br /&gt;
| Back || 3 || || GasFilter || 4 || || GasCanister || 5 ||&lt;br /&gt;
|-&lt;br /&gt;
| Motherboard || 6 || || Circuitboard || 7 || || DataDisk || 8 ||&lt;br /&gt;
|-&lt;br /&gt;
| Organ || 9 || || Ore || 10 || Includes reagent mixes from recycler and ices || Plant || 11 ||&lt;br /&gt;
|-&lt;br /&gt;
| Uniform || 12 || || Entity || 13 || || Battery || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
| Egg || 15 || || Belt || 16 || || Tool || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
| Appliance || 18 || || Ingot || 19 || || Torpedo || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
| Cartridge || 21 || || AccessCard || 22 || || Magazine || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
| Circuit || 24 || || Bottle || 25 || || ProgrammableChip || 26 ||&lt;br /&gt;
|-&lt;br /&gt;
| Glasses || 27 || || CreditCard || 28 || || DirtCanister || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
| SensorProcessingUnit || 30 || || LiquidCanister || 31 || || LiquidBottle || 32 ||&lt;br /&gt;
|-&lt;br /&gt;
| Wreckage || 33 || || SoundCartridge || 34 || || DrillHead || 35 ||&lt;br /&gt;
|-&lt;br /&gt;
| ScanningHead || 36 || || Flare || 37 || || Blocked || 38 ||&lt;br /&gt;
|-&lt;br /&gt;
| SuitMod || 39 || || Crate || 40 || || Portables || 41 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=LARrE&amp;diff=21712</id>
		<title>LARrE</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=LARrE&amp;diff=21712"/>
		<updated>2024-07-22T19:06:01Z</updated>

		<summary type="html">&lt;p&gt;Thoth: rename LARrE to LArRE; explain Activate a little better&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
| name = Kit (LArRE)&lt;br /&gt;
| image = [[File:ItemKitRoboticArm.png]]&lt;br /&gt;
| prefabhash = -1228287398&lt;br /&gt;
| prefabname = ItemKitRoboticArm&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Kits&lt;br /&gt;
| recipe_machine1 = Electronics Printer&lt;br /&gt;
| recipe_cost1 = 10g [[Inconel]], 5g [[Hastelloy]], 15g [[Astroloy]]&lt;br /&gt;
| constructs = [[LArRE Dock]]&lt;br /&gt;
}}&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = LArRE Dock&lt;br /&gt;
| image = [[File:StructureRoboticArmDock.png]]&lt;br /&gt;
| prefab_hash = -1818718810&lt;br /&gt;
| prefab_name = StructureRoboticArmDock&lt;br /&gt;
| power_usage = 10W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (LArRE)]]&lt;br /&gt;
| item_rec1 = [[Kit (LArRE)]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;The (L)inear (Ar)ticulated (R)ail (E)ntity or LArRE can be used to plant, harvest and fertilize plants in plant trays. It can also grab items from a [[Chute Export Bin]] and drop them in a [[Chute Import Bin]]. LArRE can interact with plant trays or chute bins built under a linear rail station or built under its dock.&amp;lt;/q&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;- Stationpedia&#039;&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Data Network Header}}&lt;br /&gt;
{{Data Parameters|&lt;br /&gt;
{{Data Parameters/row|Power|Boolean|w=0|Can be read to return if the LArRE Dock is correctly powered or not, set via the power system, return 1 if powered and 0 if not|multiple=2|0|Unpowered|1|Powered}}&lt;br /&gt;
{{Data Parameters/row|Error|Boolean|w=0|1 if device is in error state, otherwise 0|multiple=2|0|&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;|1|Error}}&lt;br /&gt;
{{Data Parameters/row|Activate|Integer|Set this to 1 to make LArRE use its claw (either to place or fetch an item)}}&lt;br /&gt;
{{Data Parameters/row|Setting|Integer|Set this to make LArRE move to a station}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the LArRE Dock.|multiple=2|0|Off|1|On}}&lt;br /&gt;
{{Data Parameters/row|RequiredPower|Integer|w=0|Idle operating power quantity, does not necessarily include extra demand power}}&lt;br /&gt;
{{Data Parameters/row|Idle|Integer|w=0|Returns 1 if the LArRE Dock is currently idle (stationary), otherwise 0 (moving).  Use this to detect if it has completed its movement/action.}}&lt;br /&gt;
{{Data Parameters/row|PrefabHash|Integer|w=0|The hash of the structure}}&lt;br /&gt;
{{Data Parameters/row|ReferenceId|Integer|w=0|Unique Reference Identifier for this object}}&lt;br /&gt;
{{Data Parameters/row|Index|Integer|w=0|The current index for the LArRE Dock on the rails.  Can be non-integer.  This usually does not correlate with Setting since it counts non-station rail sections.}}&lt;br /&gt;
{{Data Parameters/row|NameHash|Integer|w=0|Provides the hash value for the name of the object as a 32 bit integer.}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Data Slots ====&lt;br /&gt;
These are all parameters, that can be read with a [[Kit_(Logic_I/O)#Slots_Reader|Slots Reader]]. The outputs are listed in the order a Slots Reader&#039;s &amp;quot;VAR&amp;quot; setting cycles through them.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number || Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Occupied|| &lt;br /&gt;
|-&lt;br /&gt;
| 0 || OccupantHash ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Quantity ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Damage ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Class ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || MaxQuantity ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || PrefabHash ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SortingCLass ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || ReferenceId ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Renamed to LArRE to better align with its non-acronym name in 2024-July-22&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=LARrE&amp;diff=21675</id>
		<title>LARrE</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=LARrE&amp;diff=21675"/>
		<updated>2024-07-21T17:00:57Z</updated>

		<summary type="html">&lt;p&gt;Thoth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
| name = Kit (LARrE)&lt;br /&gt;
| image = [[File:ItemKitRoboticArm.png]]&lt;br /&gt;
| prefabhash = -1228287398&lt;br /&gt;
| prefabname = ItemKitRoboticArm&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Kits&lt;br /&gt;
| recipe_machine1 = Electronics Printer&lt;br /&gt;
| recipe_cost1 = 10g [[Inconel]], 5g [[Hastelloy]], 15g [[Astroloy]]&lt;br /&gt;
| constructs = [[LARrE Dock]]&lt;br /&gt;
}}&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = LARrE Dock&lt;br /&gt;
| image = [[File:StructureRoboticArmDock.png]]&lt;br /&gt;
| prefab_hash = -1818718810&lt;br /&gt;
| prefab_name = StructureRoboticArmDock&lt;br /&gt;
| power_usage = 10W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (LARrE)]]&lt;br /&gt;
| item_rec1 = [[Kit (LARrE)]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;The Linear Articulated Rail Entity or LARrE can be used to plant, harvest and fertilize plants in plant trays. It can also grab items from a [[Chute Export Bin]] and drop them in a [[Chute Import Bin]]. LARrE can interact with plant trays or chute bins built under a linear rail station or built under its dock.&amp;lt;/q&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;- Stationpedia&#039;&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Data Network Header}}&lt;br /&gt;
{{Data Parameters|&lt;br /&gt;
{{Data Parameters/row|Power|Boolean|w=0|Can be read to return if the LARrE Dock is correctly powered or not, set via the power system, return 1 if powered and 0 if not|multiple=2|0|Unpowered|1|Powered}}&lt;br /&gt;
{{Data Parameters/row|Error|Boolean|w=0|1 if device is in error state, otherwise 0|multiple=2|0|&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;|1|Error}}&lt;br /&gt;
{{Data Parameters/row|Activate|Integer|1 if device is activated (usually means running), otherwise 0}}&lt;br /&gt;
{{Data Parameters/row|Setting|Integer|Set this to make LARrE move to a station}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the LARrE Dock.|multiple=2|0|Off|1|On}}&lt;br /&gt;
{{Data Parameters/row|RequiredPower|Integer|w=0|Idle operating power quantity, does not necessarily include extra demand power}}&lt;br /&gt;
{{Data Parameters/row|Idle|Integer|w=0|Returns 1 if the LARrE Dock is currently idle (stationary), otherwise 0 (moving).  Use this to detect if it has completed its movement/action.}}&lt;br /&gt;
{{Data Parameters/row|PrefabHash|Integer|w=0|The hash of the structure}}&lt;br /&gt;
{{Data Parameters/row|ReferenceId|Integer|w=0|Unique Reference Identifier for this object}}&lt;br /&gt;
{{Data Parameters/row|Index|Integer|w=0|The current index for the LARrE Dock on the rails.  Can be non-integer.  This usually does not correlate with Setting since it counts non-station rail sections.}}&lt;br /&gt;
{{Data Parameters/row|NameHash|Integer|w=0|Provides the hash value for the name of the object as a 32 bit integer.}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Data Slots ====&lt;br /&gt;
These are all parameters, that can be read with a [[Kit_(Logic_I/O)#Slots_Reader|Slots Reader]]. The outputs are listed in the order a Slots Reader&#039;s &amp;quot;VAR&amp;quot; setting cycles through them.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number || Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Occupied|| &lt;br /&gt;
|-&lt;br /&gt;
| 0 || OccupantHash ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Quantity ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Damage ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Class ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || MaxQuantity ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || PrefabHash ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SortingCLass ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || ReferenceId ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=LARrE&amp;diff=21572</id>
		<title>LARrE</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=LARrE&amp;diff=21572"/>
		<updated>2024-07-09T01:52:31Z</updated>

		<summary type="html">&lt;p&gt;Thoth: document Setting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
 | name        = Kit (LARrE)&lt;br /&gt;
 | image       = [[File:ItemKitRoboticArm.png]]&lt;br /&gt;
 | createdwith = [[Electronics Printer]]&lt;br /&gt;
 | cost        = 10g [[Inconel]], 5g [[Hastelloy]], 15g [[Astroloy]]&lt;br /&gt;
}}&lt;br /&gt;
{{Structurebox&lt;br /&gt;
 | name             = LARrE Dock&lt;br /&gt;
 | image            = [[File:StructureRoboticArmDock.png]]&lt;br /&gt;
 | placed_with_item = [[Kit (LARrE)]]&lt;br /&gt;
 | power_usage      = 10W&lt;br /&gt;
 | placed_on_grid   = Small Grid&lt;br /&gt;
 | decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
 | item_rec1        = [[Kit (LARrE)]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The Linear Articulated Rail Entity or LARrE can be used to plant, harvest, and fertilize plants in plant trays.  It can also grab items from a Chute Export Bin and drop them in a Chute Import Bin.  LARrE can interact with plant trays or chute bins built under a [[Linear Rail|linear rail]] station or built under its dock.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Data Parameters}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter Name !! Data Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Activate || ?||&lt;br /&gt;
|-&lt;br /&gt;
| ClearMemory || Boolean || &lt;br /&gt;
|-&lt;br /&gt;
| Error || ?&lt;br /&gt;
|-&lt;br /&gt;
| Idle || ?&lt;br /&gt;
|-&lt;br /&gt;
| Index || ?&lt;br /&gt;
|-&lt;br /&gt;
| NameHash || ?&lt;br /&gt;
|-&lt;br /&gt;
| On || ?&lt;br /&gt;
|-&lt;br /&gt;
| Power || ?&lt;br /&gt;
|-&lt;br /&gt;
| PrefabHash || ?&lt;br /&gt;
|-&lt;br /&gt;
| ReferenceId || ?&lt;br /&gt;
|-&lt;br /&gt;
| RequiredPower || ?&lt;br /&gt;
|-&lt;br /&gt;
| Setting || integer || Read which rail station LARrE is destined for.  Write a value to make LARrE move.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Data Slots ====&lt;br /&gt;
These are all parameters, that can be read with a [[Kit_(Logic_I/O)#Slots_Reader|Slots Reader]]. The outputs are listed in the order a Slots Reader&#039;s &amp;quot;VAR&amp;quot; setting cycles through them.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number || Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Occupied|| &lt;br /&gt;
|-&lt;br /&gt;
| 0 || OccupantHash ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Quantity ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Damage ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Class ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || MaxQuantity ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || PrefabHash ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SortingCLass ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || ReferenceId ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=LARrE&amp;diff=21571</id>
		<title>LARrE</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=LARrE&amp;diff=21571"/>
		<updated>2024-07-09T00:36:11Z</updated>

		<summary type="html">&lt;p&gt;Thoth: new page for LARrE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
 | name        = Kit (LARrE)&lt;br /&gt;
 | image       = [[File:ItemKitRoboticArm.png]]&lt;br /&gt;
 | createdwith = [[Electronics Printer]]&lt;br /&gt;
 | cost        = 10g [[Inconel]], 5g [[Hastelloy]], 15g [[Astroloy]]&lt;br /&gt;
}}&lt;br /&gt;
{{Structurebox&lt;br /&gt;
 | name             = LARrE Dock&lt;br /&gt;
 | image            = [[File:StructureRoboticArmDock.png]]&lt;br /&gt;
 | placed_with_item = [[Kit (LARrE)]]&lt;br /&gt;
 | power_usage      = 10W&lt;br /&gt;
 | placed_on_grid   = Small Grid&lt;br /&gt;
 | decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
 | item_rec1        = [[Kit (LARrE)]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The Linear Articulated Rail Entity or LARrE can be used to plant, harvest, and fertilize plants in plant trays.  It can also grab items from a Chute Export Bin and drop them in a Chute Import Bin.  LARrE can interact with plant trays or chute bins built under a [[Linear Rail|linear rail]] station or built under its dock.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Data Parameters}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter Name !! Data Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Activate || ?||&lt;br /&gt;
|-&lt;br /&gt;
| ClearMemory || Boolean || &lt;br /&gt;
|-&lt;br /&gt;
| Error || ?&lt;br /&gt;
|-&lt;br /&gt;
| Idle || ?&lt;br /&gt;
|-&lt;br /&gt;
| Index || ?&lt;br /&gt;
|-&lt;br /&gt;
| NameHash || ?&lt;br /&gt;
|-&lt;br /&gt;
| On || ?&lt;br /&gt;
|-&lt;br /&gt;
| Power || ?&lt;br /&gt;
|-&lt;br /&gt;
| PrefabHash || ?&lt;br /&gt;
|-&lt;br /&gt;
| ReferenceId || ?&lt;br /&gt;
|-&lt;br /&gt;
| RequiredPower || ?&lt;br /&gt;
|-&lt;br /&gt;
| Setting || ?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Data Slots ====&lt;br /&gt;
These are all parameters, that can be read with a [[Kit_(Logic_I/O)#Slots_Reader|Slots Reader]]. The outputs are listed in the order a Slots Reader&#039;s &amp;quot;VAR&amp;quot; setting cycles through them.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number || Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Occupied|| &lt;br /&gt;
|-&lt;br /&gt;
| 0 || OccupantHash ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Quantity ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Damage ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Class ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || MaxQuantity ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || PrefabHash ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SortingCLass ||&lt;br /&gt;
|-&lt;br /&gt;
| 0 || ReferenceId ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=File:Three_stairwells.png&amp;diff=19758</id>
		<title>File:Three stairwells.png</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=File:Three_stairwells.png&amp;diff=19758"/>
		<updated>2024-01-14T02:01:36Z</updated>

		<summary type="html">&lt;p&gt;Thoth: Thoth uploaded a new version of File:Three stairwells.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A picture of three stacked stairwells with various front opening options.&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Stairwell&amp;diff=19757</id>
		<title>Stairwell</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Stairwell&amp;diff=19757"/>
		<updated>2024-01-13T12:21:05Z</updated>

		<summary type="html">&lt;p&gt;Thoth: add screenshot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
[[File:Three stairwells.png|thumb|right|three stacked stairwells]]&lt;br /&gt;
The Stairwell a 1x1x3 block.  It requires at least one frame (or properly aligned stairwell) beneath it for support.  All variants include a &amp;quot;landing&amp;quot; gap (requiring some other block like a frame to provide a surface) of approximately 1.5 meter (3/4 of a block), a 1x3-meter-long stair that ascends 2 meters (1 block) and only occupies half the width of the stairwell, and an upper 1.5-meter landing.&lt;br /&gt;
&lt;br /&gt;
It is designed to be stacked to create zigzag stairwells.  Attempting to create a one-direction chain of stairwells will fail.  Even if you add a frame to support the second stairwell, the cap wall blocks travel from the lower stair to the upper stair.&lt;br /&gt;
&lt;br /&gt;
Although the stairwell has many walls that prevent travel, these walls can not support wall-mounted devices (like consoles, logic elements or the like).  The impassable cap walls also prevent stairwells from being used in-line in a corridor.&lt;br /&gt;
&lt;br /&gt;
== Variants ==&lt;br /&gt;
&lt;br /&gt;
The 2m cap walls are present in all variants.  The only entry points will be on the long sides.&lt;br /&gt;
&lt;br /&gt;
* Front Left (opposite the bottom of the stair)&lt;br /&gt;
* Front Right (adjacent the bottom of the stair)&lt;br /&gt;
* Back Left (farthest from the bottom of the stair)&lt;br /&gt;
* Back Right (underneath the stair)&lt;br /&gt;
* Front Passthrough (both sides of the bottom of the stair)&lt;br /&gt;
* Back Passthrough (both sides under the top of the stair)&lt;br /&gt;
* No Doors (there are no openings in the side walls of this variant)&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=File:Three_stairwells.png&amp;diff=19756</id>
		<title>File:Three stairwells.png</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=File:Three_stairwells.png&amp;diff=19756"/>
		<updated>2024-01-13T12:18:20Z</updated>

		<summary type="html">&lt;p&gt;Thoth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A picture of three stacked stairwells with various front opening options.&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Stairwell&amp;diff=19755</id>
		<title>Stairwell</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Stairwell&amp;diff=19755"/>
		<updated>2024-01-13T12:06:40Z</updated>

		<summary type="html">&lt;p&gt;Thoth: first draft of the stairwell page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
The Stairwell a 1x1x3 block.  It requires at least one frame beneath it for support.  All variants include a &amp;quot;landing&amp;quot; gap (requiring some other block like a frame to provide a surface) of approximately 1.5 meter (3/4 of a block), a 1x3-meter-long stair that ascends 2 meters (1 block) and only occupies half the width of the stairwell, and an upper 1.5-meter landing.&lt;br /&gt;
&lt;br /&gt;
It is designed to be stacked to create zigzag stairwells.  Attempting to create a one-direction chain of stairwells will fail.  Even if you add a frame to support the second stairwell, the cap wall blocks travel from the lower stair to the upper stair.&lt;br /&gt;
&lt;br /&gt;
Although the stairwell has many walls that prevent travel, these walls can not support wall-mounted devices (like consoles, logic elements or the like).  The impassable cap walls also prevent stairwells from being used in-line in a corridor.&lt;br /&gt;
&lt;br /&gt;
== Variants ==&lt;br /&gt;
&lt;br /&gt;
The 2m cap walls are present in all variants.  The only entry points will be on the long sides.&lt;br /&gt;
&lt;br /&gt;
* Front Left (opposite the bottom of the stair)&lt;br /&gt;
* Front Right (adjacent the bottom of the stair)&lt;br /&gt;
* Back Left (farthest from the bottom of the stair)&lt;br /&gt;
* Back Right (underneath the stair)&lt;br /&gt;
* Front Passthrough (both sides of the bottom of the stair)&lt;br /&gt;
* Back Passthrough (both sides under the top of the stair)&lt;br /&gt;
* No Doors (there are no openings in the side walls of this variant)&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Stairs&amp;diff=19754</id>
		<title>Stairs</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Stairs&amp;diff=19754"/>
		<updated>2024-01-13T11:41:18Z</updated>

		<summary type="html">&lt;p&gt;Thoth: mention Stairwell&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
{{Itembox&lt;br /&gt;
 | name        = Kit (Stairs)&lt;br /&gt;
 | image       =  [[File:ItemKitStairs.png]]&lt;br /&gt;
 | stacks      = 10&lt;br /&gt;
 | createdwith = [[Autolathe]], [[Fabricator]]&lt;br /&gt;
 | cost        = 15g [[Iron Ingot|Iron]]&lt;br /&gt;
}}&lt;br /&gt;
{{Structurebox&lt;br /&gt;
 | name             = Stairs&lt;br /&gt;
 | image            = [[File:ItemKitStairs1.png.png]]&lt;br /&gt;
 | placed_with_item = [[Kit (Stairs)]]&lt;br /&gt;
 | placed_on_grid   = Large Grid&lt;br /&gt;
 | decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
 | item_rec1        = [[Kit (Stairs)]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
[[Stairs]] are created in the [[Autolathe]] or [[Fabricator]]. They are 1x1x2 (2 blocks long), causing them to have a very gradual slope.&lt;br /&gt;
&lt;br /&gt;
The power input behind the stairs currently serves no function.&lt;br /&gt;
&lt;br /&gt;
Contrast with the 1x1x3 [[Stairwell]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
ItemKitStairs1.png.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thoth</name></author>
	</entry>
</feed>