<?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=Emilgardis</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=Emilgardis"/>
	<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/Special:Contributions/Emilgardis"/>
	<updated>2026-04-04T05:51:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=IC10/instructions&amp;diff=23490</id>
		<title>IC10/instructions</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=IC10/instructions&amp;diff=23490"/>
		<updated>2025-09-16T10:51:02Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: update with new instructions/usages and some examples, remove ld/sd&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=pow|description=Stores the result of raising a to the power of b in the register. Follows IEEE-754 standard for floating point arithmetic.|syntax=pow 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;
{{ICInstruction|instruction=lerp|description=Linearly interpolates between a and b by the ratio c, and places the result in the register provided. The ratio c will be clamped between 0 and 1.|syntax=lerp r? a(r?{{!}}num) b(r?{{!}}num) c(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? device(d?{{!}}r?{{!}}id) 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?{{!}}id) 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 device(d?{{!}}r?{{!}}id) 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?{{!}}id) 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? device(d?{{!}}r?{{!}}id) 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=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? device(d?{{!}}r?{{!}}id) reagentMode int}}&lt;br /&gt;
{{ICInstruction|instruction=ls|description=Loads slot LogicSlotType on device to register.|syntax=ls r? device(d?{{!}}r?{{!}}id) 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 device(d?{{!}}r?{{!}}id) 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=ss|description=Stores register value to device stored in a slot LogicSlotType on device.|syntax=ss device(d?{{!}}r?{{!}}id) 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 zeros (note that this is indistinguishable from &#039;sll&#039;).|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;
{{ICInstruction|instruction=ext|description=Extracts a bit field from a, beginning at b for c length and placed in the provided register. Payload cannot exceed 53 bits in final length.|syntax=ext r? a(r?{{!}}num) b(r?{{!}}num) c(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=ins|description=Inserts a bit field of a into the provided register, beginning at b for c length. Payload cannot exceed 53 bits in final length.|syntax=ins r? a(r?{{!}}num) b(r?{{!}}num) c(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;
&amp;lt;b&amp;gt;1)&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
move r0 &amp;lt;s style=&amp;quot;text-decoration-line:underline;text-decoration-color:red;&amp;quot;&amp;gt;0&amp;lt;/s&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
select &amp;lt;s style=&amp;quot;text-decoration-line:underline;text-decoration-color:red;&amp;gt;r1&amp;lt;/s&amp;gt; r0 10 &amp;lt;s style=&amp;quot;text-decoration-line:underline;text-decoration-color:red;&amp;gt;200&amp;lt;/s&amp;gt;&lt;br /&gt;
{{ICCode|&lt;br /&gt;
move r0 0&lt;br /&gt;
select r1 r0 10 200&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br/&amp;gt;after run, &amp;lt;s style=&amp;quot;text-decoration-line:underline;text-decoration-color:red;&amp;quot;&amp;gt;r1 = 200&amp;lt;/s&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;2)&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
move r0 &amp;lt;s style=&amp;quot;text-decoration-line:underline;text-decoration-color:red;&amp;quot;&amp;gt;5&amp;lt;/s&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
select &amp;lt;s style=&amp;quot;text-decoration-line:underline;text-decoration-color:red;&amp;gt;r1&amp;lt;/s&amp;gt; r0 &amp;lt;s style=&amp;quot;text-decoration-line:underline;text-decoration-color:red;&amp;gt;10&amp;lt;/s&amp;gt; 200&lt;br /&gt;
{{ICCode|&lt;br /&gt;
move r0 1&lt;br /&gt;
select r1 r0 10 100&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br/&amp;gt;after run, &amp;lt;s style=&amp;quot;text-decoration-line:underline;text-decoration-color:red;&amp;quot;&amp;gt;r1 = 10&amp;lt;/s&amp;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? device(d?{{!}}r?{{!}}id)}}&lt;br /&gt;
{{ICInstruction|instruction=sdse|description=Register = 1 if device is set, otherwise 0.|syntax=sdse r? device(d?{{!}}r?{{!}}id)}}&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;
|example=&lt;br /&gt;
Set register to 1 if a and b are close enough to each other with the scaling factor of c. Equivalent to Python [https://docs.python.org/3/library/math.html#math.isclose math.isclose]}}&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=bdnvl|description=Will branch to line a if the provided device not valid for a load instruction for the provided logic type.|syntax=bdnvl device(d?{{!}}r?{{!}}id) logicType a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=bdnvs|description=Will branch to line a if the provided device not valid for a store instruction for the provided logic type.|syntax=bdnvs device(d?{{!}}r?{{!}}id) logicType a(r?{{!}}num)}}&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 branch to line a if device is not set|syntax=brdns d? a(r?{{!}}num)}}&lt;br /&gt;
{{ICInstruction|instruction=brdse|description=Relative branch 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;
|example=&lt;br /&gt;
Branch if a and b are close enough to each other with the scaling factor of c. Equivalent to Python [https://docs.python.org/3/library/math.html#math.isclose math.isclose]}}&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 branch 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 branch 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 branch 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 branch 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>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Talk:Cartridge&amp;diff=21922</id>
		<title>Talk:Cartridge</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Talk:Cartridge&amp;diff=21922"/>
		<updated>2024-08-05T18:57:15Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Duplication ==&lt;br /&gt;
This page should be removed in favor of unique articles per cartridge imo. See for example [[Access Controller]] [[User:Emilgardis|Emilgardis]] ([[User talk:Emilgardis|talk]]) 12:41, 4 August 2024 (CDT)&lt;br /&gt;
&lt;br /&gt;
Do all cartridges have individual pages? If that&#039;s the case I can nuke the page [[User:Smodd|Smodd]] ([[User talk:Smodd|talk]]) 08:57, 5 August 2024 (CDT)&lt;br /&gt;
&lt;br /&gt;
I don&#039;t think they currently do :/ - [[User:Emilgardis|Emilgardis]] ([[User talk:Emilgardis|talk]]) 13:57, 5 August 2024 (CDT)&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Computer&amp;diff=21884</id>
		<title>Computer</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Computer&amp;diff=21884"/>
		<updated>2024-08-04T17:57:23Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &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 (Computer)&lt;br /&gt;
| image = [[File:ItemKitComputer.png]]&lt;br /&gt;
| prefabhash = 1990225489&lt;br /&gt;
| prefabname = ItemKitComputer&lt;br /&gt;
| stacks = 5&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 = 5g [[Iron]], 5g [[Gold]], 10g [[Copper]]&lt;br /&gt;
| constructs = [[Computer]]&lt;br /&gt;
}}&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = Computer&lt;br /&gt;
| image = [[File:StructureComputer.png]]&lt;br /&gt;
| prefab_hash = -626563514&lt;br /&gt;
| prefab_name = StructureComputer&lt;br /&gt;
| power_usage = 200W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (Computer)]]&lt;br /&gt;
| item_rec1 = [[Kit (Computer)]]&lt;br /&gt;
| decon_with_tool2 = [[Screwdriver]]&lt;br /&gt;
| const_with_tool1 = [[Screwdriver]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;In some ways a relic, the &#039;Chonk R1&#039; was designed by severely conflicted [[Norsec (Faction)|Norsec]] technicians, who needed a unit that could operate with a wide range of [[:Category:Circuits|motherboards]], while also enduring the worst a new Cadet could throw at it.&lt;br /&gt;
The result is a machine described by some as &#039;the only PC likely to survive our collision with a black hole&#039;, while other, less appreciative users regard it as sharing most of its technological DNA with a cheese grater.&lt;br /&gt;
Compatible motherboards:&lt;br /&gt;
- [[Motherboard_(Logic)|Logic Motherboard]]&lt;br /&gt;
- Manufacturing Motherboard&lt;br /&gt;
- [[Sorter Motherboard]]&lt;br /&gt;
- [[Motherboard_(Communications)|Communications Motherboard]]&lt;br /&gt;
- [[Motherboard (IC_Editor)|IC Editor Motherboard]]&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;
== Description == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Uses different [[Motherboard]]s to perform various functions.&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 Computer 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|Open|Integer|1 if device is open, otherwise 0|multiple=2|0|Closed|1|Open}}&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 Computer.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the Computer.|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|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;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Data Network]]&lt;br /&gt;
[[Category:IC10 Programming]]&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Computer&amp;diff=21883</id>
		<title>Computer</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Computer&amp;diff=21883"/>
		<updated>2024-08-04T17:56:48Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &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 (Computer)&lt;br /&gt;
| image = [[File:ItemKitComputer.png]]&lt;br /&gt;
| prefabhash = 1990225489&lt;br /&gt;
| prefabname = ItemKitComputer&lt;br /&gt;
| stacks = 5&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 = 5g [[Iron]], 5g [[Gold]], 10g [[Copper]]&lt;br /&gt;
| constructs = [[Computer]]&lt;br /&gt;
}}&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = Computer&lt;br /&gt;
| image = [[File:StructureComputer.png]]&lt;br /&gt;
| prefab_hash = -626563514&lt;br /&gt;
| prefab_name = StructureComputer&lt;br /&gt;
| power_usage = 200W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (Computer)]]&lt;br /&gt;
| item_rec1 = [[Kit (Computer)]]&lt;br /&gt;
| decon_with_tool2 = [[Screwdriver]]&lt;br /&gt;
| const_with_tool1 = [[Screwdriver]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;In some ways a relic, the &#039;Chonk R1&#039; was designed by severely conflicted [[Norsec (Faction)|Norsec]] technicians, who needed a unit that could operate with a wide range of [[:Category:Circuits|motherboards]], while also enduring the worst a new Cadet could throw at it.&lt;br /&gt;
The result is a machine described by some as &#039;the only PC likely to survive our collision with a black hole&#039;, while other, less appreciative users regard it as sharing most of its technological DNA with a cheese grater.&lt;br /&gt;
Compatible motherboards:&lt;br /&gt;
- [[Motherboard_(Logic)|Logic Motherboard]]&lt;br /&gt;
- Manufacturing Motherboard&lt;br /&gt;
- [[Sorter Motherboard]]&lt;br /&gt;
- [[Motherboard_(Communications)|Communications Motherboard]]&lt;br /&gt;
- [[Motherboard (IC_Editor)|IC Editor Motherboard]]&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;
== Description == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Uses different [[Motherboard]]s to perform various functions.&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 [[Motherboard]] slot, when set to 1. Closes it, when set to 0.&lt;br /&gt;
|-&lt;br /&gt;
| On || Boolean || Turns the Computer 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 Computer is turned on and receives power. (0 for no, 1 for yes)&lt;br /&gt;
|-&lt;br /&gt;
| Open || Boolean || Returns whether the Computer&#039;s [[Motherboard]] slot is open. (0 for no, 1 for yes)&lt;br /&gt;
|-&lt;br /&gt;
| Error || Boolean || Returns whether the Computer is flashing an error. (0 for no, 1 for yes)&lt;br /&gt;
|-&lt;br /&gt;
| On || Boolean || Returns whether the Computer 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 Computer, in watts.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Data Network]]&lt;br /&gt;
[[Category:IC10 Programming]]&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Composite_Windows&amp;diff=21882</id>
		<title>Composite Windows</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Composite_Windows&amp;diff=21882"/>
		<updated>2024-08-04T17:53:55Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Construction]]&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = Composite Window&lt;br /&gt;
| image = [[File:CompositeWindow.jpg]]&lt;br /&gt;
| prefab_hash = -2060571986&lt;br /&gt;
| prefab_name = StructureCompositeWindow&lt;br /&gt;
| placed_on_grid = Large Grid&lt;br /&gt;
| decon_with_tool1 = [[Angle Grinder]]&lt;br /&gt;
| placed_with_item = [[Kit (Wall)]]&lt;br /&gt;
| item_rec1 = [[Kit (Wall)]]&lt;br /&gt;
| decon_with_tool2 = [[Crowbar]]&lt;br /&gt;
| const_with_item1 = 1 x [[Plastic Sheets]]&lt;br /&gt;
| item_rec2 = 1 x [[Plastic Sheets]]&lt;br /&gt;
| decon_with_tool3 = [[Crowbar]]&lt;br /&gt;
| const_with_item2 = 1 x [[Glass Sheets]]&lt;br /&gt;
| item_rec3 = 1 x [[Glass Sheets]]&lt;br /&gt;
}}&lt;br /&gt;
== Description == &amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
[[Composite Windows]] are created by building a [[Kit (Wall)]], then completing the window frame with first an [[Plastic Sheets|Plastic Sheet]] then a [[Glass Sheets|Glass Sheet]]. Their max pressure differential is 200kpa, at which point they will break. If you&#039;re looking for a stronger window, you could go with a [[Padded Window]] or a [[Reinforced Window]].&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Composite_Windows&amp;diff=21881</id>
		<title>Composite Windows</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Composite_Windows&amp;diff=21881"/>
		<updated>2024-08-04T17:53:31Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Construction]]&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = Composite Window&lt;br /&gt;
| image = [[File:StructureCompositeWindow.jpg]]&lt;br /&gt;
| prefab_hash = -2060571986&lt;br /&gt;
| prefab_name = StructureCompositeWindow&lt;br /&gt;
| placed_on_grid = Large Grid&lt;br /&gt;
| decon_with_tool1 = [[Angle Grinder]]&lt;br /&gt;
| placed_with_item = [[Kit (Wall)]]&lt;br /&gt;
| item_rec1 = [[Kit (Wall)]]&lt;br /&gt;
| decon_with_tool2 = [[Crowbar]]&lt;br /&gt;
| const_with_item1 = 1 x [[Plastic Sheets]]&lt;br /&gt;
| item_rec2 = 1 x [[Plastic Sheets]]&lt;br /&gt;
| decon_with_tool3 = [[Crowbar]]&lt;br /&gt;
| const_with_item2 = 1 x [[Glass Sheets]]&lt;br /&gt;
| item_rec3 = 1 x [[Glass Sheets]]&lt;br /&gt;
}}&lt;br /&gt;
== Description == &amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
[[Composite Windows]] are created by building a [[Kit (Wall)]], then completing the window frame with first an [[Plastic Sheets|Plastic Sheet]] then a [[Glass Sheets|Glass Sheet]]. Their max pressure differential is 200kpa, at which point they will break. If you&#039;re looking for a stronger window, you could go with a [[Padded Window]] or a [[Reinforced Window]].&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Combustion_Centrifuge&amp;diff=21880</id>
		<title>Combustion Centrifuge</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Combustion_Centrifuge&amp;diff=21880"/>
		<updated>2024-08-04T17:49:42Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name = Kit (Combustion Centrifuge)&lt;br /&gt;
| image = [[File:KitStructureCombustionCentrifuge.png]]&lt;br /&gt;
| prefabhash = 231903234&lt;br /&gt;
| prefabname = KitStructureCombustionCentrifuge&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Kits&lt;br /&gt;
| recipe_machine1 = Autolathe (Tier Two)&lt;br /&gt;
| recipe_cost1 = 20g [[Steel]], 10g [[Invar]], 5g [[Constantan]]&lt;br /&gt;
| constructs = [[Combustion Centrifuge]]&lt;br /&gt;
}}&lt;br /&gt;
{{Structurebox&lt;br /&gt;
 | name             = Combustion Centrifuge&lt;br /&gt;
 | image            = [[File:StructureCombustionCentrifuge.png]]&lt;br /&gt;
 | power_usage      = 50W&lt;br /&gt;
 | placed_with_item = [[Kit (Combustion Centrifuge)]]&lt;br /&gt;
 | placed_on_grid   = Small Grid&lt;br /&gt;
 | stage_image1     = [[File:StructureCombustionCentrifuge_BuildState0.png]]&lt;br /&gt;
 | decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
 | item_rec1        = [[Kit (Combustion Centrifuge)]]&lt;br /&gt;
 | const_with_tool2 = [[Welder]]&lt;br /&gt;
 | const_with_item2 = 2x [[Steel Sheets]]&lt;br /&gt;
 | stage_image2     = [[File:StructureCombustionCentrifuge_BuildState1.png]]&lt;br /&gt;
 | decon_with_tool2 = [[Angle Grinder]]&lt;br /&gt;
 | item_rec2        = 2x [[Steel Sheets]]&lt;br /&gt;
 | const_with_item3 = 1x [[Cable Coil]]&lt;br /&gt;
 | decon_with_tool3 = [[Wire Cutters]]&lt;br /&gt;
 | item_rec3        = 1x [[Cable Coil]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;The Combustion Centrifuge is a gas powered version of the [[Centrifuge]]. If a [[Recycler]] or unbalanced [[Furnace]] outputs reagent mixture rather than the desired [[:Category:Ingot|ingots]], a centrifuge allows you to reclaim the raw [[Ores|ore]].&lt;br /&gt;
        It also refines [[Dirty Ore]] produced from the [[Deep Miner]] and [[Dirty Ore]] produced from the [[Rocket Miner]]. A combustible fuel mix should be supplied to the gas input, and waste gasses should be vented from the output.&lt;br /&gt;
        The machine&#039;s RPMs must be controlled via the throttle and combustion limiter levers. If the Combustion Centrifuge gains, or loses, RPMs too fast it will experience stress, and eventually grind to a halt.  Higher RPMs directly result in faster processing speeds.&lt;br /&gt;
        The throttle lever controls the amount of fuel being pulled into the machine, increasing the temperature inside the engine, and leading to an increase in RPM. The limiter lever influences the speed of the combustion, and how much uncombusted gas is in the exhaust.&lt;br /&gt;
        Ejecting ore from the Combustion Centrifuge while it is at high RPMs will result in additional stress build up.  If turned off while not stressed, the machine will automatically start to brake, and reduce RPMs in a controlled manner.&lt;br /&gt;
          &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;
== Description == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
The combustion centrifuge is a gas powered version of the [[Centrifuge]]. A combustible fuel mix should be supplied to the gas input, and waste gasses should be vented from the output. The machine&#039;s RPM&#039;s must be controlled via the throttle and combustion limiter levers. If the Combustion Centrifuge gains, or loses, RPMs too fast it will experience stress, and eventually grind to a halt. Higher RPMs directly result in faster processing speeds.&lt;br /&gt;
&lt;br /&gt;
The throttle lever controls the amount of fuel being pulled into the machine, increasing the temperature inside the engine, and leading to an increase in RPM. The limiter lever influences the speed of combustion, and how much uncombusted gas is in the exhaust.&lt;br /&gt;
&lt;br /&gt;
Ejecting ore from the Combustion Centrifuge while it is at high RPMs will result in additional stress build up. If turned off, while not stressed, the machine will automatically start to brake, and reduce RPMs in a controlled manner.&lt;br /&gt;
&lt;br /&gt;
The Combustion Centrifuge has a socket for an [[Integrated Circuit (IC10)|IC10 chip]], similar to the [[Atmospherics]] machine. It comes with two device ports, d0 and d1, for connecting to other devices. To change or set a device, use a screwdriver to cycle through devices found on the machine&#039;s data network.&lt;br /&gt;
== &#039;&#039;&#039;Important&#039;&#039;&#039; == &lt;br /&gt;
Can be boosted by [[Nitrous Oxide]] in fuel mixture, but don&#039;t make mixture to autoigniting, you can blow everything up with overpressured [[Gas Canister]]&#039;&#039;(perhaps, centrifuge too)&#039;&#039;!&lt;br /&gt;
== Throttle ==&lt;br /&gt;
&lt;br /&gt;
Every tick up to 0.01 moles of gas will be pulled in to the machine from the input pipe network. The Throttle parameter linearly controls how much gas to pull in, &amp;lt;code&amp;gt;inputMoles = 0.01*Throttle/100&amp;lt;/code&amp;gt;. The Throttle value is rounded to the nearest multiple of 10 when set over the Data Network.&lt;br /&gt;
&lt;br /&gt;
== Combustion Limiter ==&lt;br /&gt;
&lt;br /&gt;
On each tick the Combustion Centrifuge will manually combust up to 75% of the fuel mixture in its internal atmosphere. This happens on the remaining fuel &#039;&#039;&#039;after&#039;&#039;&#039; natural combustion takes place as described in [[Volatiles#Usage|Volatiles]]. The portion of fuel manually combusted each tick is &amp;lt;code&amp;gt;clamp((Limiter/10)^2 * 0.0075, 0.001, 1)&amp;lt;/code&amp;gt;. The Combustion Limiter value is rounded to the nearest multiple of 10 when set over the Data Network.&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 Combustion Centrifuge 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|Open|Integer|1 if device is open, otherwise 0|multiple=2|0|Closed|1|Open}}&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|Pressure|Float|w=0|The current pressure reading of the Combustion Centrifuge}}&lt;br /&gt;
{{Data Parameters/row|Temperature|Integer|w=0|The current temperature reading of the Combustion Centrifuge}}&lt;br /&gt;
{{Data Parameters/row|Lock|Boolean|Disable manual operation of the Combustion Centrifuge.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|Reagents|Integer|w=0|Total number of reagents recorded by the Combustion Centrifuge}}&lt;br /&gt;
{{Data Parameters/row|RatioOxygen|Float|w=0|The ratio of [[Oxygen]] in device atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioCarbonDioxide|Float|w=0|The ratio of Carbon Dioxide in device atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioNitrogen|Float|w=0|The ratio of [[Nitrogen]] in device atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioPollutant|Float|w=0|The ratio of [[Pollutant]] in device atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioVolatiles|Float|w=0|The ratio of [[Volatiles]] in device atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioWater|Float|w=0|The ratio of [[Water]] in device atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the Combustion Centrifuge.|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|TotalMoles|Float|w=0|Returns the total moles of the Combustion Centrifuge}}&lt;br /&gt;
{{Data Parameters/row|RatioNitrousOxide|Float|w=0|The ratio of Nitrous Oxide in device atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|PrefabHash|Integer|w=0|The hash of the structure}}&lt;br /&gt;
{{Data Parameters/row|Combustion|Boolean|w=0|Assess if the atmosphere is on fire. Returns 1 if atmosphere is on fire, 0 if not.|0 or 1}}&lt;br /&gt;
{{Data Parameters/row|PressureInput|Float|w=0|The current pressure reading of the Combustion Centrifuge&#039;s Input Network}}&lt;br /&gt;
{{Data Parameters/row|TemperatureInput|Float|w=0|The current temperature reading of the Combustion Centrifuge&#039;s Input Network}}&lt;br /&gt;
{{Data Parameters/row|RatioOxygenInput|Float|w=0|The ratio of [[Oxygen]] in device&#039;s input network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioCarbonDioxideInput|Float|w=0|The ratio of Carbon Dioxide in device&#039;s input network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioNitrogenInput|Float|w=0|The ratio of [[Nitrogen]] in device&#039;s input network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioPollutantInput|Float|w=0|The ratio of [[Pollutant]] in device&#039;s input network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioVolatilesInput|Float|w=0|The ratio of [[Volatiles]] in device&#039;s input network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioWaterInput|Float|w=0|The ratio of [[Water]] in device&#039;s input network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioNitrousOxideInput|Float|w=0|The ratio of Nitrous Oxide in device&#039;s input network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|TotalMolesInput|Float|w=0|Returns the total moles of the Combustion Centrifuge&#039;s Input Network}}&lt;br /&gt;
{{Data Parameters/row|PressureOutput|Float|w=0|The current pressure reading of the Combustion Centrifuge&#039;s Output Network}}&lt;br /&gt;
{{Data Parameters/row|TemperatureOutput|Float|w=0|The current temperature reading of the Combustion Centrifuge&#039;s Output Network}}&lt;br /&gt;
{{Data Parameters/row|RatioOxygenOutput|Float|w=0|The ratio of [[Oxygen]] in device&#039;s Output network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioCarbonDioxideOutput|Float|w=0|The ratio of Carbon Dioxide in device&#039;s Output network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioNitrogenOutput|Float|w=0|The ratio of [[Nitrogen]] in device&#039;s Output network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioPollutantOutput|Float|w=0|The ratio of [[Pollutant]] in device&#039;s Output network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioVolatilesOutput|Float|w=0|The ratio of [[Volatiles]] in device&#039;s Output network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioWaterOutput|Float|w=0|The ratio of [[Water]] in device&#039;s Output network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioNitrousOxideOutput|Float|w=0|The ratio of Nitrous Oxide in device&#039;s Output network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|TotalMolesOutput|Float|w=0|Returns the total moles of the Combustion Centrifuge&#039;s Output Network}}&lt;br /&gt;
{{Data Parameters/row|CombustionInput|Boolean|w=0|Assess if the atmosphere is on fire. Returns 1 if device&#039;s input network is on fire, 0 if not.|0 or 1}}&lt;br /&gt;
{{Data Parameters/row|CombustionOutput|Boolean|w=0|Assess if the atmosphere is on fire. Returns 1 if device&#039;s Output network is on fire, 0 if not.|0 or 1}}&lt;br /&gt;
{{Data Parameters/row|CombustionLimiter|Integer|Retards the rate of combustion inside the machine (range: 0-100), with 0 being the slowest rate of combustion and 100 being the fastest}}&lt;br /&gt;
{{Data Parameters/row|Throttle|Integer|Increases the rate at which the machine works (range: 0-100)}}&lt;br /&gt;
{{Data Parameters/row|Rpm|Integer|w=0|The number of revolutions per minute that the Combustion Centrifuge&#039;s spinning mechanism is doing}}&lt;br /&gt;
{{Data Parameters/row|Stress|Integer|w=0|Machines get stressed when working hard. When Stress reaches 100 the machine will automatically shut down}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidNitrogen|Float|w=0|The ratio of Liquid Nitrogen in device atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidNitrogenInput|Float|w=0|The ratio of Liquid Nitrogen in device&#039;s input network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidNitrogenOutput|Float|w=0|The ratio of Liquid Nitrogen in device&#039;s Output network|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidOxygen|Float|w=0|The ratio of Liquid Oxygen in device&#039;s Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidOxygenInput|Float|w=0|The ratio of Liquid Oxygen in device&#039;s Input Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidOxygenOutput|Float|w=0|The ratio of Liquid Oxygen in Combustion Centrifuge&#039;s Output Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidVolatiles|Float|w=0|The ratio of Liquid Volatiles in device&#039;s Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidVolatilesInput|Float|w=0|The ratio of Liquid Volatiles in device&#039;s Input Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidVolatilesOutput|Float|w=0|The ratio of Liquid Volatiles in Combustion Centrifuge&#039;s Output Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioSteam|Float|w=0|The ratio of Steam in device&#039;s Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioSteamInput|Float|w=0|The ratio of Steam in device&#039;s Input Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioSteamOutput|Float|w=0|The ratio of Steam in Combustion Centrifuge&#039;s Output Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidCarbonDioxide|Float|w=0|The ratio of Liquid Carbon Dioxide in device&#039;s Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidCarbonDioxideInput|Float|w=0|The ratio of Liquid Carbon Dioxide in device&#039;s Input Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidCarbonDioxideOutput|Float|w=0|The ratio of Liquid Carbon Dioxide in Combustion Centrifuge&#039;s Output Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidPollutant|Float|w=0|The ratio of Liquid Pollutant in device&#039;s Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidPollutantInput|Float|w=0|The ratio of Liquid Pollutant in device&#039;s Input Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidPollutantOutput|Float|w=0|The ratio of Liquid Pollutant in Combustion Centrifuge&#039;s Output Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidNitrousOxide|Float|w=0|The ratio of Liquid Nitrous Oxide in device&#039;s Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidNitrousOxideInput|Float|w=0|The ratio of Liquid Nitrous Oxide in device&#039;s Input Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidNitrousOxideOutput|Float|w=0|The ratio of Liquid Nitrous Oxide in Combustion Centrifuge&#039;s Output Atmosphere|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|ReferenceId|Integer|w=0|Unique Reference Identifier for this object}}&lt;br /&gt;
{{Data Parameters/row|RatioHydrogen|Float|w=0|DEPRECATED|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidHydrogen|Float|w=0|DEPRECATED|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioPollutedWater|Float|w=0|The ratio of polluted water in device atmosphere|0.0 to 1.0}}&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;
{{Slots}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Slot Name !! Type !! Index&lt;br /&gt;
|-&lt;br /&gt;
| Import || None || 0&lt;br /&gt;
|-&lt;br /&gt;
| Export || None || 1&lt;br /&gt;
|-&lt;br /&gt;
| Programmable Chip || Programmable Chip || 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Connections}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Connection Name !! Index&lt;br /&gt;
|-&lt;br /&gt;
| Chute Input || 0&lt;br /&gt;
|-&lt;br /&gt;
| Chute Output || 1&lt;br /&gt;
|-&lt;br /&gt;
| Data || 2&lt;br /&gt;
|-&lt;br /&gt;
| Power || 3&lt;br /&gt;
|-&lt;br /&gt;
| Pipe Input || 4&lt;br /&gt;
|-&lt;br /&gt;
| Pipe Input || 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Machines]]&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Coffee_Mug&amp;diff=21879</id>
		<title>Coffee Mug</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Coffee_Mug&amp;diff=21879"/>
		<updated>2024-08-04T17:45:24Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
| name = Coffee Mug&lt;br /&gt;
| image = [[File:ItemCoffeeMug.png]]&lt;br /&gt;
| prefabhash = 1800622698&lt;br /&gt;
| prefabname = ItemCoffeeMug&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Default&lt;br /&gt;
| recipe_machine1 = Autolathe&lt;br /&gt;
| recipe_cost1 = 1g [[Iron]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[File:ItemCoffeeMugOnTable.png|400x400px|Coffee Mug On Table]]&lt;br /&gt;
&amp;lt;br&amp;gt;Coffee Mug for drink coffee.. oh no, there&#039;s no coffee in the space! (Have only a decorative use)&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Cladding&amp;diff=21878</id>
		<title>Cladding</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Cladding&amp;diff=21878"/>
		<updated>2024-08-04T17:44:44Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
| name = Kit (Cladding)&lt;br /&gt;
| image = [[File:ItemKitCompositeCladding.png]]&lt;br /&gt;
| prefabhash = -1470820996&lt;br /&gt;
| prefabname = ItemKitCompositeCladding&lt;br /&gt;
| stacks = 10&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Kits&lt;br /&gt;
| recipe_machine1 = Autolathe&lt;br /&gt;
| recipe_cost1 = 1g [[Iron]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
An inexpensive kit that allows you to place a variety of simple structural elements which are &#039;&#039;&#039;not airtight&#039;&#039;&#039;.  They can be used for decoration or to create pathways, ramps, bridges, etc.  Some of the larger types of cladding require two kits to place.&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Chem_light&amp;diff=21877</id>
		<title>Chem light</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Chem_light&amp;diff=21877"/>
		<updated>2024-08-04T17:43:04Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
| name        = Chem light&lt;br /&gt;
| stacks = 10&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Default&lt;br /&gt;
| recipe_machine1 = Tool Manufactory&lt;br /&gt;
| recipe_cost1 = 1g [[Silicon]]&lt;br /&gt;
}}&lt;br /&gt;
Safe source of light.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Colors:&lt;br /&gt;
*Blue&lt;br /&gt;
*Green&lt;br /&gt;
*Red&lt;br /&gt;
*White&lt;br /&gt;
*Yellow&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Talk:Cartridge&amp;diff=21876</id>
		<title>Talk:Cartridge</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Talk:Cartridge&amp;diff=21876"/>
		<updated>2024-08-04T17:41:10Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Duplication ==&lt;br /&gt;
This page should be removed in favor of unique articles per cartridge imo. See for example [[Access Controller]] [[User:Emilgardis|Emilgardis]] ([[User talk:Emilgardis|talk]]) 12:41, 4 August 2024 (CDT)&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Talk:Cartridge&amp;diff=21875</id>
		<title>Talk:Cartridge</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Talk:Cartridge&amp;diff=21875"/>
		<updated>2024-08-04T17:40:36Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: Created page with &amp;quot;== Duplication == This page should be removed in favor of unique articles per cartridge imo. See for example Access Controller ~~~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Duplication ==&lt;br /&gt;
This page should be removed in favor of unique articles per cartridge imo. See for example [[Access Controller]] 12:40, 4 August 2024 (CDT)~&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Cardboard_Box&amp;diff=21874</id>
		<title>Cardboard Box</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Cardboard_Box&amp;diff=21874"/>
		<updated>2024-08-04T17:37:51Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
| name = Cardboard Box&lt;br /&gt;
| image = [[File:CardboardBox.png]]&lt;br /&gt;
| prefabhash = -1976947556&lt;br /&gt;
| prefabname = CardboardBox&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Storage&lt;br /&gt;
| recipe_machine1 = Autolathe&lt;br /&gt;
| recipe_cost1 = 2g [[Silicon]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description == &lt;br /&gt;
Has 6 slots for items.&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Biomass&amp;diff=21873</id>
		<title>Biomass</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Biomass&amp;diff=21873"/>
		<updated>2024-08-04T17:36:36Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &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 = Biomass&lt;br /&gt;
| image = [[File:ItemBiomass.png]]&lt;br /&gt;
| prefabhash = -831480639&lt;br /&gt;
| prefabname = ItemBiomass&lt;br /&gt;
| stacks = 100&lt;br /&gt;
| slot_class = SlotClass.Ore&lt;br /&gt;
| sorting_class = SortingClass.Resources&lt;br /&gt;
| recipe_machine1 = Centrifuge&lt;br /&gt;
| recipe_cost1 = 1 x [[Biomass]]&lt;br /&gt;
| usedwith    = &lt;br /&gt;
*[[Arc Furnace]]&lt;br /&gt;
*[[Furnace]]&lt;br /&gt;
*[[Portable_Composter]]&lt;br /&gt;
*[[Advanced_Composter]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Diced organic material that is returned when food and organic matter is passed through the [[Recycler]] and [[Centrifuge]]. Can be burned in a [[Furnace]] into [[Charcoal]] for use in the [[Solid Fuel Generator|Generator (Solid Fuel)]].&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;
== Description == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Biomass is made from organic matter (plants, seeds, food and decayed food) in two steps. A [[Recycler]] will turn organic matter into [[Reagent_Mix|reagent mix]], a [[Centrifuge]] or a furnace will turn this into biomass.&lt;br /&gt;
&lt;br /&gt;
Biomass can be turned into [[Charcoal]] in a furnace or [[Fertilizer]] in a composter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Battery_Wireless_Cell&amp;diff=21872</id>
		<title>Battery Wireless Cell</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Battery_Wireless_Cell&amp;diff=21872"/>
		<updated>2024-08-04T17:34:29Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Description ==&lt;br /&gt;
The battery cells are used in many items and tools. They appear to be interchangeable, though the small cells will deplete rapidly in certain items, such as a suit or portable AC.&lt;br /&gt;
The wireless cells receive power wirelessly from the [[Power Transmitter Omni]] located nearby.&lt;br /&gt;
&lt;br /&gt;
=== Battery Wireless Cell ===&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name = Battery Wireless Cell&lt;br /&gt;
| image = [[File:Battery_Wireless_cell.png]]&lt;br /&gt;
| prefabhash = -462415758&lt;br /&gt;
| prefabname = Battery_Wireless_cell&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.Battery&lt;br /&gt;
| sorting_class = SortingClass.Default&lt;br /&gt;
| recipe_machine1 = Electronics Printer&lt;br /&gt;
| recipe_cost1 = 2g [[Iron]], 2g [[Gold]], 10g [[Copper]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* You can make small cells without steel.&lt;br /&gt;
* They have a power capacity of 12,000J (3,33 Wh) (approx. observed).&lt;br /&gt;
&lt;br /&gt;
=== Battery Wireless Cell (Big) ===&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name = Battery Wireless Cell (Big)&lt;br /&gt;
| image = [[File:Battery_Wireless_cell_Big.png]]&lt;br /&gt;
| prefabhash = -41519077&lt;br /&gt;
| prefabname = Battery_Wireless_cell_Big&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.Battery&lt;br /&gt;
| sorting_class = SortingClass.Default&lt;br /&gt;
| recipe_machine1 = Electronics Printer&lt;br /&gt;
| recipe_cost1 = 5g [[Gold]], 15g [[Copper]], 5g [[Steel]]&lt;br /&gt;
}}&lt;br /&gt;
* Big cells require steel.&lt;br /&gt;
* They have a capacity of 72,000J (20 Wh) (approx. observed).&lt;br /&gt;
&lt;br /&gt;
== Energy calculations ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1 Wh in game = 0.5 Wh in real time&#039;&#039;&#039;&lt;br /&gt;
* The game circuit tick lasts 500 milliseconds, so the real energy stored in the battery is half the energy mentioned above.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Battery Cell]]&lt;br /&gt;
* [[Battery Charger]]&lt;br /&gt;
* [[Battery Charger Small]]&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Angle_Grinder&amp;diff=21871</id>
		<title>Angle Grinder</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Angle_Grinder&amp;diff=21871"/>
		<updated>2024-08-04T17:33:00Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name        = Angle Grinder&lt;br /&gt;
| image       =  [[File:{{#setmainimage:ItemAngleGrinder.png}}]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
|File:{{#setmainimage:ItemAngleGrinder.jpg}}]]&lt;br /&gt;
| prefabhash = 201215010&lt;br /&gt;
| prefabname = ItemAngleGrinder&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.Tool&lt;br /&gt;
| sorting_class = SortingClass.Tools&lt;br /&gt;
| recipe_machine1 = Tool Manufactory&lt;br /&gt;
| recipe_cost1 = 3g [[Iron]], 1g [[Copper]]&lt;br /&gt;
}}&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name        = Angle Grinder Mk II&lt;br /&gt;
| image       =  [[File:{{#setmainimage:ItemMKIIAngleGrinder.png}}]]&lt;br /&gt;
| prefabhash = 240174650&lt;br /&gt;
| prefabname = ItemMKIIAngleGrinder&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.Tool&lt;br /&gt;
| sorting_class = SortingClass.Tools&lt;br /&gt;
| recipe_machine1 = Tool Manufactory (Tier Two)&lt;br /&gt;
| recipe_cost1 = 3g [[Iron]], 1g [[Copper]], 4g [[Electrum]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description == &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
[[Special:MyLanguage/Angle Grinder|Angle Grinder]] is one of the [[Special:MyLanguage/Starting Gear| tools you start with]]. Takes a battery cell to power.&lt;br /&gt;
&lt;br /&gt;
The MK II version, is resistant to high temperatures, thus really only being useful in hot atmosphere&#039;s such as [[Worlds#Vulcan|Vulcan]] and [[Worlds#Venus|Venus]].&lt;br /&gt;
&lt;br /&gt;
== Use == &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Use left-click while in the active hand to use.&lt;br /&gt;
Can be used to deconstruct [[Special:MyLanguage/Iron_Frames|iron]] or [[Special:MyLanguage/Steel_Frames|steel]] frames after removing their sheets with the [[Special:MyLanguage/Wrench|Wrench]].&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Template:Itembox&amp;diff=21870</id>
		<title>Template:Itembox</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Template:Itembox&amp;diff=21870"/>
		<updated>2024-08-04T17:32:03Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{Infobox&lt;br /&gt;
| name = Itembox&lt;br /&gt;
| title = {{{name|}}}&lt;br /&gt;
| image =  {{{image|}}}&lt;br /&gt;
| header19 = {{ #if: {{{stacks|}}}{{{autoignition|}}}{{{flashpoint|}}}{{{paintable|}}} | Properties &amp;lt;!--&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Stacks&lt;br /&gt;
    | data1 = {{#if: {{{stacks|}}} |&lt;br /&gt;
      {{#iferror:&lt;br /&gt;
        {{#expr: {{{stacks|}}}+1 }}&lt;br /&gt;
        | {{{stacks|}}} |&lt;br /&gt;
        {{#ifexpr: {{{stacks|}}} = 1 | No | Yes ({{{stacks|}}}) }}&lt;br /&gt;
      }}&lt;br /&gt;
    }}&lt;br /&gt;
    | label2 = Paintable&lt;br /&gt;
    | data2 = {{{paintable|}}}&lt;br /&gt;
    | label3 = Autoignition&lt;br /&gt;
    | data3 = {{{autoignition|}}}&lt;br /&gt;
    | label4 = Flashpoint&lt;br /&gt;
    | data4 = {{{flashpoint|}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
| label6 = Constructing Options&lt;br /&gt;
| data6 = {{{constructs|}}}&lt;br /&gt;
| label7 = Used With&lt;br /&gt;
| data7 = {{{usedwith|}}}&lt;br /&gt;
| label8 = Max Input Power&lt;br /&gt;
| data8 = {{{maxinpower|}}}&lt;br /&gt;
| label9 = Max Output Power&lt;br /&gt;
| data9 = {{{maxoutpower|}}}&lt;br /&gt;
| label10 = Max Pressure&lt;br /&gt;
| data10 = {{{maxpressure|}}}&lt;br /&gt;
| label11 = Pressure Range&lt;br /&gt;
| data11 = {{{pressurerange|}}}&lt;br /&gt;
| label12 = Max Temperature&lt;br /&gt;
| data12 = {{{maxtemp|}}}&lt;br /&gt;
| label13 = Temperature Range&lt;br /&gt;
| data13 = {{{temprange|}}}&lt;br /&gt;
| label14 = Volume&lt;br /&gt;
| data14 = {{{volume|}}}&lt;br /&gt;
| header20 = {{ #if: {{{createdwith|}}} | Recipe &amp;lt;!-- Old recipe style&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Created With&lt;br /&gt;
    | data1 = {{{createdwith|}}}&lt;br /&gt;
    | label2 = Cost&lt;br /&gt;
    | data2 = {{{cost|}}}&lt;br /&gt;
    }}&lt;br /&gt;
  }}&lt;br /&gt;
| header21 = {{ #if: {{{recipe_machine1|}}} | Recipes &amp;lt;!-- New recipe style&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = [[{{{recipe_machine1|}}}]]&lt;br /&gt;
    | data1 = {{{recipe_cost1|}}}&lt;br /&gt;
    | label4 = [[{{{recipe_machine2|}}}]]&lt;br /&gt;
    | data4 = {{{recipe_cost2|}}}&lt;br /&gt;
    | label6 = [[{{{recipe_machine3|}}}]]&lt;br /&gt;
    | data6 = {{{recipe_cost3|}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
| header22 = {{ #if: {{{logic|}}}{{{prefabhash|}}}{{{prefabname|}}}{{{slot_class|}}}{{{sorting_class|}}}{{{hashid|}}} | Logic &amp;lt;!--&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Item Hash&lt;br /&gt;
    | data1 = {{#if: {{{prefabhash|}}} | &amp;lt;span style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{prefabhash|}}}&amp;lt;/span&amp;gt; | {{#if: {{{hashid|}}}| &amp;lt;span style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{hashid|}}}&amp;lt;/span&amp;gt; }} }}&lt;br /&gt;
    | label2 = Item Name&lt;br /&gt;
    | data2 = {{#if: {{{prefabname|}}} | &amp;lt;span style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{prefabname|}}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
    | label3 = Logic Classes&lt;br /&gt;
    | data3 = {{#if: {{{slot_class|}}}| &amp;lt;div style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{slot_class|}}}&amp;lt;/div&amp;gt; }}{{#if: {{{sorting_class|}}}|&amp;lt;div style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{sorting_class|}}}&amp;lt;/div&amp;gt; }}&lt;br /&gt;
    | label4 = Logic Parameters&lt;br /&gt;
    | data4 = {{{logic|}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
| header23 = {{ #if: {{{nutrition|}}}{{{quality|}}}{{{growthtime|}}}{{{moodbonus|}}} | Food &amp;lt;!--&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Food Nutrition&lt;br /&gt;
    | data1 = {{{nutrition|}}}&lt;br /&gt;
    | label2 = Food Quality&lt;br /&gt;
    | data2 = {{{quality|}}}&lt;br /&gt;
    | label3 = Growth Time&lt;br /&gt;
    | data3 = {{{growthtime|}}}&lt;br /&gt;
    | label4 = Mood Bonus&lt;br /&gt;
    | data4 = {{{moodbonus|}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
}} [[Category:Items]] {{ #if: {{{nutrition|}}}{{{quality|}}}{{{moodbonus|}}} | [[Category:Food]] }} {{ #if: {{{constructs|}}} | [[Category:Kits]] }} {{ #if: {{{createdwith|}}}{{{cost|}}} | [[Category:Itembox with old style recipe]] }} {{ #if: {{{prefabhash|}}}{{{hashid|}}} | | [[Category:Infobox without prefab data]] }} {{ #if: {{{prefabname|}}} | | [[Category:Infobox without prefab data]] }} {{ #if: {{{slot_class|}}}{{{sorting_class|}}} | | [[Category:Itembox without logic classes]] }} {{#ifeq: {{{slot_class}}}|SlotClass.Tool|[[Category:Tools]]|}} &amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Battery_Cell&amp;diff=21869</id>
		<title>Battery Cell</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Battery_Cell&amp;diff=21869"/>
		<updated>2024-08-04T17:30:34Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
== Description == &amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
The battery cells are used in many items and tools. Aside from energy capacity, they are interchangeable in all uses.   Small cells will be depleted quite rapidly in certain items/tools, such as a suit, portable A/C, or [[Arc Welder]], however, due to their small energy capacity.  Other tools, such as the [[Labeller]] and [[Laptop]], consume very little power and can be run off of even small cells for extended periods.&lt;br /&gt;
[[Battery Wireless Cell|Wireless cells]] are also available.&lt;br /&gt;
&lt;br /&gt;
=== Battery Cell (Small) === &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name = Battery Cell (Small)&lt;br /&gt;
| image = [[File:ItemBatteryCell.png]]&lt;br /&gt;
| prefabhash = 700133157&lt;br /&gt;
| prefabname = ItemBatteryCell&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.Battery&lt;br /&gt;
| sorting_class = SortingClass.Default&lt;br /&gt;
| recipe_machine1 = Electronics Printer&lt;br /&gt;
| recipe_cost1 = 2g [[Iron]], 2g [[Gold]], 5g [[Copper]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
* You can make small cells without Steel.&lt;br /&gt;
* They have a power capacity of 36,000J (10 Wh).&lt;br /&gt;
&lt;br /&gt;
=== Battery Cell (Large) === &amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name = Battery Cell (Large)&lt;br /&gt;
| image = [[File:ItemBatteryCellLarge.png]]&lt;br /&gt;
| prefabhash = -459827268&lt;br /&gt;
| prefabname = ItemBatteryCellLarge&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.Battery&lt;br /&gt;
| sorting_class = SortingClass.Default&lt;br /&gt;
| recipe_machine1 = Electronics Printer&lt;br /&gt;
| recipe_cost1 = 5g [[Gold]], 10g [[Copper]], 5g [[Steel]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
* Large cells require Steel.&lt;br /&gt;
* They have a capacity of 288,000J (80 Wh).&lt;br /&gt;
&lt;br /&gt;
=== Battery Cell (Nuclear) === &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name = Battery Cell (Nuclear)&lt;br /&gt;
| image = [[File:ItemBatteryCellNuclear.png]]&lt;br /&gt;
| prefabhash = 544617306&lt;br /&gt;
| prefabname = ItemBatteryCellNuclear&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.Battery&lt;br /&gt;
| sorting_class = SortingClass.Default&lt;br /&gt;
| recipe_machine1 = Electronics Printer (Tier Two)&lt;br /&gt;
| recipe_cost1 = 5g [[Steel]], 5g [[Inconel]], 10g [[Astroloy]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
* Nuclear cells require Steel, Inconel &amp;amp; Astroloy&lt;br /&gt;
* They have a capacity of 2,304,000J (640 Wh).&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Battery Wireless Cell]]&lt;br /&gt;
* [[Battery Charger]]&lt;br /&gt;
* [[Battery Charger Small]]&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Automated_Oven&amp;diff=21868</id>
		<title>Automated Oven</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Automated_Oven&amp;diff=21868"/>
		<updated>2024-08-04T17:27:59Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &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;
[[Category:Fabricators]]&lt;br /&gt;
[[Category:Import/Export]]&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name = Kit (Automated Oven)&lt;br /&gt;
| image = [[File:ItemKitAutomatedOven.png]]&lt;br /&gt;
| prefabhash = -1931958659&lt;br /&gt;
| prefabname = ItemKitAutomatedOven&lt;br /&gt;
| stacks = 10&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Kits&lt;br /&gt;
| recipe_machine1 = Electronics Printer (Tier Two)&lt;br /&gt;
| recipe_cost1 = 10g [[Gold]], 15g [[Copper]], 25g [[Steel]], 5g [[Constantan]], 10g [[Solder]]&lt;br /&gt;
| constructs = [[Automated Oven]]&lt;br /&gt;
}}&lt;br /&gt;
{{Structurebox&lt;br /&gt;
 | name             = Automated Oven&lt;br /&gt;
 | power_usage      = 100W + Recipe Usage&lt;br /&gt;
 | image            = [[File:Automated Oven.png]]&lt;br /&gt;
 | placed_with_item = [[Kit (Automated Oven)]]&lt;br /&gt;
 | placed_on_grid   = Small Grid&lt;br /&gt;
&lt;br /&gt;
 | const_with_tool1 = [[Welding Torch]]&lt;br /&gt;
 | const_with_item1 = 2 x [[Iron Sheets]]&lt;br /&gt;
 | decon_with_tool1 = [[Wrench]]&lt;br /&gt;
 | item_rec1        = [[Kit (Automated Oven)]]&lt;br /&gt;
&lt;br /&gt;
 | const_with_tool2 = [[Screwdriver]]&lt;br /&gt;
 | decon_with_tool2 = [[Angle Grinder]]&lt;br /&gt;
 | item_rec2        = 2 x [[Iron Sheets]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Allows players to automate food production. It is the next step after a [[Microwave]], and performs the same functions as the microwave on a large scale. It has a hatch on the left, so you can pour in many raw ingredients at once.&lt;br /&gt;
&lt;br /&gt;
== Recipes == &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-recipes&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;recipes&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-recipes&amp;quot;&amp;gt;&amp;lt;br&amp;gt;{{:Automated_Oven/Recipes}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
If you open the purge lever, the ingredients inside the machine will be ejected as a [[Reagent Mix]]. Sending this Reagent Mix through the [[Centrifuge]] will not produce any ingredients. Basically, any ingredients inside the oven are unrecoverable. Cook as much as you can before disassembling and moving the oven.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Template:Itembox&amp;diff=21867</id>
		<title>Template:Itembox</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Template:Itembox&amp;diff=21867"/>
		<updated>2024-08-04T17:25:58Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{Infobox&lt;br /&gt;
| name = Itembox&lt;br /&gt;
| title = {{{name|}}}&lt;br /&gt;
| image =  {{{image|}}}&lt;br /&gt;
| header19 = {{ #if: {{{stacks|}}}{{{autoignition|}}}{{{flashpoint|}}}{{{paintable|}}} | Properties &amp;lt;!--&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Stacks&lt;br /&gt;
    | data1 = {{#if: {{{stacks|}}} |&lt;br /&gt;
      {{#iferror:&lt;br /&gt;
        {{#expr: {{{stacks|}}}+1 }}&lt;br /&gt;
        | {{{stacks|}}} |&lt;br /&gt;
        {{#ifexpr: {{{stacks|}}} = 1 | No | Yes ({{{stacks|}}}) }}&lt;br /&gt;
      }}&lt;br /&gt;
    }}&lt;br /&gt;
    | label2 = Paintable&lt;br /&gt;
    | data2 = {{{paintable|}}}&lt;br /&gt;
    | label3 = Autoignition&lt;br /&gt;
    | data3 = {{{autoignition|}}}&lt;br /&gt;
    | label4 = Flashpoint&lt;br /&gt;
    | data4 = {{{flashpoint|}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
| label6 = Constructing Options&lt;br /&gt;
| data6 = {{{constructs|}}}&lt;br /&gt;
| label7 = Used With&lt;br /&gt;
| data7 = {{{usedwith|}}}&lt;br /&gt;
| label8 = Max Input Power&lt;br /&gt;
| data8 = {{{maxinpower|}}}&lt;br /&gt;
| label9 = Max Output Power&lt;br /&gt;
| data9 = {{{maxoutpower|}}}&lt;br /&gt;
| label10 = Max Pressure&lt;br /&gt;
| data10 = {{{maxpressure|}}}&lt;br /&gt;
| label11 = Pressure Range&lt;br /&gt;
| data11 = {{{pressurerange|}}}&lt;br /&gt;
| label12 = Max Temperature&lt;br /&gt;
| data12 = {{{maxtemp|}}}&lt;br /&gt;
| label13 = Temperature Range&lt;br /&gt;
| data13 = {{{temprange|}}}&lt;br /&gt;
| label14 = Volume&lt;br /&gt;
| data14 = {{{volume|}}}&lt;br /&gt;
| header20 = {{ #if: {{{createdwith|}}} | Recipe &amp;lt;!-- Old recipe style&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Created With&lt;br /&gt;
    | data1 = {{{createdwith|}}}&lt;br /&gt;
    | label2 = Cost&lt;br /&gt;
    | data2 = {{{cost|}}}&lt;br /&gt;
    }}&lt;br /&gt;
  }}&lt;br /&gt;
| header21 = {{ #if: {{{recipe_machine1|}}} | Recipes &amp;lt;!-- New recipe style&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = [[{{{recipe_machine1|}}}]]&lt;br /&gt;
    | data1 = {{{recipe_cost1|}}}&lt;br /&gt;
    | label4 = [[{{{recipe_machine2|}}}]]&lt;br /&gt;
    | data4 = {{{recipe_cost2|}}}&lt;br /&gt;
    | label6 = [[{{{recipe_machine3|}}}]]&lt;br /&gt;
    | data6 = {{{recipe_cost3|}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
| header22 = {{ #if: {{{logic|}}}{{{prefabhash|}}}{{{prefabname|}}}{{{slot_class|}}}{{{sorting_class|}}}{{{hashid|}}} | Logic &amp;lt;!--&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Item Hash&lt;br /&gt;
    | data1 = {{#if: {{{prefabhash|}}} | &amp;lt;span style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{prefabhash|}}}&amp;lt;/span&amp;gt; | {{#if: {{{hashid|}}}| &amp;lt;span style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{hashid|}}}&amp;lt;/span&amp;gt; }} }}&lt;br /&gt;
    | label2 = Item Name&lt;br /&gt;
    | data2 = {{#if: {{{prefabname|}}} | &amp;lt;span style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{prefabname|}}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
    | label3 = Logic Classes&lt;br /&gt;
    | data3 = {{#if: {{{slot_class|}}}| &amp;lt;div style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{slot_class|}}}&amp;lt;/div&amp;gt; }}{{#if: {{{sorting_class|}}}|&amp;lt;div style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{sorting_class|}}}&amp;lt;/div&amp;gt; }}&lt;br /&gt;
    | label4 = Logic Parameters&lt;br /&gt;
    | data4 = {{{logic|}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
| header23 = {{ #if: {{{nutrition|}}}{{{quality|}}}{{{growthtime|}}}{{{moodbonus|}}} | Food &amp;lt;!--&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Food Nutrition&lt;br /&gt;
    | data1 = {{{nutrition|}}}&lt;br /&gt;
    | label2 = Food Quality&lt;br /&gt;
    | data2 = {{{quality|}}}&lt;br /&gt;
    | label3 = Growth Time&lt;br /&gt;
    | data3 = {{{growthtime|}}}&lt;br /&gt;
    | label4 = Mood Bonus&lt;br /&gt;
    | data4 = {{{moodbonus|}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
}} [[Category:Items]] {{ #if: {{{nutrition|}}}{{{quality|}}}{{{moodbonus|}}} | [[Category:Food]] }} {{ #if: {{{constructs|}}} | [[Category:Kits]] }} {{ #if: {{{createdwith|}}}{{{cost|}}} | [[Category:Itembox with old style recipe]] }} {{ #if: {{{prefabhash|}}}{{{hashid|}}} | | [[Category:Infobox without prefab data]] }} {{ #if: {{{prefabname|}}} | | [[Category:Infobox without prefab data]] }} {{ #if: {{{slot_class|}}}{{{sorting_class|}}} | | [[Category:Itembox without logic classes]] }} {{#if: {{{slot_class}}}|SlotClass.Tool|[[Category:Tools]]}} &amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Authoring_Tool&amp;diff=21866</id>
		<title>Authoring Tool</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Authoring_Tool&amp;diff=21866"/>
		<updated>2024-08-04T17:24:44Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
| name = Authoring Tool&lt;br /&gt;
| image = [[File:ItemAuthoringTool.png]]&lt;br /&gt;
| prefabhash = 789015045&lt;br /&gt;
| prefabname = ItemAuthoringTool&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.Tool&lt;br /&gt;
| sorting_class = SortingClass.Tools&lt;br /&gt;
}}&lt;br /&gt;
The &#039;&#039;&#039;Authoring Tool&#039;&#039;&#039; is used to place, upgrade and delete structures instantly without the need for any resources. The authoring tool cannot be crafted, but it can be spawned in [[Creative Mode]].&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
* In creative mode, press &#039;&#039;&#039;Show Dynamic Panel&#039;&#039;&#039; (default: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;/&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;) to bring up the creative spawn menu. [On ISO keyboards, the key may be &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; (Nordic/German) or &#039;&#039;&#039;#&#039;&#039;&#039; (UK)]&lt;br /&gt;
* Find and select the Authoring Tool in the menu&lt;br /&gt;
* Press &#039;&#039;&#039;F9&#039;&#039;&#039; to spawn the selected item.&lt;br /&gt;
&lt;br /&gt;
===Building structures===&lt;br /&gt;
* Select an item in the spawn menu&lt;br /&gt;
* Right-click to enter quick build mode for the selected item&lt;br /&gt;
* Left-click to build&lt;br /&gt;
===Upgrading structures===&lt;br /&gt;
Left-click to upgrade structure&lt;br /&gt;
===Deleting structures===&lt;br /&gt;
Hold &#039;&#039;&#039;Quantity Modifier&#039;&#039;&#039; (default: &#039;&#039;&#039;C&#039;&#039;&#039;) and click the structure you would like to delete.&lt;br /&gt;
===Copying structures===&lt;br /&gt;
Hold &#039;&#039;&#039;Inventory Select&#039;&#039;&#039; (default: &#039;&#039;&#039;F&#039;&#039;&#039;) and click on the stucture to copy it&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Angle_Grinder&amp;diff=21865</id>
		<title>Angle Grinder</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Angle_Grinder&amp;diff=21865"/>
		<updated>2024-08-04T17:23:54Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &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:Tools]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name        = Angle Grinder&lt;br /&gt;
| image       =  [[File:{{#setmainimage:ItemAngleGrinder.png}}]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
|File:{{#setmainimage:ItemAngleGrinder.jpg}}]]&lt;br /&gt;
| prefabhash = 201215010&lt;br /&gt;
| prefabname = ItemAngleGrinder&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.Tool&lt;br /&gt;
| sorting_class = SortingClass.Tools&lt;br /&gt;
| recipe_machine1 = Tool Manufactory&lt;br /&gt;
| recipe_cost1 = 3g [[Iron]], 1g [[Copper]]&lt;br /&gt;
}}&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name        = Angle Grinder Mk II&lt;br /&gt;
| image       =  [[File:{{#setmainimage:ItemMKIIAngleGrinder.png}}]]&lt;br /&gt;
| prefabhash = 240174650&lt;br /&gt;
| prefabname = ItemMKIIAngleGrinder&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.Tool&lt;br /&gt;
| sorting_class = SortingClass.Tools&lt;br /&gt;
| recipe_machine1 = Tool Manufactory (Tier Two)&lt;br /&gt;
| recipe_cost1 = 3g [[Iron]], 1g [[Copper]], 4g [[Electrum]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description == &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
[[Special:MyLanguage/Angle Grinder|Angle Grinder]] is one of the [[Special:MyLanguage/Starting Gear| tools you start with]]. Takes a battery cell to power.&lt;br /&gt;
&lt;br /&gt;
The MK II version, is resistant to high temperatures, thus really only being useful in hot atmosphere&#039;s such as [[Worlds#Vulcan|Vulcan]] and [[Worlds#Venus|Venus]].&lt;br /&gt;
&lt;br /&gt;
== Use == &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Use left-click while in the active hand to use.&lt;br /&gt;
Can be used to deconstruct [[Special:MyLanguage/Iron_Frames|iron]] or [[Special:MyLanguage/Steel_Frames|steel]] frames after removing their sheets with the [[Special:MyLanguage/Wrench|Wrench]].&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Ammo_Box&amp;diff=21864</id>
		<title>Ammo Box</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Ammo_Box&amp;diff=21864"/>
		<updated>2024-08-04T17:22:20Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
| name = Ammo Box&lt;br /&gt;
| image = [[File:ItemAmmoBox.png]]&lt;br /&gt;
| prefabhash = -9559091&lt;br /&gt;
| prefabname = ItemAmmoBox&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Default&lt;br /&gt;
| recipe_machine1 = Security Printer&lt;br /&gt;
| recipe_cost1 = 30g [[Copper]], 30g [[Steel]], 50 x [[Lead]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
==Description==&lt;br /&gt;
An Orange Box, containing ammo. It can be made in the Security Printer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
==Usage==&lt;br /&gt;
The &#039;&#039;&#039;Ammo Box&#039;&#039;&#039; is used to refill both the [[SMG Magazine]], as the [[Handgun Magazine]]. I didn&#039;t test if it can be emptied, or if it&#039;s infinite.&lt;br /&gt;
&lt;br /&gt;
Many people still think its just decoration though.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
==History==&lt;br /&gt;
Before the last edit of this page, it was a &#039;&#039;decorative item&#039;&#039;, made in the [[Electronics Printer]] and [[Fabricator]].&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=AIMEe&amp;diff=21863</id>
		<title>AIMEe</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=AIMEe&amp;diff=21863"/>
		<updated>2024-08-04T17:21:43Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: add logic class to robot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:IC10 Programming]]&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name = Kit (AIMeE)&lt;br /&gt;
| image = [[File:ItemKitAIMeE.png]]&lt;br /&gt;
| prefabhash = 496830914&lt;br /&gt;
| prefabname = ItemKitAIMeE&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 (Tier Two)&lt;br /&gt;
| recipe_cost1 = 5g [[Gold]], 5g [[Copper]], 22g [[Steel]], 15g [[Electrum]], 7g [[Invar]], 8g [[Constantan]], 10g [[Astroloy]]&lt;br /&gt;
| constructs = [[AIMeE Bot]]&lt;br /&gt;
}}&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name = AIMeE Bot&lt;br /&gt;
| image = [[File:Robot.png]]&lt;br /&gt;
| prefabhash = 434786784&lt;br /&gt;
| prefabname = Robot&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Default&lt;br /&gt;
}}&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Designed by - presumably drunk - [[Norsec (Faction)|Norsec]] roboticists, AIMeE (or Automated Independent Mechanical Entity) can be a [[Stationeers|Stationeer&#039;s]] best friend, or tiresome nemesis, or both several times in the same day.&lt;br /&gt;
&lt;br /&gt;
Intended to unearth and retrieve ores automatically, the unit requires basic programming knowledge to operate, and [[Motherboard_(IC_Editor)|IC Editor Motherboard]].&lt;br /&gt;
&lt;br /&gt;
AIMEe has 7 modes:&lt;br /&gt;
&lt;br /&gt;
RobotMode.None =         0 = Do nothing&amp;lt;br&amp;gt;&lt;br /&gt;
RobotMode.Follow =       1 = Follow nearest player&amp;lt;br&amp;gt;&lt;br /&gt;
RobotMode.MoveToTarget = 2 = Move to target in straight line&amp;lt;br&amp;gt;&lt;br /&gt;
RobotMode.Roam =         3 = Wander around looking for ores in 15 co-ords radius&amp;lt;br&amp;gt;&lt;br /&gt;
RobotMode.Unload =       4 = Unload in chute input or chute bin within 3 meters / 1.5 large grids&amp;lt;br&amp;gt;&lt;br /&gt;
RobotMode.PathToTarget = 5 = Path(find) to target&amp;lt;br&amp;gt;&lt;br /&gt;
RobotMode.StorageFull =  6 = Automatic assigned state, shows when storage slots are full&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connects to [[Logic Transmitter]]&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;
AIMEe or Automated Independent Mechanical Entity is a small mining robot that can be automated to search, mine and retrieve ores. AIMEe does get damaged by storms and can not be repaired with [[Duct Tape]].&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 AIMeE Bot 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 AIMeE Bot.|multiple=7|0|RobotMode.None|1|RobotMode.Follow|2|RobotMode.MoveToTarget|3|RobotMode.Roam|4|RobotMode.Unload|5|RobotMode.PathToTarget|6|RobotMode.StorageFull}}&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|PressureExternal|Float|w=0|Setting for external pressure safety, in KPa}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the AIMeE Bot.|multiple=2|0|Off|1|On}}&lt;br /&gt;
{{Data Parameters/row|TemperatureExternal|Integer|w=0|The temperature of the outside of the AIMeE Bot, usually the world atmosphere surrounding it}}&lt;br /&gt;
{{Data Parameters/row|PositionX|Integer|w=0|The current position in X dimension in world coordinates}}&lt;br /&gt;
{{Data Parameters/row|PositionY|Integer|w=0|The current position in Y dimension in world coordinates}}&lt;br /&gt;
{{Data Parameters/row|PositionZ|Integer|w=0|The current position in Z dimension in world coordinates}}&lt;br /&gt;
{{Data Parameters/row|VelocityMagnitude|Integer|w=0|The current magnitude of the velocity vector}}&lt;br /&gt;
{{Data Parameters/row|VelocityRelativeX|Integer|w=0|The current velocity X relative to the forward vector of this}}&lt;br /&gt;
{{Data Parameters/row|VelocityRelativeY|Integer|w=0|The current velocity Y relative to the forward vector of this}}&lt;br /&gt;
{{Data Parameters/row|VelocityRelativeZ|Integer|w=0|The current velocity Z relative to the forward vector of this}}&lt;br /&gt;
{{Data Parameters/row|TargetX|Integer|r=0|The target position in X dimension in world coordinates}}&lt;br /&gt;
{{Data Parameters/row|TargetY|Integer|r=0|The target position in Y dimension in world coordinates}}&lt;br /&gt;
{{Data Parameters/row|TargetZ|Integer|r=0|The target position in Z dimension in world coordinates}}&lt;br /&gt;
{{Data Parameters/row|MineablesInVicinity|Integer|w=0|Returns the amount of potential mineables within an extended area around AIMEe.}}&lt;br /&gt;
{{Data Parameters/row|MineablesInQueue|Integer|w=0|Returns the amount of mineables AIMEe has queued up to mine.}}&lt;br /&gt;
{{Data Parameters/row|ReferenceId|Integer|w=0|Unique Reference Identifier for this object}}&lt;br /&gt;
{{Data Parameters/row|ForwardX|Integer|w=0|The direction the entity is facing expressed as a normalized vector}}&lt;br /&gt;
{{Data Parameters/row|ForwardY|Integer|w=0|The direction the entity is facing expressed as a normalized vector}}&lt;br /&gt;
{{Data Parameters/row|ForwardZ|Integer|w=0|The direction the entity is facing expressed as a normalized vector}}&lt;br /&gt;
{{Data Parameters/row|Orientation|Integer|w=0|The orientation of the entity in degrees in a plane relative towards the north origin}}&lt;br /&gt;
{{Data Parameters/row|VelocityX|Integer|w=0|The world velocity of the entity in the X axis}}&lt;br /&gt;
{{Data Parameters/row|VelocityY|Integer|w=0|The world velocity of the entity in the Y axis}}&lt;br /&gt;
{{Data Parameters/row|VelocityZ|Integer|w=0|The world velocity of the entity in the Z axis}}&lt;br /&gt;
}}&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;
| PressureExternal || Float || Read external pressure in Pascal&lt;br /&gt;
|-&lt;br /&gt;
| TemperatureExternal || Float || Read external temperature in Kelvin&lt;br /&gt;
|-&lt;br /&gt;
| PositionX || || Read current position&lt;br /&gt;
|-&lt;br /&gt;
| PositionY || || Read current position&lt;br /&gt;
|-&lt;br /&gt;
| PositionZ || || Read current position&lt;br /&gt;
|-&lt;br /&gt;
| VelocityMagnitude || || &lt;br /&gt;
|-&lt;br /&gt;
| VelocityRelativeX || || &lt;br /&gt;
|-&lt;br /&gt;
| VelocityRelativeY || || &lt;br /&gt;
|-&lt;br /&gt;
| VelocityRelativeZ || || &lt;br /&gt;
|-&lt;br /&gt;
| Mode || Integer || 0-6&lt;br /&gt;
|-&lt;br /&gt;
| Power || Boolean || &lt;br /&gt;
|-&lt;br /&gt;
| Error || || &lt;br /&gt;
|-&lt;br /&gt;
| On || Boolean || &lt;br /&gt;
|-&lt;br /&gt;
| MineablesInQueue || || &lt;br /&gt;
|-&lt;br /&gt;
| MineablesInVicinity || || &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 || Battery || &lt;br /&gt;
|-&lt;br /&gt;
| 1 || IC10 || &lt;br /&gt;
|-&lt;br /&gt;
| 2-9 || Storage || Internal storage slots.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Https://fastupload.io/6db74feb93cbbba0|400x300px|Example]]&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;
|+ Battery Slot 0&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;
| MaxQuantity || Integer || Max Size of stack.&lt;br /&gt;
|-&lt;br /&gt;
| Damage || Integer || Item durability in percent.&lt;br /&gt;
|-&lt;br /&gt;
| Class || Integer || Item class ID.&lt;br /&gt;
|-&lt;br /&gt;
| Quantity || Integer || Size of stack.&lt;br /&gt;
|-&lt;br /&gt;
| ChargeRatio || Integer || Ratio of charge 0-1.&lt;br /&gt;
|-&lt;br /&gt;
| Charge || Integer || Charge in joules.&lt;br /&gt;
|-&lt;br /&gt;
| PrefabHash || Integer || Returns [[ItemHash]] of item in slot.&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;
|+ IC10 Slot 1&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;
| MaxQuantity || Integer || Max Size of stack.&lt;br /&gt;
|-&lt;br /&gt;
| Damage || Integer || Item durability in percent.&lt;br /&gt;
|-&lt;br /&gt;
| Class || Integer || Item class ID.&lt;br /&gt;
|-&lt;br /&gt;
| Quantity || Integer || Size of stack.&lt;br /&gt;
|-&lt;br /&gt;
| PrefabHash || Integer || Returns [[ItemHash]] of item in slot.&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;
|+ Inventory Slot 2-9&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;
| MaxQuantity || Integer || Max Size of stack.&lt;br /&gt;
|-&lt;br /&gt;
| Damage || Integer || Item durability in percent.&lt;br /&gt;
|-&lt;br /&gt;
| Class || Integer || Item class ID.&lt;br /&gt;
|-&lt;br /&gt;
| Quantity || Integer || Size of stack.&lt;br /&gt;
|-&lt;br /&gt;
| PrefabHash || Integer || Returns [[ItemHash]] of item in slot.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Template:Itembox&amp;diff=21858</id>
		<title>Template:Itembox</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Template:Itembox&amp;diff=21858"/>
		<updated>2024-08-03T10:12:00Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: add category for missing logic classes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{Infobox&lt;br /&gt;
| name = Itembox&lt;br /&gt;
| title = {{{name|}}}&lt;br /&gt;
| image =  {{{image|}}}&lt;br /&gt;
| header19 = {{ #if: {{{stacks|}}}{{{autoignition|}}}{{{flashpoint|}}}{{{paintable|}}} | Properties &amp;lt;!--&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Stacks&lt;br /&gt;
    | data1 = {{#if: {{{stacks|}}} |&lt;br /&gt;
      {{#iferror:&lt;br /&gt;
        {{#expr: {{{stacks|}}}+1 }}&lt;br /&gt;
        | {{{stacks|}}} |&lt;br /&gt;
        {{#ifexpr: {{{stacks|}}} = 1 | No | Yes ({{{stacks|}}}) }}&lt;br /&gt;
      }}&lt;br /&gt;
    }}&lt;br /&gt;
    | label2 = Paintable&lt;br /&gt;
    | data2 = {{{paintable|}}}&lt;br /&gt;
    | label3 = Autoignition&lt;br /&gt;
    | data3 = {{{autoignition|}}}&lt;br /&gt;
    | label4 = Flashpoint&lt;br /&gt;
    | data4 = {{{flashpoint|}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
| label6 = Constructing Options&lt;br /&gt;
| data6 = {{{constructs|}}}&lt;br /&gt;
| label7 = Used With&lt;br /&gt;
| data7 = {{{usedwith|}}}&lt;br /&gt;
| label8 = Max Input Power&lt;br /&gt;
| data8 = {{{maxinpower|}}}&lt;br /&gt;
| label9 = Max Output Power&lt;br /&gt;
| data9 = {{{maxoutpower|}}}&lt;br /&gt;
| label10 = Max Pressure&lt;br /&gt;
| data10 = {{{maxpressure|}}}&lt;br /&gt;
| label11 = Pressure Range&lt;br /&gt;
| data11 = {{{pressurerange|}}}&lt;br /&gt;
| label12 = Max Temperature&lt;br /&gt;
| data12 = {{{maxtemp|}}}&lt;br /&gt;
| label13 = Temperature Range&lt;br /&gt;
| data13 = {{{temprange|}}}&lt;br /&gt;
| label14 = Volume&lt;br /&gt;
| data14 = {{{volume|}}}&lt;br /&gt;
| header20 = {{ #if: {{{createdwith|}}} | Recipe &amp;lt;!-- Old recipe style&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Created With&lt;br /&gt;
    | data1 = {{{createdwith|}}}&lt;br /&gt;
    | label2 = Cost&lt;br /&gt;
    | data2 = {{{cost|}}}&lt;br /&gt;
    }}&lt;br /&gt;
  }}&lt;br /&gt;
| header21 = {{ #if: {{{recipe_machine1|}}} | Recipes &amp;lt;!-- New recipe style&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = [[{{{recipe_machine1|}}}]]&lt;br /&gt;
    | data1 = {{{recipe_cost1|}}}&lt;br /&gt;
    | label4 = [[{{{recipe_machine2|}}}]]&lt;br /&gt;
    | data4 = {{{recipe_cost2|}}}&lt;br /&gt;
    | label6 = [[{{{recipe_machine3|}}}]]&lt;br /&gt;
    | data6 = {{{recipe_cost3|}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
| header22 = {{ #if: {{{logic|}}}{{{prefabhash|}}}{{{prefabname|}}}{{{slot_class|}}}{{{sorting_class|}}}{{{hashid|}}} | Logic &amp;lt;!--&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Item Hash&lt;br /&gt;
    | data1 = {{#if: {{{prefabhash|}}} | &amp;lt;span style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{prefabhash|}}}&amp;lt;/span&amp;gt; | {{#if: {{{hashid|}}}| &amp;lt;span style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{hashid|}}}&amp;lt;/span&amp;gt; }} }}&lt;br /&gt;
    | label2 = Item Name&lt;br /&gt;
    | data2 = {{#if: {{{prefabname|}}} | &amp;lt;span style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{prefabname|}}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
    | label3 = Logic Classes&lt;br /&gt;
    | data3 = {{#if: {{{slot_class|}}}| &amp;lt;div style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{slot_class|}}}&amp;lt;/div&amp;gt; }}{{#if: {{{sorting_class|}}}|&amp;lt;div style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;{{{sorting_class|}}}&amp;lt;/div&amp;gt; }}&lt;br /&gt;
    | label4 = Logic Parameters&lt;br /&gt;
    | data4 = {{{logic|}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
| header23 = {{ #if: {{{nutrition|}}}{{{quality|}}}{{{growthtime|}}}{{{moodbonus|}}} | Food &amp;lt;!--&lt;br /&gt;
--&amp;gt;{{Infobox | decat = yes | child = yes&lt;br /&gt;
    | label1 = Food Nutrition&lt;br /&gt;
    | data1 = {{{nutrition|}}}&lt;br /&gt;
    | label2 = Food Quality&lt;br /&gt;
    | data2 = {{{quality|}}}&lt;br /&gt;
    | label3 = Growth Time&lt;br /&gt;
    | data3 = {{{growthtime|}}}&lt;br /&gt;
    | label4 = Mood Bonus&lt;br /&gt;
    | data4 = {{{moodbonus|}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
}} [[Category:Items]] {{ #if: {{{nutrition|}}}{{{quality|}}}{{{moodbonus|}}} | [[Category:Food]] }} {{ #if: {{{constructs|}}} | [[Category:Kits]] }} {{ #if: {{{createdwith|}}}{{{cost|}}} | [[Category:Itembox with old style recipe]] }} {{ #if: {{{prefabhash|}}}{{{hashid|}}} | | [[Category:Infobox without prefab data]] }} {{ #if: {{{prefabname|}}} | | [[Category:Infobox without prefab data]] }} {{ #if: {{{slot_class|}}}{{{sorting_class|}}} | | [[Category:Itembox without logic classes]] }} &amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Logic_Sorter&amp;diff=21847</id>
		<title>Logic Sorter</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Logic_Sorter&amp;diff=21847"/>
		<updated>2024-08-01T23:52:15Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: MIPS -&amp;gt; IC10&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 [[IC10]] like this:&lt;br /&gt;
&lt;br /&gt;
{{ICCode|&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;
}}&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>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Logic_Sorter&amp;diff=21846</id>
		<title>Logic Sorter</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Logic_Sorter&amp;diff=21846"/>
		<updated>2024-08-01T23:48:43Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: use template for code&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;
{{ICCode|&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;
}}&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>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=IC10&amp;diff=21736</id>
		<title>IC10</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=IC10&amp;diff=21736"/>
		<updated>2024-07-25T17:52:32Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: fix anchor&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;
{{ICCode|&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;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ICCode|&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;
}}&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 [[Labeller]].  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;
The batch instructions can address multiple devices only via their &#039;&#039;&#039;PrefabHash&#039;&#039;&#039; generated from the prefab name using the `HASH(&amp;quot;Name&amp;quot;)` macro or copied directly from the [[Stationpedia]]. A prefab hash is always an integer. All devices that can be read with logic contain the logic value &#039;&#039;&#039;PrefabHash&#039;&#039;&#039; and &#039;&#039;&#039;NameHash&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
See [[#Slot.2FLogic_.2F_Batched|Batched instructions]] for a comprehensive list of all batch instructions.&lt;br /&gt;
&lt;br /&gt;
[[#sb|sb]], [[#sbn|sbn]], [[#sbs|sbs]], (no sbns)&amp;lt;br&amp;gt;&lt;br /&gt;
[[#lb|lb]], [[#lbs|lbs]], [[#lbn|lbn]], [[#lbns|lbns]]&lt;br /&gt;
&lt;br /&gt;
=== Direct reference instructions ===&lt;br /&gt;
&lt;br /&gt;
Direct reference instructions can address a specific device via its &#039;&#039;&#039;ReferenceId&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[#clrd|clrd]], [[#getd|getd]], [[#putd|putd]],&amp;lt;br&amp;gt;&lt;br /&gt;
[[#ld|ld]], [[#sd|sd]], (no slot access via reference ID)&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>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=IC10&amp;diff=21735</id>
		<title>IC10</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=IC10&amp;diff=21735"/>
		<updated>2024-07-25T17:22:17Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: Explain multi-adressing instructions a bit more&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;
{{ICCode|&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;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ICCode|&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;
}}&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 [[Labeller]].  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;
The batch instructions can address multiple devices only via their &#039;&#039;&#039;PrefabHash&#039;&#039;&#039; generated from the prefab name using the `HASH(&amp;quot;Name&amp;quot;)` macro or copied directly from the [[Stationpedia]]. A prefab hash is always an integer. All devices that can be read with logic contain the logic value &#039;&#039;&#039;PrefabHash&#039;&#039;&#039; and &#039;&#039;&#039;NameHash&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
See [[##Slot.2FLogic_.2F_Batched|Batched instructions]] for a comprehensive list of all batch instructions.&lt;br /&gt;
&lt;br /&gt;
[[#sb|sb]], [[#sbn|sbn]], [[#sbs|sbs]], (no sbns)&amp;lt;br&amp;gt;&lt;br /&gt;
[[#lb|lb]], [[#lbs|lbs]], [[#lbn|lbn]], [[#lbns|lbns]]&lt;br /&gt;
&lt;br /&gt;
=== Direct reference instructions ===&lt;br /&gt;
&lt;br /&gt;
Direct reference instructions can address a specific device via its &#039;&#039;&#039;ReferenceId&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[#clrd|clrd]], [[#getd|getd]], [[#putd|putd]],&amp;lt;br&amp;gt;&lt;br /&gt;
[[#ld|ld]], [[#sd|sd]], (no slot access via reference ID)&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>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Template:Data_Parameters&amp;diff=21663</id>
		<title>Template:Data Parameters</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Template:Data_Parameters&amp;diff=21663"/>
		<updated>2024-07-17T11:46:28Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: try to collapse data parameters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Data Parameters ===&lt;br /&gt;
{{#if: {{{1|}}}&lt;br /&gt;
|{{#if:{{{skip_intro|}}}||These are all parameters that can be written with a [[Kit_(Logic_I/O)#Logic_Writer|Logic Writer]], [[Kit_(Logic_I/O)#Batch_Writer|Batch Writer]], or [[Integrated Circuit (IC10)]], and can be read with a [[Kit_(Logic_I/O)#Logic_Reader|Logic Reader]], [[Kit_(Logic_I/O)#Batch_Reader|Batch Reader]], or [[Integrated Circuit (IC10)]].}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-datanetworkproperties-{{PAGENAMEE}}&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-{{PAGENAMEE}}&amp;quot;&amp;gt;&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable sortable large&amp;quot;&lt;br /&gt;
! Parameter Name&lt;br /&gt;
! Data Type&lt;br /&gt;
! Access&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; {{!}} Value&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; colspan=2 {{!}} Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{Ifnotempty|{{{1|}}}|&lt;br /&gt;
{{{1}}}&lt;br /&gt;
}}&lt;br /&gt;
{{!}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|{{#if: {{{empty|}}}|This device does not have any logic parameters and can not be selected with a [[Kit_(Logic_I/O)#Logic_Writer|Logic Writer]] or a [[Kit_(Logic_I/O)#Batch_Writer|Batch Writer]].| These are all parameters that can be written with a [[Kit_(Logic_I/O)#Logic_Writer|Logic Writer]], [[Kit_(Logic_I/O)#Batch_Writer|Batch Writer]], or [[Integrated Circuit (IC10)]]. }}&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{empty|}}}||{{#if: {{{1|}}}| [[Category:Data Network]] }} }}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&amp;gt;&lt;br /&gt;
{{Data Parameters|&lt;br /&gt;
{{Data Parameters/row|Power|Boolean|w=0|Can be read to return if the device is correctly powered or not, set via the power system, return 1 if powered and 0 if not|multiple=2|0|Off|1|On}}&lt;br /&gt;
{{Data Parameters/row|Mode|Integer|The mode of the Sorter, &#039;&#039;&#039;Split&#039;&#039;&#039; does alternate outputs, &#039;&#039;&#039;Filter&#039;&#039;&#039; decides output via [[Motherboard (Sorter)]], &#039;&#039;&#039;Logic&#039;&#039;&#039; determines output via parameter &#039;&#039;&#039;Output&#039;&#039;&#039;|multiple=3|0|Split|1|Filter|2|Logic}}&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 Sorter.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|On|Integer|The current state of the Sorter.|multiple=2|0|On|1|Off}}&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|Output|Integer|In Logic mode, decides which side the next item will be sent to. (defaults to -1 after action)|multiple=3|-1|Unset|0|Straight|1|Side}}&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;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Hardsuit&amp;diff=21605</id>
		<title>Hardsuit</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Hardsuit&amp;diff=21605"/>
		<updated>2024-07-10T14:03:36Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: fix &amp;#039;=&amp;#039; rendering&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
| name = Hardsuit&lt;br /&gt;
| image = [[File:ItemHardSuit.png]]&lt;br /&gt;
| prefabhash = -1758310454&lt;br /&gt;
| prefabname = ItemHardSuit&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.Suit&lt;br /&gt;
| sorting_class = SortingClass.Clothing&lt;br /&gt;
| recipe_machine1 = Tool Manufactory (Tier Two)&lt;br /&gt;
| recipe_cost1 = 20g [[Steel]], 2g [[Stellite]], 10g [[Astroloy]]&lt;br /&gt;
| maxpressure = &amp;lt;table style=&amp;quot;background-color:revert&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;202.65 kPa&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;(Internal)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;between 10-40 MPa&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;(External)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
| volume = 10 L&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Used in conjunction with a [[Hardsuit Helmet]] to go outside a pressurized and breathable environment.  It features adjustable pressure and air conditioning (temperature) settings, as well as an warning system that will alert the occupant should the atmosphere inside the suit become hazardous.  It can also carry a [[Hardsuit Backpack]] for extra storage, or a [[Hardsuit Jetpack]] for additional storage and jumpjet capabilities.  &lt;br /&gt;
&lt;br /&gt;
The [[Hardsuit]] has more armor than the [[EVA Suit]], features one extra [[Filter]] slot and the ability to accept [[Integrated_Circuit_(IC10)|Integrated Circuit (IC10)]] chips.  It is however much more expensive to produce due to the extreme conditions that it can survive under.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
Your suit must be worn with a suitable helmet to function properly.  You must insert suitable gas canisters and filters into the suit&#039;s slot (see below).  These will need to be manually changed on a periodic basis, although the canisters can also be recharged/drained using a fully-supplied [[Suit Storage]] rack.&lt;br /&gt;
&lt;br /&gt;
Your suit readouts are normally displayed at the top-right of the screen.  Your suit functions can be accessed by pressing the Number &#039;&#039;&#039;&#039;3&#039;&#039;&#039;&#039; key.  This will bring up a panel showing the suit&#039;s slots and its various settings.  These only function when wearing a suitable closed helmet, and are as follows:&lt;br /&gt;
*&#039;&#039;&#039;A/C On / Off&#039;&#039;&#039;  (Temperature control on/off)&lt;br /&gt;
*&#039;&#039;&#039;Filters On / Off&#039;&#039;&#039; (Filter &lt;br /&gt;
*&#039;&#039;&#039;Air On / Off&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Pressure Up / Down&#039;&#039;&#039;  (with a range of 0kPA to 202kPa, or 0-2 Earth atmospheres)&lt;br /&gt;
*&#039;&#039;&#039;Temperature Up / Down&#039;&#039;&#039;  (with a range of 0°C to 60°C)&lt;br /&gt;
&lt;br /&gt;
Your suit [[Battery]] will also power (and be drained by) the light in any attached helmet.  If damaged, your suit can be patched by holding [[Duct Tape]] in your right hand and holding the right mouse button.  The colour of an (unworn) suit can be changed using [[Spray Paint]].&lt;br /&gt;
&lt;br /&gt;
If the helmet is open while the air release in on, air is wasted.&lt;br /&gt;
&lt;br /&gt;
==Slots==&lt;br /&gt;
Contains 8 slots:&lt;br /&gt;
* 1x &#039;&#039;&#039;Air Tank&#039;&#039;&#039; - Insert a [[Canister]] or [[Gas Canister (Smart)]] with a breathable gas mix (for example [[Oxygen|O2]], [[Air]], [[Air 20/80]] or [[Nitrox 35/65]])&lt;br /&gt;
* 1x &#039;&#039;&#039;Waste Tank&#039;&#039;&#039; - Insert an empty [[Canister]] or [[Gas Canister (Smart)]] where gases removed by the [[Filter]]s will be stored&lt;br /&gt;
* 1x &#039;&#039;&#039;Life Support&#039;&#039;&#039; - Insert a charged [[Battery Cell]] (ideally Large or Nuclear)&lt;br /&gt;
* 1x &#039;&#039;&#039;Processor&#039;&#039;&#039; - Optionally allowing for a programmed [[Integrated_Circuit_(IC10)|Integrated Circuit (IC10)]]&lt;br /&gt;
* 4x &#039;&#039;&#039;[[Filter]]s&#039;&#039;&#039; - Insert at least one [[Carbon Dioxide|CO2]] Filters (if Human), plus others depending on your breathable gas mix (usually [[N2|Nitrogen]])&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* As noted on [[Venus#Real Venus]], the hardsuit can survive at true Venus pressures, the Waste tank does not fill any faster at those pressures.&lt;br /&gt;
* Suit pressure set to 50-100 KPa (0.5 to 1 Earth atmospheres), Humans in-game tolerating 11 to ~250kPa and surviving 11 to ~300kPA)&lt;br /&gt;
* Suit temperature is normally set to 18-21°C, Humans in-game preferring 10-29°C, tolerating 0-39°C and surviving around -10 to 49°C &lt;br /&gt;
* Additional key bindings to control your suit functions can be set in the Game Settings ---&amp;gt; Controls.&lt;br /&gt;
&lt;br /&gt;
* The maximum allowed pressure the filters can cope with in the Waste Tank is 4052kPa (well below its maximum pressure). Low/critical Oxygen warnings will occur close to this value as your Filters cease to function.&lt;br /&gt;
* The default filter is the [[Carbon Dioxide|CO2]] filter, a gas generated by the Human character when consuming breathable gas&lt;br /&gt;
* Make sure if you aren&#039;t using 100% Oxygen in your breathing gas that you add additional Filters! E.g. if you put the common &amp;quot;Air&amp;quot; mixture of 25% [[Oxygen]] + 75% [[Nitrogen]] into your tank, the Nitrogen would accumulate in your suit/helmet over time and suffocate you unless you have a [[N2|Nitrogen]] filter to remove this.&lt;br /&gt;
* If you have  the correct filters and breathable gas but are still experiencing problems, refer to the &#039;Flush&#039; function on your [[Space Helmet]]&lt;br /&gt;
&lt;br /&gt;
* It is theoretically possible to mix [[EVA Suit]] elements and [[Hardsuit]] elements, although this is relatively uncommon&lt;br /&gt;
* Damaged suits can be recycled (assuming you have a new one to use!)&lt;br /&gt;
* Equipping an [[Integrated Circuit (IC10)]] in the designated slot has a constant power draw of 5 watts from the suit battery.&lt;br /&gt;
* Writing to the Error parameter with an [[Integrated Circuit (IC10)]] creates an audible sound, this could be used for custom alerts.&lt;br /&gt;
&lt;br /&gt;
== Integrated Circuit ==&lt;br /&gt;
The Hardsuit is uniquely capable of accepting an [[Integrated_Circuit_(IC10)|Integrated Ciruit (IC10)]].  Within a Hardsuit, this IC cannot toggle itself off and will run as long as there is battery power in the suit, until the IC is removed.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device Reference / Pin !! Description&lt;br /&gt;
|-&lt;br /&gt;
| d0 ||Interface for the suit [[Hardsuit Helmet|helmet]].&lt;br /&gt;
|-&lt;br /&gt;
| d1 ||Interface for the [[Hardsuit Backpack|backpack]] or [[Hardsuit Jetpack|jetpack.]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Data Network Header}}&lt;br /&gt;
&lt;br /&gt;
{{Data Parameters&lt;br /&gt;
|skip_intro=yes&lt;br /&gt;
|{{Data Parameters/row|Power|Boolean|w=0|Can be read to return if the Hardsuit 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|The suit&#039;s error value. By default, if the suit has no filter it will write the error parameter to 1.|multiple=2|0|&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;|1|Error}}&lt;br /&gt;
{{Data Parameters/row|Pressure|Float|w=0|The current pressure reading of the Hardsuit}}&lt;br /&gt;
{{Data Parameters/row|Temperature|Integer|w=0|The current temperature reading of the Hardsuit}}&lt;br /&gt;
{{Data Parameters/row|PressureExternal|Float|w=0|Setting for external pressure safety, in KPa}}&lt;br /&gt;
{{Data Parameters/row|Activate|Integer|1 if device is activated (usually means running), otherwise 0}}&lt;br /&gt;
{{Data Parameters/row|Lock|Boolean|Disable manual operation of the Hardsuit.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|Setting|Integer|A variable setting that can be read or written.}}&lt;br /&gt;
{{Data Parameters/row|RatioOxygen|Float|w=0|The ratio of [[Oxygen]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioCarbonDioxide|Float|w=0|The ratio of Carbon Dioxide inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioNitrogen|Float|w=0|The ratio of [[Nitrogen]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioPollutant|Float|w=0|The ratio of [[Pollutant]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioVolatiles|Float|w=0|The ratio of [[Volatiles]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioWater|Float|w=0|The ratio of [[Water]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|Controls A/C power for the suit. Required for temperature control.|multiple=2|0|Off|1|On}}&lt;br /&gt;
{{Data Parameters/row|TotalMoles|Float|w=0|Returns the total moles of the Hardsuit}}&lt;br /&gt;
{{Data Parameters/row|Volume|Integer|Returns the Hardsuit atmosphere volume}}&lt;br /&gt;
{{Data Parameters/row|PressureSetting|Float|The current setting for the internal pressure of the object (e.g. the Hardsuit Air release), in KPa}}&lt;br /&gt;
{{Data Parameters/row|TemperatureSetting|Integer|The current setting for the internal temperature of the object (e.g. the Hardsuit A/C)}}&lt;br /&gt;
{{Data Parameters/row|TemperatureExternal|Integer|w=0|The temperature of the outside of the Hardsuit, usually the world atmosphere surrounding it}}&lt;br /&gt;
{{Data Parameters/row|Filtration|Integer|The current state of the filtration system, for example Filtration {{=}} 1 for a Hardsuit sets filtration to On}}&lt;br /&gt;
{{Data Parameters/row|AirRelease|Boolean|The current state of the air release system, for example AirRelease {{=}} 1 for a Hardsuit sets Air Release to On|0 or 1}}&lt;br /&gt;
{{Data Parameters/row|PositionX|Integer|w=0|The current position in X dimension in world coordinates}}&lt;br /&gt;
{{Data Parameters/row|PositionY|Integer|w=0|The current position in Y dimension in world coordinates}}&lt;br /&gt;
{{Data Parameters/row|PositionZ|Integer|w=0|The current position in Z dimension in world coordinates}}&lt;br /&gt;
{{Data Parameters/row|VelocityMagnitude|Integer|w=0|The current magnitude of the velocity vector}}&lt;br /&gt;
{{Data Parameters/row|VelocityRelativeX|Integer|w=0|The current velocity X relative to the forward vector of this}}&lt;br /&gt;
{{Data Parameters/row|VelocityRelativeY|Integer|w=0|The current velocity Y relative to the forward vector of this}}&lt;br /&gt;
{{Data Parameters/row|VelocityRelativeZ|Integer|w=0|The current velocity Z relative to the forward vector of this}}&lt;br /&gt;
{{Data Parameters/row|RatioNitrousOxide|Float|w=0|The ratio of Nitrous Oxide inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|Combustion|Boolean|w=0|Assess if the atmosphere is on fire. Returns 1 if atmosphere is on fire, 0 if not.|0 or 1}}&lt;br /&gt;
{{Data Parameters/row|SoundAlert|Integer|Plays a sound alert on the Hardsuits speaker}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidNitrogen|Float|w=0|The ratio of Liquid Nitrogen inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidOxygen|Float|w=0|The ratio of Liquid Oxygen inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidVolatiles|Float|w=0|The ratio of Liquid Volatiles inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioSteam|Float|w=0|The ratio of Steam inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidCarbonDioxide|Float|w=0|The ratio of Liquid Carbon Dioxide inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidPollutant|Float|w=0|The ratio of Liquid Pollutant inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidNitrousOxide|Float|w=0|The ratio of Liquid Nitrous Oxide inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|ReferenceId|Integer|w=0|Unique Reference Identifier for this object}}&lt;br /&gt;
{{Data Parameters/row|ForwardX|Integer|w=0|The direction the entity is facing expressed as a normalized vector}}&lt;br /&gt;
{{Data Parameters/row|ForwardY|Integer|w=0|The direction the entity is facing expressed as a normalized vector}}&lt;br /&gt;
{{Data Parameters/row|ForwardZ|Integer|w=0|The direction the entity is facing expressed as a normalized vector}}&lt;br /&gt;
{{Data Parameters/row|Orientation|Integer|w=0|The orientation of the entity in degrees in a plane relative towards the north origin}}&lt;br /&gt;
{{Data Parameters/row|VelocityX|Integer|w=0|The world velocity of the entity in the X axis}}&lt;br /&gt;
{{Data Parameters/row|VelocityY|Integer|w=0|The world velocity of the entity in the Y axis}}&lt;br /&gt;
{{Data Parameters/row|VelocityZ|Integer|w=0|The world velocity of the entity in the Z axis}}&lt;br /&gt;
{{Data Parameters/row|EntityState|Integer|w=0|The current entity state, such as whether it is dead, unconscious or alive, expressed as a state integer.}}&lt;br /&gt;
{{Data Parameters/row|RatioHydrogen|Float|w=0|DEPRECATED|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidHydrogen|Float|w=0|DEPRECATED|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioPollutedWater|Float|w=0|The ratio of polluted water inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
}}&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
Some ideas for automating the suit using an [[Integrated Circuit (IC10)]] include&lt;br /&gt;
* Closing the helmet in a hostile atmosphere&lt;br /&gt;
* Locking the helmet in a hostile atmosphere&lt;br /&gt;
* Unlocking the helmet in a good atmosphere&lt;br /&gt;
* Deactivating airflow, filtration, and AC when helmet is open and in a good atmosphere , and reactivating them when helmet is closed.&lt;br /&gt;
* Only activating filtration when CO2 levels are too high. This can greatly increase the lifetime of the filters, and reduces power use.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
[https://www.youtube.com/watch?v=tYUV-NCbufc Programming the Hardsuit V2 (by Cows are evil) ]&lt;br /&gt;
&lt;br /&gt;
[[Category:Suits]]&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Hardsuit&amp;diff=21604</id>
		<title>Hardsuit</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Hardsuit&amp;diff=21604"/>
		<updated>2024-07-10T13:59:29Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: improve itembox and data params&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
| name = Hardsuit&lt;br /&gt;
| image = [[File:ItemHardSuit.png]]&lt;br /&gt;
| prefabhash = -1758310454&lt;br /&gt;
| prefabname = ItemHardSuit&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| slot_class = SlotClass.Suit&lt;br /&gt;
| sorting_class = SortingClass.Clothing&lt;br /&gt;
| recipe_machine1 = Tool Manufactory (Tier Two)&lt;br /&gt;
| recipe_cost1 = 20g [[Steel]], 2g [[Stellite]], 10g [[Astroloy]]&lt;br /&gt;
| maxpressure = &amp;lt;table style=&amp;quot;background-color:revert&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;202.65 kPa&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;(Internal)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;between 10-40 MPa&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;(External)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
| volume = 10 L&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Used in conjunction with a [[Hardsuit Helmet]] to go outside a pressurized and breathable environment.  It features adjustable pressure and air conditioning (temperature) settings, as well as an warning system that will alert the occupant should the atmosphere inside the suit become hazardous.  It can also carry a [[Hardsuit Backpack]] for extra storage, or a [[Hardsuit Jetpack]] for additional storage and jumpjet capabilities.  &lt;br /&gt;
&lt;br /&gt;
The [[Hardsuit]] has more armor than the [[EVA Suit]], features one extra [[Filter]] slot and the ability to accept [[Integrated_Circuit_(IC10)|Integrated Circuit (IC10)]] chips.  It is however much more expensive to produce due to the extreme conditions that it can survive under.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
Your suit must be worn with a suitable helmet to function properly.  You must insert suitable gas canisters and filters into the suit&#039;s slot (see below).  These will need to be manually changed on a periodic basis, although the canisters can also be recharged/drained using a fully-supplied [[Suit Storage]] rack.&lt;br /&gt;
&lt;br /&gt;
Your suit readouts are normally displayed at the top-right of the screen.  Your suit functions can be accessed by pressing the Number &#039;&#039;&#039;&#039;3&#039;&#039;&#039;&#039; key.  This will bring up a panel showing the suit&#039;s slots and its various settings.  These only function when wearing a suitable closed helmet, and are as follows:&lt;br /&gt;
*&#039;&#039;&#039;A/C On / Off&#039;&#039;&#039;  (Temperature control on/off)&lt;br /&gt;
*&#039;&#039;&#039;Filters On / Off&#039;&#039;&#039; (Filter &lt;br /&gt;
*&#039;&#039;&#039;Air On / Off&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Pressure Up / Down&#039;&#039;&#039;  (with a range of 0kPA to 202kPa, or 0-2 Earth atmospheres)&lt;br /&gt;
*&#039;&#039;&#039;Temperature Up / Down&#039;&#039;&#039;  (with a range of 0°C to 60°C)&lt;br /&gt;
&lt;br /&gt;
Your suit [[Battery]] will also power (and be drained by) the light in any attached helmet.  If damaged, your suit can be patched by holding [[Duct Tape]] in your right hand and holding the right mouse button.  The colour of an (unworn) suit can be changed using [[Spray Paint]].&lt;br /&gt;
&lt;br /&gt;
If the helmet is open while the air release in on, air is wasted.&lt;br /&gt;
&lt;br /&gt;
==Slots==&lt;br /&gt;
Contains 8 slots:&lt;br /&gt;
* 1x &#039;&#039;&#039;Air Tank&#039;&#039;&#039; - Insert a [[Canister]] or [[Gas Canister (Smart)]] with a breathable gas mix (for example [[Oxygen|O2]], [[Air]], [[Air 20/80]] or [[Nitrox 35/65]])&lt;br /&gt;
* 1x &#039;&#039;&#039;Waste Tank&#039;&#039;&#039; - Insert an empty [[Canister]] or [[Gas Canister (Smart)]] where gases removed by the [[Filter]]s will be stored&lt;br /&gt;
* 1x &#039;&#039;&#039;Life Support&#039;&#039;&#039; - Insert a charged [[Battery Cell]] (ideally Large or Nuclear)&lt;br /&gt;
* 1x &#039;&#039;&#039;Processor&#039;&#039;&#039; - Optionally allowing for a programmed [[Integrated_Circuit_(IC10)|Integrated Circuit (IC10)]]&lt;br /&gt;
* 4x &#039;&#039;&#039;[[Filter]]s&#039;&#039;&#039; - Insert at least one [[Carbon Dioxide|CO2]] Filters (if Human), plus others depending on your breathable gas mix (usually [[N2|Nitrogen]])&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* As noted on [[Venus#Real Venus]], the hardsuit can survive at true Venus pressures, the Waste tank does not fill any faster at those pressures.&lt;br /&gt;
* Suit pressure set to 50-100 KPa (0.5 to 1 Earth atmospheres), Humans in-game tolerating 11 to ~250kPa and surviving 11 to ~300kPA)&lt;br /&gt;
* Suit temperature is normally set to 18-21°C, Humans in-game preferring 10-29°C, tolerating 0-39°C and surviving around -10 to 49°C &lt;br /&gt;
* Additional key bindings to control your suit functions can be set in the Game Settings ---&amp;gt; Controls.&lt;br /&gt;
&lt;br /&gt;
* The maximum allowed pressure the filters can cope with in the Waste Tank is 4052kPa (well below its maximum pressure). Low/critical Oxygen warnings will occur close to this value as your Filters cease to function.&lt;br /&gt;
* The default filter is the [[Carbon Dioxide|CO2]] filter, a gas generated by the Human character when consuming breathable gas&lt;br /&gt;
* Make sure if you aren&#039;t using 100% Oxygen in your breathing gas that you add additional Filters! E.g. if you put the common &amp;quot;Air&amp;quot; mixture of 25% [[Oxygen]] + 75% [[Nitrogen]] into your tank, the Nitrogen would accumulate in your suit/helmet over time and suffocate you unless you have a [[N2|Nitrogen]] filter to remove this.&lt;br /&gt;
* If you have  the correct filters and breathable gas but are still experiencing problems, refer to the &#039;Flush&#039; function on your [[Space Helmet]]&lt;br /&gt;
&lt;br /&gt;
* It is theoretically possible to mix [[EVA Suit]] elements and [[Hardsuit]] elements, although this is relatively uncommon&lt;br /&gt;
* Damaged suits can be recycled (assuming you have a new one to use!)&lt;br /&gt;
* Equipping an [[Integrated Circuit (IC10)]] in the designated slot has a constant power draw of 5 watts from the suit battery.&lt;br /&gt;
* Writing to the Error parameter with an [[Integrated Circuit (IC10)]] creates an audible sound, this could be used for custom alerts.&lt;br /&gt;
&lt;br /&gt;
== Integrated Circuit ==&lt;br /&gt;
The Hardsuit is uniquely capable of accepting an [[Integrated_Circuit_(IC10)|Integrated Ciruit (IC10)]].  Within a Hardsuit, this IC cannot toggle itself off and will run as long as there is battery power in the suit, until the IC is removed.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device Reference / Pin !! Description&lt;br /&gt;
|-&lt;br /&gt;
| d0 ||Interface for the suit [[Hardsuit Helmet|helmet]].&lt;br /&gt;
|-&lt;br /&gt;
| d1 ||Interface for the [[Hardsuit Backpack|backpack]] or [[Hardsuit Jetpack|jetpack.]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Data Network Header}}&lt;br /&gt;
&lt;br /&gt;
{{Data Parameters&lt;br /&gt;
|skip_intro=yes&lt;br /&gt;
|{{Data Parameters/row|Power|Boolean|w=0|Can be read to return if the Hardsuit 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|The suit&#039;s error value. By default, if the suit has no filter it will write the error parameter to 1.|multiple=2|0|&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;|1|Error}}&lt;br /&gt;
{{Data Parameters/row|Pressure|Float|w=0|The current pressure reading of the Hardsuit}}&lt;br /&gt;
{{Data Parameters/row|Temperature|Integer|w=0|The current temperature reading of the Hardsuit}}&lt;br /&gt;
{{Data Parameters/row|PressureExternal|Float|w=0|Setting for external pressure safety, in KPa}}&lt;br /&gt;
{{Data Parameters/row|Activate|Integer|1 if device is activated (usually means running), otherwise 0}}&lt;br /&gt;
{{Data Parameters/row|Lock|Boolean|Disable manual operation of the Hardsuit.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|Setting|Integer|A variable setting that can be read or written.}}&lt;br /&gt;
{{Data Parameters/row|RatioOxygen|Float|w=0|The ratio of [[Oxygen]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioCarbonDioxide|Float|w=0|The ratio of [[Carbon Dioxide]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioNitrogen|Float|w=0|The ratio of [[Nitrogen]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioPollutant|Float|w=0|The ratio of [[Pollutant]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioVolatiles|Float|w=0|The ratio of [[Volatiles]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioWater|Float|w=0|The ratio of [[Water]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|Controls A/C power for the suit. Required for temperature control.|multiple=2|0|Off|1|On}}&lt;br /&gt;
{{Data Parameters/row|TotalMoles|Float|w=0|Returns the total moles of the Hardsuit}}&lt;br /&gt;
{{Data Parameters/row|Volume|Integer|Returns the Hardsuit atmosphere volume}}&lt;br /&gt;
{{Data Parameters/row|PressureSetting|Float|The current setting for the internal pressure of the object (e.g. the Hardsuit Air release), in KPa}}&lt;br /&gt;
{{Data Parameters/row|TemperatureSetting|Integer|The current setting for the internal temperature of the object (e.g. the Hardsuit A/C)}}&lt;br /&gt;
{{Data Parameters/row|TemperatureExternal|Integer|w=0|The temperature of the outside of the Hardsuit, usually the world atmosphere surrounding it}}&lt;br /&gt;
{{Data Parameters/row|Filtration|Integer|The current state of the filtration system, for example Filtration = 1 for a Hardsuit sets filtration to On}}&lt;br /&gt;
{{Data Parameters/row|AirRelease|Boolean|The current state of the air release system, for example AirRelease = 1 for a Hardsuit sets Air Release to On|0 or 1}}&lt;br /&gt;
{{Data Parameters/row|PositionX|Integer|w=0|The current position in X dimension in world coordinates}}&lt;br /&gt;
{{Data Parameters/row|PositionY|Integer|w=0|The current position in Y dimension in world coordinates}}&lt;br /&gt;
{{Data Parameters/row|PositionZ|Integer|w=0|The current position in Z dimension in world coordinates}}&lt;br /&gt;
{{Data Parameters/row|VelocityMagnitude|Integer|w=0|The current magnitude of the velocity vector}}&lt;br /&gt;
{{Data Parameters/row|VelocityRelativeX|Integer|w=0|The current velocity X relative to the forward vector of this}}&lt;br /&gt;
{{Data Parameters/row|VelocityRelativeY|Integer|w=0|The current velocity Y relative to the forward vector of this}}&lt;br /&gt;
{{Data Parameters/row|VelocityRelativeZ|Integer|w=0|The current velocity Z relative to the forward vector of this}}&lt;br /&gt;
{{Data Parameters/row|RatioNitrousOxide|Float|w=0|The ratio of [[Nitrous Oxide]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|Combustion|Boolean|w=0|Assess if the atmosphere is on fire. Returns 1 if atmosphere is on fire, 0 if not.|0 or 1}}&lt;br /&gt;
{{Data Parameters/row|SoundAlert|Integer|Plays a sound alert on the Hardsuits speaker}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidNitrogen|Float|w=0|The ratio of [[Nitrogen#Liquid|Liquid Nitrogen]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidOxygen|Float|w=0|The ratio of [[Oxygen#Liquid|Liquid Oxygen]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidVolatiles|Float|w=0|The ratio of [[Volatiles#Liquid|Liquid Volatiles]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioSteam|Float|w=0|The ratio of [[Steam]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidCarbonDioxide|Float|w=0|The ratio of [[Carbon Dioxide#Liquid|Liquid Carbon Dioxide]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidPollutant|Float|w=0|The ratio of [[Pollutant#Liquid|Liquid Pollutant]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidNitrousOxide|Float|w=0|The ratio of [[Nitrous Oxide#Liquid|Liquid Nitrous Oxide]] inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|ReferenceId|Integer|w=0|Unique Reference Identifier for this object}}&lt;br /&gt;
{{Data Parameters/row|ForwardX|Integer|w=0|The direction the entity is facing expressed as a normalized vector}}&lt;br /&gt;
{{Data Parameters/row|ForwardY|Integer|w=0|The direction the entity is facing expressed as a normalized vector}}&lt;br /&gt;
{{Data Parameters/row|ForwardZ|Integer|w=0|The direction the entity is facing expressed as a normalized vector}}&lt;br /&gt;
{{Data Parameters/row|Orientation|Integer|w=0|The orientation of the entity in degrees in a plane relative towards the north origin}}&lt;br /&gt;
{{Data Parameters/row|VelocityX|Integer|w=0|The world velocity of the entity in the X axis}}&lt;br /&gt;
{{Data Parameters/row|VelocityY|Integer|w=0|The world velocity of the entity in the Y axis}}&lt;br /&gt;
{{Data Parameters/row|VelocityZ|Integer|w=0|The world velocity of the entity in the Z axis}}&lt;br /&gt;
{{Data Parameters/row|EntityState|Integer|w=0|The current entity state, such as whether it is dead, unconscious or alive, expressed as a state integer.}}&lt;br /&gt;
{{Data Parameters/row|RatioHydrogen|Float|w=0|DEPRECATED|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidHydrogen|Float|w=0|DEPRECATED|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioPollutedWater|Float|w=0|The ratio of polluted water inside the Hardsuit|0.0 to 1.0}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
Some ideas for automating the suit using an [[Integrated Circuit (IC10)]] include&lt;br /&gt;
* Closing the helmet in a hostile atmosphere&lt;br /&gt;
* Locking the helmet in a hostile atmosphere&lt;br /&gt;
* Unlocking the helmet in a good atmosphere&lt;br /&gt;
* Deactivating airflow, filtration, and AC when helmet is open and in a good atmosphere , and reactivating them when helmet is closed.&lt;br /&gt;
* Only activating filtration when CO2 levels are too high. This can greatly increase the lifetime of the filters, and reduces power use.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
[https://www.youtube.com/watch?v=tYUV-NCbufc Programming the Hardsuit V2 (by Cows are evil) ]&lt;br /&gt;
&lt;br /&gt;
[[Category:Suits]]&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Template:Data_Parameters&amp;diff=21603</id>
		<title>Template:Data Parameters</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Template:Data_Parameters&amp;diff=21603"/>
		<updated>2024-07-10T13:55:57Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: add a way to skip intro text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Data Parameters ===&lt;br /&gt;
{{#if: {{{1|}}}&lt;br /&gt;
|{{#if:{{{skip_intro|}}}||These are all parameters that can be written with a [[Kit_(Logic_I/O)#Logic_Writer|Logic Writer]], [[Kit_(Logic_I/O)#Batch_Writer|Batch Writer]], or [[Integrated Circuit (IC10)]], and can be read with a [[Kit_(Logic_I/O)#Logic_Reader|Logic Reader]], [[Kit_(Logic_I/O)#Batch_Reader|Batch Reader]], or [[Integrated Circuit (IC10)]].}}&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable sortable large&amp;quot;&lt;br /&gt;
! Parameter Name&lt;br /&gt;
! Data Type&lt;br /&gt;
! Access&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; {{!}} Value&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; colspan=2 {{!}} Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{Ifnotempty|{{{1|}}}|&lt;br /&gt;
{{{1}}}&lt;br /&gt;
}}&lt;br /&gt;
{{!}}}&lt;br /&gt;
|{{#if: {{{empty|}}}|This device does not have any logic parameters and can not be selected with a [[Kit_(Logic_I/O)#Logic_Writer|Logic Writer]] or a [[Kit_(Logic_I/O)#Batch_Writer|Batch Writer]].| These are all parameters that can be written with a [[Kit_(Logic_I/O)#Logic_Writer|Logic Writer]], [[Kit_(Logic_I/O)#Batch_Writer|Batch Writer]], or [[Integrated Circuit (IC10)]]. }}&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{empty|}}}||{{#if: {{{1|}}}| [[Category:Data Network]] }} }}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&amp;gt;&lt;br /&gt;
{{Data Parameters|&lt;br /&gt;
{{Data Parameters/row|Power|Boolean|w=0|Can be read to return if the device is correctly powered or not, set via the power system, return 1 if powered and 0 if not|multiple=2|0|Off|1|On}}&lt;br /&gt;
{{Data Parameters/row|Mode|Integer|The mode of the Sorter, &#039;&#039;&#039;Split&#039;&#039;&#039; does alternate outputs, &#039;&#039;&#039;Filter&#039;&#039;&#039; decides output via [[Motherboard (Sorter)]], &#039;&#039;&#039;Logic&#039;&#039;&#039; determines output via parameter &#039;&#039;&#039;Output&#039;&#039;&#039;|multiple=3|0|Split|1|Filter|2|Logic}}&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 Sorter.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|On|Integer|The current state of the Sorter.|multiple=2|0|On|1|Off}}&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|Output|Integer|In Logic mode, decides which side the next item will be sent to. (defaults to -1 after action)|multiple=3|-1|Unset|0|Straight|1|Side}}&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;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Hardsuit_Helmet&amp;diff=21602</id>
		<title>Hardsuit Helmet</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Hardsuit_Helmet&amp;diff=21602"/>
		<updated>2024-07-10T13:33:05Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: improve itembox and data params&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
| name = Hardsuit Helmet&lt;br /&gt;
| image = [[File:ItemHardsuitHelmet.png]]&lt;br /&gt;
| prefabhash = -84573099&lt;br /&gt;
| prefabname = ItemHardsuitHelmet&lt;br /&gt;
| stacks = 1&lt;br /&gt;
| maxpressure = &amp;lt;table style=&amp;quot;background-color:revert&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;202.65 kPa&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;(Internal)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;gt;10 MPa&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;(External)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
| volume = 3L&lt;br /&gt;
| slot_class = SlotClass.Helmet&lt;br /&gt;
| sorting_class = SortingClass.Clothing&lt;br /&gt;
| recipe_machine1 = Tool Manufactory (Tier Two)&lt;br /&gt;
| recipe_cost1 = 10g [[Steel]], 2g [[Stellite]], 2g [[Astroloy]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;The Hardsuit Helmet is similar to the [[Space Helmet]], but can withstand higher temperatures and pressures. It&#039;s perfect for enduring harsh environments like Venus and Vulcan.&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;
==Description==&lt;br /&gt;
Paired with a [[Hardsuit]], it provides a contained, portable, pressurized, breathable environment need for protection against the vacuum of space.&lt;br /&gt;
&lt;br /&gt;
The [[Hardsuit Helmet]] has more armor than the [[Space Helmet]], and a slightly more powerful light.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
Your helmet must be worn with a suitable suit to function properly.  Your helmet functions can be accessed by pressing the Number &#039;&#039;&#039;&#039;1&#039;&#039;&#039;&#039; key.  This will bring up a panel showing the helmet&#039;s settings, as follows:&lt;br /&gt;
* &#039;&#039;&#039;Open / Close Helmet&#039;&#039;&#039; - Open and close the glass visor of the helmet, venting or enclosing your suit atmosphere  &#039;&#039;(Keyboard shortcut - I)&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lock/Unlock Helmet&#039;&#039;&#039; - Allow or prevent the opening of the visor (useful to avoid accidental opening)&lt;br /&gt;
* &#039;&#039;&#039;Light On / Off&#039;&#039;&#039; - Toggle the helmet&#039;s forward facing light on and off  &#039;&#039;(Keyboard shortcut - L)&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Flush&#039;&#039;&#039; - Expels helmet&#039;s (and suit&#039;s) current atmosphere and replenishes from the air tank.&lt;br /&gt;
&lt;br /&gt;
The helmet&#039;s light draws power from your suit [[Battery_Cell|Battery]]. If damaged, your helmet can be patched by holding [[Duct Tape]] in your right hand and holding the right mouse button.  The colour of an (unworn) helmet can be changed using [[Spray Paint]].&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* &#039;&#039;&#039;Caution:&#039;&#039;&#039; An open helmet allows exposure to the conditions outside of the suit.&lt;br /&gt;
* If you open the helmet in a contaminated, external environment (and lack [[Filter]]s to process the contaminants), &#039;&#039;&#039;Flush&#039;&#039;&#039; the helmet.&lt;br /&gt;
* It is theoretically possible to mix [[EVA Suit]] elements and [[Hardsuit]] elements, although this is relatively uncommon.&lt;br /&gt;
* Damaged helmets can be recycled (assuming you have a new one to use!)&lt;br /&gt;
* The helmet light uses 100 watts of power when on, For comparison most [[Kit (Lights)|wall mounted lights]] use 50 watts.&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 Hardsuit Helmet 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|Open|Integer|Used to open or close the helmet visor.|multiple=2|0|Closed|1|Open}}&lt;br /&gt;
{{Data Parameters/row|Pressure|Float|w=0|The current pressure reading of the Hardsuit Helmet}}&lt;br /&gt;
{{Data Parameters/row|Temperature|Integer|w=0|The current temperature reading of the Hardsuit Helmet}}&lt;br /&gt;
{{Data Parameters/row|Lock|Boolean|Disable manual operation of the Hardsuit Helmet.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|RatioOxygen|Float|w=0|The ratio of [[Oxygen]] inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioCarbonDioxide|Float|w=0|The ratio of [[Carbon Dioxide]] inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioNitrogen|Float|w=0|The ratio of [[Nitrogen]] inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioPollutant|Float|w=0|The ratio of [[Pollutant]] inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioVolatiles|Float|w=0|The ratio of [[Volatiles]] inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioWater|Float|w=0|The ratio of [[Water]] inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|Used to turn the helmet light on or off.|multiple=2|0|Off|1|On}}&lt;br /&gt;
{{Data Parameters/row|TotalMoles|Float|w=0|Returns the total moles of the Hardsuit Helmet}}&lt;br /&gt;
{{Data Parameters/row|Volume|Integer|Returns the Hardsuit Helmet atmosphere volume}}&lt;br /&gt;
{{Data Parameters/row|RatioNitrousOxide|Float|w=0|The ratio of [[Nitrous Oxide]] inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|Combustion|Boolean|w=0|Assess if the atmosphere is on fire. Returns 1 if atmosphere is on fire, 0 if not.|0 or 1}}&lt;br /&gt;
{{Data Parameters/row|Flush|Integer|r=0|Set to 1 to activate the flush function on the Hardsuit Helmet}}&lt;br /&gt;
{{Data Parameters/row|SoundAlert|Integer|Plays a sound alert on the Hardsuit Helmets speaker}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidNitrogen|Float|w=0|The ratio of [[Nitrogen#Liquid|Liquid Nitrogen]] inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidOxygen|Float|w=0|The ratio of [[Oxygen#Liquid|Liquid Oxygen]] inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidVolatiles|Float|w=0|The ratio of [[Volatiles#Liquid|Liquid Volatiles]] inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioSteam|Float|w=0|The ratio of [[Steam]] inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidCarbonDioxide|Float|w=0|The ratio of [[Carbon Dioxide#Liquid|Liquid Carbon Dioxide]] inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidPollutant|Float|w=0|The ratio of [[Pollutant#Liquid|Liquid Pollutant]] inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidNitrousOxide|Float|w=0|The ratio of [[Nitrous Oxide#Liquid|Liquid Nitrous Oxide]] inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|ReferenceId|Integer|w=0|Unique Reference Identifier for this object}}&lt;br /&gt;
{{Data Parameters/row|RatioHydrogen|Float|w=0|DEPRECATED|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioLiquidHydrogen|Float|w=0|DEPRECATED|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|RatioPollutedWater|Float|w=0|The ratio of polluted water inside the Hardsuit Helmet|0.0 to 1.0}}&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Suits]]&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Pill_(Medical)&amp;diff=21601</id>
		<title>Pill (Medical)</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Pill_(Medical)&amp;diff=21601"/>
		<updated>2024-07-10T13:02:08Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &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;
&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name = Pill (Medical)&lt;br /&gt;
| image = [[File:ItemPillHeal.png]]&lt;br /&gt;
| prefabhash = 1118069417&lt;br /&gt;
| prefabname = ItemPillHeal&lt;br /&gt;
| stacks = 10&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Food&lt;br /&gt;
| recipe_machine1 = Chemistry Station&lt;br /&gt;
| recipe_cost1 = 1g [[Silver]], [[Ore (Silver)]], 10 x [[Fern]], 1 x [[Ore (Cobalt)]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Three centuries of pharmaceutical technology compressed into one small, easy to ingest pill: the Heal Pill, aka the Proton Pill, aka Mr Happy contains active enzymes, therapeutic proteins, modified microbial strains, and mammalian cell line analogues in a single-dose boost of high purity, efficacy, and potency that potentiates a swift parasympathetic immune response.&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;
== Description ==&lt;br /&gt;
The medical pill can be used to heal yourself or others.&lt;br /&gt;
&lt;br /&gt;
== Obtaining ==&lt;br /&gt;
The medical pill is made in the [[Chemistry Station]] with the ingredients listed below.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ingredient !! Quantity&lt;br /&gt;
|-&lt;br /&gt;
| [[Fern]] || 10g&lt;br /&gt;
|-&lt;br /&gt;
| [[Silver Ore]] || 1g&lt;br /&gt;
|-&lt;br /&gt;
| [[Ore_(Cobalt)|Cobalt Ore]] || 1g&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Pill_(Medical)&amp;diff=21600</id>
		<title>Pill (Medical)</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Pill_(Medical)&amp;diff=21600"/>
		<updated>2024-07-10T13:01:45Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &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;
&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
{{Itembox&lt;br /&gt;
 | name        = Pill (Medical)&lt;br /&gt;
 | image = [[File:ItemPillHeal.png]]&lt;br /&gt;
 | createdwith = [[Chemistry Station]]&lt;br /&gt;
 | cost        = 10x [[Fern]], 1x [[Silver]], 1x [[Cobalt]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Three centuries of pharmaceutical technology compressed into one small, easy to ingest pill: the Heal Pill, aka the Proton Pill, aka Mr Happy contains active enzymes, therapeutic proteins, modified microbial strains, and mammalian cell line analogues in a single-dose boost of high purity, efficacy, and potency that potentiates a swift parasympathetic immune response.&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;
== Description ==&lt;br /&gt;
The medical pill can be used to heal yourself or others.&lt;br /&gt;
&lt;br /&gt;
== Obtaining ==&lt;br /&gt;
The medical pill is made in the [[Chemistry Station]] with the ingredients listed below.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ingredient !! Quantity&lt;br /&gt;
|-&lt;br /&gt;
| [[Fern]] || 10g&lt;br /&gt;
|-&lt;br /&gt;
| [[Silver Ore]] || 1g&lt;br /&gt;
|-&lt;br /&gt;
| [[Ore_(Cobalt)|Cobalt Ore]] || 1g&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Kit_(Sign)&amp;diff=21599</id>
		<title>Kit (Sign)</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Kit_(Sign)&amp;diff=21599"/>
		<updated>2024-07-10T13:00:30Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
| name = Kit (Sign)&lt;br /&gt;
| image = [[File:ItemKitSign.png]]&lt;br /&gt;
| prefabhash = 529996327&lt;br /&gt;
| prefabname = ItemKitSign&lt;br /&gt;
| stacks = 10&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Kits&lt;br /&gt;
| recipe_machine1 = Autolathe&lt;br /&gt;
| recipe_cost1 = 3g [[Iron]]&lt;br /&gt;
| constructs = [[Sign 1x1]], [[Sign 2x1]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Signs can be placed on walls and frames.&lt;br /&gt;
Use the [[Labeller]] to add text to them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The sign&#039;s text is capable of being formatted using standard BBCode formatting.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;Example: &amp;quot;&amp;amp;lt;b&amp;amp;gt;Important&amp;amp;lt;/b&amp;amp;gt; Sign&amp;quot; would make the &amp;quot;Important&amp;quot; portion of the text appear in bold.&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A list of common formatting properties is provided below:&lt;br /&gt;
	&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Code&lt;br /&gt;
|-&lt;br /&gt;
| Bold|| Use &amp;amp;lt;b&amp;amp;gt; and &amp;amp;lt;/b&amp;amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Italics|| Use &amp;amp;lt;i&amp;amp;gt; and &amp;amp;lt;/i&amp;amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Underline|| Use &amp;amp;lt;u&amp;amp;gt; and &amp;amp;lt;/u&amp;amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Superscript|| Use &amp;amp;lt;sup&amp;amp;gt; and &amp;amp;lt;/sup&amp;amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Subscript|| Use &amp;amp;lt;sub&amp;amp;gt; and &amp;amp;lt;/sub&amp;amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Linefeed|| Use &amp;amp;lt;br&amp;amp;gt; to force a linefeed.&lt;br /&gt;
|-&lt;br /&gt;
| Tab|| Use \t which will add one tab stop.&lt;br /&gt;
|-&lt;br /&gt;
| Align|| Use &amp;amp;lt;align=left&amp;amp;gt; and &amp;amp;lt;/align&amp;amp;gt; to make text left justified. &amp;lt;br&amp;gt;&lt;br /&gt;
Use &amp;amp;lt;align=center&amp;amp;gt; and &amp;amp;lt;/align&amp;amp;gt; to make text center justified (default). &amp;lt;br&amp;gt;&lt;br /&gt;
Use &amp;amp;lt;align=right&amp;amp;gt; and &amp;amp;lt;/align&amp;amp;gt; to make text right justified.&lt;br /&gt;
|-&lt;br /&gt;
| Position|| Use &amp;lt;pos=4.25&amp;gt; advances about 4.25 spaces.&lt;br /&gt;
|-&lt;br /&gt;
| Size||Use &amp;lt;size=36&amp;gt; to set point size to 36.&amp;lt;br&amp;gt;&amp;lt;size=+18&amp;gt; to increase the point size by 18 points.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;size=-14&amp;gt; to decrease the point size by 14 points.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/size&amp;gt; to end the size tag.&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| Color|| &amp;lt;color=red&amp;gt; to set the color to red. Several other colors are pre-defined.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;#FF8000&amp;gt; or any other hexadecimal code to define a color.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/color&amp;gt; to end the color tag.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Talk:Main_Page&amp;diff=21598</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Talk:Main_Page&amp;diff=21598"/>
		<updated>2024-07-10T12:58:45Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: sign&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Merge Volatiles Pages ==&lt;br /&gt;
--[[User:Bloby|Bloby]]: Currently there are two pages referring to the same gas: [[Hydrogen]] and [[Volatiles]].  They should probably be merged.  Note that these are distinct from the item [[Ice_(Volatiles)]].  The merged page should probably be &amp;quot;Volatiles&amp;quot;, because although the gas is referred to as H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; in game, it is never called hydrogen, and its reaction with oxygen is clearly not that of hydrogen.  Because of the name, I didn&#039;t realize the reaction didn&#039;t produce water vapor until I tested it.  I suspect the inconsistency here is that the developers changed their mind about volatiles at some point and haven&#039;t fully switched over yet.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ipottinger|Ipottinger]] ([[User talk:Ipottinger|talk]]) 06:24, 22 October 2019 (CDT) I agree that the content should be merged into a single page. I would suggest that both the Hydrogen and Volatiles links on the Main Page remain with the Hydrogen page converted to a page-redirect to the merged Volatiles page. (&amp;quot;&amp;lt;nowiki&amp;gt;#REDIRECT [[Volatiles]]&amp;lt;/nowiki&amp;gt;&amp;quot; as page&#039;s sole content) This is because, as you noted, the game in its current &amp;quot;early access&amp;quot; state is itself confused about the naming. New players may come looking for info on Hydrogen, not realizing that it and Volatiles are one-in-the-same. As you also noted, labelling Volatiles as H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; is equally misleading. I&#039;m hoping that, sometime in the future, Hydrogen proper is (re?)introduced and Volatiles becomes Methane CH&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; or some other hydrocarbon.&lt;br /&gt;
&lt;br /&gt;
: I believe this has some relation to the way the game separates items and gasses. Originally, the name of the gas was Hydrogen, but the name of the ice/ore was Volatiles. Now there is no mention of Hydrogen in the game, it&#039;s only Volatiles (even though it is labeled H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; by some parts of the game). I will go ahead and merge the pages. --[[User:Sunspots|Sunspots]] ([[User talk:Sunspots|talk]]) 17:02, 26 October 2019 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Kit and Item Nomenclature ==&lt;br /&gt;
&lt;br /&gt;
--[[User:Ipottinger|Ipottinger]] ([[User talk:Ipottinger|talk]]) 20:24, 18 October 2019 (CDT) As the wiki stands currently, kit and item papes &#039;&#039;&#039;with actual content&#039;&#039;&#039; do not share a consistent, predictable naming scheme. The names of wiki pages often do not match the name of the item in-game. (See [[Gas Tank Storage]] vs. [[Kit (Canister Storage) Canister Storage|Canister Storage]]) I would like some input on what a good nomenclature for entities of the game would be, it being mindful that in the future new entities will most likely be added, and that one day the wiki might expand to cover mods that add their own unique entities.&lt;br /&gt;
&lt;br /&gt;
In an earlier attempt to alleviate the problem of inconsistently named pages, I reorganized the [[Main Page]] to harmonize its links with the in-game names of items, then created page-redirects to bounce each link to the appropriate (often incorrectly named) content page. This is only a band-aid over an open wound. To heal, content must be moved from their incorrectly named pages to replace the correctly named redirect pages.&lt;br /&gt;
&lt;br /&gt;
The schema I used for the Main Page links is &amp;quot;«ItemName»&amp;quot; for items not created from kits. and &amp;quot;Kit («KitName») «ItemName»&amp;quot; for those that are, with the sole exception of &amp;quot;«Kit () «ItemName»&amp;quot; used when kit and variant names were similar enough to seem redundant to include both. Similarly, any new pages I created used the same naming schema minus the &amp;quot;«Kit () «ItemName»&amp;quot; contraction. I also adopted the &amp;quot;Guide («ItemName»)&amp;quot; or &amp;quot;Guide («SubjectName»)&amp;quot; for community-authored (opposed to user-authored) guides. (See [[Guide (Airlock)]] and [[Guide (Farming)]])&lt;br /&gt;
&lt;br /&gt;
I devised the above naming schema for the Main Page links with two goals in mind:&lt;br /&gt;
# Make it clear, especially for new players, what items are available. &#039;&#039;(I&#039;ve been banging my head against a wall trying to accomplish something only to find out later that there is an item that does that very thing)&#039;&#039;&lt;br /&gt;
# Make it clear which items are derived from kits and what those kits and items are titled. &#039;&#039;(While watching an online video, I saw a nob mounted above a desk, but I can&#039;t find either in any of the fabricators)&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For the Main Page reorganization, I made an assumption that I am now concerned is incorrect, that assumption being it might be possible for two different kits to produce two different variants that share the same name. &lt;br /&gt;
* If the &#039;&#039;&#039;assumption is true&#039;&#039;&#039;, then keeping future updates or mod&#039;s in mind, it is necessary to prevent page-name collisions by prepending the kit&#039;s name. (Example: the current pipe-based &amp;quot;[[Kit (Gas Mixer) Gas Mixer]]&amp;quot; vs. a future mod-provided &amp;quot;Kit (Advance Atmospherics) Gas Mixer&amp;quot;, an Electrolyzer/Filtration sized device that will take several input gases and mix them to order consistently regardless of input temperatures or pressures) &lt;br /&gt;
* If the &#039;&#039;&#039;assumption is false&#039;&#039;&#039;, then every item must have a unique name and therefore will reside on a matching uniquely named wiki page, no kit-name prepending required.&lt;br /&gt;
&lt;br /&gt;
It seems to me now that the game has been constructed such that every item must have a unique name. I will try to confirm this with someone in authority on Stationeers&#039; Discord. If confirmed, I will accept responsibility for the mistake and make the necessary corrections to the Main Page and the redirects it depends upon. Thus, pages like &amp;quot;[[Kit (Atmospherics) Air Conditioner]]&amp;quot; will become simply &amp;quot;[[Air Conditioner]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
--[[User:Bloby|Bloby]]:  This all seems reasonable.  From my experience digging through the game files, I think that items need to have unique internal names, e.g. &amp;quot;StructureCompositeCladdingAngledCornerLong&amp;quot;.  However, these are mapped to names the user sees through the localization system.  So the previous cladding is &amp;quot;Composite Cladding (Long Angled Corner)&amp;quot; in English, and &amp;quot;Revêtement Composite (Long coin incliné)&amp;quot; in French.  So it might be possible that the user sees two items mapped to the same name.  It seems like the developer is avoiding this, though.&lt;br /&gt;
&lt;br /&gt;
== Kit Pages ==&lt;br /&gt;
&lt;br /&gt;
For items that are produced as a kit, there are links both for the kit and the resulting item.  In many cases, only one of these links points towards an existing page.  I propose that we merge pages for items that are produced by the same kit, as is currently done in [[Kit (Lights)]], and use page redirects for the sub items, as in [[Kit (Lights) LED]].&lt;br /&gt;
Edit: I&#039;ve done this for the manufacturing and atmospherics sections.  If no one objects or reverts those, I&#039;ll continue to the other sections later.&lt;br /&gt;
&lt;br /&gt;
Secondarily, on this main page, I think we should only mention &amp;quot;Kit&amp;quot; if there is more than one item related to that kit.  E.g., &amp;quot;Kit () Fabricator&amp;quot; could be simplified to &amp;quot;Fabricator&amp;quot;, but lights would keep their kit notation: &amp;quot;Kit (Lights) Diode Slide&amp;quot; and &amp;quot;Kit (Lights) LED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Are there any objections to this?&lt;br /&gt;
&lt;br /&gt;
--[[User:Ipottinger|Ipottinger]] ([[User talk:Ipottinger|talk]]) 22:28, 15 October 2019 (CDT) :: I was the one who separated them out, with kits that currently only produce one item denoted as &amp;quot;Kit() ItemName&amp;quot; and kits that already produce multiple items denoted as &amp;quot;Kit (KitName) ItemName&amp;quot;. I think the kits and the resulting items they produce deserve separate pages. All kits share the same set of properties (stackable, stack-siZe, cost of fabrication) that are separate for the items they produce (construction steps, power requirements, data properties). The two states, kit vs. item, are distinct.  I value consistency and hope to produce a template for kits that will provide a predictable format for their shared information. Similarly, I&#039;m studying the collection of items to see if a template can be made to cover them as well.  See: [[Special:MyLanguage/Kit (Door)|Kit (Door)]] vs. [[Special:MyLanguage/Kit (Door) Composite Door|Composite Door]] and [[Special:MyLanguage/Kit (Blast Door) Blast Door|Blast Door]]. I&#039;ve been a bit busy but I do intend to get that done. Can I ask for a bit of time, patience and maybe some help?&lt;br /&gt;
&lt;br /&gt;
--[[User:Bloby|Bloby]] (Edited):  I see what you mean about the different properties, and agree that it needs to be clear that the kits and their constructs are different.  That said, I&#039;m not sure that the best way to achieve that is to have separate pages for them: this would result in more than 100 new pages often containing only a few sentences of information.  Your point that we should be consistent across items is well taken, and so maybe the best way to deal with this is to give each item one page.  The infobox for the kit (the actual item) could be put at the top of the page, with the constructs as subsections (and separate infoboxes) below.  Otherwise you&#039;re putting the constructs (not an item) on even footing with the kit (an item).  The [[Atmospherics]] page is a good example of this.  The exact templating scheme could be adjusted to reflect this; for example, it might be worth having differently styled boxes for items vs constructs.  Does this sound reasonable?&lt;br /&gt;
&lt;br /&gt;
--[[User:Ipottinger|Ipottinger]] ([[User talk:Ipottinger|talk]]) 19:29, 16 October 2019 (CDT) The [[Atmospherics]] page is a good example of what I would like to avoid. It is a huge conglomeration of different sets of information. New users, the people most likely to come to the wiki, must weed through a long page to find the information specific to the item of their interested. It would be far more helpful (and less intimidating) if they were greeted with a shorter page concentrated with the information on one specific kit or item. I don&#039;t see a problem with kits and items being on the same level and having their own pages. Both are entities in the game. A kit can be manipulated in the game just as much as any item. Any distinction seems meaningless. Webpages are free and there is no shortage of them. Why must &amp;quot;conserving&amp;quot; pages be a goal? It is my opinion that the [[Atmospherics]] page would be better served as four separate pages: [[Kit (Atmospherics)|Kit (Atmospherics)]] | [[Kit (Atmospherics) Air Conditioner|Air Conditioner]] | [[Kit (Atmospherics) Electrolyzer|Electrolyzer]] | [[Kit (Atmospherics) Filtration|Filtration]]. While I will advocate my point of view, I realize I am in no position to make dictates. I am eager to hear your points and counterpoints. I &#039;&#039;&#039;will&#039;&#039;&#039; listen.&lt;br /&gt;
&lt;br /&gt;
As an example of my vision, please examine what I&#039;ve done with [[Guide (Airlock)|Guide (Airlock)]] and all its associated pages, including [[Guide (Airlock) Atmosphere to Atmosphere]], [[Guide (Airlock) Atmosphere to Vacuum]], [[Kit (Airlock)]], [[Kit (Airlock) Airlock]], [[Circuitboard (Airlock)]] and [[Circuitboard (Advanced Airlock)]]. I tried to breakdown a complicated system into discrete parts of different functions and link them all together with contextual links and a comprehensive &amp;quot;See Also&amp;quot; section. You can examine the histories of the pages to see how the work progressed.  &lt;br /&gt;
&lt;br /&gt;
I have some time on my hands. Give me the day to try my hand on that monolithic [[Atmospherics]] page. You can then judge if the resulting collection of pages is or is not a better experience, especially for newer players.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ipottinger|Ipottinger]] ([[User talk:Ipottinger|talk]]) 05:56, 17 October 2019 (CDT) Okay, The original [[Atmospherics]] page remains, but I have created new pages for [[Kit (Atmospherics)|Kit (Atmospherics)]] | [[Kit (Atmospherics) Air Conditioner|Air Conditioner]] | [[Kit (Atmospherics) Electrolyzer|Electrolyzer]] | [[Kit (Atmospherics) Filtration|Filtration]], all linked from the main page. I will finish the [[Guide (Air Conditioner)]], [[Guide (Electrolyzer)]], and [[Guide (Filtration)]] later.&lt;br /&gt;
&lt;br /&gt;
--[[User:Bloby|Bloby]]:  Okay, I see better what you&#039;re wanting to do with the atmospherics.  At this point I think they&#039;re probably both fine, so we may as well go with your preference for splitting the page.  I see a couple of related issues that we might want to consider as well.  The biggest two issues are:&lt;br /&gt;
# Single construct kits.  Are we going to split up pages like [[Autolathe]] as well then?  It seems like this would be most consistent, but less obviously necessary.&lt;br /&gt;
# Minor variants:&lt;br /&gt;
#* Stairs actually have three constructs: no railing, right side railing, and left side railing.  Aside from their collision meshes, there are no mechanical differences.  I don&#039;t really think these deserve four total pages, even assuming that kits like Atmospherics are split up.&lt;br /&gt;
#* Cladding has 13 constructs of varying shapes.  Some of them have a 2x1x1 shape, and therefore take two Kit(Cladding) to construct.  Again, I think they should be on one page.&lt;br /&gt;
#* Floor grating is basically the same story as stairs, with four variants.&lt;br /&gt;
#* Lights use different shapes, but their power consumption varies.  I&#039;m not really sure about this one.&lt;br /&gt;
Anyway, let me know what you think.  I appreciate and share your desire to talk it through.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ipottinger|Ipottinger]] ([[User talk:Ipottinger|talk]]) 17:53, 18 October 2019 (CDT) &#039;&#039;&#039;I agree with you on all points above.&#039;&#039;&#039;&lt;br /&gt;
# Single construct kits:&lt;br /&gt;
#* We should split up pages like [[Kit (Autolathe)]] as well. It will be most consistent, It will be what anyone who has browsed the wiki for a length of time will come to expect and it will set a clear president for future kits and items added to the game. Plus, there is no guarantee that future updates (or mods) won&#039;t add addition variants to these kits.&lt;br /&gt;
# Minor variants:&lt;br /&gt;
#* Kits that produce multiple variants that are only trivially different from one another do &#039;&#039;&#039;not&#039;&#039;&#039; require individual pages for those varients. A simple table of characteristics should be enough to guide a player to the appropriate variant.&lt;br /&gt;
#* I agree that [[Kit (Lights)]] is a difficult one. Though [[Kit (Lights) Wall Light|Wall Light]], [[Kit (Lights) Wall Light (Long)|Wall Light (Long)]], [[Kit (Lights) Wall Light (Long Angled)|Wall Light (Long Angled)]] and [[Kit (Lights) Wall Light (Long Wide)|Wall Light (Long Wide)]] are all essentially the same, albeit in size and shape, they are substantially distinct in form and function from [[Kit (Lights) Diode Slide|Diode Slide]] and [[Kit (Lights) Wall Light (Battery)|Wall Light (Battery)]]. Even [[Kit (Lights) LED|LED]] colorization is different enough from other Lights variant to cause confusion for a new player. Therefore, I think it would be wise to give Lights variants three separate pages. One for the common lights, another for the battery variant, and a third for LED.&lt;br /&gt;
&lt;br /&gt;
--[[User:Bloby|Bloby]]:  Okay excellent, then that&#039;s taken care of.&lt;br /&gt;
&lt;br /&gt;
:I strongly disagree with these excessively long names! In every case where an individual item or structure is warranted it&#039;s own article, the article name should be identical to the English translation of the name. In the case of multiple things with the same name, any clarification should be following the name, not in some obscure naming scheme. I don&#039;t care so much about names of guides. We don&#039;t need atomic articles for every single item or structure in the game. Note that there are two major types of &amp;quot;things&amp;quot; in the game - items and structures (also reagents, gasses, dynamic objects, etc). An item that is a kit is generally used to place a structure. I don&#039;t like the idea of having an article for the kit item alone, and forcing the user to jump through hoops to find the actual information about the structure.&lt;br /&gt;
:p.s. please follow general wiki convention of signing the end of your message --[[User:Sunspots|Sunspots]] ([[User talk:Sunspots|talk]]) 16:54, 26 October 2019 (CDT)&lt;br /&gt;
&lt;br /&gt;
== IC Scripts ==&lt;br /&gt;
&lt;br /&gt;
(The following comment was removed from the Main_Page HTML and placed here for greater visibility)&amp;lt;br/&amp;gt;&lt;br /&gt;
Due to all the IC Scripts on the workshop have there own guides on how to use them, I will not link them here for now due to how many there is, could do a top 10 of them and place them here.&lt;br /&gt;
&lt;br /&gt;
== Discord Link ==&lt;br /&gt;
&lt;br /&gt;
Hey guys, can you create a permanent discord link? The current one expired. [[User:PostRobcore|PostRobcore]] ([[User talk:PostRobcore|talk]]) 19:51, 21 December 2017 (CST)&lt;br /&gt;
&lt;br /&gt;
== Ideas/ suggestions for a standardized Logic Setup. ==&lt;br /&gt;
&lt;br /&gt;
Hello guys!&lt;br /&gt;
&lt;br /&gt;
I have made a system for distribute Logic Setups. This way we can have a &amp;quot;Standard&amp;quot; system for each and every Logic Setup added to the Wiki. It is nothing fancy or sensational. It just takes every Logic Unit in to a format it is uniform.&lt;br /&gt;
&lt;br /&gt;
I made this in Evernote, as I use this a lot for many things.&lt;br /&gt;
&lt;br /&gt;
My way might not be what everyone want.&lt;br /&gt;
But might be a way to get every new guide or tutorial in sync with what is needed for every level the players are at in their experience with the game.&lt;br /&gt;
&lt;br /&gt;
Another thing, is there a forum we talk about this Wiki for Stationeers?&lt;br /&gt;
Or is it just this talk thing we share ideas for the site?&lt;br /&gt;
&lt;br /&gt;
Here is an example:&lt;br /&gt;
(Tried to edit to Wiki setup, but I&#039;m on phone. And new to using the Wiki. So this look much better in my notes than in here. At least for now.)&lt;br /&gt;
&lt;br /&gt;
==== Material List ====&lt;br /&gt;
===== Logic Memory =====&lt;br /&gt;
*3x Logic Memory Unit&lt;br /&gt;
===== Logic I/O=====    &lt;br /&gt;
*1x Logic Reader Unit&lt;br /&gt;
===== Logic Processor =====&lt;br /&gt;
*2x Logic Math Unit&lt;br /&gt;
===== Logic Processor =====&lt;br /&gt;
*1x Logic Min/Max Unit&lt;br /&gt;
===== Logic I/O =====&lt;br /&gt;
*Batch Writer Unit&lt;br /&gt;
===== Sensor =====&lt;br /&gt;
*1x Solar Sensor&lt;br /&gt;
===== Power Control/Storage =====&lt;br /&gt;
*1x Area Power Control (APC)&lt;br /&gt;
===== Solar Panels =====&lt;br /&gt;
*3x Solar Panels&lt;br /&gt;
===== Miscellaneous =====&lt;br /&gt;
*&amp;quot;x&amp;quot; Amount of Standard Cable&lt;br /&gt;
*&amp;quot;x&amp;quot; Amount of Heavy Cable&lt;br /&gt;
&lt;br /&gt;
==== Settings ====&lt;br /&gt;
===== Logic Memory 1 of 3 (Settings): =====&lt;br /&gt;
*Label Name: Memory 15&lt;br /&gt;
*Memory Set: 15&lt;br /&gt;
&lt;br /&gt;
===== Logic Memory 2 of 3 (Settings): =====&lt;br /&gt;
*Label Name: Memory 1.5&lt;br /&gt;
*Memory Set: 1.5&lt;br /&gt;
&lt;br /&gt;
===== Logic Memory 3 of 3 (Settings): =====&lt;br /&gt;
*Label Name: Memory 100&lt;br /&gt;
*Memory Set: 100&lt;br /&gt;
&lt;br /&gt;
===== Logic Reader 1 of 1 (Settings): =====&lt;br /&gt;
*Label Name: Logic Reader 1&lt;br /&gt;
*In: Daylight Sensor&lt;br /&gt;
*Var: Solar Angle&lt;br /&gt;
&lt;br /&gt;
===== Math Unit 1 of 2 (Settings): =====&lt;br /&gt;
*Label Name: Math Unit 1&lt;br /&gt;
*Input 1: Result &amp;gt; Logic Reader 1&lt;br /&gt;
*Input 2: Memory 15&lt;br /&gt;
*Out (Operation Selector): Subtract&lt;br /&gt;
&lt;br /&gt;
===== Math Unit 2 of 2 (Settings): =====&lt;br /&gt;
*Label Name: Math Unit 2&lt;br /&gt;
*Input 1: Result &amp;gt; Math Unit 1&lt;br /&gt;
*Input 2: Memory 1.5&lt;br /&gt;
*Out (Operation Selector): Divide&lt;br /&gt;
&lt;br /&gt;
===== Min/Max Unit 1 of 1 (Settings): =====&lt;br /&gt;
*Label Name: Min-Max 1&lt;br /&gt;
*Input 1: Result &amp;gt; Math Unit 2&lt;br /&gt;
*Input 2: Memory 100&lt;br /&gt;
*OPR (Less/Greater Selector): Less&lt;br /&gt;
&lt;br /&gt;
===== Batch Writer 1 of 1 (Settings): =====&lt;br /&gt;
*Label Name: Batch Writer 1&lt;br /&gt;
*Input 1: Result &amp;gt; Min-Max 1&lt;br /&gt;
*Out Var: Vertical&lt;br /&gt;
*Out Type: Solar Panels&lt;br /&gt;
&lt;br /&gt;
== How to layout stationpedia excerpts ==&lt;br /&gt;
&lt;br /&gt;
Currently, most articles with stationpedia quotes put the quote after the &#039;&#039;&#039;description&#039;&#039;&#039; section. An alternative to this is to put it in the top section. I personally think we should migrate all articles to this variant because I think it makes the structure look better.&lt;br /&gt;
&lt;br /&gt;
An example is [[Special:PermanentLink/20950|Corn Soup]] compared to [[Special:PermanentLink/21564|Autolathe]].&lt;br /&gt;
&lt;br /&gt;
[[User:Emilgardis|Emilgardis]] ([[User talk:Emilgardis|talk]]) 07:58, 10 July 2024 (CDT)&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Talk:Main_Page&amp;diff=21597</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Talk:Main_Page&amp;diff=21597"/>
		<updated>2024-07-10T12:58:15Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: /* How to layout stationpedia excerpts */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Merge Volatiles Pages ==&lt;br /&gt;
--[[User:Bloby|Bloby]]: Currently there are two pages referring to the same gas: [[Hydrogen]] and [[Volatiles]].  They should probably be merged.  Note that these are distinct from the item [[Ice_(Volatiles)]].  The merged page should probably be &amp;quot;Volatiles&amp;quot;, because although the gas is referred to as H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; in game, it is never called hydrogen, and its reaction with oxygen is clearly not that of hydrogen.  Because of the name, I didn&#039;t realize the reaction didn&#039;t produce water vapor until I tested it.  I suspect the inconsistency here is that the developers changed their mind about volatiles at some point and haven&#039;t fully switched over yet.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ipottinger|Ipottinger]] ([[User talk:Ipottinger|talk]]) 06:24, 22 October 2019 (CDT) I agree that the content should be merged into a single page. I would suggest that both the Hydrogen and Volatiles links on the Main Page remain with the Hydrogen page converted to a page-redirect to the merged Volatiles page. (&amp;quot;&amp;lt;nowiki&amp;gt;#REDIRECT [[Volatiles]]&amp;lt;/nowiki&amp;gt;&amp;quot; as page&#039;s sole content) This is because, as you noted, the game in its current &amp;quot;early access&amp;quot; state is itself confused about the naming. New players may come looking for info on Hydrogen, not realizing that it and Volatiles are one-in-the-same. As you also noted, labelling Volatiles as H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; is equally misleading. I&#039;m hoping that, sometime in the future, Hydrogen proper is (re?)introduced and Volatiles becomes Methane CH&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; or some other hydrocarbon.&lt;br /&gt;
&lt;br /&gt;
: I believe this has some relation to the way the game separates items and gasses. Originally, the name of the gas was Hydrogen, but the name of the ice/ore was Volatiles. Now there is no mention of Hydrogen in the game, it&#039;s only Volatiles (even though it is labeled H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; by some parts of the game). I will go ahead and merge the pages. --[[User:Sunspots|Sunspots]] ([[User talk:Sunspots|talk]]) 17:02, 26 October 2019 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Kit and Item Nomenclature ==&lt;br /&gt;
&lt;br /&gt;
--[[User:Ipottinger|Ipottinger]] ([[User talk:Ipottinger|talk]]) 20:24, 18 October 2019 (CDT) As the wiki stands currently, kit and item papes &#039;&#039;&#039;with actual content&#039;&#039;&#039; do not share a consistent, predictable naming scheme. The names of wiki pages often do not match the name of the item in-game. (See [[Gas Tank Storage]] vs. [[Kit (Canister Storage) Canister Storage|Canister Storage]]) I would like some input on what a good nomenclature for entities of the game would be, it being mindful that in the future new entities will most likely be added, and that one day the wiki might expand to cover mods that add their own unique entities.&lt;br /&gt;
&lt;br /&gt;
In an earlier attempt to alleviate the problem of inconsistently named pages, I reorganized the [[Main Page]] to harmonize its links with the in-game names of items, then created page-redirects to bounce each link to the appropriate (often incorrectly named) content page. This is only a band-aid over an open wound. To heal, content must be moved from their incorrectly named pages to replace the correctly named redirect pages.&lt;br /&gt;
&lt;br /&gt;
The schema I used for the Main Page links is &amp;quot;«ItemName»&amp;quot; for items not created from kits. and &amp;quot;Kit («KitName») «ItemName»&amp;quot; for those that are, with the sole exception of &amp;quot;«Kit () «ItemName»&amp;quot; used when kit and variant names were similar enough to seem redundant to include both. Similarly, any new pages I created used the same naming schema minus the &amp;quot;«Kit () «ItemName»&amp;quot; contraction. I also adopted the &amp;quot;Guide («ItemName»)&amp;quot; or &amp;quot;Guide («SubjectName»)&amp;quot; for community-authored (opposed to user-authored) guides. (See [[Guide (Airlock)]] and [[Guide (Farming)]])&lt;br /&gt;
&lt;br /&gt;
I devised the above naming schema for the Main Page links with two goals in mind:&lt;br /&gt;
# Make it clear, especially for new players, what items are available. &#039;&#039;(I&#039;ve been banging my head against a wall trying to accomplish something only to find out later that there is an item that does that very thing)&#039;&#039;&lt;br /&gt;
# Make it clear which items are derived from kits and what those kits and items are titled. &#039;&#039;(While watching an online video, I saw a nob mounted above a desk, but I can&#039;t find either in any of the fabricators)&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For the Main Page reorganization, I made an assumption that I am now concerned is incorrect, that assumption being it might be possible for two different kits to produce two different variants that share the same name. &lt;br /&gt;
* If the &#039;&#039;&#039;assumption is true&#039;&#039;&#039;, then keeping future updates or mod&#039;s in mind, it is necessary to prevent page-name collisions by prepending the kit&#039;s name. (Example: the current pipe-based &amp;quot;[[Kit (Gas Mixer) Gas Mixer]]&amp;quot; vs. a future mod-provided &amp;quot;Kit (Advance Atmospherics) Gas Mixer&amp;quot;, an Electrolyzer/Filtration sized device that will take several input gases and mix them to order consistently regardless of input temperatures or pressures) &lt;br /&gt;
* If the &#039;&#039;&#039;assumption is false&#039;&#039;&#039;, then every item must have a unique name and therefore will reside on a matching uniquely named wiki page, no kit-name prepending required.&lt;br /&gt;
&lt;br /&gt;
It seems to me now that the game has been constructed such that every item must have a unique name. I will try to confirm this with someone in authority on Stationeers&#039; Discord. If confirmed, I will accept responsibility for the mistake and make the necessary corrections to the Main Page and the redirects it depends upon. Thus, pages like &amp;quot;[[Kit (Atmospherics) Air Conditioner]]&amp;quot; will become simply &amp;quot;[[Air Conditioner]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
--[[User:Bloby|Bloby]]:  This all seems reasonable.  From my experience digging through the game files, I think that items need to have unique internal names, e.g. &amp;quot;StructureCompositeCladdingAngledCornerLong&amp;quot;.  However, these are mapped to names the user sees through the localization system.  So the previous cladding is &amp;quot;Composite Cladding (Long Angled Corner)&amp;quot; in English, and &amp;quot;Revêtement Composite (Long coin incliné)&amp;quot; in French.  So it might be possible that the user sees two items mapped to the same name.  It seems like the developer is avoiding this, though.&lt;br /&gt;
&lt;br /&gt;
== Kit Pages ==&lt;br /&gt;
&lt;br /&gt;
For items that are produced as a kit, there are links both for the kit and the resulting item.  In many cases, only one of these links points towards an existing page.  I propose that we merge pages for items that are produced by the same kit, as is currently done in [[Kit (Lights)]], and use page redirects for the sub items, as in [[Kit (Lights) LED]].&lt;br /&gt;
Edit: I&#039;ve done this for the manufacturing and atmospherics sections.  If no one objects or reverts those, I&#039;ll continue to the other sections later.&lt;br /&gt;
&lt;br /&gt;
Secondarily, on this main page, I think we should only mention &amp;quot;Kit&amp;quot; if there is more than one item related to that kit.  E.g., &amp;quot;Kit () Fabricator&amp;quot; could be simplified to &amp;quot;Fabricator&amp;quot;, but lights would keep their kit notation: &amp;quot;Kit (Lights) Diode Slide&amp;quot; and &amp;quot;Kit (Lights) LED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Are there any objections to this?&lt;br /&gt;
&lt;br /&gt;
--[[User:Ipottinger|Ipottinger]] ([[User talk:Ipottinger|talk]]) 22:28, 15 October 2019 (CDT) :: I was the one who separated them out, with kits that currently only produce one item denoted as &amp;quot;Kit() ItemName&amp;quot; and kits that already produce multiple items denoted as &amp;quot;Kit (KitName) ItemName&amp;quot;. I think the kits and the resulting items they produce deserve separate pages. All kits share the same set of properties (stackable, stack-siZe, cost of fabrication) that are separate for the items they produce (construction steps, power requirements, data properties). The two states, kit vs. item, are distinct.  I value consistency and hope to produce a template for kits that will provide a predictable format for their shared information. Similarly, I&#039;m studying the collection of items to see if a template can be made to cover them as well.  See: [[Special:MyLanguage/Kit (Door)|Kit (Door)]] vs. [[Special:MyLanguage/Kit (Door) Composite Door|Composite Door]] and [[Special:MyLanguage/Kit (Blast Door) Blast Door|Blast Door]]. I&#039;ve been a bit busy but I do intend to get that done. Can I ask for a bit of time, patience and maybe some help?&lt;br /&gt;
&lt;br /&gt;
--[[User:Bloby|Bloby]] (Edited):  I see what you mean about the different properties, and agree that it needs to be clear that the kits and their constructs are different.  That said, I&#039;m not sure that the best way to achieve that is to have separate pages for them: this would result in more than 100 new pages often containing only a few sentences of information.  Your point that we should be consistent across items is well taken, and so maybe the best way to deal with this is to give each item one page.  The infobox for the kit (the actual item) could be put at the top of the page, with the constructs as subsections (and separate infoboxes) below.  Otherwise you&#039;re putting the constructs (not an item) on even footing with the kit (an item).  The [[Atmospherics]] page is a good example of this.  The exact templating scheme could be adjusted to reflect this; for example, it might be worth having differently styled boxes for items vs constructs.  Does this sound reasonable?&lt;br /&gt;
&lt;br /&gt;
--[[User:Ipottinger|Ipottinger]] ([[User talk:Ipottinger|talk]]) 19:29, 16 October 2019 (CDT) The [[Atmospherics]] page is a good example of what I would like to avoid. It is a huge conglomeration of different sets of information. New users, the people most likely to come to the wiki, must weed through a long page to find the information specific to the item of their interested. It would be far more helpful (and less intimidating) if they were greeted with a shorter page concentrated with the information on one specific kit or item. I don&#039;t see a problem with kits and items being on the same level and having their own pages. Both are entities in the game. A kit can be manipulated in the game just as much as any item. Any distinction seems meaningless. Webpages are free and there is no shortage of them. Why must &amp;quot;conserving&amp;quot; pages be a goal? It is my opinion that the [[Atmospherics]] page would be better served as four separate pages: [[Kit (Atmospherics)|Kit (Atmospherics)]] | [[Kit (Atmospherics) Air Conditioner|Air Conditioner]] | [[Kit (Atmospherics) Electrolyzer|Electrolyzer]] | [[Kit (Atmospherics) Filtration|Filtration]]. While I will advocate my point of view, I realize I am in no position to make dictates. I am eager to hear your points and counterpoints. I &#039;&#039;&#039;will&#039;&#039;&#039; listen.&lt;br /&gt;
&lt;br /&gt;
As an example of my vision, please examine what I&#039;ve done with [[Guide (Airlock)|Guide (Airlock)]] and all its associated pages, including [[Guide (Airlock) Atmosphere to Atmosphere]], [[Guide (Airlock) Atmosphere to Vacuum]], [[Kit (Airlock)]], [[Kit (Airlock) Airlock]], [[Circuitboard (Airlock)]] and [[Circuitboard (Advanced Airlock)]]. I tried to breakdown a complicated system into discrete parts of different functions and link them all together with contextual links and a comprehensive &amp;quot;See Also&amp;quot; section. You can examine the histories of the pages to see how the work progressed.  &lt;br /&gt;
&lt;br /&gt;
I have some time on my hands. Give me the day to try my hand on that monolithic [[Atmospherics]] page. You can then judge if the resulting collection of pages is or is not a better experience, especially for newer players.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ipottinger|Ipottinger]] ([[User talk:Ipottinger|talk]]) 05:56, 17 October 2019 (CDT) Okay, The original [[Atmospherics]] page remains, but I have created new pages for [[Kit (Atmospherics)|Kit (Atmospherics)]] | [[Kit (Atmospherics) Air Conditioner|Air Conditioner]] | [[Kit (Atmospherics) Electrolyzer|Electrolyzer]] | [[Kit (Atmospherics) Filtration|Filtration]], all linked from the main page. I will finish the [[Guide (Air Conditioner)]], [[Guide (Electrolyzer)]], and [[Guide (Filtration)]] later.&lt;br /&gt;
&lt;br /&gt;
--[[User:Bloby|Bloby]]:  Okay, I see better what you&#039;re wanting to do with the atmospherics.  At this point I think they&#039;re probably both fine, so we may as well go with your preference for splitting the page.  I see a couple of related issues that we might want to consider as well.  The biggest two issues are:&lt;br /&gt;
# Single construct kits.  Are we going to split up pages like [[Autolathe]] as well then?  It seems like this would be most consistent, but less obviously necessary.&lt;br /&gt;
# Minor variants:&lt;br /&gt;
#* Stairs actually have three constructs: no railing, right side railing, and left side railing.  Aside from their collision meshes, there are no mechanical differences.  I don&#039;t really think these deserve four total pages, even assuming that kits like Atmospherics are split up.&lt;br /&gt;
#* Cladding has 13 constructs of varying shapes.  Some of them have a 2x1x1 shape, and therefore take two Kit(Cladding) to construct.  Again, I think they should be on one page.&lt;br /&gt;
#* Floor grating is basically the same story as stairs, with four variants.&lt;br /&gt;
#* Lights use different shapes, but their power consumption varies.  I&#039;m not really sure about this one.&lt;br /&gt;
Anyway, let me know what you think.  I appreciate and share your desire to talk it through.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ipottinger|Ipottinger]] ([[User talk:Ipottinger|talk]]) 17:53, 18 October 2019 (CDT) &#039;&#039;&#039;I agree with you on all points above.&#039;&#039;&#039;&lt;br /&gt;
# Single construct kits:&lt;br /&gt;
#* We should split up pages like [[Kit (Autolathe)]] as well. It will be most consistent, It will be what anyone who has browsed the wiki for a length of time will come to expect and it will set a clear president for future kits and items added to the game. Plus, there is no guarantee that future updates (or mods) won&#039;t add addition variants to these kits.&lt;br /&gt;
# Minor variants:&lt;br /&gt;
#* Kits that produce multiple variants that are only trivially different from one another do &#039;&#039;&#039;not&#039;&#039;&#039; require individual pages for those varients. A simple table of characteristics should be enough to guide a player to the appropriate variant.&lt;br /&gt;
#* I agree that [[Kit (Lights)]] is a difficult one. Though [[Kit (Lights) Wall Light|Wall Light]], [[Kit (Lights) Wall Light (Long)|Wall Light (Long)]], [[Kit (Lights) Wall Light (Long Angled)|Wall Light (Long Angled)]] and [[Kit (Lights) Wall Light (Long Wide)|Wall Light (Long Wide)]] are all essentially the same, albeit in size and shape, they are substantially distinct in form and function from [[Kit (Lights) Diode Slide|Diode Slide]] and [[Kit (Lights) Wall Light (Battery)|Wall Light (Battery)]]. Even [[Kit (Lights) LED|LED]] colorization is different enough from other Lights variant to cause confusion for a new player. Therefore, I think it would be wise to give Lights variants three separate pages. One for the common lights, another for the battery variant, and a third for LED.&lt;br /&gt;
&lt;br /&gt;
--[[User:Bloby|Bloby]]:  Okay excellent, then that&#039;s taken care of.&lt;br /&gt;
&lt;br /&gt;
:I strongly disagree with these excessively long names! In every case where an individual item or structure is warranted it&#039;s own article, the article name should be identical to the English translation of the name. In the case of multiple things with the same name, any clarification should be following the name, not in some obscure naming scheme. I don&#039;t care so much about names of guides. We don&#039;t need atomic articles for every single item or structure in the game. Note that there are two major types of &amp;quot;things&amp;quot; in the game - items and structures (also reagents, gasses, dynamic objects, etc). An item that is a kit is generally used to place a structure. I don&#039;t like the idea of having an article for the kit item alone, and forcing the user to jump through hoops to find the actual information about the structure.&lt;br /&gt;
:p.s. please follow general wiki convention of signing the end of your message --[[User:Sunspots|Sunspots]] ([[User talk:Sunspots|talk]]) 16:54, 26 October 2019 (CDT)&lt;br /&gt;
&lt;br /&gt;
== IC Scripts ==&lt;br /&gt;
&lt;br /&gt;
(The following comment was removed from the Main_Page HTML and placed here for greater visibility)&amp;lt;br/&amp;gt;&lt;br /&gt;
Due to all the IC Scripts on the workshop have there own guides on how to use them, I will not link them here for now due to how many there is, could do a top 10 of them and place them here.&lt;br /&gt;
&lt;br /&gt;
== Discord Link ==&lt;br /&gt;
&lt;br /&gt;
Hey guys, can you create a permanent discord link? The current one expired. [[User:PostRobcore|PostRobcore]] ([[User talk:PostRobcore|talk]]) 19:51, 21 December 2017 (CST)&lt;br /&gt;
&lt;br /&gt;
== Ideas/ suggestions for a standardized Logic Setup. ==&lt;br /&gt;
&lt;br /&gt;
Hello guys!&lt;br /&gt;
&lt;br /&gt;
I have made a system for distribute Logic Setups. This way we can have a &amp;quot;Standard&amp;quot; system for each and every Logic Setup added to the Wiki. It is nothing fancy or sensational. It just takes every Logic Unit in to a format it is uniform.&lt;br /&gt;
&lt;br /&gt;
I made this in Evernote, as I use this a lot for many things.&lt;br /&gt;
&lt;br /&gt;
My way might not be what everyone want.&lt;br /&gt;
But might be a way to get every new guide or tutorial in sync with what is needed for every level the players are at in their experience with the game.&lt;br /&gt;
&lt;br /&gt;
Another thing, is there a forum we talk about this Wiki for Stationeers?&lt;br /&gt;
Or is it just this talk thing we share ideas for the site?&lt;br /&gt;
&lt;br /&gt;
Here is an example:&lt;br /&gt;
(Tried to edit to Wiki setup, but I&#039;m on phone. And new to using the Wiki. So this look much better in my notes than in here. At least for now.)&lt;br /&gt;
&lt;br /&gt;
==== Material List ====&lt;br /&gt;
===== Logic Memory =====&lt;br /&gt;
*3x Logic Memory Unit&lt;br /&gt;
===== Logic I/O=====    &lt;br /&gt;
*1x Logic Reader Unit&lt;br /&gt;
===== Logic Processor =====&lt;br /&gt;
*2x Logic Math Unit&lt;br /&gt;
===== Logic Processor =====&lt;br /&gt;
*1x Logic Min/Max Unit&lt;br /&gt;
===== Logic I/O =====&lt;br /&gt;
*Batch Writer Unit&lt;br /&gt;
===== Sensor =====&lt;br /&gt;
*1x Solar Sensor&lt;br /&gt;
===== Power Control/Storage =====&lt;br /&gt;
*1x Area Power Control (APC)&lt;br /&gt;
===== Solar Panels =====&lt;br /&gt;
*3x Solar Panels&lt;br /&gt;
===== Miscellaneous =====&lt;br /&gt;
*&amp;quot;x&amp;quot; Amount of Standard Cable&lt;br /&gt;
*&amp;quot;x&amp;quot; Amount of Heavy Cable&lt;br /&gt;
&lt;br /&gt;
==== Settings ====&lt;br /&gt;
===== Logic Memory 1 of 3 (Settings): =====&lt;br /&gt;
*Label Name: Memory 15&lt;br /&gt;
*Memory Set: 15&lt;br /&gt;
&lt;br /&gt;
===== Logic Memory 2 of 3 (Settings): =====&lt;br /&gt;
*Label Name: Memory 1.5&lt;br /&gt;
*Memory Set: 1.5&lt;br /&gt;
&lt;br /&gt;
===== Logic Memory 3 of 3 (Settings): =====&lt;br /&gt;
*Label Name: Memory 100&lt;br /&gt;
*Memory Set: 100&lt;br /&gt;
&lt;br /&gt;
===== Logic Reader 1 of 1 (Settings): =====&lt;br /&gt;
*Label Name: Logic Reader 1&lt;br /&gt;
*In: Daylight Sensor&lt;br /&gt;
*Var: Solar Angle&lt;br /&gt;
&lt;br /&gt;
===== Math Unit 1 of 2 (Settings): =====&lt;br /&gt;
*Label Name: Math Unit 1&lt;br /&gt;
*Input 1: Result &amp;gt; Logic Reader 1&lt;br /&gt;
*Input 2: Memory 15&lt;br /&gt;
*Out (Operation Selector): Subtract&lt;br /&gt;
&lt;br /&gt;
===== Math Unit 2 of 2 (Settings): =====&lt;br /&gt;
*Label Name: Math Unit 2&lt;br /&gt;
*Input 1: Result &amp;gt; Math Unit 1&lt;br /&gt;
*Input 2: Memory 1.5&lt;br /&gt;
*Out (Operation Selector): Divide&lt;br /&gt;
&lt;br /&gt;
===== Min/Max Unit 1 of 1 (Settings): =====&lt;br /&gt;
*Label Name: Min-Max 1&lt;br /&gt;
*Input 1: Result &amp;gt; Math Unit 2&lt;br /&gt;
*Input 2: Memory 100&lt;br /&gt;
*OPR (Less/Greater Selector): Less&lt;br /&gt;
&lt;br /&gt;
===== Batch Writer 1 of 1 (Settings): =====&lt;br /&gt;
*Label Name: Batch Writer 1&lt;br /&gt;
*Input 1: Result &amp;gt; Min-Max 1&lt;br /&gt;
*Out Var: Vertical&lt;br /&gt;
*Out Type: Solar Panels&lt;br /&gt;
&lt;br /&gt;
== How to layout stationpedia excerpts ==&lt;br /&gt;
&lt;br /&gt;
Currently, most articles with stationpedia quotes put the quote after the &#039;&#039;&#039;description&#039;&#039;&#039; section. An alternative to this is to put it in the top section. I personally think we should migrate all articles to this variant because I think it makes the structure look better.&lt;br /&gt;
&lt;br /&gt;
An example is [[Special:PermanentLink/20950|Corn Soup]] compared to [[Special:PermanentLink/21564|Autolathe]].&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Sorter&amp;diff=21596</id>
		<title>Sorter</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Sorter&amp;diff=21596"/>
		<updated>2024-07-10T12:47:16Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: Move categories to end of page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Structurebox&lt;br /&gt;
| name = Sorter&lt;br /&gt;
| image = [[File:StructureSorter.png]]&lt;br /&gt;
| prefab_hash = -1009150565&lt;br /&gt;
| prefab_name = StructureSorter&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|Logic Sorter}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;No amount of automation is complete without some way of moving different items to different parts of a system. The [[Xigo (Faction)|Xigo]] A2B sorter can be programmed via a computer with a [[Sorter Motherboard]] to direct various items into different chute networks. Filtered items are always passed out the righthand side of the sorter, while non filtered items continue straight through.&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;
When the Mode is set to 0 or if there is no WhiteList configured on a computer, the Sorter will act as a splitter: items will alternate their output lane each time. The Output property will switch value accordingly.&lt;br /&gt;
&lt;br /&gt;
When controlled by a [[computer]] with a [[Motherboard| Motherboard (Sorter)]] you can whitelist item(s) or itemgroup(s) and discard the rest out the alternate lane. If you are looking at  the output side of the machine (with the power switch on your right) whitelist output is left, discarded items output is right.&lt;br /&gt;
&lt;br /&gt;
Changing Output or Mode via logic or IC can cause an item to get stuck in the sorter until the logic circuit or IC command the Output to either 0 or 1.  This behavior is normal.  After the first output, the Output variable is set to -1. This is normal behavior and a reset circuit (using logic chips) or Output loop (using IC) will serve the purpose of using the ports properly so long as they send the Output variable after each item enters the sorter.&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 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 Sorter, &#039;&#039;&#039;Split&#039;&#039;&#039; does alternate outputs, &#039;&#039;&#039;Filter&#039;&#039;&#039; decides output via [[Motherboard (Sorter)]], &#039;&#039;&#039;Logic&#039;&#039;&#039; determines output via parameter &#039;&#039;&#039;Output&#039;&#039;&#039;|multiple=3|0|Split|1|Filter|2|Logic}}&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 Sorter.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the 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|Output|Integer|&amp;lt;div&amp;gt;Decides which side the next item will be sent to.&amp;lt;br&amp;gt;&lt;br /&gt;
In &#039;&#039;&#039;Logic&#039;&#039;&#039; mode, defaults to -1 after action. In &#039;&#039;&#039;Split&#039;&#039;&#039; mode, alternates between 0 and 1 after action. Does nothing in &#039;&#039;&#039;Filter&#039;&#039;&#039; mode.&amp;lt;br&amp;gt;&lt;br /&gt;
When set to 0 the item will exit the output slot closest to the power switch.  When set to 1, the item will exit the slot furthest from the power switch.&amp;lt;/div&amp;gt;|multiple=3|-1|Unset|0|Straight (Near Power Switch)|1|Side}}&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 (accept) || Export slot.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Export (reject) || 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.&lt;br /&gt;
|-&lt;br /&gt;
| Quantity || Integer || Size of 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.  &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;br /&gt;
[[Category:Machines]]&lt;br /&gt;
[[Category:Import/Export]]&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Back_Pressure_Regulator&amp;diff=21595</id>
		<title>Back Pressure Regulator</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Back_Pressure_Regulator&amp;diff=21595"/>
		<updated>2024-07-10T12:45:48Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: Move categories to end of page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Structurebox&lt;br /&gt;
| name = Back Pressure Regulator&lt;br /&gt;
| image = [[File:StructureBackPressureRegulator.png]]&lt;br /&gt;
| prefab_hash = -1149857558&lt;br /&gt;
| prefab_name = StructureBackPressureRegulator&lt;br /&gt;
| power_usage = 100W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (Pressure Regulator)]]&lt;br /&gt;
| item_rec1 = [[Kit (Pressure Regulator)]]&lt;br /&gt;
}}&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Unlike the [[Pressure Regulator]], which closes when the input exceeds a given pressure, the back pressure regulator opens when input pressure reaches a given value.&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;
The Back Pressure Regulator will only pass through gases when the pressure on its intake side exceeds the set value. In other words, the standard Regulator defaults &#039;&#039;&#039;open&#039;&#039;&#039; and closes when the &#039;&#039;output&#039;&#039; is overpressured, while the Back Pressure Regulator defaults &#039;&#039;&#039;closed&#039;&#039;&#039; and opens when the &#039;&#039;input&#039;&#039; is overpressured.&lt;br /&gt;
&lt;br /&gt;
Like the standard Regulator, the Back Pressure Regulator also acts as a check valve, switched valve, and compressor (i.e., input gas will move even if the output is already a higher pressure).&lt;br /&gt;
&lt;br /&gt;
The maximum pressure that can be set is 60795 kPa.&lt;br /&gt;
&lt;br /&gt;
Its low flow rate makes it not suitable for being used as an emergency dump valve.&lt;br /&gt;
&lt;br /&gt;
To calculate the moles per tick, use the following equation:&lt;br /&gt;
n = (P * V) / (R * T)&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
* P = Min(Input pressure, 101.325)&lt;br /&gt;
* V = 100&lt;br /&gt;
* n = Moles per tick&lt;br /&gt;
* R = Gas constant (8.3144)&lt;br /&gt;
* T = Input temperature&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 Back Pressure Regulator 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|Lock|Boolean|Disable manual operation of the Back Pressure Regulator.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|Setting|Integer|A variable setting that can be read or written.|0.0 to 60795.0}}&lt;br /&gt;
{{Data Parameters/row|Maximum|Float|w=0|Maximum setting of the Back Pressure Regulator}}&lt;br /&gt;
{{Data Parameters/row|Ratio|Float|w=0|Context specific value depending on device, 0 to 1 based ratio|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the Back Pressure Regulator.|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|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;
[[Category:Atmospherics]]&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Pressure_Regulator&amp;diff=21594</id>
		<title>Pressure Regulator</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Pressure_Regulator&amp;diff=21594"/>
		<updated>2024-07-10T12:45:25Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: Move categories to end of page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Structurebox&lt;br /&gt;
| name = Pressure Regulator&lt;br /&gt;
| image = [[File:StructurePressureRegulator.png]]&lt;br /&gt;
| prefab_hash = 209854039&lt;br /&gt;
| prefab_name = StructurePressureRegulator&lt;br /&gt;
| power_usage = 100W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (Pressure Regulator)]]&lt;br /&gt;
| item_rec1 = [[Kit (Pressure Regulator)]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Controlling the flow of gas between two pipe networks, pressure regulators shift gas until a set pressure on the outlet side is achieved, or the gas supply is exhausted. The back pressure regulator, by contrast, will only operate when pressure on the intake side exceeds the set value. With a max pressure of over 20,000kPa, it requires power to operate.&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;
The standard Pressure Regulator will pass through gases, in one direction, while the pressure on its output side is below the set value. It combines several functions:&lt;br /&gt;
* Passive check valve: Gas is never allowed to pass &amp;quot;the wrong way&amp;quot;, from output to input, even if the Regulator is switched off or unpowered. (It does not allow gas to pass at all when switched off or unpowered)&lt;br /&gt;
* Switched valve: Gas will not pass at all if the Regulator is switched off or unpowered. This is a similar function to the [[Pipe Digital Valve]].&lt;br /&gt;
* Regulator: Gas will only pass when the pressure at the output is below the Regulator&#039;s setting.&lt;br /&gt;
* Compressor: While active, the Regulator will move &#039;&#039;all&#039;&#039; available gas from input to output, up to the set pressure. (Contrast with, for example, a [[Pipe Valve]] which simply equalizes pressure and then stops.)&lt;br /&gt;
&lt;br /&gt;
The maximum pressure that can be set is 60795 kPa.&lt;br /&gt;
&lt;br /&gt;
To calculate the moles per tick, use the following equation:&lt;br /&gt;
n = (P * V) / (R * T)&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
* P = Min(Input pressure, 101.325)&lt;br /&gt;
* V = (OutputPipeVolume / InputPipeVolume) * 100&lt;br /&gt;
* n = Moles per tick&lt;br /&gt;
* R = Gas constant (8.3144)&lt;br /&gt;
* T = Input temperature&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 Pressure Regulator 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|Lock|Boolean|Disable manual operation of the Pressure Regulator.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|Setting|Integer|A variable setting that can be read or written.|0.0 to 60795.0}}&lt;br /&gt;
{{Data Parameters/row|Maximum|Float|w=0|Maximum setting of the Pressure Regulator}}&lt;br /&gt;
{{Data Parameters/row|Ratio|Float|w=0|Context specific value depending on device, 0 to 1 based ratio|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the Pressure Regulator.|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|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;
[[Category:Atmospherics]]&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Kit_(Pressure_Regulator)&amp;diff=21593</id>
		<title>Kit (Pressure Regulator)</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Kit_(Pressure_Regulator)&amp;diff=21593"/>
		<updated>2024-07-10T12:45:06Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: Move categories to end of page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Itembox&lt;br /&gt;
| name = Kit (Pressure Regulator)&lt;br /&gt;
| image = [[File:ItemKitRegulator.png]]&lt;br /&gt;
| prefabhash = 1181371795&lt;br /&gt;
| prefabname = ItemKitRegulator&lt;br /&gt;
| stacks = 5&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Kits&lt;br /&gt;
| recipe_machine1 = Hydraulic Pipe Bender&lt;br /&gt;
| recipe_cost1 = 5g [[Iron]], 1g [[Gold]], 2g [[Copper]]&lt;br /&gt;
| constructs = [[Pressure Regulator]], [[Back Pressure Regulator]], [[Pressurant Valve]], [[Purge Valve]]&lt;br /&gt;
}}&lt;br /&gt;
== Description ==&lt;br /&gt;
Pressure Regulators are useful components in [[:Category:Atmospherics|Atmospherics]] systems, designed to manage gas flow and pressure.&lt;br /&gt;
&lt;br /&gt;
This kit can create four devices: the [[Pressure Regulator]], [[Back Pressure Regulator]], [[Pressurant Valve]], and [[Purge Valve]]. Use left-click while in active hands to place. Scroll to switch between variants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recipes ==&lt;br /&gt;
{{Recipe&lt;br /&gt;
|{{Recipe/row |machine = Hydraulic Pipe Bender |mats = 5g [[Iron]], 1g [[Gold]], 2g [[Copper]] |time = 5 |energy = 500}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Pressure Regulator =&lt;br /&gt;
{{:Pressure Regulator}}&lt;br /&gt;
&lt;br /&gt;
= Back Pressure Regulator =&lt;br /&gt;
{{:Back Pressure Regulator}}&lt;br /&gt;
&lt;br /&gt;
= Pressurant Valve =&lt;br /&gt;
{{:Pressurant Valve}}&lt;br /&gt;
&lt;br /&gt;
= Purge Valve =&lt;br /&gt;
{{:Purge Valve}}&lt;br /&gt;
[[Category:Atmospherics]]&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=LARrE&amp;diff=21592</id>
		<title>LARrE</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=LARrE&amp;diff=21592"/>
		<updated>2024-07-10T12:38:15Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &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|A variable setting that can be read or written.}}&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, otherwise 0}}&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.}}&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>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Kit_(Pressure_Regulator)&amp;diff=21591</id>
		<title>Kit (Pressure Regulator)</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Kit_(Pressure_Regulator)&amp;diff=21591"/>
		<updated>2024-07-10T12:31:52Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: rework pressure regulator page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Atmospherics]]&lt;br /&gt;
{{Itembox&lt;br /&gt;
| name = Kit (Pressure Regulator)&lt;br /&gt;
| image = [[File:ItemKitRegulator.png]]&lt;br /&gt;
| prefabhash = 1181371795&lt;br /&gt;
| prefabname = ItemKitRegulator&lt;br /&gt;
| stacks = 5&lt;br /&gt;
| slot_class = SlotClass.None&lt;br /&gt;
| sorting_class = SortingClass.Kits&lt;br /&gt;
| recipe_machine1 = Hydraulic Pipe Bender&lt;br /&gt;
| recipe_cost1 = 5g [[Iron]], 1g [[Gold]], 2g [[Copper]]&lt;br /&gt;
| constructs = [[Pressure Regulator]], [[Back Pressure Regulator]], [[Pressurant Valve]], [[Purge Valve]]&lt;br /&gt;
}}&lt;br /&gt;
== Description ==&lt;br /&gt;
Pressure Regulators are useful components in [[:Category:Atmospherics|Atmospherics]] systems, designed to manage gas flow and pressure.&lt;br /&gt;
&lt;br /&gt;
This kit can create four devices: the [[Pressure Regulator]], [[Back Pressure Regulator]], [[Pressurant Valve]], and [[Purge Valve]]. Use left-click while in active hands to place. Scroll to switch between variants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recipes ==&lt;br /&gt;
{{Recipe&lt;br /&gt;
|{{Recipe/row |machine = Hydraulic Pipe Bender |mats = 5g [[Iron]], 1g [[Gold]], 2g [[Copper]] |time = 5 |energy = 500}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Pressure Regulator =&lt;br /&gt;
{{:Pressure Regulator}}&lt;br /&gt;
&lt;br /&gt;
= Back Pressure Regulator =&lt;br /&gt;
{{:Back Pressure Regulator}}&lt;br /&gt;
&lt;br /&gt;
= Pressurant Valve =&lt;br /&gt;
{{:Pressurant Valve}}&lt;br /&gt;
&lt;br /&gt;
= Purge Valve =&lt;br /&gt;
{{:Purge Valve}}&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Pressure_Regulator&amp;diff=21590</id>
		<title>Pressure Regulator</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Pressure_Regulator&amp;diff=21590"/>
		<updated>2024-07-10T12:00:41Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Atmospherics]]&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = Pressure Regulator&lt;br /&gt;
| image = [[File:StructurePressureRegulator.png]]&lt;br /&gt;
| prefab_hash = 209854039&lt;br /&gt;
| prefab_name = StructurePressureRegulator&lt;br /&gt;
| power_usage = 100W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (Pressure Regulator)]]&lt;br /&gt;
| item_rec1 = [[Kit (Pressure Regulator)]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Controlling the flow of gas between two pipe networks, pressure regulators shift gas until a set pressure on the outlet side is achieved, or the gas supply is exhausted. The back pressure regulator, by contrast, will only operate when pressure on the intake side exceeds the set value. With a max pressure of over 20,000kPa, it requires power to operate.&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;
The standard Pressure Regulator will pass through gases, in one direction, while the pressure on its output side is below the set value. It combines several functions:&lt;br /&gt;
* Passive check valve: Gas is never allowed to pass &amp;quot;the wrong way&amp;quot;, from output to input, even if the Regulator is switched off or unpowered. (It does not allow gas to pass at all when switched off or unpowered)&lt;br /&gt;
* Switched valve: Gas will not pass at all if the Regulator is switched off or unpowered. This is a similar function to the [[Pipe Digital Valve]].&lt;br /&gt;
* Regulator: Gas will only pass when the pressure at the output is below the Regulator&#039;s setting.&lt;br /&gt;
* Compressor: While active, the Regulator will move &#039;&#039;all&#039;&#039; available gas from input to output, up to the set pressure. (Contrast with, for example, a [[Pipe Valve]] which simply equalizes pressure and then stops.)&lt;br /&gt;
&lt;br /&gt;
The maximum pressure that can be set is 60795 kPa.&lt;br /&gt;
&lt;br /&gt;
To calculate the moles per tick, use the following equation:&lt;br /&gt;
n = (P * V) / (R * T)&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
* P = Min(Input pressure, 101.325)&lt;br /&gt;
* V = (OutputPipeVolume / InputPipeVolume) * 100&lt;br /&gt;
* n = Moles per tick&lt;br /&gt;
* R = Gas constant (8.3144)&lt;br /&gt;
* T = Input temperature&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 Pressure Regulator 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|Lock|Boolean|Disable manual operation of the Pressure Regulator.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|Setting|Integer|A variable setting that can be read or written.|0.0 to 60795.0}}&lt;br /&gt;
{{Data Parameters/row|Maximum|Float|w=0|Maximum setting of the Pressure Regulator}}&lt;br /&gt;
{{Data Parameters/row|Ratio|Float|w=0|Context specific value depending on device, 0 to 1 based ratio|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the Pressure Regulator.|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|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;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Back_Pressure_Regulator&amp;diff=21589</id>
		<title>Back Pressure Regulator</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Back_Pressure_Regulator&amp;diff=21589"/>
		<updated>2024-07-10T12:00:20Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Atmospherics]]&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = Back Pressure Regulator&lt;br /&gt;
| image = [[File:StructureBackPressureRegulator.png]]&lt;br /&gt;
| prefab_hash = -1149857558&lt;br /&gt;
| prefab_name = StructureBackPressureRegulator&lt;br /&gt;
| power_usage = 100W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (Pressure Regulator)]]&lt;br /&gt;
| item_rec1 = [[Kit (Pressure Regulator)]]&lt;br /&gt;
}}&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Unlike the [[Pressure Regulator]], which closes when the input exceeds a given pressure, the back pressure regulator opens when input pressure reaches a given value.&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;
The Back Pressure Regulator will only pass through gases when the pressure on its intake side exceeds the set value. In other words, the standard Regulator defaults &#039;&#039;&#039;open&#039;&#039;&#039; and closes when the &#039;&#039;output&#039;&#039; is overpressured, while the Back Pressure Regulator defaults &#039;&#039;&#039;closed&#039;&#039;&#039; and opens when the &#039;&#039;input&#039;&#039; is overpressured.&lt;br /&gt;
&lt;br /&gt;
Like the standard Regulator, the Back Pressure Regulator also acts as a check valve, switched valve, and compressor (i.e., input gas will move even if the output is already a higher pressure).&lt;br /&gt;
&lt;br /&gt;
The maximum pressure that can be set is 60795 kPa.&lt;br /&gt;
&lt;br /&gt;
Its low flow rate makes it not suitable for being used as an emergency dump valve.&lt;br /&gt;
&lt;br /&gt;
To calculate the moles per tick, use the following equation:&lt;br /&gt;
n = (P * V) / (R * T)&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
* P = Min(Input pressure, 101.325)&lt;br /&gt;
* V = 100&lt;br /&gt;
* n = Moles per tick&lt;br /&gt;
* R = Gas constant (8.3144)&lt;br /&gt;
* T = Input temperature&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 Back Pressure Regulator 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|Lock|Boolean|Disable manual operation of the Back Pressure Regulator.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|Setting|Integer|A variable setting that can be read or written.|0.0 to 60795.0}}&lt;br /&gt;
{{Data Parameters/row|Maximum|Float|w=0|Maximum setting of the Back Pressure Regulator}}&lt;br /&gt;
{{Data Parameters/row|Ratio|Float|w=0|Context specific value depending on device, 0 to 1 based ratio|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the Back Pressure Regulator.|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|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;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Back_Pressure_Regulator&amp;diff=21588</id>
		<title>Back Pressure Regulator</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Back_Pressure_Regulator&amp;diff=21588"/>
		<updated>2024-07-10T11:59:02Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: rework back pressure regulator page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Atmospherics]]&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = Back Pressure Regulator&lt;br /&gt;
| image = [[File:StructureBackPressureRegulator.png]]&lt;br /&gt;
| prefab_hash = -1149857558&lt;br /&gt;
| prefab_name = StructureBackPressureRegulator&lt;br /&gt;
| power_usage = 100W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (Pressure Regulator)]]&lt;br /&gt;
| item_rec1 = [[Kit (Pressure Regulator)]]&lt;br /&gt;
}}&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Unlike the [[Pressure Regulator]], which closes when the input exceeds a given pressure, the back pressure regulator opens when input pressure reaches a given value.&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;
The Back Pressure Regulator will only pass through gases when the pressure on its intake side exceeds the set value. In other words, the standard Regulator defaults &#039;&#039;&#039;open&#039;&#039;&#039; and closes when the &#039;&#039;output&#039;&#039; is overpressured, while the Back Pressure Regulator defaults &#039;&#039;&#039;closed&#039;&#039;&#039; and opens when the &#039;&#039;input&#039;&#039; is overpressured.&lt;br /&gt;
&lt;br /&gt;
Like the standard Regulator, the Back Pressure Regulator also acts as a check valve, switched valve, and compressor (i.e., input gas will move even if the output is already a higher pressure).&lt;br /&gt;
&lt;br /&gt;
Its low flow rate makes it not suitable for being used as an emergency dump valve.&lt;br /&gt;
&lt;br /&gt;
To calculate the moles per tick, use the following equation:&lt;br /&gt;
n = (P * V) / (R * T)&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
* P = Min(Input pressure, 101.325)&lt;br /&gt;
* V = 100&lt;br /&gt;
* n = Moles per tick&lt;br /&gt;
* R = Gas constant (8.3144)&lt;br /&gt;
* T = Input temperature&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 Back Pressure Regulator 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|Lock|Boolean|Disable manual operation of the Back Pressure Regulator.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|Setting|Integer|A variable setting that can be read or written.|0.0 to 60795.0}}&lt;br /&gt;
{{Data Parameters/row|Maximum|Float|w=0|Maximum setting of the Back Pressure Regulator}}&lt;br /&gt;
{{Data Parameters/row|Ratio|Float|w=0|Context specific value depending on device, 0 to 1 based ratio|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the Back Pressure Regulator.|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|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;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Pressure_Regulator&amp;diff=21587</id>
		<title>Pressure Regulator</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Pressure_Regulator&amp;diff=21587"/>
		<updated>2024-07-10T11:54:46Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: rework pressure regulator page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Atmospherics]]&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = Pressure Regulator&lt;br /&gt;
| image = [[File:StructurePressureRegulator.png]]&lt;br /&gt;
| prefab_hash = 209854039&lt;br /&gt;
| prefab_name = StructurePressureRegulator&lt;br /&gt;
| power_usage = 100W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (Pressure Regulator)]]&lt;br /&gt;
| item_rec1 = [[Kit (Pressure Regulator)]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Controlling the flow of gas between two pipe networks, pressure regulators shift gas until a set pressure on the outlet side is achieved, or the gas supply is exhausted. The back pressure regulator, by contrast, will only operate when pressure on the intake side exceeds the set value. With a max pressure of over 20,000kPa, it requires power to operate.&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;
[[Pressure Regulator]] is used throughout [[Atmospherics]] networks to manage [[Pressure]]. Pressure Regulators comes in two variants: Standard and [[Back Pressure Regulator|back-pressure regulators]]. They can be used to regulate the pressure between two pipe networks.&lt;br /&gt;
&lt;br /&gt;
The maximum pressure that can be set is 60795 kPa.&lt;br /&gt;
&lt;br /&gt;
The standard Pressure Regulator will pass through gases, in one direction, while the pressure on its output side is below the set value. It combines several functions:&lt;br /&gt;
* Passive check valve: Gas is never allowed to pass &amp;quot;the wrong way&amp;quot;, from output to input, even if the Regulator is switched off or unpowered. (It does not allow gas to pass at all when switched off or unpowered)&lt;br /&gt;
* Switched valve: Gas will not pass at all if the Regulator is switched off or unpowered. This is a similar function to the [[Pipe Digital Valve]].&lt;br /&gt;
* Regulator: Gas will only pass when the pressure at the output is below the Regulator&#039;s setting.&lt;br /&gt;
* Compressor: While active, the Regulator will move &#039;&#039;all&#039;&#039; available gas from input to output, up to the set pressure. (Contrast with, for example, a [[Pipe Valve]] which simply equalizes pressure and then stops.)&lt;br /&gt;
&lt;br /&gt;
To calculate the moles per tick, use the following equation:&lt;br /&gt;
n = (P * V) / (R * T)&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
* P = Min(Input pressure, 101.325)&lt;br /&gt;
* V = (OutputPipeVolume / InputPipeVolume) * 100&lt;br /&gt;
* n = Moles per tick&lt;br /&gt;
* R = Gas constant (8.3144)&lt;br /&gt;
* T = Input temperature&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 Pressure Regulator 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|Lock|Boolean|Disable manual operation of the Pressure Regulator.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|Setting|Integer|A variable setting that can be read or written.|0.0 to 60795.0}}&lt;br /&gt;
{{Data Parameters/row|Maximum|Float|w=0|Maximum setting of the Pressure Regulator}}&lt;br /&gt;
{{Data Parameters/row|Ratio|Float|w=0|Context specific value depending on device, 0 to 1 based ratio|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the Pressure Regulator.|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|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;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
	<entry>
		<id>https://stationeers-wiki.com/index.php?title=Pressurant_Valve&amp;diff=21586</id>
		<title>Pressurant Valve</title>
		<link rel="alternate" type="text/html" href="https://stationeers-wiki.com/index.php?title=Pressurant_Valve&amp;diff=21586"/>
		<updated>2024-07-10T11:46:45Z</updated>

		<summary type="html">&lt;p&gt;Emilgardis: omit translate on include&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;translate&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
{{Structurebox&lt;br /&gt;
| name = Pressurant Valve&lt;br /&gt;
| image = [[File:Pressurant Valve.png]]&lt;br /&gt;
| prefab_hash = 23052817&lt;br /&gt;
| prefab_name = StructurePressurantValve&lt;br /&gt;
| power_usage = 100W&lt;br /&gt;
| placed_on_grid = Small Grid&lt;br /&gt;
| decon_with_tool1 = [[Hand Drill]]&lt;br /&gt;
| placed_with_item = [[Kit (Pressure Regulator)]]&lt;br /&gt;
| item_rec1 = [[Kit (Pressure Regulator)]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Description== &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;q&amp;gt;Pumps gas into a liquid pipe in order to raise the pressure&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;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [[Purge Valve]] which does quasi the opposite.&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 Pressurant Valve 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|Lock|Boolean|Disable manual operation of the Pressurant Valve.|multiple=2|0|Unlocked|1|Locked}}&lt;br /&gt;
{{Data Parameters/row|Setting|Integer|A variable setting that can be read or written.|0.0 to 60795.0}}&lt;br /&gt;
{{Data Parameters/row|Maximum|Float|w=0|Maximum setting of the Pressurant Valve}}&lt;br /&gt;
{{Data Parameters/row|Ratio|Float|w=0|Context specific value depending on device, 0 to 1 based ratio|0.0 to 1.0}}&lt;br /&gt;
{{Data Parameters/row|On|Boolean|The current state of the Pressurant Valve.|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|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;
&amp;lt;noinclude&amp;gt;&amp;lt;/translate&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Atmospherics]]&lt;/div&gt;</summary>
		<author><name>Emilgardis</name></author>
	</entry>
</feed>