<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://swwiki.net:443//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sav</id>
	<title>Unofficial Stormworks Wiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://swwiki.net:443//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sav"/>
	<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php/Special:Contributions/Sav"/>
	<updated>2026-06-02T10:55:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=505</id>
		<title>Guided Missile</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=505"/>
		<updated>2026-05-29T06:16:10Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Historically, the term &amp;quot;missile&amp;quot; refers to any object or projectile that is forcibly thrown, launched, or propelled at a target.&lt;br /&gt;
&lt;br /&gt;
Nowadays its almost exclusively used to refer to the guided metal poles with flame shooting out the back that get launched from military planes, boats, and various land vehicles.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
=== The Problem to Solve ===&lt;br /&gt;
A missile is a closed system that needs to accomplish one task, and should be designed as so. Starting with the planning.&lt;br /&gt;
&lt;br /&gt;
Before building anything, you should first think about what your missile will be trying to accomplish. A short range air to air and a sea skimming AShM are both missiles, but they share very little things in common. You should be always designing your missile for the target.&lt;br /&gt;
&lt;br /&gt;
=== Design Constraints ===&lt;br /&gt;
Once you know what your missile needs to do, you can use that to define the set of design goals and constraints to follow during the design process.&lt;br /&gt;
&lt;br /&gt;
Goals and constraints may include but are not limited to:&lt;br /&gt;
* Range&lt;br /&gt;
* Speed&lt;br /&gt;
* Maneuverability&lt;br /&gt;
* Launch platform&lt;br /&gt;
&lt;br /&gt;
These are all things that will affect your final design, and should be set before building.&lt;br /&gt;
&lt;br /&gt;
== Segments &amp;amp; Parts ==&lt;br /&gt;
=== Guidance ===&lt;br /&gt;
&#039;&#039;&#039;Here is the single most important part of the guide&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A positive signal to your fins should cause your missile to PITCH UP and YAW RIGHT&lt;br /&gt;
&lt;br /&gt;
This is the same format as the output from the missile output of the missile radar and will make sure your math the same as what everyone else is doing if you&#039;re doing GPS.&lt;br /&gt;
&lt;br /&gt;
==== Radar ====&lt;br /&gt;
A majority of missiles simply use the missile output from the 1x1 missile radar, this has many advantages such as having built-in proportional navigation (an algorithm that makes your missile intercept the target rather than chase it) and no radar noise. Making it a good choice for moving targets.&lt;br /&gt;
&lt;br /&gt;
This also has the disadvantage of being able to be affected or disabled by chaff&lt;br /&gt;
==== Laser ====&lt;br /&gt;
Similarly to radar, the missile laser receiver block has a missile output with built-in PN guidance. And also doesn&#039;t really have any countermeasures if they don&#039;t know your laser frequency.&lt;br /&gt;
&lt;br /&gt;
The main disadvantage of laser guidance is that you have to keep a laser pointed at the target in the first place.&lt;br /&gt;
==== Other ====&lt;br /&gt;
More advanced missiles almost always also include some form of GPS guidance to be able to fly towards targets that are either not in range or not in view. GPS guidance will be discussed later on in the GPS guidance section.&lt;br /&gt;
&lt;br /&gt;
=== Maneuvering ===&lt;br /&gt;
==== Fins ====&lt;br /&gt;
The simplest way of manoeuvering is using built in fins in the solid booster fuel cylinders, as the composite node can be directly controlled by the missile output of the radar&lt;br /&gt;
&lt;br /&gt;
The rule of thumb is the center of stability should always be behind your center of mass, you can roughly find the center of stability by either:&lt;br /&gt;
* Averaging the position of your fins, accounting for the fin factors&lt;br /&gt;
* Dropping your missile from a high height (it should fall forwards)&lt;br /&gt;
&lt;br /&gt;
This ensures that the missile does not become unstable and/or spin during guidance, as a missile that is too unstable will almost always overcompensate for its deviation to target and start oscillating, wasting energy and reducing the final accuracy&lt;br /&gt;
&lt;br /&gt;
This also means that there will always be a tradeoff in hitting more accurately and turning harder, which can later be pushed further with more advanced control systems.&lt;br /&gt;
==== Other ====&lt;br /&gt;
&lt;br /&gt;
=== Payload ===&lt;br /&gt;
==== Warhead ====&lt;br /&gt;
There are 4 warheads, small, medium, large, and EMP&lt;br /&gt;
&lt;br /&gt;
* Small warheads damage everything in a 2.5m (10 block) radius&lt;br /&gt;
* Medium warheads damage everything in a 3.25 (13 block) radius&lt;br /&gt;
* Large warheads damage everything within a 3.5m (14 block) radius&lt;br /&gt;
* EMPs make vehicles within 500 meters unpowered for a minute&lt;br /&gt;
&lt;br /&gt;
Each warhead also has a limit for the heaviest vehicle they can outright delete.&lt;br /&gt;
&lt;br /&gt;
==== Compression Warhead ====&lt;br /&gt;
Autocannon drums filled with Bertha HE rounds are often used as an extremely potent and compact payload for striking heavier targets. They can be made by opening up the XML file of a drum and changing ammo type and damage to &amp;lt;code&amp;gt;property_ammo_type=&amp;quot;14&amp;quot; property_ammo_damage=&amp;quot;1&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
These need some sort of mechanism to be set off as they don&#039;t detonate on impact as easily as regular warheads. This is often done with a machine gun pointed at the drum or a small warhead with the &amp;quot;Destroy Vehicle&amp;quot; option disabled.&lt;br /&gt;
==== Kinetic ====&lt;br /&gt;
If your missile is heavy enough and moving at a high enough speed, it will also deal impact damage that scales with the how heavy and how fast it is&lt;br /&gt;
&lt;br /&gt;
With a heavy and fast enough missile this can be a decent way to take out ships and structures as the damage radius is often large enough to damage internals&lt;br /&gt;
&lt;br /&gt;
==== Fuzing ====&lt;br /&gt;
The simplest way to fuze a missile is by impact Fuzing, exploding when the missile impacts something.&lt;br /&gt;
The warheads themselves include this function with the impact threashold setting included in the warhead.&lt;br /&gt;
Some heavier missiles can also take enough damage to set off their compression warhead when hitting the ground, in which case no further systems are required.&lt;br /&gt;
&lt;br /&gt;
Against maneuverable targets another option is Proximity Fuzing, where you use information from a Radar or Player Sensor to activate a warhead without directly hitting the target, meaning you can damage the target even if your missile closely misses&lt;br /&gt;
&lt;br /&gt;
=== Propulsion ===&lt;br /&gt;
Anything that produces thrust can be used as propulsion for a missile.&lt;br /&gt;
&lt;br /&gt;
You can even propel one off a steam turbine and propeller if you want to.&lt;br /&gt;
&lt;br /&gt;
Although the sensible approach usually is to use a solid rocket booster, as they can be activated by one input and are very simple to set up.&lt;br /&gt;
=== Attachment ===&lt;br /&gt;
Almost all missiles are attached by Hardpoints, as they include battery charge and can be easily set up, attached and launched&lt;br /&gt;
&lt;br /&gt;
Usually the hardpoint is placed somewhere near the middle of the missile pointing to the side, but it can also be mounted on the back for more compact mounting as the footprint of the missile will be a true 1x1&lt;br /&gt;
&lt;br /&gt;
Missiles can also be stacked and launched out of the same place with the use of a linear track that guides them as they launch&lt;br /&gt;
&lt;br /&gt;
== Direct Radar Guidance ==&lt;br /&gt;
&lt;br /&gt;
== Multi Radar Systems ==&lt;br /&gt;
=== Radar Stacking ===&lt;br /&gt;
=== Non-overlapping Radar Stacking ===&lt;br /&gt;
&lt;br /&gt;
== GPS Guidance ==&lt;br /&gt;
=== The (relatively) Easy Way ===&lt;br /&gt;
&#039;&#039;&#039;The easy way?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This method of GPS guidance is considered the relatively easy way, as you don&#039;t need to use vectors and euler rotation (they scare me)&lt;br /&gt;
&lt;br /&gt;
Instead this simpler method only uses the bearing and pitch of the missile for guidance&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pros:&#039;&#039;&#039;&lt;br /&gt;
* The maths is relatively simpler&lt;br /&gt;
* It works well for roll controlled things like drones and cruise missiles&lt;br /&gt;
&#039;&#039;&#039;Cons:&#039;&#039;&#039;&lt;br /&gt;
* Controls may be twitchy or inaccurate in some situations (vertical climb or dive)&lt;br /&gt;
* Requires the missile to have roll control&lt;br /&gt;
=== The Hard Way ===&lt;br /&gt;
&#039;&#039;&#039;The hard way?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The other way of doing GPS guidance is to use vectors, this will be harder to set up initially as it requires converting global offsets to targets to the local offset. But to most people after the initial setup it is more intuitive to program behaviors.&lt;br /&gt;
&lt;br /&gt;
== Tuning ==&lt;br /&gt;
=== Stability ===&lt;br /&gt;
=== Output Shaping (linearization) ===&lt;br /&gt;
&lt;br /&gt;
== Guidance Laws ==&lt;br /&gt;
=== Direct ===&lt;br /&gt;
=== PN ===&lt;br /&gt;
=== APN ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&#039;&#039;&#039;Launch your missile and watch it fly&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile falls off the hardpoint:&#039;&#039;&#039;&lt;br /&gt;
* Launching with the release node instead of launch node on the hardpoint connector&lt;br /&gt;
* Booster not connected to launched node on hardpoint&lt;br /&gt;
* Booster not attached properly/on the wrong grid (common with smokeless motors)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go towards the target at all:&#039;&#039;&#039;&lt;br /&gt;
* Incorrect radar settings, make sure it is set to static with a reasonable FOV&lt;br /&gt;
* Radar isn&#039;t being activated on launch, connected the active node of the radar to the hardpoint&lt;br /&gt;
* Missile fins aren&#039;t connected, connect the missile output composite node of the radar to your fins&lt;br /&gt;
* Screwed up balancing, make sure you have fins in front and behind your missile&#039;s center of mass&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go in the right direction:&#039;&#039;&#039;&lt;br /&gt;
* Fins are rotated incorrectly, refer to the guidance section&lt;br /&gt;
* Fins are connected to the radar output instead of missile output&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile goes towards the target but loses control:&#039;&#039;&#039;&lt;br /&gt;
* Authority and stability issue, it is highly recommended to disconnect all fins from the radar and connect them one by one starting from the very front one, usually you will not need to link every fin to the radar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile spins out immediately:&#039;&#039;&#039;&lt;br /&gt;
* Asymmetric center of mass, check the center of mass of your missile in the editor&lt;br /&gt;
* Center of lift way too forward, missile need passive stability to fly properly, add more rear fins or remove some front fins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile explodes immediately:&#039;&#039;&#039;&lt;br /&gt;
* Increase the impact threshold of your warhead&lt;br /&gt;
[[Category:Weapons]]&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=504</id>
		<title>Guided Missile</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=504"/>
		<updated>2026-05-29T05:15:29Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* GPS Guidance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Historically, the term &amp;quot;missile&amp;quot; refers to any object or projectile that is forcibly thrown, launched, or propelled at a target.&lt;br /&gt;
&lt;br /&gt;
Nowadays its almost exclusively used to refer to the guided metal poles with flame shooting out the back that get launched from military planes, boats, and various land vehicles.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
=== The Problem to Solve ===&lt;br /&gt;
A missile is a closed system that needs to accomplish one task, and should be designed as so. Starting with the planning.&lt;br /&gt;
&lt;br /&gt;
Before building anything, you should first think about what your missile will be trying to accomplish. A short range air to air and a sea skimming AShM are both missiles, but they share very little things in common. You should be always designing your missile for the target.&lt;br /&gt;
&lt;br /&gt;
=== Design Constraints ===&lt;br /&gt;
Once you know what your missile needs to do, you can use that to define the set of design goals and constraints to follow during the design process.&lt;br /&gt;
&lt;br /&gt;
Goals and constraints may include but are not limited to:&lt;br /&gt;
* Range&lt;br /&gt;
* Speed&lt;br /&gt;
* Maneuverability&lt;br /&gt;
* Launch platform&lt;br /&gt;
&lt;br /&gt;
These are all things that will affect your final design, and should be set before building.&lt;br /&gt;
&lt;br /&gt;
== Segments &amp;amp; Parts ==&lt;br /&gt;
=== Guidance ===&lt;br /&gt;
&#039;&#039;&#039;Here is the single most important part of the guide&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A positive signal to your fins should cause your missile to PITCH UP and YAW RIGHT&lt;br /&gt;
&lt;br /&gt;
This is the same format as the output from the missile output of the missile radar and will make sure your math the same as what everyone else is doing if you&#039;re doing GPS.&lt;br /&gt;
&lt;br /&gt;
==== Radar ====&lt;br /&gt;
A majority of missiles simply use the missile output from the 1x1 missile radar, this has many advantages such as having built-in proportional navigation (an algorithm that makes your missile intercept the target rather than chase it) and no radar noise. Making it a good choice for moving targets.&lt;br /&gt;
&lt;br /&gt;
This also has the disadvantage of being able to be affected or disabled by chaff&lt;br /&gt;
==== Laser ====&lt;br /&gt;
Similarly to radar, the missile laser receiver block has a missile output with built-in PN guidance. And also doesn&#039;t really have any countermeasures if they don&#039;t know your laser frequency.&lt;br /&gt;
&lt;br /&gt;
The main disadvantage of laser guidance is that you have to keep a laser pointed at the target in the first place.&lt;br /&gt;
==== Other ====&lt;br /&gt;
More advanced missiles almost always also include some form of GPS guidance to be able to fly towards targets that are either not in range or not in view. GPS guidance will be discussed later on in the GPS guidance section.&lt;br /&gt;
&lt;br /&gt;
=== Maneuvering ===&lt;br /&gt;
==== Fins ====&lt;br /&gt;
The simplest way of manoeuvering is using built in fins in the solid booster fuel cylinders, as the composite node can be directly controlled by the missile output of the radar&lt;br /&gt;
&lt;br /&gt;
The rule of thumb is the center of stability should always be behind your center of mass, you can roughly find the center of stability by either:&lt;br /&gt;
* Averaging the position of your fins, accounting for the fin factors&lt;br /&gt;
* Dropping your missile from a high height (it should fall forwards)&lt;br /&gt;
&lt;br /&gt;
This ensures that the missile does not become unstable and/or spin during guidance, as a missile that is too unstable will almost always overcompensate for its deviation to target and start oscillating, wasting energy and reducing the final accuracy&lt;br /&gt;
&lt;br /&gt;
This also means that there will always be a tradeoff in hitting more accurately and turning harder, which can later be pushed further with more advanced control systems.&lt;br /&gt;
==== Other ====&lt;br /&gt;
&lt;br /&gt;
=== Payload ===&lt;br /&gt;
==== Warhead ====&lt;br /&gt;
There are 4 warheads, small, medium, large, and EMP&lt;br /&gt;
&lt;br /&gt;
* Small warheads damage everything in a 2.5m (10 block) radius&lt;br /&gt;
* Medium warheads damage everything in a 3.25 (13 block) radius&lt;br /&gt;
* Large warheads damage everything within a 3.5m (14 block) radius&lt;br /&gt;
* EMPs make vehicles within 500 meters unpowered for a minute&lt;br /&gt;
&lt;br /&gt;
Each warhead also has a limit for the heaviest vehicle they can outright delete.&lt;br /&gt;
&lt;br /&gt;
==== Compression Warhead ====&lt;br /&gt;
Autocannon drums filled with Bertha HE rounds are often used as an extremely potent and compact payload for striking heavier targets. They can be made by opening up the XML file of a drum and changing ammo type and damage to &amp;lt;code&amp;gt;property_ammo_type=&amp;quot;14&amp;quot; property_ammo_damage=&amp;quot;1&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
These need some sort of mechanism to be set off as they don&#039;t detonate on impact as easily as regular warheads. This is often done with a machine gun pointed at the drum or a small warhead with the &amp;quot;Destroy Vehicle&amp;quot; option disabled.&lt;br /&gt;
==== Kinetic ====&lt;br /&gt;
If your missile is heavy enough and moving at a high enough speed, it will also deal impact damage that scales with the how heavy and how fast it is&lt;br /&gt;
&lt;br /&gt;
With a heavy and fast enough missile this can be a decent way to take out ships and structures as the damage radius is often large enough to damage internals&lt;br /&gt;
&lt;br /&gt;
==== Fuzing ====&lt;br /&gt;
The simplest way to fuze a missile is by impact Fuzing, exploding when the missile impacts something.&lt;br /&gt;
The warheads themselves include this function with the impact threashold setting included in the warhead.&lt;br /&gt;
Some heavier missiles can also take enough damage to set off their compression warhead when hitting the ground, in which case no further systems are required.&lt;br /&gt;
&lt;br /&gt;
Against maneuverable targets another option is Proximity Fuzing, where you use information from a Radar or Player Sensor to activate a warhead without directly hitting the target, meaning you can damage the target even if your missile closely misses&lt;br /&gt;
&lt;br /&gt;
=== Propulsion ===&lt;br /&gt;
Anything that produces thrust can be used as propulsion for a missile.&lt;br /&gt;
&lt;br /&gt;
You can even propel one off a steam turbine and propeller if you want to.&lt;br /&gt;
&lt;br /&gt;
Although the sensible approach usually is to use a solid rocket booster, as they can be activated by one input and are very simple to set up.&lt;br /&gt;
=== Attachment ===&lt;br /&gt;
Almost all missiles are attached by Hardpoints, as they include battery charge and can be easily set up, attached and launched&lt;br /&gt;
&lt;br /&gt;
Usually the hardpoint is placed somewhere near the middle of the missile pointing to the side, but it can also be mounted on the back for more compact mounting as the footprint of the missile will be a true 1x1&lt;br /&gt;
&lt;br /&gt;
Missiles can also be stacked and launched out of the same place with the use of a linear track that guides them as they launch&lt;br /&gt;
&lt;br /&gt;
== Direct Radar Guidance ==&lt;br /&gt;
&lt;br /&gt;
== Multi Radar Systems ==&lt;br /&gt;
=== Radar Stacking ===&lt;br /&gt;
=== Non-overlapping Radar Stacking ===&lt;br /&gt;
&lt;br /&gt;
== GPS Guidance ==&lt;br /&gt;
=== The (relatively) Easy Way ===&lt;br /&gt;
&#039;&#039;&#039;The easy way?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This method of GPS guidance is considered the relatively easy way, as you don&#039;t need to use vectors and euler rotation (they scare me)&lt;br /&gt;
&lt;br /&gt;
Instead this simpler method only uses the bearing and pitch of the missile for guidance&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pros:&#039;&#039;&#039;&lt;br /&gt;
* The maths is relatively simpler&lt;br /&gt;
* It works well for roll controlled things like drones and cruise missiles&lt;br /&gt;
&#039;&#039;&#039;Cons:&#039;&#039;&#039;&lt;br /&gt;
* Controls may be twitchy or inaccurate in some situations (vertical climb or dive)&lt;br /&gt;
* Requires the missile to have roll control&lt;br /&gt;
=== The Hard Way ===&lt;br /&gt;
&#039;&#039;&#039;The hard way?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The other way of doing GPS guidance is to use vectors, this will be harder to set up initially as it requires converting global offsets to targets to the local offset. But to most people after the initial setup it is more intuitive to program behaviors.&lt;br /&gt;
&lt;br /&gt;
== Tuning ==&lt;br /&gt;
=== Stability ===&lt;br /&gt;
=== Output Shaping (linearization) ===&lt;br /&gt;
&lt;br /&gt;
== Guidance Laws ==&lt;br /&gt;
=== Direct ===&lt;br /&gt;
=== PN ===&lt;br /&gt;
=== APN ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&#039;&#039;&#039;Launch your missile and watch it fly&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile falls off the hardpoint:&#039;&#039;&#039;&lt;br /&gt;
* Launching with the release node instead of launch node on the hardpoint connector&lt;br /&gt;
* Booster not connected to launched node on hardpoint&lt;br /&gt;
* Booster not attached properly/on the wrong grid (common with smokeless motors)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go towards the target at all:&#039;&#039;&#039;&lt;br /&gt;
* Incorrect radar settings, make sure it is set to static with a reasonable FOV&lt;br /&gt;
* Radar isn&#039;t being activated on launch, connected the active node of the radar to the hardpoint&lt;br /&gt;
* Missile fins aren&#039;t connected, connect the missile output composite node of the radar to your fins&lt;br /&gt;
* Screwed up balancing, make sure you have fins in front and behind your missile&#039;s center of mass&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go in the right direction:&#039;&#039;&#039;&lt;br /&gt;
* Fins are rotated incorrectly, refer to the guidance section&lt;br /&gt;
* Fins are connected to the radar output instead of missile output&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile goes towards the target but loses control:&#039;&#039;&#039;&lt;br /&gt;
* Authority and stability issue, it is highly recommended to disconnect all fins from the radar and connect them one by one starting from the very front one, usually you will not need to link every fin to the radar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile spins out immediately:&#039;&#039;&#039;&lt;br /&gt;
* Asymmetric center of mass, check the center of mass of your missile in the editor&lt;br /&gt;
* Center of lift way too forward, missile need passive stability to fly properly, add more rear &lt;br /&gt;
fins or remove some front fins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile explodes immediately:&#039;&#039;&#039;&lt;br /&gt;
* Increase the impact threshold of your warhead&lt;br /&gt;
[[Category:Weapons]]&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=503</id>
		<title>Guided Missile</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=503"/>
		<updated>2026-05-29T05:12:33Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Segments &amp;amp; Parts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Historically, the term &amp;quot;missile&amp;quot; refers to any object or projectile that is forcibly thrown, launched, or propelled at a target.&lt;br /&gt;
&lt;br /&gt;
Nowadays its almost exclusively used to refer to the guided metal poles with flame shooting out the back that get launched from military planes, boats, and various land vehicles.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
=== The Problem to Solve ===&lt;br /&gt;
A missile is a closed system that needs to accomplish one task, and should be designed as so. Starting with the planning.&lt;br /&gt;
&lt;br /&gt;
Before building anything, you should first think about what your missile will be trying to accomplish. A short range air to air and a sea skimming AShM are both missiles, but they share very little things in common. You should be always designing your missile for the target.&lt;br /&gt;
&lt;br /&gt;
=== Design Constraints ===&lt;br /&gt;
Once you know what your missile needs to do, you can use that to define the set of design goals and constraints to follow during the design process.&lt;br /&gt;
&lt;br /&gt;
Goals and constraints may include but are not limited to:&lt;br /&gt;
* Range&lt;br /&gt;
* Speed&lt;br /&gt;
* Maneuverability&lt;br /&gt;
* Launch platform&lt;br /&gt;
&lt;br /&gt;
These are all things that will affect your final design, and should be set before building.&lt;br /&gt;
&lt;br /&gt;
== Segments &amp;amp; Parts ==&lt;br /&gt;
=== Guidance ===&lt;br /&gt;
&#039;&#039;&#039;Here is the single most important part of the guide&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A positive signal to your fins should cause your missile to PITCH UP and YAW RIGHT&lt;br /&gt;
&lt;br /&gt;
This is the same format as the output from the missile output of the missile radar and will make sure your math the same as what everyone else is doing if you&#039;re doing GPS.&lt;br /&gt;
&lt;br /&gt;
==== Radar ====&lt;br /&gt;
A majority of missiles simply use the missile output from the 1x1 missile radar, this has many advantages such as having built-in proportional navigation (an algorithm that makes your missile intercept the target rather than chase it) and no radar noise. Making it a good choice for moving targets.&lt;br /&gt;
&lt;br /&gt;
This also has the disadvantage of being able to be affected or disabled by chaff&lt;br /&gt;
==== Laser ====&lt;br /&gt;
Similarly to radar, the missile laser receiver block has a missile output with built-in PN guidance. And also doesn&#039;t really have any countermeasures if they don&#039;t know your laser frequency.&lt;br /&gt;
&lt;br /&gt;
The main disadvantage of laser guidance is that you have to keep a laser pointed at the target in the first place.&lt;br /&gt;
==== Other ====&lt;br /&gt;
More advanced missiles almost always also include some form of GPS guidance to be able to fly towards targets that are either not in range or not in view. GPS guidance will be discussed later on in the GPS guidance section.&lt;br /&gt;
&lt;br /&gt;
=== Maneuvering ===&lt;br /&gt;
==== Fins ====&lt;br /&gt;
The simplest way of manoeuvering is using built in fins in the solid booster fuel cylinders, as the composite node can be directly controlled by the missile output of the radar&lt;br /&gt;
&lt;br /&gt;
The rule of thumb is the center of stability should always be behind your center of mass, you can roughly find the center of stability by either:&lt;br /&gt;
* Averaging the position of your fins, accounting for the fin factors&lt;br /&gt;
* Dropping your missile from a high height (it should fall forwards)&lt;br /&gt;
&lt;br /&gt;
This ensures that the missile does not become unstable and/or spin during guidance, as a missile that is too unstable will almost always overcompensate for its deviation to target and start oscillating, wasting energy and reducing the final accuracy&lt;br /&gt;
&lt;br /&gt;
This also means that there will always be a tradeoff in hitting more accurately and turning harder, which can later be pushed further with more advanced control systems.&lt;br /&gt;
==== Other ====&lt;br /&gt;
&lt;br /&gt;
=== Payload ===&lt;br /&gt;
==== Warhead ====&lt;br /&gt;
There are 4 warheads, small, medium, large, and EMP&lt;br /&gt;
&lt;br /&gt;
* Small warheads damage everything in a 2.5m (10 block) radius&lt;br /&gt;
* Medium warheads damage everything in a 3.25 (13 block) radius&lt;br /&gt;
* Large warheads damage everything within a 3.5m (14 block) radius&lt;br /&gt;
* EMPs make vehicles within 500 meters unpowered for a minute&lt;br /&gt;
&lt;br /&gt;
Each warhead also has a limit for the heaviest vehicle they can outright delete.&lt;br /&gt;
&lt;br /&gt;
==== Compression Warhead ====&lt;br /&gt;
Autocannon drums filled with Bertha HE rounds are often used as an extremely potent and compact payload for striking heavier targets. They can be made by opening up the XML file of a drum and changing ammo type and damage to &amp;lt;code&amp;gt;property_ammo_type=&amp;quot;14&amp;quot; property_ammo_damage=&amp;quot;1&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
These need some sort of mechanism to be set off as they don&#039;t detonate on impact as easily as regular warheads. This is often done with a machine gun pointed at the drum or a small warhead with the &amp;quot;Destroy Vehicle&amp;quot; option disabled.&lt;br /&gt;
==== Kinetic ====&lt;br /&gt;
If your missile is heavy enough and moving at a high enough speed, it will also deal impact damage that scales with the how heavy and how fast it is&lt;br /&gt;
&lt;br /&gt;
With a heavy and fast enough missile this can be a decent way to take out ships and structures as the damage radius is often large enough to damage internals&lt;br /&gt;
&lt;br /&gt;
==== Fuzing ====&lt;br /&gt;
The simplest way to fuze a missile is by impact Fuzing, exploding when the missile impacts something.&lt;br /&gt;
The warheads themselves include this function with the impact threashold setting included in the warhead.&lt;br /&gt;
Some heavier missiles can also take enough damage to set off their compression warhead when hitting the ground, in which case no further systems are required.&lt;br /&gt;
&lt;br /&gt;
Against maneuverable targets another option is Proximity Fuzing, where you use information from a Radar or Player Sensor to activate a warhead without directly hitting the target, meaning you can damage the target even if your missile closely misses&lt;br /&gt;
&lt;br /&gt;
=== Propulsion ===&lt;br /&gt;
Anything that produces thrust can be used as propulsion for a missile.&lt;br /&gt;
&lt;br /&gt;
You can even propel one off a steam turbine and propeller if you want to.&lt;br /&gt;
&lt;br /&gt;
Although the sensible approach usually is to use a solid rocket booster, as they can be activated by one input and are very simple to set up.&lt;br /&gt;
=== Attachment ===&lt;br /&gt;
Almost all missiles are attached by Hardpoints, as they include battery charge and can be easily set up, attached and launched&lt;br /&gt;
&lt;br /&gt;
Usually the hardpoint is placed somewhere near the middle of the missile pointing to the side, but it can also be mounted on the back for more compact mounting as the footprint of the missile will be a true 1x1&lt;br /&gt;
&lt;br /&gt;
Missiles can also be stacked and launched out of the same place with the use of a linear track that guides them as they launch&lt;br /&gt;
&lt;br /&gt;
== Direct Radar Guidance ==&lt;br /&gt;
&lt;br /&gt;
== Multi Radar Systems ==&lt;br /&gt;
=== Radar Stacking ===&lt;br /&gt;
=== Non-overlapping Radar Stacking ===&lt;br /&gt;
&lt;br /&gt;
== GPS Guidance ==&lt;br /&gt;
=== The (relatively) Easy Way ===&lt;br /&gt;
=== The Hard Way ===&lt;br /&gt;
&lt;br /&gt;
== Tuning ==&lt;br /&gt;
=== Stability ===&lt;br /&gt;
=== Output Shaping (linearization) ===&lt;br /&gt;
&lt;br /&gt;
== Guidance Laws ==&lt;br /&gt;
=== Direct ===&lt;br /&gt;
=== PN ===&lt;br /&gt;
=== APN ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&#039;&#039;&#039;Launch your missile and watch it fly&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile falls off the hardpoint:&#039;&#039;&#039;&lt;br /&gt;
* Launching with the release node instead of launch node on the hardpoint connector&lt;br /&gt;
* Booster not connected to launched node on hardpoint&lt;br /&gt;
* Booster not attached properly/on the wrong grid (common with smokeless motors)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go towards the target at all:&#039;&#039;&#039;&lt;br /&gt;
* Incorrect radar settings, make sure it is set to static with a reasonable FOV&lt;br /&gt;
* Radar isn&#039;t being activated on launch, connected the active node of the radar to the hardpoint&lt;br /&gt;
* Missile fins aren&#039;t connected, connect the missile output composite node of the radar to your fins&lt;br /&gt;
* Screwed up balancing, make sure you have fins in front and behind your missile&#039;s center of mass&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go in the right direction:&#039;&#039;&#039;&lt;br /&gt;
* Fins are rotated incorrectly, refer to the guidance section&lt;br /&gt;
* Fins are connected to the radar output instead of missile output&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile goes towards the target but loses control:&#039;&#039;&#039;&lt;br /&gt;
* Authority and stability issue, it is highly recommended to disconnect all fins from the radar and connect them one by one starting from the very front one, usually you will not need to link every fin to the radar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile spins out immediately:&#039;&#039;&#039;&lt;br /&gt;
* Asymmetric center of mass, check the center of mass of your missile in the editor&lt;br /&gt;
* Center of lift way too forward, missile need passive stability to fly properly, add more rear &lt;br /&gt;
fins or remove some front fins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile explodes immediately:&#039;&#039;&#039;&lt;br /&gt;
* Increase the impact threshold of your warhead&lt;br /&gt;
[[Category:Weapons]]&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=502</id>
		<title>Guided Missile</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=502"/>
		<updated>2026-05-29T05:08:59Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Historically, the term &amp;quot;missile&amp;quot; refers to any object or projectile that is forcibly thrown, launched, or propelled at a target.&lt;br /&gt;
&lt;br /&gt;
Nowadays its almost exclusively used to refer to the guided metal poles with flame shooting out the back that get launched from military planes, boats, and various land vehicles.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
=== The Problem to Solve ===&lt;br /&gt;
A missile is a closed system that needs to accomplish one task, and should be designed as so. Starting with the planning.&lt;br /&gt;
&lt;br /&gt;
Before building anything, you should first think about what your missile will be trying to accomplish. A short range air to air and a sea skimming AShM are both missiles, but they share very little things in common. You should be always designing your missile for the target.&lt;br /&gt;
&lt;br /&gt;
=== Design Constraints ===&lt;br /&gt;
Once you know what your missile needs to do, you can use that to define the set of design goals and constraints to follow during the design process.&lt;br /&gt;
&lt;br /&gt;
Goals and constraints may include but are not limited to:&lt;br /&gt;
* Range&lt;br /&gt;
* Speed&lt;br /&gt;
* Maneuverability&lt;br /&gt;
* Launch platform&lt;br /&gt;
&lt;br /&gt;
These are all things that will affect your final design, and should be set before building.&lt;br /&gt;
&lt;br /&gt;
== Segments &amp;amp; Parts ==&lt;br /&gt;
=== Guidance ===&lt;br /&gt;
==== Radar ====&lt;br /&gt;
A majority of missiles simply use the missile output from the 1x1 missile radar, this has many advantages such as having built-in proportional navigation (an algorithm that makes your missile intercept the target rather than chase it) and no radar noise. Making it a good choice for moving targets.&lt;br /&gt;
&lt;br /&gt;
This also has the disadvantage of being able to be affected or disabled by chaff&lt;br /&gt;
==== Laser ====&lt;br /&gt;
Similarly to radar, the missile laser receiver block has a missile output with built-in PN guidance. And also doesn&#039;t really have any countermeasures if they don&#039;t know your laser frequency.&lt;br /&gt;
&lt;br /&gt;
The main disadvantage of laser guidance is that you have to keep a laser pointed at the target in the first place.&lt;br /&gt;
==== Other ====&lt;br /&gt;
More advanced missiles almost always also include some form of GPS guidance to be able to fly towards targets that are either not in range or not in view. GPS guidance will be discussed later on in the GPS guidance section.&lt;br /&gt;
&lt;br /&gt;
=== Maneuvering ===&lt;br /&gt;
==== Fins ====&lt;br /&gt;
The simplest way of manoeuvering is using built in fins in the solid booster fuel cylinders, as the composite node can be directly controlled by the missile output of the radar&lt;br /&gt;
&lt;br /&gt;
The rule of thumb is the center of stability should always be behind your center of mass, you can roughly find the center of stability by either:&lt;br /&gt;
* Averaging the position of your fins, accounting for the fin factors&lt;br /&gt;
* Dropping your missile from a high height (it should fall forwards)&lt;br /&gt;
&lt;br /&gt;
This ensures that the missile does not become unstable and/or spin during guidance, as a missile that is too unstable will almost always overcompensate for its deviation to target and start oscillating, wasting energy and reducing the final accuracy&lt;br /&gt;
&lt;br /&gt;
This also means that there will always be a tradeoff in hitting more accurately and turning harder, which can later be pushed further with more advanced control systems.&lt;br /&gt;
==== Other ====&lt;br /&gt;
&lt;br /&gt;
=== Payload ===&lt;br /&gt;
==== Warhead ====&lt;br /&gt;
There are 4 warheads, small, medium, large, and EMP&lt;br /&gt;
&lt;br /&gt;
* Small warheads damage everything in a 2.5m (10 block) radius&lt;br /&gt;
* Medium warheads damage everything in a 3.25 (13 block) radius&lt;br /&gt;
* Large warheads damage everything within a 3.5m (14 block) radius&lt;br /&gt;
* EMPs make vehicles within 500 meters unpowered for a minute&lt;br /&gt;
&lt;br /&gt;
Each warhead also has a limit for the heaviest vehicle they can outright delete.&lt;br /&gt;
&lt;br /&gt;
==== Compression Warhead ====&lt;br /&gt;
Autocannon drums filled with Bertha HE rounds are often used as an extremely potent and compact payload for striking heavier targets. They can be made by opening up the XML file of a drum and changing ammo type and damage to &amp;lt;code&amp;gt;property_ammo_type=&amp;quot;14&amp;quot; property_ammo_damage=&amp;quot;1&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
These need some sort of mechanism to be set off as they don&#039;t detonate on impact as easily as regular warheads. This is often done with a machine gun pointed at the drum or a small warhead with the &amp;quot;Destroy Vehicle&amp;quot; option disabled.&lt;br /&gt;
==== Kinetic ====&lt;br /&gt;
If your missile is heavy enough and moving at a high enough speed, it will also deal impact damage that scales with the how heavy and how fast it is&lt;br /&gt;
&lt;br /&gt;
With a heavy and fast enough missile this can be a decent way to take out ships and structures as the damage radius is often large enough to damage internals&lt;br /&gt;
&lt;br /&gt;
==== Fuzing ====&lt;br /&gt;
The simplest way to fuze a missile is by impact Fuzing, exploding when the missile impacts something.&lt;br /&gt;
The warheads themselves include this function with the impact threashold setting included in the warhead.&lt;br /&gt;
Some heavier missiles can also take enough damage to set off their compression warhead when hitting the ground, in which case no further systems are required.&lt;br /&gt;
&lt;br /&gt;
Against maneuverable targets another option is Proximity Fuzing, where you use information from a Radar or Player Sensor to activate a warhead without directly hitting the target, meaning you can damage the target even if your missile closely misses&lt;br /&gt;
&lt;br /&gt;
=== Propulsion ===&lt;br /&gt;
Anything that produces thrust can be used as propulsion for a missile.&lt;br /&gt;
&lt;br /&gt;
You can even propel one off a steam turbine and propeller if you want to.&lt;br /&gt;
&lt;br /&gt;
Although the sensible approach usually is to use a solid rocket booster, as they can be activated by one input and are very simple to set up.&lt;br /&gt;
=== Attachment ===&lt;br /&gt;
Almost all missiles are attached by Hardpoints, as they include battery charge and can be easily set up, attached and launched&lt;br /&gt;
&lt;br /&gt;
Usually the hardpoint is placed somewhere near the middle of the missile pointing to the side, but it can also be mounted on the back for more compact mounting as the footprint of the missile will be a true 1x1&lt;br /&gt;
&lt;br /&gt;
Missiles can also be stacked and launched out of the same place with the use of a linear track that guides them as they launch&lt;br /&gt;
&lt;br /&gt;
== Direct Radar Guidance ==&lt;br /&gt;
&lt;br /&gt;
== Multi Radar Systems ==&lt;br /&gt;
=== Radar Stacking ===&lt;br /&gt;
=== Non-overlapping Radar Stacking ===&lt;br /&gt;
&lt;br /&gt;
== GPS Guidance ==&lt;br /&gt;
=== The (relatively) Easy Way ===&lt;br /&gt;
=== The Hard Way ===&lt;br /&gt;
&lt;br /&gt;
== Tuning ==&lt;br /&gt;
=== Stability ===&lt;br /&gt;
=== Output Shaping (linearization) ===&lt;br /&gt;
&lt;br /&gt;
== Guidance Laws ==&lt;br /&gt;
=== Direct ===&lt;br /&gt;
=== PN ===&lt;br /&gt;
=== APN ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&#039;&#039;&#039;Launch your missile and watch it fly&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile falls off the hardpoint:&#039;&#039;&#039;&lt;br /&gt;
* Launching with the release node instead of launch node on the hardpoint connector&lt;br /&gt;
* Booster not connected to launched node on hardpoint&lt;br /&gt;
* Booster not attached properly/on the wrong grid (common with smokeless motors)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go towards the target at all:&#039;&#039;&#039;&lt;br /&gt;
* Incorrect radar settings, make sure it is set to static with a reasonable FOV&lt;br /&gt;
* Radar isn&#039;t being activated on launch, connected the active node of the radar to the hardpoint&lt;br /&gt;
* Missile fins aren&#039;t connected, connect the missile output composite node of the radar to your fins&lt;br /&gt;
* Screwed up balancing, make sure you have fins in front and behind your missile&#039;s center of mass&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go in the right direction:&#039;&#039;&#039;&lt;br /&gt;
* Fins are rotated incorrectly, refer to the guidance section&lt;br /&gt;
* Fins are connected to the radar output instead of missile output&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile goes towards the target but loses control:&#039;&#039;&#039;&lt;br /&gt;
* Authority and stability issue, it is highly recommended to disconnect all fins from the radar and connect them one by one starting from the very front one, usually you will not need to link every fin to the radar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile spins out immediately:&#039;&#039;&#039;&lt;br /&gt;
* Asymmetric center of mass, check the center of mass of your missile in the editor&lt;br /&gt;
* Center of lift way too forward, missile need passive stability to fly properly, add more rear &lt;br /&gt;
fins or remove some front fins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile explodes immediately:&#039;&#039;&#039;&lt;br /&gt;
* Increase the impact threshold of your warhead&lt;br /&gt;
[[Category:Weapons]]&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=501</id>
		<title>Guided Missile</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=501"/>
		<updated>2026-05-29T05:04:40Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Historically, the term &amp;quot;missile&amp;quot; refers to any object or projectile that is forcibly thrown, launched, or propelled at a target.&lt;br /&gt;
&lt;br /&gt;
Nowadays its almost exclusively used to refer to the guided metal poles with flame shooting out the back that get launched from military planes, boats, and various land vehicles.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
=== The Problem to Solve ===&lt;br /&gt;
A missile is a closed system that needs to accomplish one task, and should be designed as so. Starting with the planning.&lt;br /&gt;
&lt;br /&gt;
Before building anything, you should first think about what your missile will be trying to accomplish. A short range air to air and a sea skimming AShM are both missiles, but they share very little things in common. You should be always designing your missile for the target.&lt;br /&gt;
&lt;br /&gt;
=== Design Constraints ===&lt;br /&gt;
Once you know what your missile needs to do, you can use that to define the set of design goals and constraints to follow during the design process.&lt;br /&gt;
&lt;br /&gt;
Goals and constraints may include but are not limited to:&lt;br /&gt;
* Range&lt;br /&gt;
* Speed&lt;br /&gt;
* Maneuverability&lt;br /&gt;
* Launch platform&lt;br /&gt;
&lt;br /&gt;
These are all things that will affect your final design, and should be set before building.&lt;br /&gt;
&lt;br /&gt;
== Segments &amp;amp; Parts ==&lt;br /&gt;
=== Guidance ===&lt;br /&gt;
==== Radar ====&lt;br /&gt;
A majority of missiles simply use the missile output from the 1x1 missile radar, this has many advantages such as having built-in proportional navigation (an algorithm that makes your missile intercept the target rather than chase it) and no radar noise. Making it a good choice for moving targets.&lt;br /&gt;
&lt;br /&gt;
This also has the disadvantage of being able to be affected or disabled by chaff&lt;br /&gt;
==== Laser ====&lt;br /&gt;
Similarly to radar, the missile laser receiver block has a missile output with built-in PN guidance. And also doesn&#039;t really have any countermeasures if they don&#039;t know your laser frequency.&lt;br /&gt;
&lt;br /&gt;
The main disadvantage of laser guidance is that you have to keep a laser pointed at the target in the first place.&lt;br /&gt;
==== Other ====&lt;br /&gt;
More advanced missiles almost always also include some form of GPS guidance to be able to fly towards targets that are either not in range or not in view. GPS guidance will be discussed later on in the GPS guidance section.&lt;br /&gt;
&lt;br /&gt;
=== Maneuvering ===&lt;br /&gt;
==== Fins ====&lt;br /&gt;
The simplest way of manoeuvering is using built in fins in the solid booster fuel cylinders, as the composite node can be directly controlled by the missile output of the radar&lt;br /&gt;
&lt;br /&gt;
The rule of thumb is the center of stability should always be behind your center of mass, you can roughly find the center of stability by either:&lt;br /&gt;
* Averaging the position of your fins, accounting for the fin factors&lt;br /&gt;
* Dropping your missile from a high height (it should fall forwards)&lt;br /&gt;
&lt;br /&gt;
This ensures that the missile does not become unstable and/or spin during guidance, as a missile that is too unstable will almost always overcompensate for its deviation to target and start oscillating, wasting energy and reducing the final accuracy&lt;br /&gt;
&lt;br /&gt;
This also means that there will always be a tradeoff in hitting more accurately and turning harder, which can later be pushed further with more advanced control systems.&lt;br /&gt;
==== Other ====&lt;br /&gt;
&lt;br /&gt;
=== Payload ===&lt;br /&gt;
==== Warhead ====&lt;br /&gt;
There are 4 warheads, small, medium, large, and EMP&lt;br /&gt;
&lt;br /&gt;
* Small warheads damage everything in a 2.5m (10 block) radius&lt;br /&gt;
* Medium warheads damage everything in a 3.25 (13 block) radius&lt;br /&gt;
* Large warheads damage everything within a 3.5m (14 block) radius&lt;br /&gt;
* EMPs make vehicles within 500 meters unpowered for a minute&lt;br /&gt;
&lt;br /&gt;
Each warhead also has a limit for the heaviest vehicle they can outright delete.&lt;br /&gt;
&lt;br /&gt;
==== Compression Warhead ====&lt;br /&gt;
Autocannon drums filled with Bertha HE rounds are often used as an extremely potent and compact payload for striking heavier targets. They can be made by opening up the XML file of a drum and changing ammo type and damage to &amp;lt;code&amp;gt;property_ammo_type=&amp;quot;14&amp;quot; property_ammo_damage=&amp;quot;1&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
These need some sort of mechanism to be set off as they don&#039;t detonate on impact as easily as regular warheads. This is often done with a machine gun pointed at the drum or a small warhead with the &amp;quot;Destroy Vehicle&amp;quot; option disabled.&lt;br /&gt;
==== Kinetic ====&lt;br /&gt;
If your missile is heavy enough and moving at a high enough speed, it will also deal impact damage that scales with the how heavy and how fast it is&lt;br /&gt;
&lt;br /&gt;
With a heavy and fast enough missile this can be a decent way to take out ships and structures as the damage radius is often large enough to damage internals&lt;br /&gt;
&lt;br /&gt;
==== Fuzing ====&lt;br /&gt;
The simplest way to fuze a missile is by impact Fuzing, exploding when the missile impacts something.&lt;br /&gt;
The warheads themselves include this function with the impact threashold setting included in the warhead.&lt;br /&gt;
Some heavier missiles can also take enough damage to set off their compression warhead when hitting the ground, in which case no further systems are required.&lt;br /&gt;
&lt;br /&gt;
Against maneuverable targets another option is Proximity Fuzing, where you use information from a Radar or Player Sensor to activate a warhead without directly hitting the target, meaning you can damage the target even if your missile closely misses&lt;br /&gt;
&lt;br /&gt;
=== Propulsion ===&lt;br /&gt;
Anything that produces thrust can be used as propulsion for a missile.&lt;br /&gt;
&lt;br /&gt;
You can even propel one off a steam turbine and propeller if you want to.&lt;br /&gt;
&lt;br /&gt;
Although the sensible approach usually is to use a solid rocket booster, as they can be activated by one input and are very simple to set up.&lt;br /&gt;
=== Attachment ===&lt;br /&gt;
Almost all missiles are attached by Hardpoints, as they include battery charge and can be easily set up, attached and launched&lt;br /&gt;
&lt;br /&gt;
Usually the hardpoint is placed somewhere near the middle of the missile pointing to the side, but it can also be mounted on the back for more compact mounting as the footprint of the missile will be a true 1x1&lt;br /&gt;
&lt;br /&gt;
Missiles can also be stacked and launched out of the same place with the use of a linear track that guides them as they launch&lt;br /&gt;
&lt;br /&gt;
== Direct Radar Guidance ==&lt;br /&gt;
&lt;br /&gt;
== Multi Radar Systems ==&lt;br /&gt;
=== Radar Stacking ===&lt;br /&gt;
=== Non-overlapping Radar Stacking ===&lt;br /&gt;
&lt;br /&gt;
== GPS Guidance ==&lt;br /&gt;
=== The (relatively) Easy Way ===&lt;br /&gt;
=== The Hard Way ===&lt;br /&gt;
&lt;br /&gt;
== Tuning ==&lt;br /&gt;
=== Stability ===&lt;br /&gt;
=== Output Shaping (linearization) ===&lt;br /&gt;
&lt;br /&gt;
== Guidance Laws ==&lt;br /&gt;
=== Direct ===&lt;br /&gt;
=== PN ===&lt;br /&gt;
=== APN ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&#039;&#039;&#039;Launch your missile and watch it fly&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile falls off the hardpoint:&#039;&#039;&#039;&lt;br /&gt;
* Launching with the release node instead of launch node on the hardpoint connector&lt;br /&gt;
* Booster not connected to launched node on hardpoint&lt;br /&gt;
* Booster not attached properly/on the wrong grid (common with smokeless motors)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go towards the target at all:&#039;&#039;&#039;&lt;br /&gt;
* Incorrect radar settings, make sure it is set to static with a reasonable FOV&lt;br /&gt;
* Radar isn&#039;t being actiavted on launch, connected the active node of the radar to the hardpoint&lt;br /&gt;
* Missile fins aren&#039;t connected, connect the missile output composite node of the radar to your fins&lt;br /&gt;
* Screwed up balancing, make sure you have fins in front and behind your missile&#039;s center of mass&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go in the right direction:&#039;&#039;&#039;&lt;br /&gt;
* Fins are rotated incorrectly, refer to the guidance section&lt;br /&gt;
* Fins are connected to the radar output instead of missile output&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile goes towards the target but loses control:&#039;&#039;&#039;&lt;br /&gt;
* Authority and stability issue, it is highly recommended to disconnect all fins from the radar and connect them one by one starting from the very front one, usually you will not need to link every fin to the radar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile spins out immediately:&#039;&#039;&#039;&lt;br /&gt;
* Assymetric center of mass, check the center of mass of your missile in the editor&lt;br /&gt;
* Center of lift way too forward, missile need passive stability to fly properly, add more rear &lt;br /&gt;
fins or remove some front fins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile explodes immediately:&#039;&#039;&#039;&lt;br /&gt;
* Increase the impact threshold of your warhead&lt;br /&gt;
[[Category:Weapons]]&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=500</id>
		<title>Guided Missile</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=500"/>
		<updated>2026-05-29T05:04:15Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Historically, the term &amp;quot;missile&amp;quot; refers to any object or projectile that is forcibly thrown, launched, or propelled at a target.&lt;br /&gt;
&lt;br /&gt;
Nowadays its almost exclusively used to refer to the guided metal poles with flame shooting out the back that get launched from military planes, boats, and various land vehicles.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
=== The Problem to Solve ===&lt;br /&gt;
A missile is a closed system that needs to accomplish one task, and should be designed as so. Starting with the planning.&lt;br /&gt;
&lt;br /&gt;
Before building anything, you should first think about what your missile will be trying to accomplish. A short range air to air and a sea skimming AShM are both missiles, but they share very little things in common. You should be always designing your missile for the target.&lt;br /&gt;
&lt;br /&gt;
=== Design Constraints ===&lt;br /&gt;
Once you know what your missile needs to do, you can use that to define the set of design goals and constraints to follow during the design process.&lt;br /&gt;
&lt;br /&gt;
Goals and constraints may include but are not limited to:&lt;br /&gt;
* Range&lt;br /&gt;
* Speed&lt;br /&gt;
* Maneuverability&lt;br /&gt;
* Launch platform&lt;br /&gt;
&lt;br /&gt;
These are all things that will affect your final design, and should be set before building.&lt;br /&gt;
&lt;br /&gt;
== Segments &amp;amp; Parts ==&lt;br /&gt;
=== Guidance ===&lt;br /&gt;
==== Radar ====&lt;br /&gt;
A majority of missiles simply use the missile output from the 1x1 missile radar, this has many advantages such as having built-in proportional navigation (an algorithm that makes your missile intercept the target rather than chase it) and no radar noise. Making it a good choice for moving targets.&lt;br /&gt;
&lt;br /&gt;
This also has the disadvantage of being able to be affected or disabled by chaff&lt;br /&gt;
==== Laser ====&lt;br /&gt;
Similarly to radar, the missile laser receiver block has a missile output with built-in PN guidance. And also doesn&#039;t really have any countermeasures if they don&#039;t know your laser frequency.&lt;br /&gt;
&lt;br /&gt;
The main disadvantage of laser guidance is that you have to keep a laser pointed at the target in the first place.&lt;br /&gt;
==== Other ====&lt;br /&gt;
More advanced missiles almost always also include some form of GPS guidance to be able to fly towards targets that are either not in range or not in view. GPS guidance will be discussed later on in the GPS guidance section.&lt;br /&gt;
&lt;br /&gt;
=== Maneuvering ===&lt;br /&gt;
==== Fins ====&lt;br /&gt;
The simplest way of manoeuvering is using built in fins in the solid booster fuel cylinders, as the composite node can be directly controlled by the missile output of the radar&lt;br /&gt;
&lt;br /&gt;
The rule of thumb is the center of stability should always be behind your center of mass, you can roughly find the center of stability by either:&lt;br /&gt;
* Averaging the position of your fins, accounting for the fin factors&lt;br /&gt;
* Dropping your missile from a high height (it should fall forwards)&lt;br /&gt;
&lt;br /&gt;
This ensures that the missile does not become unstable and/or spin during guidance, as a missile that is too unstable will almost always overcompensate for its deviation to target and start oscillating, wasting energy and reducing the final accuracy&lt;br /&gt;
&lt;br /&gt;
This also means that there will always be a tradeoff in hitting more accurately and turning harder, which can later be pushed further with more advanced control systems.&lt;br /&gt;
==== Other ====&lt;br /&gt;
&lt;br /&gt;
=== Payload ===&lt;br /&gt;
==== Warhead ====&lt;br /&gt;
There are 4 warheads, small, medium, large, and EMP&lt;br /&gt;
&lt;br /&gt;
* Small warheads damage everything in a 2.5m (10 block) radius&lt;br /&gt;
* Medium warheads damage everything in a 3.25 (13 block) radius&lt;br /&gt;
* Large warheads damage everything within a 3.5m (14 block) radius&lt;br /&gt;
* EMPs make vehicles within 500 meters unpowered for a minute&lt;br /&gt;
&lt;br /&gt;
Each warhead also has a limit for the heaviest vehicle they can outright delete.&lt;br /&gt;
&lt;br /&gt;
==== Compression Warhead ====&lt;br /&gt;
Autocannon drums filled with Bertha HE rounds are often used as an extremely potent and compact payload for striking heavier targets. They can be made by opening up the XML file of a drum and changing ammo type and damage to &amp;lt;code&amp;gt;property_ammo_type=&amp;quot;14&amp;quot; property_ammo_damage=&amp;quot;1&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
These need some sort of mechanism to be set off as they don&#039;t detonate on impact as easily as regular warheads. This is often done with a machine gun pointed at the drum or a small warhead with the &amp;quot;Destroy Vehicle&amp;quot; option disabled.&lt;br /&gt;
==== Kinetic ====&lt;br /&gt;
If your missile is heavy enough and moving at a high enough speed, it will also deal impact damage that scales with the how heavy and how fast it is&lt;br /&gt;
&lt;br /&gt;
With a heavy and fast enough missile this can be a decent way to take out ships and structures as the damage radius is often large enough to damage internals&lt;br /&gt;
&lt;br /&gt;
==== Fuzing ====&lt;br /&gt;
The simplest way to fuze a missile is by impact Fuzing, exploding when the missile impacts something.&lt;br /&gt;
The warheads themselves include this function with the impact threashold setting included in the warhead.&lt;br /&gt;
Some heavier missiles can also take enough damage to set off their compression warhead when hitting the ground, in which case no further systems are required.&lt;br /&gt;
&lt;br /&gt;
Against maneuverable targets another option is Proximity Fuzing, where you use information from a Radar or Player Sensor to activate a warhead without directly hitting the target, meaning you can damage the target even if your missile closely misses&lt;br /&gt;
&lt;br /&gt;
=== Propulsion ===&lt;br /&gt;
Anything that produces thrust can be used as propulsion for a missile.&lt;br /&gt;
&lt;br /&gt;
You can even propel one off a steam turbine and propeller if you want to.&lt;br /&gt;
&lt;br /&gt;
Although the sensible approach usually is to use a solid rocket booster, as they can be activated by one input and are very simple to set up.&lt;br /&gt;
=== Attachment ===&lt;br /&gt;
Almost all missiles are attached by Hardpoints, as they include battery charge and can be easily set up, attached and launched&lt;br /&gt;
&lt;br /&gt;
Usually the hardpoint is placed somewhere near the middle of the missile pointing to the side, but it can also be mounted on the back for more compact mounting as the footprint of the missile will be a true 1x1&lt;br /&gt;
&lt;br /&gt;
Missiles can also be stacked and launched out of the same place with the use of a linear track that guides them as they launch&lt;br /&gt;
&lt;br /&gt;
== Direct Radar Guidance ==&lt;br /&gt;
&lt;br /&gt;
== Multi Radar Systems ==&lt;br /&gt;
=== Radar Stacking ===&lt;br /&gt;
=== Non-overlapping Radar Stacking ===&lt;br /&gt;
&lt;br /&gt;
== GPS Guidance ==&lt;br /&gt;
=== The (relatively) Easy Way ===&lt;br /&gt;
=== The Hard Way ===&lt;br /&gt;
&lt;br /&gt;
== Tuning ==&lt;br /&gt;
=== Stability ===&lt;br /&gt;
=== Output Shaping (linearization) ===&lt;br /&gt;
&lt;br /&gt;
== Guidance Laws ==&lt;br /&gt;
=== Direct ===&lt;br /&gt;
=== PN ===&lt;br /&gt;
=== APN ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&#039;&#039;&#039;Launch your missile, watch it, and refer to the subtitle that matches what you see the best&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile falls off the hardpoint:&#039;&#039;&#039;&lt;br /&gt;
* Launching with the release node instead of launch node on the hardpoint connector&lt;br /&gt;
* Booster not connected to launched node on hardpoint&lt;br /&gt;
* Booster not attached properly/on the wrong grid (common with smokeless motors)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go towards the target at all:&#039;&#039;&#039;&lt;br /&gt;
* Incorrect radar settings, make sure it is set to static with a reasonable FOV&lt;br /&gt;
* Radar isn&#039;t being actiavted on launch, connected the active node of the radar to the hardpoint&lt;br /&gt;
* Missile fins aren&#039;t connected, connect the missile output composite node of the radar to your fins&lt;br /&gt;
* Screwed up balancing, make sure you have fins in front and behind your missile&#039;s center of mass&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go in the right direction:&#039;&#039;&#039;&lt;br /&gt;
* Fins are rotated incorrectly, refer to the guidance section&lt;br /&gt;
* Fins are connected to the radar output instead of missile output&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile goes towards the target but loses control:&#039;&#039;&#039;&lt;br /&gt;
* Authority and stability issue, it is highly recommended to disconnect all fins from the radar and connect them one by one starting from the very front one, usually you will not need to link every fin to the radar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile spins out immediately:&#039;&#039;&#039;&lt;br /&gt;
* Assymetric center of mass, check the center of mass of your missile in the editor&lt;br /&gt;
* Center of lift way too forward, missile need passive stability to fly properly, add more rear &lt;br /&gt;
fins or remove some front fins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile explodes immediately:&#039;&#039;&#039;&lt;br /&gt;
* Increase the impact threshold of your warhead&lt;br /&gt;
[[Category:Weapons]]&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=499</id>
		<title>Guided Missile</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=499"/>
		<updated>2026-05-29T05:03:24Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Historically, the term &amp;quot;missile&amp;quot; refers to any object or projectile that is forcibly thrown, launched, or propelled at a target.&lt;br /&gt;
&lt;br /&gt;
Nowadays its almost exclusively used to refer to the guided metal poles with flame shooting out the back that get launched from military planes, boats, and various land vehicles.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
=== The Problem to Solve ===&lt;br /&gt;
A missile is a closed system that needs to accomplish one task, and should be designed as so. Starting with the planning.&lt;br /&gt;
&lt;br /&gt;
Before building anything, you should first think about what your missile will be trying to accomplish. A short range air to air and a sea skimming AShM are both missiles, but they share very little things in common. You should be always designing your missile for the target.&lt;br /&gt;
&lt;br /&gt;
=== Design Constraints ===&lt;br /&gt;
Once you know what your missile needs to do, you can use that to define the set of design goals and constraints to follow during the design process.&lt;br /&gt;
&lt;br /&gt;
Goals and constraints may include but are not limited to:&lt;br /&gt;
* Range&lt;br /&gt;
* Speed&lt;br /&gt;
* Maneuverability&lt;br /&gt;
* Launch platform&lt;br /&gt;
&lt;br /&gt;
These are all things that will affect your final design, and should be set before building.&lt;br /&gt;
&lt;br /&gt;
== Segments &amp;amp; Parts ==&lt;br /&gt;
=== Guidance ===&lt;br /&gt;
==== Radar ====&lt;br /&gt;
A majority of missiles simply use the missile output from the 1x1 missile radar, this has many advantages such as having built-in proportional navigation (an algorithm that makes your missile intercept the target rather than chase it) and no radar noise. Making it a good choice for moving targets.&lt;br /&gt;
&lt;br /&gt;
This also has the disadvantage of being able to be affected or disabled by chaff&lt;br /&gt;
==== Laser ====&lt;br /&gt;
Similarly to radar, the missile laser receiver block has a missile output with built-in PN guidance. And also doesn&#039;t really have any countermeasures if they don&#039;t know your laser frequency.&lt;br /&gt;
&lt;br /&gt;
The main disadvantage of laser guidance is that you have to keep a laser pointed at the target in the first place.&lt;br /&gt;
==== Other ====&lt;br /&gt;
More advanced missiles almost always also include some form of GPS guidance to be able to fly towards targets that are either not in range or not in view. GPS guidance will be discussed later on in the GPS guidance section.&lt;br /&gt;
&lt;br /&gt;
=== Maneuvering ===&lt;br /&gt;
==== Fins ====&lt;br /&gt;
The simplest way of manoeuvering is using built in fins in the solid booster fuel cylinders, as the composite node can be directly controlled by the missile output of the radar&lt;br /&gt;
&lt;br /&gt;
The rule of thumb is the center of stability should always be behind your center of mass, you can roughly find the center of stability by either:&lt;br /&gt;
* Averaging the position of your fins, accounting for the fin factors&lt;br /&gt;
* Dropping your missile from a high height (it should fall forwards)&lt;br /&gt;
&lt;br /&gt;
This ensures that the missile does not become unstable and/or spin during guidance, as a missile that is too unstable will almost always overcompensate for its deviation to target and start oscillating, wasting energy and reducing the final accuracy&lt;br /&gt;
&lt;br /&gt;
This also means that there will always be a tradeoff in hitting more accurately and turning harder, which can later be pushed further with more advanced control systems.&lt;br /&gt;
==== Other ====&lt;br /&gt;
&lt;br /&gt;
=== Payload ===&lt;br /&gt;
==== Warhead ====&lt;br /&gt;
There are 4 warheads, small, medium, large, and EMP&lt;br /&gt;
&lt;br /&gt;
* Small warheads damage everything in a 2.5m (10 block) radius&lt;br /&gt;
* Medium warheads damage everything in a 3.25 (13 block) radius&lt;br /&gt;
* Large warheads damage everything within a 3.5m (14 block) radius&lt;br /&gt;
* EMPs make vehicles within 500 meters unpowered for a minute&lt;br /&gt;
&lt;br /&gt;
Each warhead also has a limit for the heaviest vehicle they can outright delete.&lt;br /&gt;
&lt;br /&gt;
==== Compression Warhead ====&lt;br /&gt;
Autocannon drums filled with Bertha HE rounds are often used as an extremely potent and compact payload for striking heavier targets. They can be made by opening up the XML file of a drum and changing ammo type and damage to &amp;lt;code&amp;gt;property_ammo_type=&amp;quot;14&amp;quot; property_ammo_damage=&amp;quot;1&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
These need some sort of mechanism to be set off as they don&#039;t detonate on impact as easily as regular warheads. This is often done with a machine gun pointed at the drum or a small warhead with the &amp;quot;Destroy Vehicle&amp;quot; option disabled.&lt;br /&gt;
==== Kinetic ====&lt;br /&gt;
If your missile is heavy enough and moving at a high enough speed, it will also deal impact damage that scales with the how heavy and how fast it is&lt;br /&gt;
&lt;br /&gt;
With a heavy and fast enough missile this can be a decent way to take out ships and structures as the damage radius is often large enough to damage internals&lt;br /&gt;
&lt;br /&gt;
==== Fuzing ====&lt;br /&gt;
The simplest way to fuze a missile is by impact Fuzing, exploding when the missile impacts something.&lt;br /&gt;
The warheads themselves include this function with the impact threashold setting included in the warhead.&lt;br /&gt;
Some heavier missiles can also take enough damage to set off their compression warhead when hitting the ground, in which case no further systems are required.&lt;br /&gt;
&lt;br /&gt;
Against maneuverable targets another option is Proximity Fuzing, where you use information from a Radar or Player Sensor to activate a warhead without directly hitting the target, meaning you can damage the target even if your missile closely misses&lt;br /&gt;
&lt;br /&gt;
=== Propulsion ===&lt;br /&gt;
Anything that produces thrust can be used as propulsion for a missile.&lt;br /&gt;
&lt;br /&gt;
You can even propel one off a steam turbine and propeller if you want to.&lt;br /&gt;
&lt;br /&gt;
Although the sensible approach usually is to use a solid rocket booster, as they can be activated by one input and are very simple to set up.&lt;br /&gt;
=== Attachment ===&lt;br /&gt;
Almost all missiles are attached by Hardpoints, as they include battery charge and can be easily set up, attached and launched&lt;br /&gt;
&lt;br /&gt;
Usually the hardpoint is placed somewhere near the middle of the missile pointing to the side, but it can also be mounted on the back for more compact mounting as the footprint of the missile will be a true 1x1&lt;br /&gt;
&lt;br /&gt;
Missiles can also be stacked and launched out of the same place with the use of a linear track that guides them as they launch&lt;br /&gt;
&lt;br /&gt;
== Direct Radar Guidance ==&lt;br /&gt;
&lt;br /&gt;
== Multi Radar Systems ==&lt;br /&gt;
=== Radar Stacking ===&lt;br /&gt;
=== Non-overlapping Radar Stacking ===&lt;br /&gt;
&lt;br /&gt;
== GPS Guidance ==&lt;br /&gt;
=== The (relatively) Easy Way ===&lt;br /&gt;
=== The Hard Way ===&lt;br /&gt;
&lt;br /&gt;
== Tuning ==&lt;br /&gt;
=== Stability ===&lt;br /&gt;
=== Output Shaping (linearization) ===&lt;br /&gt;
&lt;br /&gt;
== Guidance Laws ==&lt;br /&gt;
=== Direct ===&lt;br /&gt;
=== PN ===&lt;br /&gt;
=== APN ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&#039;&#039;&#039;Launch your missile, watch it, and refer to the subtitle that matches what you see the best&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile falls off the hardpoint:&#039;&#039;&#039;&lt;br /&gt;
Launching with the release node instead of launch node on the hardpoint connector&lt;br /&gt;
Booster not connected to launched node on hardpoint&lt;br /&gt;
Booster not attached properly/on the wrong grid (common with smokeless motors)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go towards the target at all:&#039;&#039;&#039;&lt;br /&gt;
Incorrect radar settings, make sure it is set to static with a reasonable FOV&lt;br /&gt;
Radar isn&#039;t being actiavted on launch, connected the active node of the radar to the hardpoint&lt;br /&gt;
Missile fins aren&#039;t connected, connect the missile output composite node of the radar to your fins&lt;br /&gt;
Screwed up balancing, make sure you have fins in front and behind your missile&#039;s center of mass&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go in the right direction:&#039;&#039;&#039;&lt;br /&gt;
Fins are rotated incorrectly, refer to the guidance section&lt;br /&gt;
Fins are connected to the radar output instead of missile output&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile goes towards the target but loses control:&#039;&#039;&#039;&lt;br /&gt;
Authority and stability issue, it is highly recommended to disconnect all fins from the radar and connect them one by one starting from the very front one, usually you will not need to link every fin to the radar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile spins out immediately:&#039;&#039;&#039;&lt;br /&gt;
Assymetric center of mass, check the center of mass of your missile in the editor&lt;br /&gt;
Center of lift way too forward, missile need passive stability to fly properly, add more rear fins or remove some front fins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile explodes immediately:&#039;&#039;&#039;&lt;br /&gt;
Increase the impact threshold of your warhead&lt;br /&gt;
[[Category:Weapons]]&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=498</id>
		<title>Guided Missile</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=498"/>
		<updated>2026-05-29T04:52:05Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Historically, the term &amp;quot;missile&amp;quot; refers to any object or projectile that is forcibly thrown, launched, or propelled at a target.&lt;br /&gt;
&lt;br /&gt;
Nowadays its almost exclusively used to refer to the guided metal poles with flame shooting out the back that get launched from military planes, boats, and various land vehicles.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
=== The Problem to Solve ===&lt;br /&gt;
A missile is a closed system that needs to accomplish one task, and should be designed as so. Starting with the planning.&lt;br /&gt;
&lt;br /&gt;
Before building anything, you should first think about what your missile will be trying to accomplish. A short range air to air and a sea skimming AShM are both missiles, but they share very little things in common. You should be always designing your missile for the target.&lt;br /&gt;
&lt;br /&gt;
=== Design Constraints ===&lt;br /&gt;
Once you know what your missile needs to do, you can use that to define the set of design goals and constraints to follow during the design process.&lt;br /&gt;
&lt;br /&gt;
Goals and constraints may include but are not limited to:&lt;br /&gt;
* Range&lt;br /&gt;
* Speed&lt;br /&gt;
* Maneuverability&lt;br /&gt;
* Launch platform&lt;br /&gt;
&lt;br /&gt;
These are all things that will affect your final design, and should be set before building.&lt;br /&gt;
&lt;br /&gt;
== Segments &amp;amp; Parts ==&lt;br /&gt;
=== Guidance ===&lt;br /&gt;
==== Radar ====&lt;br /&gt;
A majority of missiles simply use the missile output from the 1x1 missile radar, this has many advantages such as having built-in PN guidance and no radar noise. Making it a good choice for moving targets.&lt;br /&gt;
&lt;br /&gt;
This also has the disadvantage of being able to be affected or disabled by chaff&lt;br /&gt;
==== Laser ====&lt;br /&gt;
Similarly to radar, the missile laser receiver block has a missile output with built-in PN guidance. And also doesn&#039;t really have any countermeasures if they don&#039;t know your laser frequency.&lt;br /&gt;
&lt;br /&gt;
The main disadvantage of laser guidance is that you have to keep a laser pointed at the target in the first place.&lt;br /&gt;
==== Other ====&lt;br /&gt;
More advanced missiles almost always also include some form of GPS guidance to be able to fly towards targets that are either not in range or not in view. GPS guidance will be discussed later on in the GPS guidance section.&lt;br /&gt;
&lt;br /&gt;
=== Maneuvering ===&lt;br /&gt;
==== Fins ====&lt;br /&gt;
Most missiles use the built in fins of solid rocket segments for their turning, this is recommended as they double as fuel storage and also do not expand the footprint of your missile. They also use composite as their input which can be hooked directly from the missile output of 1x1 radars.&lt;br /&gt;
==== Other ====&lt;br /&gt;
&lt;br /&gt;
=== Payload ===&lt;br /&gt;
==== Warhead ====&lt;br /&gt;
There are 4 warheads, small, medium, large, and EMP&lt;br /&gt;
&lt;br /&gt;
* Small warheads damage everything in a 2.5m (10 block) radius&lt;br /&gt;
* Medium warheads damage everything in a 3.25 (13 block) radius&lt;br /&gt;
* Large warheads damage everything within a 3.5m (14 block) radius&lt;br /&gt;
* EMPs make vehicles within 500 meters unpowered for a minute&lt;br /&gt;
&lt;br /&gt;
Each warhead also has a limit for the heaviest vehicle they can outright delete.&lt;br /&gt;
&lt;br /&gt;
==== Compression Warhead ====&lt;br /&gt;
==== Kinetic ====&lt;br /&gt;
&lt;br /&gt;
==== Fuzing ====&lt;br /&gt;
&lt;br /&gt;
=== Propulsion ===&lt;br /&gt;
==== Solid Rocket Booster ====&lt;br /&gt;
&lt;br /&gt;
=== Attachment ===&lt;br /&gt;
==== Hardpoint ====&lt;br /&gt;
&lt;br /&gt;
== Direct Radar Guidance ==&lt;br /&gt;
&lt;br /&gt;
== Multi Radar Systems ==&lt;br /&gt;
=== Radar Stacking ===&lt;br /&gt;
=== Non-overlapping Radar Stacking ===&lt;br /&gt;
&lt;br /&gt;
== GPS Guidance ==&lt;br /&gt;
=== The (relatively) Easy Way ===&lt;br /&gt;
=== The Hard Way ===&lt;br /&gt;
&lt;br /&gt;
== Tuning ==&lt;br /&gt;
=== Stability ===&lt;br /&gt;
=== Output Shaping (linearization) ===&lt;br /&gt;
&lt;br /&gt;
== Guidance Laws ==&lt;br /&gt;
=== Direct ===&lt;br /&gt;
=== PN ===&lt;br /&gt;
=== APN ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&#039;&#039;&#039;Launch your missile, watch it, and refer to the subtitle that matches what you see the best&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile falls off the hardpoint:&#039;&#039;&#039;&lt;br /&gt;
Launching with the release node instead of launch node on the hardpoint connector&lt;br /&gt;
Booster not connected to launched node on hardpoint&lt;br /&gt;
Booster not attached properly/on the wrong grid (common with smokeless motors)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go towards the target at all:&#039;&#039;&#039;&lt;br /&gt;
Incorrect radar settings, make sure it is set to static with a reasonable FOV&lt;br /&gt;
Radar isn&#039;t being actiavted on launch, connected the active node of the radar to the hardpoint&lt;br /&gt;
Missile fins aren&#039;t connected, connect the missile output composite node of the radar to your fins&lt;br /&gt;
Screwed up balancing, make sure you have fins in front and behind your missile&#039;s center of mass&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile doesn&#039;t go in the right direction:&#039;&#039;&#039;&lt;br /&gt;
Fins are rotated incorrectly, refer to the guidance section&lt;br /&gt;
Fins are connected to the radar output instead of missile output&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile goes towards the target but loses control:&#039;&#039;&#039;&lt;br /&gt;
Authority and stability issue, it is highly recommended to disconnect all fins from the radar and connect them one by one starting from the very front one, usually you will not need to link every fin to the radar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile spins out immediately:&#039;&#039;&#039;&lt;br /&gt;
Assymetric center of mass, check the center of mass of your missile in the editor&lt;br /&gt;
Center of lift way too forward, missile need passive stability to fly properly, add more rear fins or remove some front fins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;My missile explodes immediately:&#039;&#039;&#039;&lt;br /&gt;
Increase the impact threshold of your warhead&lt;br /&gt;
[[Category:Weapons]]&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=497</id>
		<title>Guided Missile</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=497"/>
		<updated>2026-05-29T04:51:11Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Historically, the term &amp;quot;missile&amp;quot; refers to any object or projectile that is forcibly thrown, launched, or propelled at a target.&lt;br /&gt;
&lt;br /&gt;
Nowadays its almost exclusively used to refer to the guided metal poles with flame shooting out the back that get launched from military planes, boats, and various land vehicles.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
=== The Problem to Solve ===&lt;br /&gt;
A missile is a closed system that needs to accomplish one task, and should be designed as so. Starting with the planning.&lt;br /&gt;
&lt;br /&gt;
Before building anything, you should first think about what your missile will be trying to accomplish. A short range air to air and a sea skimming AShM are both missiles, but they share very little things in common. You should be always designing your missile for the target.&lt;br /&gt;
&lt;br /&gt;
=== Design Constraints ===&lt;br /&gt;
Once you know what your missile needs to do, you can use that to define the set of design goals and constraints to follow during the design process.&lt;br /&gt;
&lt;br /&gt;
Goals and constraints may include but are not limited to:&lt;br /&gt;
* Range&lt;br /&gt;
* Speed&lt;br /&gt;
* Maneuverability&lt;br /&gt;
* Launch platform&lt;br /&gt;
&lt;br /&gt;
These are all things that will affect your final design, and should be set before building.&lt;br /&gt;
&lt;br /&gt;
== Segments &amp;amp; Parts ==&lt;br /&gt;
=== Guidance ===&lt;br /&gt;
==== Radar ====&lt;br /&gt;
A majority of missiles simply use the missile output from the 1x1 missile radar, this has many advantages such as having built-in PN guidance and no radar noise. Making it a good choice for moving targets.&lt;br /&gt;
&lt;br /&gt;
This also has the disadvantage of being able to be affected or disabled by chaff&lt;br /&gt;
==== Laser ====&lt;br /&gt;
Similarly to radar, the missile laser receiver block has a missile output with built-in PN guidance. And also doesn&#039;t really have any countermeasures if they don&#039;t know your laser frequency.&lt;br /&gt;
&lt;br /&gt;
The main disadvantage of laser guidance is that you have to keep a laser pointed at the target in the first place.&lt;br /&gt;
==== Other ====&lt;br /&gt;
More advanced missiles almost always also include some form of GPS guidance to be able to fly towards targets that are either not in range or not in view. GPS guidance will be discussed later on in the GPS guidance section.&lt;br /&gt;
&lt;br /&gt;
=== Maneuvering ===&lt;br /&gt;
==== Fins ====&lt;br /&gt;
Most missiles use the built in fins of solid rocket segments for their turning, this is recommended as they double as fuel storage and also do not expand the footprint of your missile. They also use composite as their input which can be hooked directly from the missile output of 1x1 radars.&lt;br /&gt;
==== Other ====&lt;br /&gt;
&lt;br /&gt;
=== Payload ===&lt;br /&gt;
==== Warhead ====&lt;br /&gt;
There are 4 warheads, small, medium, large, and EMP&lt;br /&gt;
&lt;br /&gt;
* Small warheads damage everything in a 2.5m (10 block) radius&lt;br /&gt;
* Medium warheads damage everything in a 3.25 (13 block) radius&lt;br /&gt;
* Large warheads damage everything within a 3.5m (14 block) radius&lt;br /&gt;
* EMPs make vehicles within 500 meters unpowered for a minute&lt;br /&gt;
&lt;br /&gt;
Each warhead also has a limit for the heaviest vehicle they can outright delete.&lt;br /&gt;
&lt;br /&gt;
==== Compression Warhead ====&lt;br /&gt;
==== Kinetic ====&lt;br /&gt;
&lt;br /&gt;
==== Fuzing ====&lt;br /&gt;
&lt;br /&gt;
=== Propulsion ===&lt;br /&gt;
==== Solid Rocket Booster ====&lt;br /&gt;
&lt;br /&gt;
=== Attachment ===&lt;br /&gt;
==== Hardpoint ====&lt;br /&gt;
&lt;br /&gt;
== Direct Radar Guidance ==&lt;br /&gt;
&lt;br /&gt;
== Multi Radar Systems ==&lt;br /&gt;
=== Radar Stacking ===&lt;br /&gt;
=== Non-overlapping Radar Stacking ===&lt;br /&gt;
&lt;br /&gt;
== GPS Guidance ==&lt;br /&gt;
=== The (relatively) Easy Way ===&lt;br /&gt;
=== The Hard Way ===&lt;br /&gt;
&lt;br /&gt;
== Tuning ==&lt;br /&gt;
=== Stability ===&lt;br /&gt;
=== Output Shaping (linearization) ===&lt;br /&gt;
&lt;br /&gt;
== Guidance Laws ==&lt;br /&gt;
=== Direct ===&lt;br /&gt;
=== PN ===&lt;br /&gt;
=== APN ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Weapons]]&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=490</id>
		<title>Guided Missile</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=490"/>
		<updated>2026-05-29T03:25:30Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Historically, the term &amp;quot;missile&amp;quot; refers to any object or projectile that is forcibly thrown, launched, or propelled at a target.&lt;br /&gt;
&lt;br /&gt;
Nowadays its almost exclusively used to refer to the guided metal poles with flame shooting out the back that get launched from military planes, boats, and various land vehicles.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
=== The Problem to Solve ===&lt;br /&gt;
A missile is a closed system that needs to accomplish one task, and should be designed as so. Starting with the planning.&lt;br /&gt;
&lt;br /&gt;
Before building anything, you should first think about what your missile will be trying to accomplish. A short range air to air and a sea skimming AShM are both missiles, but they share very little things in common. You should be always designing your missile for the target.&lt;br /&gt;
&lt;br /&gt;
=== Design Constraints ===&lt;br /&gt;
Once you know what your missile needs to do, you can use that to define the set of design goals and constraints to follow during the design process.&lt;br /&gt;
&lt;br /&gt;
Goals and constraints may include but are not limited to:&lt;br /&gt;
* Range&lt;br /&gt;
* Speed&lt;br /&gt;
* Maneuverability&lt;br /&gt;
* Launch platform&lt;br /&gt;
&lt;br /&gt;
These are all things that will affect your final design, and should be set before building.&lt;br /&gt;
&lt;br /&gt;
== Segments &amp;amp; Parts ==&lt;br /&gt;
=== Guidance ===&lt;br /&gt;
==== Radar ====&lt;br /&gt;
==== Laser ====&lt;br /&gt;
==== Other ====&lt;br /&gt;
&lt;br /&gt;
=== Maneuvering ===&lt;br /&gt;
==== Fins ====&lt;br /&gt;
==== Other ====&lt;br /&gt;
&lt;br /&gt;
=== Payload ===&lt;br /&gt;
==== Warhead ====&lt;br /&gt;
==== Compression Warhead ====&lt;br /&gt;
==== Kinetic ====&lt;br /&gt;
&lt;br /&gt;
==== Fuzing ====&lt;br /&gt;
&lt;br /&gt;
=== Propulsion ===&lt;br /&gt;
==== Solid Rocket Booster ====&lt;br /&gt;
&lt;br /&gt;
=== Attachment ===&lt;br /&gt;
==== Hardpoint ====&lt;br /&gt;
&lt;br /&gt;
== Direct Radar Guidance ==&lt;br /&gt;
&lt;br /&gt;
== Multi Radar Systems ==&lt;br /&gt;
=== Radar Stacking ===&lt;br /&gt;
=== Non-overlapping Radar Stacking ===&lt;br /&gt;
&lt;br /&gt;
== GPS Guidance ==&lt;br /&gt;
=== The (relatively) Easy Way ===&lt;br /&gt;
=== The Hard Way ===&lt;br /&gt;
&lt;br /&gt;
== Tuning ==&lt;br /&gt;
=== Stability ===&lt;br /&gt;
=== Output Shaping (linearization) ===&lt;br /&gt;
&lt;br /&gt;
== Guidance Laws ==&lt;br /&gt;
=== Direct ===&lt;br /&gt;
=== PN ===&lt;br /&gt;
=== APN ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Weapons]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=483</id>
		<title>Guided Missile</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=483"/>
		<updated>2026-05-29T03:12:18Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Historically, the term &amp;quot;missile&amp;quot; refers to any object or projectile that is forcibly thrown, launched, or propelled at a target.&lt;br /&gt;
&lt;br /&gt;
Nowadays its almost exclusively used to refer to the guided metal poles with flame shooting out the back that get launched from military planes, boats, and various land vehicles.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
=== The Problem to Solve ===&lt;br /&gt;
=== Design Constraints ===&lt;br /&gt;
&lt;br /&gt;
== Segments &amp;amp; Parts ==&lt;br /&gt;
=== Guidance ===&lt;br /&gt;
=== Maneuvering ===&lt;br /&gt;
=== Payload ===&lt;br /&gt;
=== Propulsion ===&lt;br /&gt;
=== Attachment ===&lt;br /&gt;
&lt;br /&gt;
== Direct Radar Guidance ==&lt;br /&gt;
&lt;br /&gt;
== Multi Radar Systems ==&lt;br /&gt;
=== Radar Stacking ===&lt;br /&gt;
=== Non-overlapping Radar Stacking ===&lt;br /&gt;
&lt;br /&gt;
== GPS Guidance ==&lt;br /&gt;
=== The (relatively) Easy Way ===&lt;br /&gt;
=== The Hard Way ===&lt;br /&gt;
&lt;br /&gt;
== Tuning ==&lt;br /&gt;
=== Stability ===&lt;br /&gt;
=== Output Shaping (linearization) ===&lt;br /&gt;
&lt;br /&gt;
== Guidance Laws ==&lt;br /&gt;
=== Direct ===&lt;br /&gt;
=== PN ===&lt;br /&gt;
=== APN ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Weapons]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=479</id>
		<title>Guided Missile</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Guided_Missile&amp;diff=479"/>
		<updated>2026-05-29T02:54:45Z</updated>

		<summary type="html">&lt;p&gt;Sav: made missile page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;lorem&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Instrument_Panel_Guide&amp;diff=476</id>
		<title>Instrument Panel Guide</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Instrument_Panel_Guide&amp;diff=476"/>
		<updated>2026-05-29T02:29:06Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Input &amp;amp; Output */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
The instrument panel is a compact way to fit multiple (4) buttons, switches or dials into one block. It uses composite signals for both input and output.&lt;br /&gt;
&lt;br /&gt;
Each &amp;quot;module&amp;quot; on the instrument panel can be individually set in the property menu of the block, where you can select their type and which composite channel they will read from or write to.&lt;br /&gt;
&lt;br /&gt;
== Input &amp;amp; Output ==&lt;br /&gt;
Interestingly the input and output composite of the instrument panel are linked, any composite channel that is unchanged by the panel will remain what it was in the input. &amp;lt;br&amp;gt;Meaning you can chain multiple panels in series provided they all use different channels.&lt;br /&gt;
&lt;br /&gt;
== Displays ==&lt;br /&gt;
&lt;br /&gt;
=== Dial ===&lt;br /&gt;
Functions like a normal dial block.&lt;br /&gt;
&lt;br /&gt;
=== Gauge ===&lt;br /&gt;
Functions like a normal gauge block, just without the secondary input.&lt;br /&gt;
&lt;br /&gt;
=== Indicator ===&lt;br /&gt;
Functions like a normal indicator block.&lt;br /&gt;
&lt;br /&gt;
=== Bar Segment ===&lt;br /&gt;
&lt;br /&gt;
=== Seven Segment ===&lt;br /&gt;
&lt;br /&gt;
=== Radial Segment ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
&lt;br /&gt;
=== Button ===&lt;br /&gt;
Functions like a normal button, except instead of having a separate push and toggle variant, you get to select it in the property menu.&lt;br /&gt;
&lt;br /&gt;
=== Arrow Button ===&lt;br /&gt;
Functions like a normal button, except its shaped like a triangle, the direction it points in can be changed in the property menu.&lt;br /&gt;
&lt;br /&gt;
=== Flip Switch ===&lt;br /&gt;
Functions like a toggle button.&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Instrument_Panel_Guide&amp;diff=475</id>
		<title>Instrument Panel Guide</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Instrument_Panel_Guide&amp;diff=475"/>
		<updated>2026-05-29T02:26:33Z</updated>

		<summary type="html">&lt;p&gt;Sav: erm meow&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
The instrument panel is a compact way to fit multiple (4) buttons, switches or dials into one block. It uses composite signals for both input and output.&lt;br /&gt;
&lt;br /&gt;
== Input &amp;amp; Output ==&lt;br /&gt;
Interestingly the input and output composite of the instrument panel are linked, any composite channel that is unchanged by the panel will remain what it was in the input. &amp;lt;br&amp;gt;Meaning you can chain multiple panels in series provided they all use different channels.&lt;br /&gt;
&lt;br /&gt;
== Displays ==&lt;br /&gt;
&lt;br /&gt;
=== Dial ===&lt;br /&gt;
Functions like a normal dial block.&lt;br /&gt;
&lt;br /&gt;
=== Gauge ===&lt;br /&gt;
Functions like a normal gauge block, just without the secondary input.&lt;br /&gt;
&lt;br /&gt;
=== Indicator ===&lt;br /&gt;
Functions like a normal indicator block.&lt;br /&gt;
&lt;br /&gt;
=== Bar Segment ===&lt;br /&gt;
&lt;br /&gt;
=== Seven Segment ===&lt;br /&gt;
&lt;br /&gt;
=== Radial Segment ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
&lt;br /&gt;
=== Button ===&lt;br /&gt;
Functions like a normal button, except instead of having a separate push and toggle variant, you get to select it in the property menu.&lt;br /&gt;
&lt;br /&gt;
=== Arrow Button ===&lt;br /&gt;
Functions like a normal button, except its shaped like a triangle, the direction it points in can be changed in the property menu.&lt;br /&gt;
&lt;br /&gt;
=== Flip Switch ===&lt;br /&gt;
Functions like a toggle button.&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Modular_engine&amp;diff=471</id>
		<title>Modular engine</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Modular_engine&amp;diff=471"/>
		<updated>2026-05-29T01:33:55Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Crankshaft */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Components COLLAPSE! ===&lt;br /&gt;
&lt;br /&gt;
==== Crankshaft ====&lt;br /&gt;
Crankshafts are the core of an engine. Cylinders can be attached to the outer surfaces, while other crankshafts can be attached in the front/back to form longer engines. &lt;br /&gt;
&lt;br /&gt;
Converters allow the usage of different crankshaft, cylinder, or flywheel sizes in one engine. &lt;br /&gt;
[[File:Crankshafts array.png|alt=All available crankshafts, from size 1x1x1 to 5x5x5|thumb|Crankshafts]]&lt;br /&gt;
There are 4 unique crankshaft components and two converters.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that crankshafts do have resistance, so it is more efficient to minimize the amount of unnecessary crankshafts.&lt;br /&gt;
&lt;br /&gt;
==== Flywheel ====&lt;br /&gt;
A flywheel is an &#039;&#039;optional&#039;&#039; component that adds rotational inertia (or momentum) to the engine. This can help with stability and smoothness in some cases, and also help prevent stalling.&lt;br /&gt;
&lt;br /&gt;
It is not recommended to add a flywheel if it isn&#039;t needed.&lt;br /&gt;
&lt;br /&gt;
==== Cylinder ====&lt;br /&gt;
Cylinders allow for fuel and oxygen to combust. Large cylinders function in the same way as small ones, the only difference being dramatically increased fuel consumption and power output. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Cylinder&lt;br /&gt;
!Effective Power&lt;br /&gt;
|-&lt;br /&gt;
|1x1x1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|3x3x3&lt;br /&gt;
|27&lt;br /&gt;
|-&lt;br /&gt;
|5x5x5&lt;br /&gt;
|125&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Clutch ====&lt;br /&gt;
A modular engine clutch allows for mechanical power (RPS) to exit the engine.&lt;br /&gt;
&lt;br /&gt;
The engagement of the clutch follows &amp;lt;code&amp;gt;x^3&amp;lt;/code&amp;gt;, where X is the input. Meaning the amount of power transferred does not linearly correlate to the input to the clutch.&lt;br /&gt;
And instead follows the curve shown by the graph below.&lt;br /&gt;
&lt;br /&gt;
[[File:Modular engine clutch engagement.png|thumb|Graph of clutch input to torque transfer]]&lt;br /&gt;
&lt;br /&gt;
This non-linearity can be corrected for by feeding the input to the clutch through a function block with the function &amp;lt;code&amp;gt;x^(1/3)&amp;lt;/code&amp;gt; first to compensate.&lt;br /&gt;
&lt;br /&gt;
NOTE: Engaging the clutch too early or too suddenly can prevent the engine from starting by continuously stalling it.&lt;br /&gt;
&lt;br /&gt;
==== Manifolds ====&lt;br /&gt;
There are four manifold types:&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;Fuel&#039;&#039;&#039; manifold allows fuel to enter the engine. A fuel pump is never required.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;Air&#039;&#039;&#039; manifold allows air to enter the engine. Adding a pump here is optional, but can increase power by up to 80%. It does, however, also increase heat generation and complicate the Air:Fuel ratio calculation.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;Exhaust&#039;&#039;&#039; manifold allows exhaust gas to leave the engine.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;Coolant&#039;&#039;&#039; manifold has two connections that allow coolant to enter and leave the engine. All coolant is shared throughout the entire engine, which means that a single coolant manifold can draw coolant from both outputs at the same time, provided the coolant enters the engine through another manifold. Coolant manifolds do &#039;&#039;&#039;not&#039;&#039;&#039; have a built-in pump, which means they will not circulate coolant without an external pump.&lt;br /&gt;
&lt;br /&gt;
==== Belt addons ====&lt;br /&gt;
Belt drives are not required to build a functioning engine, and can be replaced by a second clutch. There are a number of components that can be attached to a belt drive:&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;starter motor&#039;&#039;&#039; is a small electric motor used to start the engine. It can reach up to 5 RPS.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;alternator&#039;&#039;&#039; is a small generator. It is extremely inefficient compared to [[Generator]]&amp;lt;nowiki/&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;belt pump&#039;&#039;&#039; is a small pump with an inconveniently placed fluid input. It isn&#039;t very powerful or efficient, but is commonly used to circulate coolant in extremely small engines.&lt;br /&gt;
[[Category:Engine]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Modular_engine&amp;diff=469</id>
		<title>Modular engine</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Modular_engine&amp;diff=469"/>
		<updated>2026-05-29T01:32:28Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Manifolds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Components COLLAPSE! ===&lt;br /&gt;
&lt;br /&gt;
==== Crankshaft ====&lt;br /&gt;
Crankshafts are the core of an engine. Cylinders can be attached to the outer surfaces, while other crankshafts can be attached in the front/back to form longer engines. &lt;br /&gt;
&lt;br /&gt;
Converters allow the usage of different crankshaft, cylinder, or flywheel sizes in one engine. &lt;br /&gt;
[[File:Crankshafts array.png|alt=All available crankshafts, from size 1x1x1 to 5x5x5|thumb|Crankshafts]]&lt;br /&gt;
There are 4 unique crankshaft components and two converters.&lt;br /&gt;
&lt;br /&gt;
==== Flywheel ====&lt;br /&gt;
A flywheel is an &#039;&#039;optional&#039;&#039; component that adds rotational inertia (or momentum) to the engine. This can help with stability and smoothness in some cases, and also help prevent stalling.&lt;br /&gt;
&lt;br /&gt;
It is not recommended to add a flywheel if it isn&#039;t needed.&lt;br /&gt;
&lt;br /&gt;
==== Cylinder ====&lt;br /&gt;
Cylinders allow for fuel and oxygen to combust. Large cylinders function in the same way as small ones, the only difference being dramatically increased fuel consumption and power output. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Cylinder&lt;br /&gt;
!Effective Power&lt;br /&gt;
|-&lt;br /&gt;
|1x1x1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|3x3x3&lt;br /&gt;
|27&lt;br /&gt;
|-&lt;br /&gt;
|5x5x5&lt;br /&gt;
|125&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Clutch ====&lt;br /&gt;
A modular engine clutch allows for mechanical power (RPS) to exit the engine.&lt;br /&gt;
&lt;br /&gt;
The engagement of the clutch follows &amp;lt;code&amp;gt;x^3&amp;lt;/code&amp;gt;, where X is the input. Meaning the amount of power transferred does not linearly correlate to the input to the clutch.&lt;br /&gt;
And instead follows the curve shown by the graph below.&lt;br /&gt;
&lt;br /&gt;
[[File:Modular engine clutch engagement.png|thumb|Graph of clutch input to torque transfer]]&lt;br /&gt;
&lt;br /&gt;
This non-linearity can be corrected for by feeding the input to the clutch through a function block with the function &amp;lt;code&amp;gt;x^(1/3)&amp;lt;/code&amp;gt; first to compensate.&lt;br /&gt;
&lt;br /&gt;
NOTE: Engaging the clutch too early or too suddenly can prevent the engine from starting by continuously stalling it.&lt;br /&gt;
&lt;br /&gt;
==== Manifolds ====&lt;br /&gt;
There are four manifold types:&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;Fuel&#039;&#039;&#039; manifold allows fuel to enter the engine. A fuel pump is never required.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;Air&#039;&#039;&#039; manifold allows air to enter the engine. Adding a pump here is optional, but can increase power by up to 80%. It does, however, also increase heat generation and complicate the Air:Fuel ratio calculation.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;Exhaust&#039;&#039;&#039; manifold allows exhaust gas to leave the engine.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;Coolant&#039;&#039;&#039; manifold has two connections that allow coolant to enter and leave the engine. All coolant is shared throughout the entire engine, which means that a single coolant manifold can draw coolant from both outputs at the same time, provided the coolant enters the engine through another manifold. Coolant manifolds do &#039;&#039;&#039;not&#039;&#039;&#039; have a built-in pump, which means they will not circulate coolant without an external pump.&lt;br /&gt;
&lt;br /&gt;
==== Belt addons ====&lt;br /&gt;
Belt drives are not required to build a functioning engine, and can be replaced by a second clutch. There are a number of components that can be attached to a belt drive:&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;starter motor&#039;&#039;&#039; is a small electric motor used to start the engine. It can reach up to 5 RPS.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;alternator&#039;&#039;&#039; is a small generator. It is extremely inefficient compared to [[Generator]]&amp;lt;nowiki/&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;belt pump&#039;&#039;&#039; is a small pump with an inconveniently placed fluid input. It isn&#039;t very powerful or efficient, but is commonly used to circulate coolant in extremely small engines.&lt;br /&gt;
[[Category:Engine]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Modular_engine&amp;diff=468</id>
		<title>Modular engine</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Modular_engine&amp;diff=468"/>
		<updated>2026-05-29T01:31:30Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Components COLLAPSE! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Components COLLAPSE! ===&lt;br /&gt;
&lt;br /&gt;
==== Crankshaft ====&lt;br /&gt;
Crankshafts are the core of an engine. Cylinders can be attached to the outer surfaces, while other crankshafts can be attached in the front/back to form longer engines. &lt;br /&gt;
&lt;br /&gt;
Converters allow the usage of different crankshaft, cylinder, or flywheel sizes in one engine. &lt;br /&gt;
[[File:Crankshafts array.png|alt=All available crankshafts, from size 1x1x1 to 5x5x5|thumb|Crankshafts]]&lt;br /&gt;
There are 4 unique crankshaft components and two converters.&lt;br /&gt;
&lt;br /&gt;
==== Flywheel ====&lt;br /&gt;
A flywheel is an &#039;&#039;optional&#039;&#039; component that adds rotational inertia (or momentum) to the engine. This can help with stability and smoothness in some cases, and also help prevent stalling.&lt;br /&gt;
&lt;br /&gt;
It is not recommended to add a flywheel if it isn&#039;t needed.&lt;br /&gt;
&lt;br /&gt;
==== Cylinder ====&lt;br /&gt;
Cylinders allow for fuel and oxygen to combust. Large cylinders function in the same way as small ones, the only difference being dramatically increased fuel consumption and power output. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Cylinder&lt;br /&gt;
!Effective Power&lt;br /&gt;
|-&lt;br /&gt;
|1x1x1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|3x3x3&lt;br /&gt;
|27&lt;br /&gt;
|-&lt;br /&gt;
|5x5x5&lt;br /&gt;
|125&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Clutch ====&lt;br /&gt;
A modular engine clutch allows for mechanical power (RPS) to exit the engine.&lt;br /&gt;
&lt;br /&gt;
The engagement of the clutch follows &amp;lt;code&amp;gt;x^3&amp;lt;/code&amp;gt;, where X is the input. Meaning the amount of power transferred does not linearly correlate to the input to the clutch.&lt;br /&gt;
And instead follows the curve shown by the graph below.&lt;br /&gt;
&lt;br /&gt;
[[File:Modular engine clutch engagement.png|thumb|Graph of clutch input to torque transfer]]&lt;br /&gt;
&lt;br /&gt;
This non-linearity can be corrected for by feeding the input to the clutch through a function block with the function &amp;lt;code&amp;gt;x^(1/3)&amp;lt;/code&amp;gt; first to compensate.&lt;br /&gt;
&lt;br /&gt;
NOTE: Engaging the clutch too early or too suddenly can prevent the engine from starting by continuously stalling it.&lt;br /&gt;
&lt;br /&gt;
==== Manifolds ====&lt;br /&gt;
There are four manifold types:&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;Fuel&#039;&#039;&#039; manifold allows fuel to enter the engine. A fuel pump is never required.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;Air&#039;&#039;&#039; manifold allows air to enter the engine. Adding a pump here is optional, but can increase power by up to 80%. It does, however, also increase heat generation and complicate the Air:Fuel ratio calculation.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;Exhaust&#039;&#039;&#039; manifold allows exhaust gas to leave the engine.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;Coolant&#039;&#039;&#039; manifold has two connections that allow coolant to enter and leave the engine. All coolant is shared throughout the entire engine, which means that a single coolant manifold can draw coolant from both outputs at the same time, provided the coolant enters the engine through another manifold. Coolant manifolds do &#039;&#039;&#039;not&#039;&#039;&#039; have a builtin pump, which means they will not circulate coolant without an external pump.&lt;br /&gt;
&lt;br /&gt;
==== Belt addons ====&lt;br /&gt;
Belt drives are not required to build a functioning engine, and can be replaced by a second clutch. There are a number of components that can be attached to a belt drive:&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;starter motor&#039;&#039;&#039; is a small electric motor used to start the engine. It can reach up to 5 RPS.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;alternator&#039;&#039;&#039; is a small generator. It is extremely inefficient compared to [[Generator]]&amp;lt;nowiki/&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;belt pump&#039;&#039;&#039; is a small pump with an inconveniently placed fluid input. It isn&#039;t very powerful or efficient, but is commonly used to circulate coolant in extremely small engines.&lt;br /&gt;
[[Category:Engine]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Modular_engine&amp;diff=466</id>
		<title>Modular engine</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Modular_engine&amp;diff=466"/>
		<updated>2026-05-29T01:30:12Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Clutch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Components COLLAPSE! ===&lt;br /&gt;
&lt;br /&gt;
==== Crankshaft ====&lt;br /&gt;
Crankshafts are the core of an engine. Cylinders can be attached to the outer surfaces, while other crankshafts can be attached in the front/back to form longer engines. &lt;br /&gt;
&lt;br /&gt;
Converters allow the usage of different crankshaft, cylinder, or flywheel sizes in one engine. &lt;br /&gt;
[[File:Crankshafts array.png|alt=All available crankshafts, from size 1x1x1 to 5x5x5|thumb|Crankshafts]]&lt;br /&gt;
There are 4 unique crankshaft components and two converters.&lt;br /&gt;
&lt;br /&gt;
==== Flywheel ====&lt;br /&gt;
A flywheel is an &#039;&#039;optional&#039;&#039; component that adds rotational inertia (or momentum) to the engine. This can help with stability and smoothness in some cases, and also help prevent stalling.&lt;br /&gt;
&lt;br /&gt;
It is not recommended to add a flywheel if it isn&#039;t needed.&lt;br /&gt;
&lt;br /&gt;
==== Cylinder ====&lt;br /&gt;
Cylinders allow for fuel and oxygen to combust. Large cylinders function in the same way as small ones, the only difference being dramatically increased fuel consumption and power output. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Cylinder&lt;br /&gt;
!Effective Power&lt;br /&gt;
|-&lt;br /&gt;
|1x1x1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|3x3x3&lt;br /&gt;
|27&lt;br /&gt;
|-&lt;br /&gt;
|5x5x5&lt;br /&gt;
|125&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Clutch ====&lt;br /&gt;
A modular engine clutch allows for mechanical power (RPS) to exit the engine.&lt;br /&gt;
&lt;br /&gt;
The engagement of the clutch follows &amp;lt;code&amp;gt;x^3&amp;lt;/code&amp;gt;, where X is the input. Meaning the amount of power transferred does not linearly correlate to the input to the clutch.&lt;br /&gt;
And instead follows the curve shown by the graph below.&lt;br /&gt;
&lt;br /&gt;
[[File:Modular engine clutch engagement.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
This non-linearity can be corrected for by feeding the input to the clutch through a function block with the function &amp;lt;code&amp;gt;x^(1/3)&amp;lt;/code&amp;gt; first to compensate.&lt;br /&gt;
&lt;br /&gt;
NOTE: Engaging the clutch too early or too suddenly can prevent the engine from starting by continuously stalling it.&lt;br /&gt;
&lt;br /&gt;
==== Manifolds ====&lt;br /&gt;
There are four manifold types:&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;Fuel&#039;&#039;&#039; manifold allows fuel to enter the engine. A fuel pump is never required.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;Air&#039;&#039;&#039; manifold allows air to enter the engine. Adding a pump here is optional, but can increase power by up to 80%. It does, however, also increase heat generation and complicate the Air:Fuel ratio calculation.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;Exhaust&#039;&#039;&#039; manifold allows exhaust gas to leave the engine.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;Coolant&#039;&#039;&#039; manifold has two connections that allow coolant to enter and leave the engine. All coolant is shared throughout the entire engine, which means that a single coolant manifold can draw coolant from both outputs at the same time, provided the coolant enters the engine through another manifold. Coolant manifolds do &#039;&#039;&#039;not&#039;&#039;&#039; have a builtin pump, which means they will not circulate coolant without an external pump.&lt;br /&gt;
&lt;br /&gt;
==== Belt addons ====&lt;br /&gt;
Belt drives are not required to build a functioning engine, and can be replaced by a second clutch. There are a number of components that can be attached to a belt drive:&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;starter motor&#039;&#039;&#039; is a small electric motor used to start the engine. It can reach up to 5 RPS.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;alternator&#039;&#039;&#039; is a small generator. It is extremely inefficient compared to [[Generator]]&amp;lt;nowiki/&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;belt pump&#039;&#039;&#039; is a small pump with an inconveniently placed fluid input. It isn&#039;t very powerful or efficient, but is commonly used to circulate coolant in extremely small engines.&lt;br /&gt;
[[Category:Engine]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:Modular_engine_clutch_engagement.png&amp;diff=465</id>
		<title>File:Modular engine clutch engagement.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:Modular_engine_clutch_engagement.png&amp;diff=465"/>
		<updated>2026-05-29T01:27:26Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A curve showing the correlation between input to the clutch and the torque transfer&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Modular_engine&amp;diff=463</id>
		<title>Modular engine</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Modular_engine&amp;diff=463"/>
		<updated>2026-05-29T01:19:57Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Flywheel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Components COLLAPSE! ===&lt;br /&gt;
&lt;br /&gt;
==== Crankshaft ====&lt;br /&gt;
Crankshafts are the core of an engine. Cylinders can be attached to the outer surfaces, while other crankshafts can be attached in the front/back to form longer engines. &lt;br /&gt;
&lt;br /&gt;
Converters allow the usage of different crankshaft, cylinder, or flywheel sizes in one engine. &lt;br /&gt;
[[File:Crankshafts array.png|alt=All available crankshafts, from size 1x1x1 to 5x5x5|thumb|Crankshafts]]&lt;br /&gt;
There are 4 unique crankshaft components and two converters.&lt;br /&gt;
&lt;br /&gt;
==== Flywheel ====&lt;br /&gt;
A flywheel is an &#039;&#039;optional&#039;&#039; component that adds rotational inertia (or momentum) to the engine. This can help with stability and smoothness in some cases, and also help prevent stalling.&lt;br /&gt;
&lt;br /&gt;
It is not recommended to add a flywheel if it isn&#039;t needed.&lt;br /&gt;
&lt;br /&gt;
==== Cylinder ====&lt;br /&gt;
Cylinders allow for fuel and oxygen to combust. Large cylinders function in the same way as small ones, the only difference being dramatically increased fuel consumption and power output. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Cylinder&lt;br /&gt;
!Effective Power&lt;br /&gt;
|-&lt;br /&gt;
|1x1x1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|3x3x3&lt;br /&gt;
|27&lt;br /&gt;
|-&lt;br /&gt;
|5x5x5&lt;br /&gt;
|125&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Clutch ====&lt;br /&gt;
A modular engine clutch allows for mechanical power (RPS) to exit the engine. An input of 0.0 indicates a fully disengaged clutch, outputting no power. An input of 1.0 will fully engage the clutch.&lt;br /&gt;
&lt;br /&gt;
Differently than regular clutches, the power output starts immediately, rather than requiring an input of &amp;gt;0.3&lt;br /&gt;
&lt;br /&gt;
NOTE: Engaging the clutch too early can prevent the engine from starting by continuously stalling it.&lt;br /&gt;
&lt;br /&gt;
==== Manifolds ====&lt;br /&gt;
There are four manifold types:&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;Fuel&#039;&#039;&#039; manifold allows fuel to enter the engine. A fuel pump is never required.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;Air&#039;&#039;&#039; manifold allows air to enter the engine. Adding a pump here is optional, but can increase power by up to 80%. It does, however, also increase heat generation and complicate the Air:Fuel ratio calculation.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;Exhaust&#039;&#039;&#039; manifold allows exhaust gas to leave the engine.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;Coolant&#039;&#039;&#039; manifold has two connections that allow coolant to enter and leave the engine. All coolant is shared throughout the entire engine, which means that a single coolant manifold can draw coolant from both outputs at the same time, provided the coolant enters the engine through another manifold. Coolant manifolds do &#039;&#039;&#039;not&#039;&#039;&#039; have a builtin pump, which means they will not circulate coolant without an external pump.&lt;br /&gt;
&lt;br /&gt;
==== Belt addons ====&lt;br /&gt;
Belt drives are not required to build a functioning engine, and can be replaced by a second clutch. There are a number of components that can be attached to a belt drive:&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;starter motor&#039;&#039;&#039; is a small electric motor used to start the engine. It can reach up to 5 RPS.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;alternator&#039;&#039;&#039; is a small generator. It is extremely inefficient compared to [[Generator]]&amp;lt;nowiki/&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;belt pump&#039;&#039;&#039; is a small pump with an inconveniently placed fluid input. It isn&#039;t very powerful or efficient, but is commonly used to circulate coolant in extremely small engines.&lt;br /&gt;
[[Category:Engine]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Radar&amp;diff=367</id>
		<title>Radar</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Radar&amp;diff=367"/>
		<updated>2026-04-28T22:42:54Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;im just gonna throw some information in here I can format it later&lt;br /&gt;
&lt;br /&gt;
range = (fovX * fovY)^-1 * multiplier&lt;br /&gt;
&lt;br /&gt;
multiplier = &amp;lt;br&amp;gt;&lt;br /&gt;
8 for missile radar &amp;lt;br&amp;gt;&lt;br /&gt;
24 for regular radar &amp;lt;br&amp;gt;&lt;br /&gt;
40 for phalanx radar&lt;br /&gt;
&lt;br /&gt;
radars need multiple ticks before a target appears depending on their max range&lt;br /&gt;
&lt;br /&gt;
(max range/ 2000) (rounded up)&lt;br /&gt;
&lt;br /&gt;
radar detectors only output true not when a radar looks at it but when a radar actually acquires a new position value&lt;br /&gt;
&lt;br /&gt;
meaning a radar with a max range of more than 2000 will only trigger a radar detector every 2 ticks&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Radar&amp;diff=366</id>
		<title>Radar</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Radar&amp;diff=366"/>
		<updated>2026-04-28T22:23:25Z</updated>

		<summary type="html">&lt;p&gt;Sav: Created page with &amp;quot;lorem&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;lorem&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=PID_Controllers&amp;diff=295</id>
		<title>PID Controllers</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=PID_Controllers&amp;diff=295"/>
		<updated>2026-03-20T02:11:31Z</updated>

		<summary type="html">&lt;p&gt;Sav: create PID controller page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;lorem&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Microcontrollers_%26_Logic&amp;diff=294</id>
		<title>Microcontrollers &amp; Logic</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Microcontrollers_%26_Logic&amp;diff=294"/>
		<updated>2026-03-18T01:40:03Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Equal */ spacing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Microcontrollers are a way of condensing logic in Stormworks, they are programable processors that can be custom made to fulfil a wide array of tasks and use cases within Stormworks using Lua blocks, Logic Gates, mathematical functions, etc. With microcontrollers (MCs) you can use a variety of logic gates that are not accessible through the traditional parts menu within the vehicle builder, as a result not only are MCs good at condensing logic, but also give the player access to a wider variety of options and paths to take in order to fulfil the required task.&lt;br /&gt;
&lt;br /&gt;
This page will go over how to create a microcontroller, and go through a majority of the logic blocks that are found within Stormworks and show you examples on how they are used with images.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Microcontroller ===&lt;br /&gt;
[[File:MC tab location.png|left|thumb|439x439px|MC Tab Location]]&lt;br /&gt;
&lt;br /&gt;
==== Properties Initial setup. ====&lt;br /&gt;
[[File:Name and parts menu example.png|thumb|298x298px|Parts Menu Example]]&lt;br /&gt;
Step 1 in any MC is creating one. At the top of your vehicle editor you will see 8 tabs, you want to select the final one labelled &amp;quot;Microcontroller Editor&amp;quot;. Once in this mode, it will default you to the &amp;quot;Design&amp;quot; settings and you will see 3 tabs; &amp;quot;Properties&amp;quot;, &amp;quot;Logic&amp;quot; and &amp;quot;Symbol&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*Properties tab is where you will define a name and description for your microcontroller; this is what it will appear as in your parts menu. You also will have the opportunity to define the size of your microcontroller; with the smallest scale being &amp;lt;code&amp;gt;1 Block × 1 Block × 1 Block&amp;lt;/code&amp;gt; and the maximum being &amp;lt;code&amp;gt;6 Block × 6 Block × 1 Block&amp;lt;/code&amp;gt;. It is important to select the correct size however this can be edited at any time, you can make it as large as possible and condense later.&lt;br /&gt;
*Logic tab is where you will set the various logic nodes.&lt;br /&gt;
&lt;br /&gt;
*Symbol Tab is where you will setup the symbol that will appear in the parts menu for your microcontroller. This is done by toggling each pixel from dark grey to light grey in a &amp;lt;code&amp;gt;16 × 16&amp;lt;/code&amp;gt; grid.&lt;br /&gt;
&lt;br /&gt;
==== Logic Nodes ====&lt;br /&gt;
Step 2 in creating a microcontroller is assigning your Logic Nodes. To do this, go to the &amp;quot;Logic&amp;quot; tab in the microcontroller designer and select the large blue addition symbol which is labelled &amp;quot;Add Node&amp;quot; when you hover your mouse over it. Once done, you will see a red &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; node appear in the list, as well as a red circle appear on the microcontroller in the bottom left slot. From here, we can choose the kind of node, and whether or not we want the node to be an input variable (going into the microcontroller) or an output variable (leaving the microcontroller), here you can also set a name and a description for your logic nodes. The different forms of logic nodes are;[[File:Node layering demonstration.gif|thumb|298x298px|Node Layering]]&lt;br /&gt;
*&amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; - Alternatively referred to as Boolean nodes; this is your basic binary On or Off logic transfer node. &#039;&#039;The default colouring is Red&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; - This node will transfer a numerical value. &#039;&#039;The default colouring is Green.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;composite&amp;lt;/code&amp;gt; - This is your composite channel node; containing 32 channels for both &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; data, Meaning it is possible to pass 64 different channels of information through this single node, provided 32 different &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; values and 32 different &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; values. &#039;&#039;The default colouring is Purple.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;video&amp;lt;/code&amp;gt; - This node will allow you to output a video to various components (e.g. monitor, HUD, etc) or input from a Camera component to be modified (e.g. adding a sight or data to a HUD). &#039;&#039;The default colouring is Light Blue.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt; - This node will allow you to input and manipulate audio from microphones. &#039;&#039;The default colouring is Khaki Green.&#039;&#039;&lt;br /&gt;
Following game version &amp;lt;code&amp;gt;v1.15.10 - The Microcontroller Layers Update&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&#039;&#039;Steam Announcement Page for update.&#039;&#039;https://store.steampowered.com/news/app/573090/view/507351614918492485&amp;lt;/ref&amp;gt; in January of 2026 you are now able to layer logic nodes over one-another allowing for more compact microcontrollers.&lt;br /&gt;
&lt;br /&gt;
== Logic Editor ==&lt;br /&gt;
The Final step is going into the logic editor; represented at the top of the Microcontroller editor by the Lightbulb. This will bring you to a large grid with its own toolbar and parts menu that includes various logic gates for various different functions; in here you will also see the nodes you have selected in the &amp;quot;Design&amp;quot; tab as boxes with node input or output anchors, that share the same name and description as given in the Logic Design tab. Now you can start making your microcontroller&#039;s logic.&lt;br /&gt;
&lt;br /&gt;
==== Logic Gates ====&lt;br /&gt;
Once you have successfully set up your logic nodes; you can begin to learn what the various logic gates do. To understand this, we will need to first understand what a truth table is; a Truth Table&amp;lt;ref&amp;gt;&#039;&#039;Wikipedia Page for Truth tables&#039;&#039; https://en.wikipedia.org/wiki/Truth_table&amp;lt;/ref&amp;gt; is used to map out various logic gate or mathematical outcomes in a given system. (&#039;&#039;see example of an AND gate truth table below&#039;&#039;). In this page; we will be using &amp;lt;code&amp;gt;A, B, C&amp;lt;/code&amp;gt; as inputs variable, and &amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt; as output variable.&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |AND Gate Example&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Arithmetic&amp;quot; gates ===&lt;br /&gt;
[[File:arithmetic_logic_gates.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Arithmetic&amp;quot; gates tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Abs =====&lt;br /&gt;
[[File:ABS_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the absolute value of the input value (negative numbers become positive).&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Useful if you need to know &amp;quot;how far is x from 0&amp;quot;, or when needing to guarantee that something is a positive number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;in = 1   out = 1&lt;br /&gt;
&lt;br /&gt;
in = -1   out = 1&lt;br /&gt;
&lt;br /&gt;
in = -15   out = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Add =====&lt;br /&gt;
[[File:ADD_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Adds the two input values together and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Simply adds the two inputs together&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x=1 y=1, out=2&lt;br /&gt;
&lt;br /&gt;
x=10 y=-5, out=5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Subtract =====&lt;br /&gt;
[[File:SUBTRACT_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Subtracts the second input from the first input and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Subtracts the second number from the first, can also be understood as an Add block except the second input is inverted&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x=2 y=1, out=1&lt;br /&gt;
&lt;br /&gt;
x=10 y=5, out=5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Multiply =====&lt;br /&gt;
[[File:MULTIPLY_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Multiplies the two input values and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Multiplies the two inputs together&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x=2 y=2, out=4&lt;br /&gt;
&lt;br /&gt;
x=10 y=5, out=50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Divide =====&lt;br /&gt;
[[File:DIVIDE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Divides the first input by the second and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Divides the first number by the second number.&amp;lt;br&amp;gt;&lt;br /&gt;
If dividing by 0, it will output 0 on the Number output and output True on the Boolean output instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x=4 y=2, out=2&lt;br /&gt;
&lt;br /&gt;
x=10 y=2, out=5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Clamp =====&lt;br /&gt;
[[File:CLAMP_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Clamps the input value between a set min and max and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The input number will be clamped to always be within the range set in the properties&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x=4 range=(-1, 1), out=1&lt;br /&gt;
&lt;br /&gt;
x=4 range=(-5, 5), out=4&lt;br /&gt;
&lt;br /&gt;
x=-10 range=(-5, 5), out=-5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Equal =====&lt;br /&gt;
[[File:EQUAL_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Compares whether or not two numbers are equal within a set accuracy.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Checks if two numbers are equal, outputs true if they are.&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;quot;Epsilon&amp;quot; setting within it sets the threshold for how close numbers have to be to be considered equal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x=4 y=4 epsilon=0.1, output=true&lt;br /&gt;
&lt;br /&gt;
x=4 y=3 epsilon=0.1, output=false&lt;br /&gt;
&lt;br /&gt;
x=4 y=3 epsilon=1, output=true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
===== Constant Number =====&lt;br /&gt;
[[File:CONSTANT_NUMBER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a constant number that is set on the properties panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Always output the number set in the properties.&lt;br /&gt;
&lt;br /&gt;
===== Delta =====&lt;br /&gt;
[[File:DELTA_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the difference between the input and the input from the previous tick.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Measures the rate of change of a number, by subtracting the value from the previous tick from the current value.&amp;lt;br&amp;gt;&lt;br /&gt;
Can be used to measure rates such as rate of fuel consumption by inputting fuel level.&lt;br /&gt;
&lt;br /&gt;
===== Modulo (fmod) =====&lt;br /&gt;
[[File:DELTA_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the [https://en.wikipedia.org/wiki/Modulo modulo] of input A by input B.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Outputs the remainder from diving input one by input two. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x=3 y=2, output=1&lt;br /&gt;
&lt;br /&gt;
x=5 y=2 epsilon=0.1, output=1&lt;br /&gt;
&lt;br /&gt;
x=12 y=5 epsilon=1, output=2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Arithmetic Function (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z,w,a,b,c,d&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:FUNCTION_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Evaluates a mathematical expression with up to (1 / 3 / 8) input variables and outputs the result.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Arithmetic Function block can perform arithmetic operations on its inputs using the operators:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; - Addition&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; - Subtraction&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; - Multiplication&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; - Division&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; - Modulo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; - Power&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It also has the constants:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pi&amp;lt;/code&amp;gt; - The value of Pi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pi2&amp;lt;/code&amp;gt; - The value of Pi multiplied by 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And the [https://en.wikipedia.org/wiki/Trigonometric_functions Trigonometric Functions]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sin(x)&amp;lt;/code&amp;gt; - Outputs the Sine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cos(x)&amp;lt;/code&amp;gt; - Outputs the Cosine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tan(x)&amp;lt;/code&amp;gt; - Outputs the Tangent of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;asin(x)&amp;lt;/code&amp;gt; - Outputs the Arcsine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;acos(x)&amp;lt;/code&amp;gt; - Outputs the Arccosine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;atan(x)&amp;lt;/code&amp;gt; - Outputs the Arctangent of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;atan2(x, y)&amp;lt;/code&amp;gt; - &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It also has functions for:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;max(x,y)&amp;lt;/code&amp;gt; - Outputs the higher value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;min(x,y)&amp;lt;/code&amp;gt; - Outputs the lower value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; - Rounds x up&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; - Rounds x down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;round(x)&amp;lt;/code&amp;gt; - Rounds x (normally)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;abs(x)&amp;lt;/code&amp;gt; - Outputs the absolute value of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sgn(x)&amp;lt;/code&amp;gt; - Outputs the sign of x (1 if positive or x=0) (-1 if negative)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sqrt(x)&amp;lt;/code&amp;gt; - Outputs the square root of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len(x,y)&amp;lt;/code&amp;gt; - Outputs the length of the vector (x,y)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len2(x,y)&amp;lt;/code&amp;gt; - Outputs the length of the vector (x,y) without square rooting the result&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;lerp(x,y,z)&amp;lt;/code&amp;gt; - Linearly interpolates from x to y using z as the position&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;clamp(x,y,z)&amp;lt;/code&amp;gt; - Clamps x to be within y and z&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Logical&amp;quot; gates ===&lt;br /&gt;
[[File:Logical_tab_-_logic_nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Logical&amp;quot; gates tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== AND Gate =====&lt;br /&gt;
&lt;br /&gt;
[[File:AND_Gate_Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical AND of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This logic gate will only output a signal if both inputs are toggled on.&lt;br /&gt;
[[File:AND Gate gif.gif|none|thumb|231x231px|AND Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NAND Gate =====&lt;br /&gt;
[[File:NAND Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NAND of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output a signal if either of the signals are toggled on; but will output no signal if both inputs are toggled on.&lt;br /&gt;
[[File:NAND Gate gif.gif|none|thumb|233x233px|NAND Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== OR Gate =====&lt;br /&gt;
[[File:OR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical OR of its two input signals.&#039;&#039;&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will output an On signal if either of the 2 inputs are toggled on. This is the most common way of combining 2 &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; signals. &lt;br /&gt;
[[File:OR gate gif.gif|none|thumb|234x234px|OR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NOR Gate =====&lt;br /&gt;
[[File:NOR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NOR of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This gate will only output a signal if neither input is toggled on. If either or both inputs are toggled on, the gate will not output any signal.&lt;br /&gt;
[[File:NOR Gate Gif.gif|none|thumb|234x234px|NOR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== XOR Gate =====&lt;br /&gt;
[[File:XOR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the Logical XOR of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This gate outputs a signal if only output a signal if either A or B are toggled on; but wont output a signal if both or neither are enabled.&lt;br /&gt;
[[File:XOR Gate Gif.gif|none|thumb|234x234px|XOR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NOT Gate =====&lt;br /&gt;
[[File:NOT Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NOT of its input signal&#039;&#039;.&amp;quot;&lt;br /&gt;
This will output the opposing signal inputted; On becomes Off, Off becomes On.&lt;br /&gt;
[[File:NOT Gate Gif.gif|none|thumb|234x234px|NOT Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Pulse (Toggle to Push) =====&lt;br /&gt;
[[File:Pulse Symbol.png|frameless|36x36px]] &amp;quot;&#039;&#039;A switch that outputs a single tick pulse. It can be configured to pulse when being switched from off to on (default), on to off, or always when the input signa&#039;&#039;-&#039;&#039;l changes.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Push To Toggle =====&lt;br /&gt;
[[File:Push to Toggle.png|frameless|35x35px]] &amp;quot;&#039;&#039;An on/off switch that is toggled every time a new on signal is sent to its input.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== JK Flip Flop =====&lt;br /&gt;
[[File:JK FlipFlop Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;An JK Flip flop that can be set and reset using two on/off inputs.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== SR Latch =====&lt;br /&gt;
[[File:SR Latch Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;An SR latch that can be set and reset using two on/off inputs.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Constant On Signal =====&lt;br /&gt;
[[File:Constant On Signal Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a constant on signal.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output a constant on signal.&lt;br /&gt;
[[File:Constant On gif.gif|none|thumb|234x234px|Constant On Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Boolean Functions (Both &amp;lt;code&amp;gt;x,y,z,w&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z,w,a,b,c,d&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:FUNCTION logic symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Evaluates a logical expression with up to &amp;lt;code&amp;gt;4 to 8&amp;lt;/code&amp;gt; input variables and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Boolean Functions block can perform any number and combination of AND, OR, XOR, and NOT operations on its boolean inputs using the operators:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; - AND&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; - OR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; - XOR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; - NOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Control&amp;quot; gates ===&lt;br /&gt;
&lt;br /&gt;
[[File:Control_tab_-_logic_nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Control&amp;quot; nodes tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Blinker =====&lt;br /&gt;
[[File:BLINKER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a value that blinks on and off at a set rate.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Capacitor =====&lt;br /&gt;
[[File:CAPACITOR_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Charges up when receiving an on signal, then discharges over a period of time.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Greater than =====&lt;br /&gt;
[[File:GREATER_THAN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is greater than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Less than =====&lt;br /&gt;
[[File:LESS_THAN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is less than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Memory Register=====&lt;br /&gt;
[[File:MEMORY_REGISTER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Remembers the input value when receiving a signal to the Set node. When the Reset node receives a signal, the stored number is cleared to a value that can be customised in the properties panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Numerical Junction =====&lt;br /&gt;
[[File:NUMERICAL_JUNCTION_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the input number to one of the outputs depending on whether or not the Switch Signal is on. The path that the input doesn&#039;t take will output a value of 0&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Numerical Switchbox =====&lt;br /&gt;
[[File:NUMERICAL_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is less than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Threshold=====&lt;br /&gt;
[[File:THRESHOLD_GATE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input value when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Timer (&amp;lt;code&amp;gt;RTF&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;RTO&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;TOF&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;TON&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:TIMER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Variable input timer.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RTF&amp;lt;/code&amp;gt; - Outputs an on signal when the timer is less than its duration, resets when signalled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RTO&amp;lt;/code&amp;gt; - Outputs an on signal when the timer reaches its duration, resets when signalled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TOF&amp;lt;/code&amp;gt; - Outputs an on signal when the timer is less than its duration, resets when off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TON&amp;lt;/code&amp;gt; - Outputs an on signal when the timer reaches its duration, resets when off&lt;br /&gt;
&lt;br /&gt;
===== Up/Down Counter =====&lt;br /&gt;
[[File:UPDOWN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Has an internal value that will increase and decrease when receiving different signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== PID Controller (&amp;amp; advanced variant) =====&lt;br /&gt;
[[File:PID_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;A basic PID controller. The proportional integral and derivative gains can be set in the property panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:PID_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;A PID controller with variable proportional, integral and derivative gains.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For more information and how to use PIDs, refer to [[PID Controllers]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Composite&amp;quot; gates ===&lt;br /&gt;
[[File:Composite tab - logic nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Composite&amp;quot; nodes tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Composite Read (number) =====&lt;br /&gt;
[[File:COMPOSITE_READ_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Reads the number value from a selected channel of a composite input.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Read (on/off) =====&lt;br /&gt;
[[File:COMPOSITE_READ_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Reads the on/off value from a selected channel of a composite input.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Write (number) =====&lt;br /&gt;
[[File:COMPOSITE_WRITE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Writes up to 32 numbers to a composite link in a single logic tick. Only connected channels will be modified. The number of inputs and the channel to begin writing at can be configured.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Write (on/off) =====&lt;br /&gt;
[[File:COMPOSITE_WRITE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Writes up to 32 on/off signals to a composite link in a single logic tick. Only connected channels will be modified. The number of inputs and the channel to begin writing at can be configured.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Switchbox =====&lt;br /&gt;
[[File:COMPOSITE_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input composite when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
===== Video Switchbox =====&lt;br /&gt;
[[File:VIDEO_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input video when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
===== Audio Switchbox =====&lt;br /&gt;
[[File:AUDIO_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input audio when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
===== Number to Composite Binary =====&lt;br /&gt;
[[File:COMPOSITE_BINARY_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Converts a number (rounded) to binary and outputs the bits as composite on/off signals.&#039;&#039;&amp;quot;&lt;br /&gt;
===== Composite Binary to Number =====&lt;br /&gt;
[[File:COMPOSITE_BINARY_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Reads the on/off signals of a composite link and encodes them in the bits of an output number.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== LUA Script =====&lt;br /&gt;
[[File:LUA_SCRIPT_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Runs a custom lua script for advanced logic and drawing to monitors.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:Stormworks Technical Information]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Microcontrollers_%26_Logic&amp;diff=293</id>
		<title>Microcontrollers &amp; Logic</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Microcontrollers_%26_Logic&amp;diff=293"/>
		<updated>2026-03-18T01:39:13Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* &amp;quot;Arithmetic&amp;quot; gates */ examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Microcontrollers are a way of condensing logic in Stormworks, they are programable processors that can be custom made to fulfil a wide array of tasks and use cases within Stormworks using Lua blocks, Logic Gates, mathematical functions, etc. With microcontrollers (MCs) you can use a variety of logic gates that are not accessible through the traditional parts menu within the vehicle builder, as a result not only are MCs good at condensing logic, but also give the player access to a wider variety of options and paths to take in order to fulfil the required task.&lt;br /&gt;
&lt;br /&gt;
This page will go over how to create a microcontroller, and go through a majority of the logic blocks that are found within Stormworks and show you examples on how they are used with images.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Microcontroller ===&lt;br /&gt;
[[File:MC tab location.png|left|thumb|439x439px|MC Tab Location]]&lt;br /&gt;
&lt;br /&gt;
==== Properties Initial setup. ====&lt;br /&gt;
[[File:Name and parts menu example.png|thumb|298x298px|Parts Menu Example]]&lt;br /&gt;
Step 1 in any MC is creating one. At the top of your vehicle editor you will see 8 tabs, you want to select the final one labelled &amp;quot;Microcontroller Editor&amp;quot;. Once in this mode, it will default you to the &amp;quot;Design&amp;quot; settings and you will see 3 tabs; &amp;quot;Properties&amp;quot;, &amp;quot;Logic&amp;quot; and &amp;quot;Symbol&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*Properties tab is where you will define a name and description for your microcontroller; this is what it will appear as in your parts menu. You also will have the opportunity to define the size of your microcontroller; with the smallest scale being &amp;lt;code&amp;gt;1 Block × 1 Block × 1 Block&amp;lt;/code&amp;gt; and the maximum being &amp;lt;code&amp;gt;6 Block × 6 Block × 1 Block&amp;lt;/code&amp;gt;. It is important to select the correct size however this can be edited at any time, you can make it as large as possible and condense later.&lt;br /&gt;
*Logic tab is where you will set the various logic nodes.&lt;br /&gt;
&lt;br /&gt;
*Symbol Tab is where you will setup the symbol that will appear in the parts menu for your microcontroller. This is done by toggling each pixel from dark grey to light grey in a &amp;lt;code&amp;gt;16 × 16&amp;lt;/code&amp;gt; grid.&lt;br /&gt;
&lt;br /&gt;
==== Logic Nodes ====&lt;br /&gt;
Step 2 in creating a microcontroller is assigning your Logic Nodes. To do this, go to the &amp;quot;Logic&amp;quot; tab in the microcontroller designer and select the large blue addition symbol which is labelled &amp;quot;Add Node&amp;quot; when you hover your mouse over it. Once done, you will see a red &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; node appear in the list, as well as a red circle appear on the microcontroller in the bottom left slot. From here, we can choose the kind of node, and whether or not we want the node to be an input variable (going into the microcontroller) or an output variable (leaving the microcontroller), here you can also set a name and a description for your logic nodes. The different forms of logic nodes are;[[File:Node layering demonstration.gif|thumb|298x298px|Node Layering]]&lt;br /&gt;
*&amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; - Alternatively referred to as Boolean nodes; this is your basic binary On or Off logic transfer node. &#039;&#039;The default colouring is Red&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; - This node will transfer a numerical value. &#039;&#039;The default colouring is Green.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;composite&amp;lt;/code&amp;gt; - This is your composite channel node; containing 32 channels for both &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; data, Meaning it is possible to pass 64 different channels of information through this single node, provided 32 different &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; values and 32 different &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; values. &#039;&#039;The default colouring is Purple.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;video&amp;lt;/code&amp;gt; - This node will allow you to output a video to various components (e.g. monitor, HUD, etc) or input from a Camera component to be modified (e.g. adding a sight or data to a HUD). &#039;&#039;The default colouring is Light Blue.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt; - This node will allow you to input and manipulate audio from microphones. &#039;&#039;The default colouring is Khaki Green.&#039;&#039;&lt;br /&gt;
Following game version &amp;lt;code&amp;gt;v1.15.10 - The Microcontroller Layers Update&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&#039;&#039;Steam Announcement Page for update.&#039;&#039;https://store.steampowered.com/news/app/573090/view/507351614918492485&amp;lt;/ref&amp;gt; in January of 2026 you are now able to layer logic nodes over one-another allowing for more compact microcontrollers.&lt;br /&gt;
&lt;br /&gt;
== Logic Editor ==&lt;br /&gt;
The Final step is going into the logic editor; represented at the top of the Microcontroller editor by the Lightbulb. This will bring you to a large grid with its own toolbar and parts menu that includes various logic gates for various different functions; in here you will also see the nodes you have selected in the &amp;quot;Design&amp;quot; tab as boxes with node input or output anchors, that share the same name and description as given in the Logic Design tab. Now you can start making your microcontroller&#039;s logic.&lt;br /&gt;
&lt;br /&gt;
==== Logic Gates ====&lt;br /&gt;
Once you have successfully set up your logic nodes; you can begin to learn what the various logic gates do. To understand this, we will need to first understand what a truth table is; a Truth Table&amp;lt;ref&amp;gt;&#039;&#039;Wikipedia Page for Truth tables&#039;&#039; https://en.wikipedia.org/wiki/Truth_table&amp;lt;/ref&amp;gt; is used to map out various logic gate or mathematical outcomes in a given system. (&#039;&#039;see example of an AND gate truth table below&#039;&#039;). In this page; we will be using &amp;lt;code&amp;gt;A, B, C&amp;lt;/code&amp;gt; as inputs variable, and &amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt; as output variable.&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |AND Gate Example&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Arithmetic&amp;quot; gates ===&lt;br /&gt;
[[File:arithmetic_logic_gates.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Arithmetic&amp;quot; gates tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Abs =====&lt;br /&gt;
[[File:ABS_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the absolute value of the input value (negative numbers become positive).&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Useful if you need to know &amp;quot;how far is x from 0&amp;quot;, or when needing to guarantee that something is a positive number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;in = 1   out = 1&lt;br /&gt;
&lt;br /&gt;
in = -1   out = 1&lt;br /&gt;
&lt;br /&gt;
in = -15   out = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Add =====&lt;br /&gt;
[[File:ADD_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Adds the two input values together and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Simply adds the two inputs together&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x=1 y=1, out=2&lt;br /&gt;
&lt;br /&gt;
x=10 y=-5, out=5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Subtract =====&lt;br /&gt;
[[File:SUBTRACT_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Subtracts the second input from the first input and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Subtracts the second number from the first, can also be understood as an Add block except the second input is inverted&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x=2 y=1, out=1&lt;br /&gt;
&lt;br /&gt;
x=10 y=5, out=5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Multiply =====&lt;br /&gt;
[[File:MULTIPLY_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Multiplies the two input values and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Multiplies the two inputs together&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x=2 y=2, out=4&lt;br /&gt;
&lt;br /&gt;
x=10 y=5, out=50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Divide =====&lt;br /&gt;
[[File:DIVIDE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Divides the first input by the second and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Divides the first number by the second number.&amp;lt;br&amp;gt;&lt;br /&gt;
If dividing by 0, it will output 0 on the Number output and output True on the Boolean output instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x=4 y=2, out=2&lt;br /&gt;
&lt;br /&gt;
x=10 y=2, out=5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Clamp =====&lt;br /&gt;
[[File:CLAMP_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Clamps the input value between a set min and max and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The input number will be clamped to always be within the range set in the properties&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x=4 range=(-1, 1), out=1&lt;br /&gt;
&lt;br /&gt;
x=4 range=(-5, 5), out=4&lt;br /&gt;
&lt;br /&gt;
x=-10 range=(-5, 5), out=-5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Equal =====&lt;br /&gt;
[[File:EQUAL_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Compares whether or not two numbers are equal within a set accuracy.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Checks if two numbers are equal, outputs true if they are.&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;quot;Epsilon&amp;quot; setting within it sets the threshold for how close numbers have to be to be considered equal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x=4 y=4 epsilon=0.1, output=true&lt;br /&gt;
&lt;br /&gt;
x=4 y=3 epsilon=0.1, output=false&lt;br /&gt;
&lt;br /&gt;
x=4 y=3 epsilon=1, output=true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Constant Number =====&lt;br /&gt;
[[File:CONSTANT_NUMBER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a constant number that is set on the properties panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Always output the number set in the properties.&lt;br /&gt;
&lt;br /&gt;
===== Delta =====&lt;br /&gt;
[[File:DELTA_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the difference between the input and the input from the previous tick.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Measures the rate of change of a number, by subtracting the value from the previous tick from the current value.&amp;lt;br&amp;gt;&lt;br /&gt;
Can be used to measure rates such as rate of fuel consumption by inputting fuel level.&lt;br /&gt;
&lt;br /&gt;
===== Modulo (fmod) =====&lt;br /&gt;
[[File:DELTA_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the [https://en.wikipedia.org/wiki/Modulo modulo] of input A by input B.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Outputs the remainder from diving input one by input two. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x=3 y=2, output=1&lt;br /&gt;
&lt;br /&gt;
x=5 y=2 epsilon=0.1, output=1&lt;br /&gt;
&lt;br /&gt;
x=12 y=5 epsilon=1, output=2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Arithmetic Function (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z,w,a,b,c,d&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:FUNCTION_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Evaluates a mathematical expression with up to (1 / 3 / 8) input variables and outputs the result.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Arithmetic Function block can perform arithmetic operations on its inputs using the operators:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; - Addition&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; - Subtraction&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; - Multiplication&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; - Division&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; - Modulo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; - Power&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It also has the constants:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pi&amp;lt;/code&amp;gt; - The value of Pi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pi2&amp;lt;/code&amp;gt; - The value of Pi multiplied by 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And the [https://en.wikipedia.org/wiki/Trigonometric_functions Trigonometric Functions]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sin(x)&amp;lt;/code&amp;gt; - Outputs the Sine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cos(x)&amp;lt;/code&amp;gt; - Outputs the Cosine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tan(x)&amp;lt;/code&amp;gt; - Outputs the Tangent of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;asin(x)&amp;lt;/code&amp;gt; - Outputs the Arcsine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;acos(x)&amp;lt;/code&amp;gt; - Outputs the Arccosine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;atan(x)&amp;lt;/code&amp;gt; - Outputs the Arctangent of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;atan2(x, y)&amp;lt;/code&amp;gt; - &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It also has functions for:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;max(x,y)&amp;lt;/code&amp;gt; - Outputs the higher value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;min(x,y)&amp;lt;/code&amp;gt; - Outputs the lower value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; - Rounds x up&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; - Rounds x down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;round(x)&amp;lt;/code&amp;gt; - Rounds x (normally)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;abs(x)&amp;lt;/code&amp;gt; - Outputs the absolute value of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sgn(x)&amp;lt;/code&amp;gt; - Outputs the sign of x (1 if positive or x=0) (-1 if negative)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sqrt(x)&amp;lt;/code&amp;gt; - Outputs the square root of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len(x,y)&amp;lt;/code&amp;gt; - Outputs the length of the vector (x,y)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len2(x,y)&amp;lt;/code&amp;gt; - Outputs the length of the vector (x,y) without square rooting the result&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;lerp(x,y,z)&amp;lt;/code&amp;gt; - Linearly interpolates from x to y using z as the position&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;clamp(x,y,z)&amp;lt;/code&amp;gt; - Clamps x to be within y and z&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Logical&amp;quot; gates ===&lt;br /&gt;
[[File:Logical_tab_-_logic_nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Logical&amp;quot; gates tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== AND Gate =====&lt;br /&gt;
&lt;br /&gt;
[[File:AND_Gate_Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical AND of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This logic gate will only output a signal if both inputs are toggled on.&lt;br /&gt;
[[File:AND Gate gif.gif|none|thumb|231x231px|AND Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NAND Gate =====&lt;br /&gt;
[[File:NAND Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NAND of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output a signal if either of the signals are toggled on; but will output no signal if both inputs are toggled on.&lt;br /&gt;
[[File:NAND Gate gif.gif|none|thumb|233x233px|NAND Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== OR Gate =====&lt;br /&gt;
[[File:OR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical OR of its two input signals.&#039;&#039;&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will output an On signal if either of the 2 inputs are toggled on. This is the most common way of combining 2 &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; signals. &lt;br /&gt;
[[File:OR gate gif.gif|none|thumb|234x234px|OR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NOR Gate =====&lt;br /&gt;
[[File:NOR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NOR of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This gate will only output a signal if neither input is toggled on. If either or both inputs are toggled on, the gate will not output any signal.&lt;br /&gt;
[[File:NOR Gate Gif.gif|none|thumb|234x234px|NOR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== XOR Gate =====&lt;br /&gt;
[[File:XOR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the Logical XOR of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This gate outputs a signal if only output a signal if either A or B are toggled on; but wont output a signal if both or neither are enabled.&lt;br /&gt;
[[File:XOR Gate Gif.gif|none|thumb|234x234px|XOR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NOT Gate =====&lt;br /&gt;
[[File:NOT Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NOT of its input signal&#039;&#039;.&amp;quot;&lt;br /&gt;
This will output the opposing signal inputted; On becomes Off, Off becomes On.&lt;br /&gt;
[[File:NOT Gate Gif.gif|none|thumb|234x234px|NOT Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Pulse (Toggle to Push) =====&lt;br /&gt;
[[File:Pulse Symbol.png|frameless|36x36px]] &amp;quot;&#039;&#039;A switch that outputs a single tick pulse. It can be configured to pulse when being switched from off to on (default), on to off, or always when the input signa&#039;&#039;-&#039;&#039;l changes.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Push To Toggle =====&lt;br /&gt;
[[File:Push to Toggle.png|frameless|35x35px]] &amp;quot;&#039;&#039;An on/off switch that is toggled every time a new on signal is sent to its input.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== JK Flip Flop =====&lt;br /&gt;
[[File:JK FlipFlop Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;An JK Flip flop that can be set and reset using two on/off inputs.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== SR Latch =====&lt;br /&gt;
[[File:SR Latch Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;An SR latch that can be set and reset using two on/off inputs.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Constant On Signal =====&lt;br /&gt;
[[File:Constant On Signal Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a constant on signal.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output a constant on signal.&lt;br /&gt;
[[File:Constant On gif.gif|none|thumb|234x234px|Constant On Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Boolean Functions (Both &amp;lt;code&amp;gt;x,y,z,w&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z,w,a,b,c,d&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:FUNCTION logic symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Evaluates a logical expression with up to &amp;lt;code&amp;gt;4 to 8&amp;lt;/code&amp;gt; input variables and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Boolean Functions block can perform any number and combination of AND, OR, XOR, and NOT operations on its boolean inputs using the operators:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; - AND&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; - OR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; - XOR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; - NOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Control&amp;quot; gates ===&lt;br /&gt;
&lt;br /&gt;
[[File:Control_tab_-_logic_nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Control&amp;quot; nodes tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Blinker =====&lt;br /&gt;
[[File:BLINKER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a value that blinks on and off at a set rate.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Capacitor =====&lt;br /&gt;
[[File:CAPACITOR_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Charges up when receiving an on signal, then discharges over a period of time.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Greater than =====&lt;br /&gt;
[[File:GREATER_THAN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is greater than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Less than =====&lt;br /&gt;
[[File:LESS_THAN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is less than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Memory Register=====&lt;br /&gt;
[[File:MEMORY_REGISTER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Remembers the input value when receiving a signal to the Set node. When the Reset node receives a signal, the stored number is cleared to a value that can be customised in the properties panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Numerical Junction =====&lt;br /&gt;
[[File:NUMERICAL_JUNCTION_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the input number to one of the outputs depending on whether or not the Switch Signal is on. The path that the input doesn&#039;t take will output a value of 0&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Numerical Switchbox =====&lt;br /&gt;
[[File:NUMERICAL_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is less than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Threshold=====&lt;br /&gt;
[[File:THRESHOLD_GATE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input value when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Timer (&amp;lt;code&amp;gt;RTF&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;RTO&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;TOF&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;TON&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:TIMER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Variable input timer.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RTF&amp;lt;/code&amp;gt; - Outputs an on signal when the timer is less than its duration, resets when signalled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RTO&amp;lt;/code&amp;gt; - Outputs an on signal when the timer reaches its duration, resets when signalled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TOF&amp;lt;/code&amp;gt; - Outputs an on signal when the timer is less than its duration, resets when off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TON&amp;lt;/code&amp;gt; - Outputs an on signal when the timer reaches its duration, resets when off&lt;br /&gt;
&lt;br /&gt;
===== Up/Down Counter =====&lt;br /&gt;
[[File:UPDOWN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Has an internal value that will increase and decrease when receiving different signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== PID Controller (&amp;amp; advanced variant) =====&lt;br /&gt;
[[File:PID_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;A basic PID controller. The proportional integral and derivative gains can be set in the property panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:PID_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;A PID controller with variable proportional, integral and derivative gains.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For more information and how to use PIDs, refer to [[PID Controllers]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Composite&amp;quot; gates ===&lt;br /&gt;
[[File:Composite tab - logic nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Composite&amp;quot; nodes tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Composite Read (number) =====&lt;br /&gt;
[[File:COMPOSITE_READ_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Reads the number value from a selected channel of a composite input.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Read (on/off) =====&lt;br /&gt;
[[File:COMPOSITE_READ_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Reads the on/off value from a selected channel of a composite input.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Write (number) =====&lt;br /&gt;
[[File:COMPOSITE_WRITE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Writes up to 32 numbers to a composite link in a single logic tick. Only connected channels will be modified. The number of inputs and the channel to begin writing at can be configured.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Write (on/off) =====&lt;br /&gt;
[[File:COMPOSITE_WRITE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Writes up to 32 on/off signals to a composite link in a single logic tick. Only connected channels will be modified. The number of inputs and the channel to begin writing at can be configured.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Switchbox =====&lt;br /&gt;
[[File:COMPOSITE_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input composite when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
===== Video Switchbox =====&lt;br /&gt;
[[File:VIDEO_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input video when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
===== Audio Switchbox =====&lt;br /&gt;
[[File:AUDIO_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input audio when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
===== Number to Composite Binary =====&lt;br /&gt;
[[File:COMPOSITE_BINARY_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Converts a number (rounded) to binary and outputs the bits as composite on/off signals.&#039;&#039;&amp;quot;&lt;br /&gt;
===== Composite Binary to Number =====&lt;br /&gt;
[[File:COMPOSITE_BINARY_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Reads the on/off signals of a composite link and encodes them in the bits of an output number.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== LUA Script =====&lt;br /&gt;
[[File:LUA_SCRIPT_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Runs a custom lua script for advanced logic and drawing to monitors.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:Stormworks Technical Information]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Microcontrollers_%26_Logic&amp;diff=292</id>
		<title>Microcontrollers &amp; Logic</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Microcontrollers_%26_Logic&amp;diff=292"/>
		<updated>2026-03-18T01:03:59Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Number to Composite Binary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Microcontrollers are a way of condensing logic in Stormworks, they are programable processors that can be custom made to fulfil a wide array of tasks and use cases within Stormworks using Lua blocks, Logic Gates, mathematical functions, etc. With microcontrollers (MCs) you can use a variety of logic gates that are not accessible through the traditional parts menu within the vehicle builder, as a result not only are MCs good at condensing logic, but also give the player access to a wider variety of options and paths to take in order to fulfil the required task.&lt;br /&gt;
&lt;br /&gt;
This page will go over how to create a microcontroller, and go through a majority of the logic blocks that are found within Stormworks and show you examples on how they are used with images.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Microcontroller ===&lt;br /&gt;
[[File:MC tab location.png|left|thumb|439x439px|MC Tab Location]]&lt;br /&gt;
&lt;br /&gt;
==== Properties Initial setup. ====&lt;br /&gt;
[[File:Name and parts menu example.png|thumb|298x298px|Parts Menu Example]]&lt;br /&gt;
Step 1 in any MC is creating one. At the top of your vehicle editor you will see 8 tabs, you want to select the final one labelled &amp;quot;Microcontroller Editor&amp;quot;. Once in this mode, it will default you to the &amp;quot;Design&amp;quot; settings and you will see 3 tabs; &amp;quot;Properties&amp;quot;, &amp;quot;Logic&amp;quot; and &amp;quot;Symbol&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*Properties tab is where you will define a name and description for your microcontroller; this is what it will appear as in your parts menu. You also will have the opportunity to define the size of your microcontroller; with the smallest scale being &amp;lt;code&amp;gt;1 Block × 1 Block × 1 Block&amp;lt;/code&amp;gt; and the maximum being &amp;lt;code&amp;gt;6 Block × 6 Block × 1 Block&amp;lt;/code&amp;gt;. It is important to select the correct size however this can be edited at any time, you can make it as large as possible and condense later.&lt;br /&gt;
*Logic tab is where you will set the various logic nodes.&lt;br /&gt;
&lt;br /&gt;
*Symbol Tab is where you will setup the symbol that will appear in the parts menu for your microcontroller. This is done by toggling each pixel from dark grey to light grey in a &amp;lt;code&amp;gt;16 × 16&amp;lt;/code&amp;gt; grid.&lt;br /&gt;
&lt;br /&gt;
==== Logic Nodes ====&lt;br /&gt;
Step 2 in creating a microcontroller is assigning your Logic Nodes. To do this, go to the &amp;quot;Logic&amp;quot; tab in the microcontroller designer and select the large blue addition symbol which is labelled &amp;quot;Add Node&amp;quot; when you hover your mouse over it. Once done, you will see a red &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; node appear in the list, as well as a red circle appear on the microcontroller in the bottom left slot. From here, we can choose the kind of node, and whether or not we want the node to be an input variable (going into the microcontroller) or an output variable (leaving the microcontroller), here you can also set a name and a description for your logic nodes. The different forms of logic nodes are;[[File:Node layering demonstration.gif|thumb|298x298px|Node Layering]]&lt;br /&gt;
*&amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; - Alternatively referred to as Boolean nodes; this is your basic binary On or Off logic transfer node. &#039;&#039;The default colouring is Red&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; - This node will transfer a numerical value. &#039;&#039;The default colouring is Green.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;composite&amp;lt;/code&amp;gt; - This is your composite channel node; containing 32 channels for both &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; data, Meaning it is possible to pass 64 different channels of information through this single node, provided 32 different &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; values and 32 different &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; values. &#039;&#039;The default colouring is Purple.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;video&amp;lt;/code&amp;gt; - This node will allow you to output a video to various components (e.g. monitor, HUD, etc) or input from a Camera component to be modified (e.g. adding a sight or data to a HUD). &#039;&#039;The default colouring is Light Blue.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt; - This node will allow you to input and manipulate audio from microphones. &#039;&#039;The default colouring is Khaki Green.&#039;&#039;&lt;br /&gt;
Following game version &amp;lt;code&amp;gt;v1.15.10 - The Microcontroller Layers Update&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&#039;&#039;Steam Announcement Page for update.&#039;&#039;https://store.steampowered.com/news/app/573090/view/507351614918492485&amp;lt;/ref&amp;gt; in January of 2026 you are now able to layer logic nodes over one-another allowing for more compact microcontrollers.&lt;br /&gt;
&lt;br /&gt;
== Logic Editor ==&lt;br /&gt;
The Final step is going into the logic editor; represented at the top of the Microcontroller editor by the Lightbulb. This will bring you to a large grid with its own toolbar and parts menu that includes various logic gates for various different functions; in here you will also see the nodes you have selected in the &amp;quot;Design&amp;quot; tab as boxes with node input or output anchors, that share the same name and description as given in the Logic Design tab. Now you can start making your microcontroller&#039;s logic.&lt;br /&gt;
&lt;br /&gt;
==== Logic Gates ====&lt;br /&gt;
Once you have successfully set up your logic nodes; you can begin to learn what the various logic gates do. To understand this, we will need to first understand what a truth table is; a Truth Table&amp;lt;ref&amp;gt;&#039;&#039;Wikipedia Page for Truth tables&#039;&#039; https://en.wikipedia.org/wiki/Truth_table&amp;lt;/ref&amp;gt; is used to map out various logic gate or mathematical outcomes in a given system. (&#039;&#039;see example of an AND gate truth table below&#039;&#039;). In this page; we will be using &amp;lt;code&amp;gt;A, B, C&amp;lt;/code&amp;gt; as inputs variable, and &amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt; as output variable.&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |AND Gate Example&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Arithmetic&amp;quot; gates ===&lt;br /&gt;
[[File:arithmetic_logic_gates.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Arithmetic&amp;quot; gates tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Abs =====&lt;br /&gt;
[[File:ABS_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the absolute value of the input value (negative numbers become positive).&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Add =====&lt;br /&gt;
[[File:ADD_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Adds the two input values together and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Subtract =====&lt;br /&gt;
[[File:SUBTRACT_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Subtracts the second input from the first input and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Multiply =====&lt;br /&gt;
[[File:MULTIPLY_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Multiplies the two input values and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Divide =====&lt;br /&gt;
[[File:DIVIDE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Divides the first input by the second and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If dividing by 0, it will output 0 on the Number output and output True on the Boolean output instead.&lt;br /&gt;
&lt;br /&gt;
===== Clamp =====&lt;br /&gt;
[[File:CLAMP_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Clamps the input value between a set min and max and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Equal =====&lt;br /&gt;
[[File:EQUAL_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Compares whether or not two numbers are equal within a set accuracy.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Epsilon&amp;quot; setting within it sets the threshold for how close numbers have to be to be considered equal.&lt;br /&gt;
&lt;br /&gt;
===== Constant Number =====&lt;br /&gt;
[[File:CONSTANT_NUMBER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a constant number that is set on the properties panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Delta =====&lt;br /&gt;
[[File:DELTA_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the difference between the input and the input from the previous tick.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Modulo (fmod) =====&lt;br /&gt;
[[File:DELTA_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the [https://en.wikipedia.org/wiki/Modulo modulo] of input A by input B.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Arithmetic Function (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z,w,a,b,c,d&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:FUNCTION_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Evaluates a mathematical expression with up to (1 / 3 / 8) input variables and outputs the result.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Arithmetic Function block can perform arithmetic operations on its inputs using the operators:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; - Addition&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; - Subtraction&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; - Multiplication&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; - Division&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; - Modulo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; - Power&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It also has the constants:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pi&amp;lt;/code&amp;gt; - The value of Pi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pi2&amp;lt;/code&amp;gt; - The value of Pi multiplied by 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And the [https://en.wikipedia.org/wiki/Trigonometric_functions Trigonometric Functions]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sin(x)&amp;lt;/code&amp;gt; - Outputs the Sine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cos(x)&amp;lt;/code&amp;gt; - Outputs the Cosine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tan(x)&amp;lt;/code&amp;gt; - Outputs the Tangent of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;asin(x)&amp;lt;/code&amp;gt; - Outputs the Arcsine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;acos(x)&amp;lt;/code&amp;gt; - Outputs the Arccosine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;atan(x)&amp;lt;/code&amp;gt; - Outputs the Arctangent of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;atan2(x, y)&amp;lt;/code&amp;gt; - &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It also has functions for:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;max(x,y)&amp;lt;/code&amp;gt; - Outputs the higher value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;min(x,y)&amp;lt;/code&amp;gt; - Outputs the lower value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; - Rounds x up&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; - Rounds x down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;round(x)&amp;lt;/code&amp;gt; - Rounds x (normally)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;abs(x)&amp;lt;/code&amp;gt; - Outputs the absolute value of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sgn(x)&amp;lt;/code&amp;gt; - Outputs the sign of x (1 if positive or x=0) (-1 if negative)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sqrt(x)&amp;lt;/code&amp;gt; - Outputs the square root of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len(x,y)&amp;lt;/code&amp;gt; - Outputs the length of the vector (x,y)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len2(x,y)&amp;lt;/code&amp;gt; - Outputs the length of the vector (x,y) without square rooting the result&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;lerp(x,y,z)&amp;lt;/code&amp;gt; - Linearly interpolates from x to y using z as the position&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;clamp(x,y,z)&amp;lt;/code&amp;gt; - Clamps x to be within y and z&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Logical&amp;quot; gates ===&lt;br /&gt;
[[File:Logical_tab_-_logic_nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Logical&amp;quot; gates tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== AND Gate =====&lt;br /&gt;
&lt;br /&gt;
[[File:AND_Gate_Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical AND of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This logic gate will only output a signal if both inputs are toggled on.&lt;br /&gt;
[[File:AND Gate gif.gif|none|thumb|231x231px|AND Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NAND Gate =====&lt;br /&gt;
[[File:NAND Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NAND of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output a signal if either of the signals are toggled on; but will output no signal if both inputs are toggled on.&lt;br /&gt;
[[File:NAND Gate gif.gif|none|thumb|233x233px|NAND Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== OR Gate =====&lt;br /&gt;
[[File:OR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical OR of its two input signals.&#039;&#039;&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will output an On signal if either of the 2 inputs are toggled on. This is the most common way of combining 2 &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; signals. &lt;br /&gt;
[[File:OR gate gif.gif|none|thumb|234x234px|OR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NOR Gate =====&lt;br /&gt;
[[File:NOR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NOR of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This gate will only output a signal if neither input is toggled on. If either or both inputs are toggled on, the gate will not output any signal.&lt;br /&gt;
[[File:NOR Gate Gif.gif|none|thumb|234x234px|NOR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== XOR Gate =====&lt;br /&gt;
[[File:XOR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the Logical XOR of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This gate outputs a signal if only output a signal if either A or B are toggled on; but wont output a signal if both or neither are enabled.&lt;br /&gt;
[[File:XOR Gate Gif.gif|none|thumb|234x234px|XOR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NOT Gate =====&lt;br /&gt;
[[File:NOT Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NOT of its input signal&#039;&#039;.&amp;quot;&lt;br /&gt;
This will output the opposing signal inputted; On becomes Off, Off becomes On.&lt;br /&gt;
[[File:NOT Gate Gif.gif|none|thumb|234x234px|NOT Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Pulse (Toggle to Push) =====&lt;br /&gt;
[[File:Pulse Symbol.png|frameless|36x36px]] &amp;quot;&#039;&#039;A switch that outputs a single tick pulse. It can be configured to pulse when being switched from off to on (default), on to off, or always when the input signa&#039;&#039;-&#039;&#039;l changes.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Push To Toggle =====&lt;br /&gt;
[[File:Push to Toggle.png|frameless|35x35px]] &amp;quot;&#039;&#039;An on/off switch that is toggled every time a new on signal is sent to its input.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== JK Flip Flop =====&lt;br /&gt;
[[File:JK FlipFlop Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;An JK Flip flop that can be set and reset using two on/off inputs.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== SR Latch =====&lt;br /&gt;
[[File:SR Latch Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;An SR latch that can be set and reset using two on/off inputs.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Constant On Signal =====&lt;br /&gt;
[[File:Constant On Signal Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a constant on signal.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output a constant on signal.&lt;br /&gt;
[[File:Constant On gif.gif|none|thumb|234x234px|Constant On Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Boolean Functions (Both &amp;lt;code&amp;gt;x,y,z,w&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z,w,a,b,c,d&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:FUNCTION logic symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Evaluates a logical expression with up to &amp;lt;code&amp;gt;4 to 8&amp;lt;/code&amp;gt; input variables and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Boolean Functions block can perform any number and combination of AND, OR, XOR, and NOT operations on its boolean inputs using the operators:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; - AND&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; - OR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; - XOR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; - NOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Control&amp;quot; gates ===&lt;br /&gt;
&lt;br /&gt;
[[File:Control_tab_-_logic_nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Control&amp;quot; nodes tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Blinker =====&lt;br /&gt;
[[File:BLINKER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a value that blinks on and off at a set rate.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Capacitor =====&lt;br /&gt;
[[File:CAPACITOR_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Charges up when receiving an on signal, then discharges over a period of time.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Greater than =====&lt;br /&gt;
[[File:GREATER_THAN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is greater than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Less than =====&lt;br /&gt;
[[File:LESS_THAN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is less than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Memory Register=====&lt;br /&gt;
[[File:MEMORY_REGISTER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Remembers the input value when receiving a signal to the Set node. When the Reset node receives a signal, the stored number is cleared to a value that can be customised in the properties panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Numerical Junction =====&lt;br /&gt;
[[File:NUMERICAL_JUNCTION_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the input number to one of the outputs depending on whether or not the Switch Signal is on. The path that the input doesn&#039;t take will output a value of 0&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Numerical Switchbox =====&lt;br /&gt;
[[File:NUMERICAL_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is less than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Threshold=====&lt;br /&gt;
[[File:THRESHOLD_GATE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input value when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Timer (&amp;lt;code&amp;gt;RTF&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;RTO&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;TOF&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;TON&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:TIMER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Variable input timer.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RTF&amp;lt;/code&amp;gt; - Outputs an on signal when the timer is less than its duration, resets when signalled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RTO&amp;lt;/code&amp;gt; - Outputs an on signal when the timer reaches its duration, resets when signalled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TOF&amp;lt;/code&amp;gt; - Outputs an on signal when the timer is less than its duration, resets when off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TON&amp;lt;/code&amp;gt; - Outputs an on signal when the timer reaches its duration, resets when off&lt;br /&gt;
&lt;br /&gt;
===== Up/Down Counter =====&lt;br /&gt;
[[File:UPDOWN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Has an internal value that will increase and decrease when receiving different signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== PID Controller (&amp;amp; advanced variant) =====&lt;br /&gt;
[[File:PID_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;A basic PID controller. The proportional integral and derivative gains can be set in the property panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:PID_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;A PID controller with variable proportional, integral and derivative gains.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For more information and how to use PIDs, refer to [[PID Controllers]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Composite&amp;quot; gates ===&lt;br /&gt;
[[File:Composite tab - logic nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Composite&amp;quot; nodes tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Composite Read (number) =====&lt;br /&gt;
[[File:COMPOSITE_READ_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Reads the number value from a selected channel of a composite input.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Read (on/off) =====&lt;br /&gt;
[[File:COMPOSITE_READ_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Reads the on/off value from a selected channel of a composite input.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Write (number) =====&lt;br /&gt;
[[File:COMPOSITE_WRITE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Writes up to 32 numbers to a composite link in a single logic tick. Only connected channels will be modified. The number of inputs and the channel to begin writing at can be configured.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Write (on/off) =====&lt;br /&gt;
[[File:COMPOSITE_WRITE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Writes up to 32 on/off signals to a composite link in a single logic tick. Only connected channels will be modified. The number of inputs and the channel to begin writing at can be configured.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Switchbox =====&lt;br /&gt;
[[File:COMPOSITE_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input composite when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
===== Video Switchbox =====&lt;br /&gt;
[[File:VIDEO_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input video when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
===== Audio Switchbox =====&lt;br /&gt;
[[File:AUDIO_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input audio when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
===== Number to Composite Binary =====&lt;br /&gt;
[[File:COMPOSITE_BINARY_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Converts a number (rounded) to binary and outputs the bits as composite on/off signals.&#039;&#039;&amp;quot;&lt;br /&gt;
===== Composite Binary to Number =====&lt;br /&gt;
[[File:COMPOSITE_BINARY_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Reads the on/off signals of a composite link and encodes them in the bits of an output number.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== LUA Script =====&lt;br /&gt;
[[File:LUA_SCRIPT_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Runs a custom lua script for advanced logic and drawing to monitors.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:Stormworks Technical Information]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Microcontrollers_%26_Logic&amp;diff=291</id>
		<title>Microcontrollers &amp; Logic</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Microcontrollers_%26_Logic&amp;diff=291"/>
		<updated>2026-03-18T01:03:16Z</updated>

		<summary type="html">&lt;p&gt;Sav: composite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Microcontrollers are a way of condensing logic in Stormworks, they are programable processors that can be custom made to fulfil a wide array of tasks and use cases within Stormworks using Lua blocks, Logic Gates, mathematical functions, etc. With microcontrollers (MCs) you can use a variety of logic gates that are not accessible through the traditional parts menu within the vehicle builder, as a result not only are MCs good at condensing logic, but also give the player access to a wider variety of options and paths to take in order to fulfil the required task.&lt;br /&gt;
&lt;br /&gt;
This page will go over how to create a microcontroller, and go through a majority of the logic blocks that are found within Stormworks and show you examples on how they are used with images.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Microcontroller ===&lt;br /&gt;
[[File:MC tab location.png|left|thumb|439x439px|MC Tab Location]]&lt;br /&gt;
&lt;br /&gt;
==== Properties Initial setup. ====&lt;br /&gt;
[[File:Name and parts menu example.png|thumb|298x298px|Parts Menu Example]]&lt;br /&gt;
Step 1 in any MC is creating one. At the top of your vehicle editor you will see 8 tabs, you want to select the final one labelled &amp;quot;Microcontroller Editor&amp;quot;. Once in this mode, it will default you to the &amp;quot;Design&amp;quot; settings and you will see 3 tabs; &amp;quot;Properties&amp;quot;, &amp;quot;Logic&amp;quot; and &amp;quot;Symbol&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*Properties tab is where you will define a name and description for your microcontroller; this is what it will appear as in your parts menu. You also will have the opportunity to define the size of your microcontroller; with the smallest scale being &amp;lt;code&amp;gt;1 Block × 1 Block × 1 Block&amp;lt;/code&amp;gt; and the maximum being &amp;lt;code&amp;gt;6 Block × 6 Block × 1 Block&amp;lt;/code&amp;gt;. It is important to select the correct size however this can be edited at any time, you can make it as large as possible and condense later.&lt;br /&gt;
*Logic tab is where you will set the various logic nodes.&lt;br /&gt;
&lt;br /&gt;
*Symbol Tab is where you will setup the symbol that will appear in the parts menu for your microcontroller. This is done by toggling each pixel from dark grey to light grey in a &amp;lt;code&amp;gt;16 × 16&amp;lt;/code&amp;gt; grid.&lt;br /&gt;
&lt;br /&gt;
==== Logic Nodes ====&lt;br /&gt;
Step 2 in creating a microcontroller is assigning your Logic Nodes. To do this, go to the &amp;quot;Logic&amp;quot; tab in the microcontroller designer and select the large blue addition symbol which is labelled &amp;quot;Add Node&amp;quot; when you hover your mouse over it. Once done, you will see a red &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; node appear in the list, as well as a red circle appear on the microcontroller in the bottom left slot. From here, we can choose the kind of node, and whether or not we want the node to be an input variable (going into the microcontroller) or an output variable (leaving the microcontroller), here you can also set a name and a description for your logic nodes. The different forms of logic nodes are;[[File:Node layering demonstration.gif|thumb|298x298px|Node Layering]]&lt;br /&gt;
*&amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; - Alternatively referred to as Boolean nodes; this is your basic binary On or Off logic transfer node. &#039;&#039;The default colouring is Red&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; - This node will transfer a numerical value. &#039;&#039;The default colouring is Green.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;composite&amp;lt;/code&amp;gt; - This is your composite channel node; containing 32 channels for both &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; data, Meaning it is possible to pass 64 different channels of information through this single node, provided 32 different &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; values and 32 different &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; values. &#039;&#039;The default colouring is Purple.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;video&amp;lt;/code&amp;gt; - This node will allow you to output a video to various components (e.g. monitor, HUD, etc) or input from a Camera component to be modified (e.g. adding a sight or data to a HUD). &#039;&#039;The default colouring is Light Blue.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt; - This node will allow you to input and manipulate audio from microphones. &#039;&#039;The default colouring is Khaki Green.&#039;&#039;&lt;br /&gt;
Following game version &amp;lt;code&amp;gt;v1.15.10 - The Microcontroller Layers Update&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&#039;&#039;Steam Announcement Page for update.&#039;&#039;https://store.steampowered.com/news/app/573090/view/507351614918492485&amp;lt;/ref&amp;gt; in January of 2026 you are now able to layer logic nodes over one-another allowing for more compact microcontrollers.&lt;br /&gt;
&lt;br /&gt;
== Logic Editor ==&lt;br /&gt;
The Final step is going into the logic editor; represented at the top of the Microcontroller editor by the Lightbulb. This will bring you to a large grid with its own toolbar and parts menu that includes various logic gates for various different functions; in here you will also see the nodes you have selected in the &amp;quot;Design&amp;quot; tab as boxes with node input or output anchors, that share the same name and description as given in the Logic Design tab. Now you can start making your microcontroller&#039;s logic.&lt;br /&gt;
&lt;br /&gt;
==== Logic Gates ====&lt;br /&gt;
Once you have successfully set up your logic nodes; you can begin to learn what the various logic gates do. To understand this, we will need to first understand what a truth table is; a Truth Table&amp;lt;ref&amp;gt;&#039;&#039;Wikipedia Page for Truth tables&#039;&#039; https://en.wikipedia.org/wiki/Truth_table&amp;lt;/ref&amp;gt; is used to map out various logic gate or mathematical outcomes in a given system. (&#039;&#039;see example of an AND gate truth table below&#039;&#039;). In this page; we will be using &amp;lt;code&amp;gt;A, B, C&amp;lt;/code&amp;gt; as inputs variable, and &amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt; as output variable.&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |AND Gate Example&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Arithmetic&amp;quot; gates ===&lt;br /&gt;
[[File:arithmetic_logic_gates.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Arithmetic&amp;quot; gates tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Abs =====&lt;br /&gt;
[[File:ABS_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the absolute value of the input value (negative numbers become positive).&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Add =====&lt;br /&gt;
[[File:ADD_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Adds the two input values together and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Subtract =====&lt;br /&gt;
[[File:SUBTRACT_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Subtracts the second input from the first input and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Multiply =====&lt;br /&gt;
[[File:MULTIPLY_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Multiplies the two input values and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Divide =====&lt;br /&gt;
[[File:DIVIDE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Divides the first input by the second and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If dividing by 0, it will output 0 on the Number output and output True on the Boolean output instead.&lt;br /&gt;
&lt;br /&gt;
===== Clamp =====&lt;br /&gt;
[[File:CLAMP_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Clamps the input value between a set min and max and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Equal =====&lt;br /&gt;
[[File:EQUAL_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Compares whether or not two numbers are equal within a set accuracy.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Epsilon&amp;quot; setting within it sets the threshold for how close numbers have to be to be considered equal.&lt;br /&gt;
&lt;br /&gt;
===== Constant Number =====&lt;br /&gt;
[[File:CONSTANT_NUMBER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a constant number that is set on the properties panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Delta =====&lt;br /&gt;
[[File:DELTA_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the difference between the input and the input from the previous tick.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Modulo (fmod) =====&lt;br /&gt;
[[File:DELTA_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the [https://en.wikipedia.org/wiki/Modulo modulo] of input A by input B.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Arithmetic Function (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z,w,a,b,c,d&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:FUNCTION_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Evaluates a mathematical expression with up to (1 / 3 / 8) input variables and outputs the result.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Arithmetic Function block can perform arithmetic operations on its inputs using the operators:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; - Addition&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; - Subtraction&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; - Multiplication&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; - Division&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; - Modulo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; - Power&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It also has the constants:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pi&amp;lt;/code&amp;gt; - The value of Pi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pi2&amp;lt;/code&amp;gt; - The value of Pi multiplied by 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And the [https://en.wikipedia.org/wiki/Trigonometric_functions Trigonometric Functions]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sin(x)&amp;lt;/code&amp;gt; - Outputs the Sine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cos(x)&amp;lt;/code&amp;gt; - Outputs the Cosine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tan(x)&amp;lt;/code&amp;gt; - Outputs the Tangent of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;asin(x)&amp;lt;/code&amp;gt; - Outputs the Arcsine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;acos(x)&amp;lt;/code&amp;gt; - Outputs the Arccosine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;atan(x)&amp;lt;/code&amp;gt; - Outputs the Arctangent of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;atan2(x, y)&amp;lt;/code&amp;gt; - &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It also has functions for:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;max(x,y)&amp;lt;/code&amp;gt; - Outputs the higher value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;min(x,y)&amp;lt;/code&amp;gt; - Outputs the lower value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; - Rounds x up&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; - Rounds x down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;round(x)&amp;lt;/code&amp;gt; - Rounds x (normally)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;abs(x)&amp;lt;/code&amp;gt; - Outputs the absolute value of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sgn(x)&amp;lt;/code&amp;gt; - Outputs the sign of x (1 if positive or x=0) (-1 if negative)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sqrt(x)&amp;lt;/code&amp;gt; - Outputs the square root of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len(x,y)&amp;lt;/code&amp;gt; - Outputs the length of the vector (x,y)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len2(x,y)&amp;lt;/code&amp;gt; - Outputs the length of the vector (x,y) without square rooting the result&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;lerp(x,y,z)&amp;lt;/code&amp;gt; - Linearly interpolates from x to y using z as the position&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;clamp(x,y,z)&amp;lt;/code&amp;gt; - Clamps x to be within y and z&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Logical&amp;quot; gates ===&lt;br /&gt;
[[File:Logical_tab_-_logic_nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Logical&amp;quot; gates tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== AND Gate =====&lt;br /&gt;
&lt;br /&gt;
[[File:AND_Gate_Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical AND of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This logic gate will only output a signal if both inputs are toggled on.&lt;br /&gt;
[[File:AND Gate gif.gif|none|thumb|231x231px|AND Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NAND Gate =====&lt;br /&gt;
[[File:NAND Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NAND of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output a signal if either of the signals are toggled on; but will output no signal if both inputs are toggled on.&lt;br /&gt;
[[File:NAND Gate gif.gif|none|thumb|233x233px|NAND Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== OR Gate =====&lt;br /&gt;
[[File:OR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical OR of its two input signals.&#039;&#039;&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will output an On signal if either of the 2 inputs are toggled on. This is the most common way of combining 2 &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; signals. &lt;br /&gt;
[[File:OR gate gif.gif|none|thumb|234x234px|OR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NOR Gate =====&lt;br /&gt;
[[File:NOR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NOR of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This gate will only output a signal if neither input is toggled on. If either or both inputs are toggled on, the gate will not output any signal.&lt;br /&gt;
[[File:NOR Gate Gif.gif|none|thumb|234x234px|NOR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== XOR Gate =====&lt;br /&gt;
[[File:XOR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the Logical XOR of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This gate outputs a signal if only output a signal if either A or B are toggled on; but wont output a signal if both or neither are enabled.&lt;br /&gt;
[[File:XOR Gate Gif.gif|none|thumb|234x234px|XOR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NOT Gate =====&lt;br /&gt;
[[File:NOT Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NOT of its input signal&#039;&#039;.&amp;quot;&lt;br /&gt;
This will output the opposing signal inputted; On becomes Off, Off becomes On.&lt;br /&gt;
[[File:NOT Gate Gif.gif|none|thumb|234x234px|NOT Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Pulse (Toggle to Push) =====&lt;br /&gt;
[[File:Pulse Symbol.png|frameless|36x36px]] &amp;quot;&#039;&#039;A switch that outputs a single tick pulse. It can be configured to pulse when being switched from off to on (default), on to off, or always when the input signa&#039;&#039;-&#039;&#039;l changes.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Push To Toggle =====&lt;br /&gt;
[[File:Push to Toggle.png|frameless|35x35px]] &amp;quot;&#039;&#039;An on/off switch that is toggled every time a new on signal is sent to its input.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== JK Flip Flop =====&lt;br /&gt;
[[File:JK FlipFlop Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;An JK Flip flop that can be set and reset using two on/off inputs.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== SR Latch =====&lt;br /&gt;
[[File:SR Latch Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;An SR latch that can be set and reset using two on/off inputs.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Constant On Signal =====&lt;br /&gt;
[[File:Constant On Signal Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a constant on signal.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output a constant on signal.&lt;br /&gt;
[[File:Constant On gif.gif|none|thumb|234x234px|Constant On Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Boolean Functions (Both &amp;lt;code&amp;gt;x,y,z,w&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z,w,a,b,c,d&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:FUNCTION logic symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Evaluates a logical expression with up to &amp;lt;code&amp;gt;4 to 8&amp;lt;/code&amp;gt; input variables and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Boolean Functions block can perform any number and combination of AND, OR, XOR, and NOT operations on its boolean inputs using the operators:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; - AND&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; - OR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; - XOR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; - NOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Control&amp;quot; gates ===&lt;br /&gt;
&lt;br /&gt;
[[File:Control_tab_-_logic_nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Control&amp;quot; nodes tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Blinker =====&lt;br /&gt;
[[File:BLINKER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a value that blinks on and off at a set rate.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Capacitor =====&lt;br /&gt;
[[File:CAPACITOR_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Charges up when receiving an on signal, then discharges over a period of time.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Greater than =====&lt;br /&gt;
[[File:GREATER_THAN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is greater than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Less than =====&lt;br /&gt;
[[File:LESS_THAN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is less than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Memory Register=====&lt;br /&gt;
[[File:MEMORY_REGISTER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Remembers the input value when receiving a signal to the Set node. When the Reset node receives a signal, the stored number is cleared to a value that can be customised in the properties panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Numerical Junction =====&lt;br /&gt;
[[File:NUMERICAL_JUNCTION_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the input number to one of the outputs depending on whether or not the Switch Signal is on. The path that the input doesn&#039;t take will output a value of 0&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Numerical Switchbox =====&lt;br /&gt;
[[File:NUMERICAL_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is less than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Threshold=====&lt;br /&gt;
[[File:THRESHOLD_GATE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input value when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Timer (&amp;lt;code&amp;gt;RTF&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;RTO&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;TOF&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;TON&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:TIMER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Variable input timer.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RTF&amp;lt;/code&amp;gt; - Outputs an on signal when the timer is less than its duration, resets when signalled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RTO&amp;lt;/code&amp;gt; - Outputs an on signal when the timer reaches its duration, resets when signalled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TOF&amp;lt;/code&amp;gt; - Outputs an on signal when the timer is less than its duration, resets when off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TON&amp;lt;/code&amp;gt; - Outputs an on signal when the timer reaches its duration, resets when off&lt;br /&gt;
&lt;br /&gt;
===== Up/Down Counter =====&lt;br /&gt;
[[File:UPDOWN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Has an internal value that will increase and decrease when receiving different signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== PID Controller (&amp;amp; advanced variant) =====&lt;br /&gt;
[[File:PID_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;A basic PID controller. The proportional integral and derivative gains can be set in the property panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:PID_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;A PID controller with variable proportional, integral and derivative gains.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For more information and how to use PIDs, refer to [[PID Controllers]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Composite&amp;quot; gates ===&lt;br /&gt;
[[File:Composite tab - logic nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Composite&amp;quot; nodes tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Composite Read (number) =====&lt;br /&gt;
[[File:COMPOSITE_READ_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Reads the number value from a selected channel of a composite input.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Read (on/off) =====&lt;br /&gt;
[[File:COMPOSITE_READ_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Reads the on/off value from a selected channel of a composite input.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Write (number) =====&lt;br /&gt;
[[File:COMPOSITE_WRITE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Writes up to 32 numbers to a composite link in a single logic tick. Only connected channels will be modified. The number of inputs and the channel to begin writing at can be configured.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Write (on/off) =====&lt;br /&gt;
[[File:COMPOSITE_WRITE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Writes up to 32 on/off signals to a composite link in a single logic tick. Only connected channels will be modified. The number of inputs and the channel to begin writing at can be configured.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Composite Switchbox =====&lt;br /&gt;
[[File:COMPOSITE_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input composite when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Video Switchbox =====&lt;br /&gt;
[[File:VIDEO_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input video when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Audio Switchbox =====&lt;br /&gt;
[[File:AUDIO_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input audio when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Number to Composite Binary =====&lt;br /&gt;
[[File:COMPOSITE_BINARY_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Converts a number (rounded) to binary and outputs the bits as composite on/off signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Composite Binary to Number =====&lt;br /&gt;
[[File:COMPOSITE_BINARY_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Reads the on/off signals of a composite link and encodes them in the bits of an output number.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== LUA Script =====&lt;br /&gt;
[[File:LUA_SCRIPT_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Runs a custom lua script for advanced logic and drawing to monitors.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:Stormworks Technical Information]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:VIDEO_SWITCHBOX_logic_symbol.png&amp;diff=290</id>
		<title>File:VIDEO SWITCHBOX logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:VIDEO_SWITCHBOX_logic_symbol.png&amp;diff=290"/>
		<updated>2026-03-18T00:57:16Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:LUA_SCRIPT_logic_symbol.png&amp;diff=289</id>
		<title>File:LUA SCRIPT logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:LUA_SCRIPT_logic_symbol.png&amp;diff=289"/>
		<updated>2026-03-18T00:56:59Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:COMPOSITE_WRITE_logic_symbol.png&amp;diff=288</id>
		<title>File:COMPOSITE WRITE logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:COMPOSITE_WRITE_logic_symbol.png&amp;diff=288"/>
		<updated>2026-03-18T00:56:46Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:COMPOSITE_SWITCHBOX_logic_symbol.png&amp;diff=287</id>
		<title>File:COMPOSITE SWITCHBOX logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:COMPOSITE_SWITCHBOX_logic_symbol.png&amp;diff=287"/>
		<updated>2026-03-18T00:56:09Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:COMPOSITE_READ_logic_symbol.png&amp;diff=286</id>
		<title>File:COMPOSITE READ logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:COMPOSITE_READ_logic_symbol.png&amp;diff=286"/>
		<updated>2026-03-18T00:55:53Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:COMPOSITE_BINARY_logic_symbol.png&amp;diff=285</id>
		<title>File:COMPOSITE BINARY logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:COMPOSITE_BINARY_logic_symbol.png&amp;diff=285"/>
		<updated>2026-03-18T00:55:41Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:AUDIO_SWITCHBOX_logic_symbol.png&amp;diff=284</id>
		<title>File:AUDIO SWITCHBOX logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:AUDIO_SWITCHBOX_logic_symbol.png&amp;diff=284"/>
		<updated>2026-03-18T00:53:54Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:Composite_tab_-_logic_nodes.png&amp;diff=283</id>
		<title>File:Composite tab - logic nodes.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:Composite_tab_-_logic_nodes.png&amp;diff=283"/>
		<updated>2026-03-18T00:53:38Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Microcontrollers_%26_Logic&amp;diff=282</id>
		<title>Microcontrollers &amp; Logic</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Microcontrollers_%26_Logic&amp;diff=282"/>
		<updated>2026-03-18T00:37:29Z</updated>

		<summary type="html">&lt;p&gt;Sav: control gates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Microcontrollers are a way of condensing logic in Stormworks, they are programable processors that can be custom made to fulfil a wide array of tasks and use cases within Stormworks using Lua blocks, Logic Gates, mathematical functions, etc. With microcontrollers (MCs) you can use a variety of logic gates that are not accessible through the traditional parts menu within the vehicle builder, as a result not only are MCs good at condensing logic, but also give the player access to a wider variety of options and paths to take in order to fulfil the required task.&lt;br /&gt;
&lt;br /&gt;
This page will go over how to create a microcontroller, and go through a majority of the logic blocks that are found within Stormworks and show you examples on how they are used with images.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Microcontroller ===&lt;br /&gt;
[[File:MC tab location.png|left|thumb|439x439px|MC Tab Location]]&lt;br /&gt;
&lt;br /&gt;
==== Properties Initial setup. ====&lt;br /&gt;
[[File:Name and parts menu example.png|thumb|298x298px|Parts Menu Example]]&lt;br /&gt;
Step 1 in any MC is creating one. At the top of your vehicle editor you will see 8 tabs, you want to select the final one labelled &amp;quot;Microcontroller Editor&amp;quot;. Once in this mode, it will default you to the &amp;quot;Design&amp;quot; settings and you will see 3 tabs; &amp;quot;Properties&amp;quot;, &amp;quot;Logic&amp;quot; and &amp;quot;Symbol&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*Properties tab is where you will define a name and description for your microcontroller; this is what it will appear as in your parts menu. You also will have the opportunity to define the size of your microcontroller; with the smallest scale being &amp;lt;code&amp;gt;1 Block × 1 Block × 1 Block&amp;lt;/code&amp;gt; and the maximum being &amp;lt;code&amp;gt;6 Block × 6 Block × 1 Block&amp;lt;/code&amp;gt;. It is important to select the correct size however this can be edited at any time, you can make it as large as possible and condense later.&lt;br /&gt;
*Logic tab is where you will set the various logic nodes.&lt;br /&gt;
&lt;br /&gt;
*Symbol Tab is where you will setup the symbol that will appear in the parts menu for your microcontroller. This is done by toggling each pixel from dark grey to light grey in a &amp;lt;code&amp;gt;16 × 16&amp;lt;/code&amp;gt; grid.&lt;br /&gt;
&lt;br /&gt;
==== Logic Nodes ====&lt;br /&gt;
Step 2 in creating a microcontroller is assigning your Logic Nodes. To do this, go to the &amp;quot;Logic&amp;quot; tab in the microcontroller designer and select the large blue addition symbol which is labelled &amp;quot;Add Node&amp;quot; when you hover your mouse over it. Once done, you will see a red &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; node appear in the list, as well as a red circle appear on the microcontroller in the bottom left slot. From here, we can choose the kind of node, and whether or not we want the node to be an input variable (going into the microcontroller) or an output variable (leaving the microcontroller), here you can also set a name and a description for your logic nodes. The different forms of logic nodes are;[[File:Node layering demonstration.gif|thumb|298x298px|Node Layering]]&lt;br /&gt;
*&amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; - Alternatively referred to as Boolean nodes; this is your basic binary On or Off logic transfer node. &#039;&#039;The default colouring is Red&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; - This node will transfer a numerical value. &#039;&#039;The default colouring is Green.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;composite&amp;lt;/code&amp;gt; - This is your composite channel node; containing 32 channels for both &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; data, Meaning it is possible to pass 64 different channels of information through this single node, provided 32 different &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; values and 32 different &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; values. &#039;&#039;The default colouring is Purple.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;video&amp;lt;/code&amp;gt; - This node will allow you to output a video to various components (e.g. monitor, HUD, etc) or input from a Camera component to be modified (e.g. adding a sight or data to a HUD). &#039;&#039;The default colouring is Light Blue.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt; - This node will allow you to input and manipulate audio from microphones. &#039;&#039;The default colouring is Khaki Green.&#039;&#039;&lt;br /&gt;
Following game version &amp;lt;code&amp;gt;v1.15.10 - The Microcontroller Layers Update&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&#039;&#039;Steam Announcement Page for update.&#039;&#039;https://store.steampowered.com/news/app/573090/view/507351614918492485&amp;lt;/ref&amp;gt; in January of 2026 you are now able to layer logic nodes over one-another allowing for more compact microcontrollers.&lt;br /&gt;
&lt;br /&gt;
== Logic Editor ==&lt;br /&gt;
The Final step is going into the logic editor; represented at the top of the Microcontroller editor by the Lightbulb. This will bring you to a large grid with its own toolbar and parts menu that includes various logic gates for various different functions; in here you will also see the nodes you have selected in the &amp;quot;Design&amp;quot; tab as boxes with node input or output anchors, that share the same name and description as given in the Logic Design tab. Now you can start making your microcontroller&#039;s logic.&lt;br /&gt;
&lt;br /&gt;
==== Logic Gates ====&lt;br /&gt;
Once you have successfully set up your logic nodes; you can begin to learn what the various logic gates do. To understand this, we will need to first understand what a truth table is; a Truth Table&amp;lt;ref&amp;gt;&#039;&#039;Wikipedia Page for Truth tables&#039;&#039; https://en.wikipedia.org/wiki/Truth_table&amp;lt;/ref&amp;gt; is used to map out various logic gate or mathematical outcomes in a given system. (&#039;&#039;see example of an AND gate truth table below&#039;&#039;). In this page; we will be using &amp;lt;code&amp;gt;A, B, C&amp;lt;/code&amp;gt; as inputs variable, and &amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt; as output variable.&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |AND Gate Example&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Arithmetic&amp;quot; gates ===&lt;br /&gt;
[[File:arithmetic_logic_gates.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Arithmetic&amp;quot; gates tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Abs =====&lt;br /&gt;
[[File:ABS_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the absolute value of the input value (negative numbers become positive).&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Add =====&lt;br /&gt;
[[File:ADD_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Adds the two input values together and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Subtract =====&lt;br /&gt;
[[File:SUBTRACT_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Subtracts the second input from the first input and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Multiply =====&lt;br /&gt;
[[File:MULTIPLY_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Multiplies the two input values and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Divide =====&lt;br /&gt;
[[File:DIVIDE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Divides the first input by the second and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If dividing by 0, it will output 0 on the Number output and output True on the Boolean output instead.&lt;br /&gt;
&lt;br /&gt;
===== Clamp =====&lt;br /&gt;
[[File:CLAMP_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Clamps the input value between a set min and max and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Equal =====&lt;br /&gt;
[[File:EQUAL_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Compares whether or not two numbers are equal within a set accuracy.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Epsilon&amp;quot; setting within it sets the threshold for how close numbers have to be to be considered equal.&lt;br /&gt;
&lt;br /&gt;
===== Constant Number =====&lt;br /&gt;
[[File:CONSTANT_NUMBER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a constant number that is set on the properties panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Delta =====&lt;br /&gt;
[[File:DELTA_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the difference between the input and the input from the previous tick.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Modulo (fmod) =====&lt;br /&gt;
[[File:DELTA_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the [https://en.wikipedia.org/wiki/Modulo modulo] of input A by input B.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Arithmetic Function (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z,w,a,b,c,d&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:FUNCTION_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Evaluates a mathematical expression with up to (1 / 3 / 8) input variables and outputs the result.&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Arithmetic Function block can perform arithmetic operations on its inputs using the operators:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; - Addition&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; - Subtraction&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; - Multiplication&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; - Division&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; - Modulo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; - Power&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It also has the constants:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pi&amp;lt;/code&amp;gt; - The value of Pi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pi2&amp;lt;/code&amp;gt; - The value of Pi multiplied by 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And the [https://en.wikipedia.org/wiki/Trigonometric_functions Trigonometric Functions]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sin(x)&amp;lt;/code&amp;gt; - Outputs the Sine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cos(x)&amp;lt;/code&amp;gt; - Outputs the Cosine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tan(x)&amp;lt;/code&amp;gt; - Outputs the Tangent of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;asin(x)&amp;lt;/code&amp;gt; - Outputs the Arcsine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;acos(x)&amp;lt;/code&amp;gt; - Outputs the Arccosine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;atan(x)&amp;lt;/code&amp;gt; - Outputs the Arctangent of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;atan2(x, y)&amp;lt;/code&amp;gt; - &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It also has functions for:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;max(x,y)&amp;lt;/code&amp;gt; - Outputs the higher value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;min(x,y)&amp;lt;/code&amp;gt; - Outputs the lower value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; - Rounds x up&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; - Rounds x down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;round(x)&amp;lt;/code&amp;gt; - Rounds x (normally)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;abs(x)&amp;lt;/code&amp;gt; - Outputs the absolute value of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sgn(x)&amp;lt;/code&amp;gt; - Outputs the sign of x (1 if positive or x=0) (-1 if negative)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sqrt(x)&amp;lt;/code&amp;gt; - Outputs the square root of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len(x,y)&amp;lt;/code&amp;gt; - Outputs the length of the vector (x,y)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len2(x,y)&amp;lt;/code&amp;gt; - Outputs the length of the vector (x,y) without square rooting the result&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;lerp(x,y,z)&amp;lt;/code&amp;gt; - Linearly interpolates from x to y using z as the position&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;clamp(x,y,z)&amp;lt;/code&amp;gt; - Clamps x to be within y and z&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Logical&amp;quot; gates ===&lt;br /&gt;
[[File:Logical_tab_-_logic_nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Logical&amp;quot; gates tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== AND Gate =====&lt;br /&gt;
&lt;br /&gt;
[[File:AND_Gate_Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical AND of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This logic gate will only output a signal if both inputs are toggled on.&lt;br /&gt;
[[File:AND Gate gif.gif|none|thumb|231x231px|AND Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NAND Gate =====&lt;br /&gt;
[[File:NAND Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NAND of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output a signal if either of the signals are toggled on; but will output no signal if both inputs are toggled on.&lt;br /&gt;
[[File:NAND Gate gif.gif|none|thumb|233x233px|NAND Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== OR Gate =====&lt;br /&gt;
[[File:OR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical OR of its two input signals.&#039;&#039;&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will output an On signal if either of the 2 inputs are toggled on. This is the most common way of combining 2 &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; signals. &lt;br /&gt;
[[File:OR gate gif.gif|none|thumb|234x234px|OR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NOR Gate =====&lt;br /&gt;
[[File:NOR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NOR of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This gate will only output a signal if neither input is toggled on. If either or both inputs are toggled on, the gate will not output any signal.&lt;br /&gt;
[[File:NOR Gate Gif.gif|none|thumb|234x234px|NOR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== XOR Gate =====&lt;br /&gt;
[[File:XOR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the Logical XOR of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This gate outputs a signal if only output a signal if either A or B are toggled on; but wont output a signal if both or neither are enabled.&lt;br /&gt;
[[File:XOR Gate Gif.gif|none|thumb|234x234px|XOR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NOT Gate =====&lt;br /&gt;
[[File:NOT Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NOT of its input signal&#039;&#039;.&amp;quot;&lt;br /&gt;
This will output the opposing signal inputted; On becomes Off, Off becomes On.&lt;br /&gt;
[[File:NOT Gate Gif.gif|none|thumb|234x234px|NOT Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Pulse (Toggle to Push) =====&lt;br /&gt;
[[File:Pulse Symbol.png|frameless|36x36px]] &amp;quot;&#039;&#039;A switch that outputs a single tick pulse. It can be configured to pulse when being switched from off to on (default), on to off, or always when the input signa&#039;&#039;-&#039;&#039;l changes.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Push To Toggle =====&lt;br /&gt;
[[File:Push to Toggle.png|frameless|35x35px]] &amp;quot;&#039;&#039;An on/off switch that is toggled every time a new on signal is sent to its input.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== JK Flip Flop =====&lt;br /&gt;
[[File:JK FlipFlop Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;An JK Flip flop that can be set and reset using two on/off inputs.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== SR Latch =====&lt;br /&gt;
[[File:SR Latch Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;An SR latch that can be set and reset using two on/off inputs.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Constant On Signal =====&lt;br /&gt;
[[File:Constant On Signal Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a constant on signal.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output a constant on signal.&lt;br /&gt;
[[File:Constant On gif.gif|none|thumb|234x234px|Constant On Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Boolean Functions (Both &amp;lt;code&amp;gt;x,y,z,w&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z,w,a,b,c,d&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:FUNCTION logic symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Evaluates a logical expression with up to &amp;lt;code&amp;gt;4 to 8&amp;lt;/code&amp;gt; input variables and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Boolean Functions block can perform any number and combination of AND, OR, XOR, and NOT operations on its boolean inputs using the operators:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; - AND&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; - OR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; - XOR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; - NOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Control&amp;quot; gates ===&lt;br /&gt;
&lt;br /&gt;
[[File:Control_tab_-_logic_nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Control&amp;quot; nodes tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Blinker =====&lt;br /&gt;
[[File:BLINKER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a value that blinks on and off at a set rate.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Capacitor =====&lt;br /&gt;
[[File:CAPACITOR_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Charges up when receiving an on signal, then discharges over a period of time.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Greater than =====&lt;br /&gt;
[[File:GREATER_THAN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is greater than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Less than =====&lt;br /&gt;
[[File:LESS_THAN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is less than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Memory Register=====&lt;br /&gt;
[[File:MEMORY_REGISTER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Remembers the input value when receiving a signal to the Set node. When the Reset node receives a signal, the stored number is cleared to a value that can be customised in the properties panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Numerical Junction =====&lt;br /&gt;
[[File:NUMERICAL_JUNCTION_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the input number to one of the outputs depending on whether or not the Switch Signal is on. The path that the input doesn&#039;t take will output a value of 0&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Numerical Switchbox =====&lt;br /&gt;
[[File:NUMERICAL_SWITCHBOX_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs an on signal if the first input is less than the second.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Threshold=====&lt;br /&gt;
[[File:THRESHOLD_GATE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the first input value when receiving an on signal, and the second when receiving an off signal.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Timer (&amp;lt;code&amp;gt;RTF&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;RTO&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;TOF&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;TON&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:TIMER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Variable input timer.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RTF&amp;lt;/code&amp;gt; - Outputs an on signal when the timer is less than its duration, resets when signalled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RTO&amp;lt;/code&amp;gt; - Outputs an on signal when the timer reaches its duration, resets when signalled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TOF&amp;lt;/code&amp;gt; - Outputs an on signal when the timer is less than its duration, resets when off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TON&amp;lt;/code&amp;gt; - Outputs an on signal when the timer reaches its duration, resets when off&lt;br /&gt;
&lt;br /&gt;
===== Up/Down Counter =====&lt;br /&gt;
[[File:UPDOWN_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Has an internal value that will increase and decrease when receiving different signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== PID Controller (&amp;amp; advanced variant) =====&lt;br /&gt;
[[File:PID_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;A basic PID controller. The proportional integral and derivative gains can be set in the property panel.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:PID_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;A PID controller with variable proportional, integral and derivative gains.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For more information and how to use PIDs, refer to [[PID Controllers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Stormworks Technical Information]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:UPDOWN_logic_symbol.png&amp;diff=281</id>
		<title>File:UPDOWN logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:UPDOWN_logic_symbol.png&amp;diff=281"/>
		<updated>2026-03-18T00:23:20Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:TIMER_logic_symbol.png&amp;diff=280</id>
		<title>File:TIMER logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:TIMER_logic_symbol.png&amp;diff=280"/>
		<updated>2026-03-18T00:23:08Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:THRESHOLD_GATE_logic_symbol.png&amp;diff=279</id>
		<title>File:THRESHOLD GATE logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:THRESHOLD_GATE_logic_symbol.png&amp;diff=279"/>
		<updated>2026-03-18T00:22:54Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:PID_logic_symbol.png&amp;diff=278</id>
		<title>File:PID logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:PID_logic_symbol.png&amp;diff=278"/>
		<updated>2026-03-18T00:22:41Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:NUMERICAL_SWITCHBOX_logic_symbol.png&amp;diff=277</id>
		<title>File:NUMERICAL SWITCHBOX logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:NUMERICAL_SWITCHBOX_logic_symbol.png&amp;diff=277"/>
		<updated>2026-03-18T00:21:38Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:NUMERICAL_JUNCTION_logic_symbol.png&amp;diff=276</id>
		<title>File:NUMERICAL JUNCTION logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:NUMERICAL_JUNCTION_logic_symbol.png&amp;diff=276"/>
		<updated>2026-03-18T00:21:26Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:MEMORY_REGISTER_logic_symbol.png&amp;diff=275</id>
		<title>File:MEMORY REGISTER logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:MEMORY_REGISTER_logic_symbol.png&amp;diff=275"/>
		<updated>2026-03-18T00:21:11Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:LESS_THAN_logic_symbol.png&amp;diff=274</id>
		<title>File:LESS THAN logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:LESS_THAN_logic_symbol.png&amp;diff=274"/>
		<updated>2026-03-18T00:19:23Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:GREATER_THAN_logic_symbol.png&amp;diff=273</id>
		<title>File:GREATER THAN logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:GREATER_THAN_logic_symbol.png&amp;diff=273"/>
		<updated>2026-03-18T00:19:11Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:CAPACITOR_logic_symbol.png&amp;diff=272</id>
		<title>File:CAPACITOR logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:CAPACITOR_logic_symbol.png&amp;diff=272"/>
		<updated>2026-03-18T00:18:58Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:BLINKER_logic_symbol.png&amp;diff=271</id>
		<title>File:BLINKER logic symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:BLINKER_logic_symbol.png&amp;diff=271"/>
		<updated>2026-03-18T00:18:45Z</updated>

		<summary type="html">&lt;p&gt;Sav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:NOT_Gate_Symbol.png&amp;diff=270</id>
		<title>File:NOT Gate Symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:NOT_Gate_Symbol.png&amp;diff=270"/>
		<updated>2026-03-18T00:17:13Z</updated>

		<summary type="html">&lt;p&gt;Sav: Sav uploaded a new version of File:NOT Gate Symbol.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NOT Gate Symbol&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=Microcontrollers_%26_Logic&amp;diff=269</id>
		<title>Microcontrollers &amp; Logic</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=Microcontrollers_%26_Logic&amp;diff=269"/>
		<updated>2026-03-18T00:16:52Z</updated>

		<summary type="html">&lt;p&gt;Sav: /* Boolean Functions (Both x,y,z,w &amp;amp; x,y,z,w,a,b,c,d) */ icons&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Microcontrollers are a way of condensing logic in Stormworks, they are programable processors that can be custom made to fulfil a wide array of tasks and use cases within Stormworks using Lua blocks, Logic Gates, mathematical functions, etc. With microcontrollers (MCs) you can use a variety of logic gates that are not accessible through the traditional parts menu within the vehicle builder, as a result not only are MCs good at condensing logic, but also give the player access to a wider variety of options and paths to take in order to fulfil the required task.&lt;br /&gt;
&lt;br /&gt;
This page will go over how to create a microcontroller, and go through a majority of the logic blocks that are found within Stormworks and show you examples on how they are used with images.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Microcontroller ===&lt;br /&gt;
[[File:MC tab location.png|left|thumb|439x439px|MC Tab Location]]&lt;br /&gt;
&lt;br /&gt;
==== Properties Initial setup. ====&lt;br /&gt;
[[File:Name and parts menu example.png|thumb|298x298px|Parts Menu Example]]&lt;br /&gt;
Step 1 in any MC is creating one. At the top of your vehicle editor you will see 8 tabs, you want to select the final one labelled &amp;quot;Microcontroller Editor&amp;quot;. Once in this mode, it will default you to the &amp;quot;Design&amp;quot; settings and you will see 3 tabs; &amp;quot;Properties&amp;quot;, &amp;quot;Logic&amp;quot; and &amp;quot;Symbol&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*Properties tab is where you will define a name and description for your microcontroller; this is what it will appear as in your parts menu. You also will have the opportunity to define the size of your microcontroller; with the smallest scale being &amp;lt;code&amp;gt;1 Block × 1 Block × 1 Block&amp;lt;/code&amp;gt; and the maximum being &amp;lt;code&amp;gt;6 Block × 6 Block × 1 Block&amp;lt;/code&amp;gt;. It is important to select the correct size however this can be edited at any time, you can make it as large as possible and condense later.&lt;br /&gt;
*Logic tab is where you will set the various logic nodes.&lt;br /&gt;
&lt;br /&gt;
*Symbol Tab is where you will setup the symbol that will appear in the parts menu for your microcontroller. This is done by toggling each pixel from dark grey to light grey in a &amp;lt;code&amp;gt;16 × 16&amp;lt;/code&amp;gt; grid.&lt;br /&gt;
&lt;br /&gt;
==== Logic Nodes ====&lt;br /&gt;
Step 2 in creating a microcontroller is assigning your Logic Nodes. To do this, go to the &amp;quot;Logic&amp;quot; tab in the microcontroller designer and select the large blue addition symbol which is labelled &amp;quot;Add Node&amp;quot; when you hover your mouse over it. Once done, you will see a red &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; node appear in the list, as well as a red circle appear on the microcontroller in the bottom left slot. From here, we can choose the kind of node, and whether or not we want the node to be an input variable (going into the microcontroller) or an output variable (leaving the microcontroller), here you can also set a name and a description for your logic nodes. The different forms of logic nodes are;[[File:Node layering demonstration.gif|thumb|298x298px|Node Layering]]&lt;br /&gt;
*&amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; - Alternatively referred to as Boolean nodes; this is your basic binary On or Off logic transfer node. &#039;&#039;The default colouring is Red&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; - This node will transfer a numerical value. &#039;&#039;The default colouring is Green.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;composite&amp;lt;/code&amp;gt; - This is your composite channel node; containing 32 channels for both &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; data, Meaning it is possible to pass 64 different channels of information through this single node, provided 32 different &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; values and 32 different &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; values. &#039;&#039;The default colouring is Purple.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;video&amp;lt;/code&amp;gt; - This node will allow you to output a video to various components (e.g. monitor, HUD, etc) or input from a Camera component to be modified (e.g. adding a sight or data to a HUD). &#039;&#039;The default colouring is Light Blue.&#039;&#039;&lt;br /&gt;
*&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt; - This node will allow you to input and manipulate audio from microphones. &#039;&#039;The default colouring is Khaki Green.&#039;&#039;&lt;br /&gt;
Following game version &amp;lt;code&amp;gt;v1.15.10 - The Microcontroller Layers Update&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&#039;&#039;Steam Announcement Page for update.&#039;&#039;https://store.steampowered.com/news/app/573090/view/507351614918492485&amp;lt;/ref&amp;gt; in January of 2026 you are now able to layer logic nodes over one-another allowing for more compact microcontrollers.&lt;br /&gt;
&lt;br /&gt;
== Logic Editor ==&lt;br /&gt;
The Final step is going into the logic editor; represented at the top of the Microcontroller editor by the Lightbulb. This will bring you to a large grid with its own toolbar and parts menu that includes various logic gates for various different functions; in here you will also see the nodes you have selected in the &amp;quot;Design&amp;quot; tab as boxes with node input or output anchors, that share the same name and description as given in the Logic Design tab. Now you can start making your microcontroller&#039;s logic.&lt;br /&gt;
&lt;br /&gt;
==== Logic Gates ====&lt;br /&gt;
Once you have successfully set up your logic nodes; you can begin to learn what the various logic gates do. To understand this, we will need to first understand what a truth table is; a Truth Table&amp;lt;ref&amp;gt;&#039;&#039;Wikipedia Page for Truth tables&#039;&#039; https://en.wikipedia.org/wiki/Truth_table&amp;lt;/ref&amp;gt; is used to map out various logic gate or mathematical outcomes in a given system. (&#039;&#039;see example of an AND gate truth table below&#039;&#039;). In this page; we will be using &amp;lt;code&amp;gt;A, B, C&amp;lt;/code&amp;gt; as inputs variable, and &amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt; as output variable.&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |AND Gate Example&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Arithmetic&amp;quot; gates ===&lt;br /&gt;
[[File:arithmetic_logic_gates.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Arithmetic&amp;quot; gates tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Abs =====&lt;br /&gt;
[[File:ABS_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the absolute value of the input value (negative numbers become positive)&#039;&#039;&amp;quot;&lt;br /&gt;
===== Add =====&lt;br /&gt;
[[File:ADD_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Adds the two input values together and outputs the result&#039;&#039;&amp;quot;&lt;br /&gt;
===== Subtract =====&lt;br /&gt;
[[File:SUBTRACT_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Subtracts the second input from the first input and outputs the result&#039;&#039;&amp;quot;&lt;br /&gt;
===== Multiply =====&lt;br /&gt;
[[File:MULTIPLY_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Multiplies the two input values and outputs the result&#039;&#039;&amp;quot;&lt;br /&gt;
===== Divide =====&lt;br /&gt;
[[File:DIVIDE_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Divides the first input by the second and outputs the result&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If dividing by 0, it will output 0 on the Number output and output True on the Boolean output instead&lt;br /&gt;
===== Clamp =====&lt;br /&gt;
[[File:CLAMP_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Clamps the input value between a set min and max and outputs the result&#039;&#039;&amp;quot;&lt;br /&gt;
===== Equal =====&lt;br /&gt;
[[File:EQUAL_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Compares whether or not two numbers are equal within a set accuracy&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Epsilon&amp;quot; setting within it sets the threshold for how close numbers have to be to be considered equal&lt;br /&gt;
===== Constant Number =====&lt;br /&gt;
[[File:CONSTANT_NUMBER_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a constant number that is set on the properties panel&#039;&#039;&amp;quot;&lt;br /&gt;
===== Delta =====&lt;br /&gt;
[[File:DELTA_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the difference between the input and the input from the previous tick&#039;&amp;quot;&lt;br /&gt;
===== Modulo (fmod) =====&lt;br /&gt;
[[File:DELTA_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the [https://en.wikipedia.org/wiki/Modulo modulo] of input A by input B&#039;&amp;quot;&lt;br /&gt;
===== Arithmetic Function (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z,w,a,b,c,d&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:FUNCTION_logic_symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Evaluates a mathematical expression with up to (1 / 3 / 8) input variables and outputs the result&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Arithmetic Function block can perform arithmetic operations on its inputs using the operators:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; - Addition&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; - Subtraction&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; - Multiplication&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; - Division&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; - Modulo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; - Power&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It also has the constants:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pi&amp;lt;/code&amp;gt; - The value of Pi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pi2&amp;lt;/code&amp;gt; - The value of Pi multiplied by 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And the [https://en.wikipedia.org/wiki/Trigonometric_functions Trigonometric Functions]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sin(x)&amp;lt;/code&amp;gt; - Outputs the Sine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cos(x)&amp;lt;/code&amp;gt; - Outputs the Cosine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tan(x)&amp;lt;/code&amp;gt; - Outputs the Tangent of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;asin(x)&amp;lt;/code&amp;gt; - Outputs the Arcsine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;acos(x)&amp;lt;/code&amp;gt; - Outputs the Arccosine of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;atan(x)&amp;lt;/code&amp;gt; - Outputs the Arctangent of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;atan2(x, y)&amp;lt;/code&amp;gt; - &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It also has functions for:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;max(x,y)&amp;lt;/code&amp;gt; - Outputs the higher value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;min(x,y)&amp;lt;/code&amp;gt; - Outputs the lower value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; - Rounds x up&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; - Rounds x down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;round(x)&amp;lt;/code&amp;gt; - Rounds x (normally)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;abs(x)&amp;lt;/code&amp;gt; - Outputs the absolute value of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sgn(x)&amp;lt;/code&amp;gt; - Outputs the sign of x (1 if positive or x=0) (-1 if negative)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sqrt(x)&amp;lt;/code&amp;gt; - Outputs the square root of x&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len(x,y)&amp;lt;/code&amp;gt; - Outputs the length of the vector (x,y)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len2(x,y)&amp;lt;/code&amp;gt; - Outputs the length of the vector (x,y) without square rooting the result&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;lerp(x,y,z)&amp;lt;/code&amp;gt; - Linearly interpolates from x to y using z as the position&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;clamp(x,y,z)&amp;lt;/code&amp;gt; - Clamps x to be within y and z&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Logical&amp;quot; gates ===&lt;br /&gt;
[[File:Logical_tab_-_logic_nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Logical&amp;quot; gates tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== AND Gate =====&lt;br /&gt;
&lt;br /&gt;
[[File:AND_Gate_Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical AND of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This logic gate will only output a signal if both inputs are toggled on.&lt;br /&gt;
[[File:AND Gate gif.gif|none|thumb|231x231px|AND Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NAND Gate =====&lt;br /&gt;
[[File:NAND Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NAND of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output a signal if either of the signals are toggled on; but will output no signal if both inputs are toggled on.&lt;br /&gt;
[[File:NAND Gate gif.gif|none|thumb|233x233px|NAND Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== OR Gate =====&lt;br /&gt;
[[File:OR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical OR of its two input signals.&#039;&#039;&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will output an On signal if either of the 2 inputs are toggled on. This is the most common way of combining 2 &amp;lt;code&amp;gt;on/off&amp;lt;/code&amp;gt; signals. &lt;br /&gt;
[[File:OR gate gif.gif|none|thumb|234x234px|OR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NOR Gate =====&lt;br /&gt;
[[File:NOR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NOR of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This gate will only output a signal if neither input is toggled on. If either or both inputs are toggled on, the gate will not output any signal.&lt;br /&gt;
[[File:NOR Gate Gif.gif|none|thumb|234x234px|NOR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== XOR Gate =====&lt;br /&gt;
[[File:XOR Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the Logical XOR of its two input signals.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This gate outputs a signal if only output a signal if either A or B are toggled on; but wont output a signal if both or neither are enabled.&lt;br /&gt;
[[File:XOR Gate Gif.gif|none|thumb|234x234px|XOR Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!B&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== NOT Gate =====&lt;br /&gt;
[[File:NOT Gate Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs the logical NOT of its input signal&#039;&#039;.&amp;quot;&lt;br /&gt;
This will output the opposing signal inputted; On becomes Off, Off becomes On.&lt;br /&gt;
[[File:NOT Gate Gif.gif|none|thumb|234x234px|NOT Gate Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!A&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Pulse (Toggle to Push) =====&lt;br /&gt;
[[File:Pulse Symbol.png|frameless|36x36px]] &amp;quot;&#039;&#039;A switch that outputs a single tick pulse. It can be configured to pulse when being switched from off to on (default), on to off, or always when the input signa&#039;&#039;-&#039;&#039;l changes.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Push To Toggle =====&lt;br /&gt;
[[File:Push to Toggle.png|frameless|35x35px]] &amp;quot;&#039;&#039;An on/off switch that is toggled every time a new on signal is sent to its input.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== JK Flip Flop =====&lt;br /&gt;
[[File:JK FlipFlop Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;An JK Flip flop that can be set and reset using two on/off inputs.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== SR Latch =====&lt;br /&gt;
[[File:SR Latch Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;An SR latch that can be set and reset using two on/off inputs.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Constant On Signal =====&lt;br /&gt;
[[File:Constant On Signal Symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Outputs a constant on signal.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output a constant on signal.&lt;br /&gt;
[[File:Constant On gif.gif|none|thumb|234x234px|Constant On Demonstration]]&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Truth Table&lt;br /&gt;
|-&lt;br /&gt;
!Q&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Boolean Functions (Both &amp;lt;code&amp;gt;x,y,z,w&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;x,y,z,w,a,b,c,d&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
[[File:FUNCTION logic symbol.png|frameless|35x35px]] &amp;quot;&#039;&#039;Evaluates a logical expression with up to &amp;lt;code&amp;gt;4 to 8&amp;lt;/code&amp;gt; input variables and outputs the result.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Boolean Functions block can perform any number and combination of AND, OR, XOR, and NOT operations on its boolean inputs using the operators:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; - AND&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; - OR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; - XOR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; - NOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Control&amp;quot; gates ===&lt;br /&gt;
&lt;br /&gt;
[[File:Control_tab_-_logic_nodes.png|frameless|682x682px]]&lt;br /&gt;
&lt;br /&gt;
This section is for the &amp;quot;Control&amp;quot; nodes tab in the Parts Menu.&lt;br /&gt;
&lt;br /&gt;
===== Blinker =====&lt;br /&gt;
&lt;br /&gt;
===== Capacitor =====&lt;br /&gt;
&lt;br /&gt;
===== Greater than =====&lt;br /&gt;
&lt;br /&gt;
===== Less than =====&lt;br /&gt;
&lt;br /&gt;
===== Memory Register=====&lt;br /&gt;
&lt;br /&gt;
===== Numerical Junction =====&lt;br /&gt;
&lt;br /&gt;
===== Numerical Switchbox =====&lt;br /&gt;
&lt;br /&gt;
===== Threshold=====&lt;br /&gt;
&lt;br /&gt;
===== Timer (&amp;lt;code&amp;gt;RTF&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;RTO&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;TOF&amp;lt;/code&amp;gt; &amp;amp; &amp;lt;code&amp;gt;TON&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
&lt;br /&gt;
===== Up/Down Counter =====&lt;br /&gt;
&lt;br /&gt;
===== PID Controller (&amp;amp; advanced variant) =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Stormworks Technical Information]]&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
	<entry>
		<id>https://swwiki.net:443//index.php?title=File:Constant_On_Signal_Symbol.png&amp;diff=268</id>
		<title>File:Constant On Signal Symbol.png</title>
		<link rel="alternate" type="text/html" href="https://swwiki.net:443//index.php?title=File:Constant_On_Signal_Symbol.png&amp;diff=268"/>
		<updated>2026-03-18T00:15:59Z</updated>

		<summary type="html">&lt;p&gt;Sav: Sav uploaded a new version of File:Constant On Signal Symbol.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Constant On Signal Symbol&lt;/div&gt;</summary>
		<author><name>Sav</name></author>
	</entry>
</feed>