Table of Contents
- Jargon Dictionary
- Required Research
- Required Tools
- Device Functionality
- Data Editing
- Device Interfacing and Networking
- Finishing a Device
Integrated Electronics have a huge potential, which I rarely see utilized. This may be in part because the wiki does not have a guide posted on how to effectively create them. I hope that correct that here. Please do note, this is one of the more complex subsystems one encounters in the game. Abandon all hope, all ye who enter.
The essence of the Integrated Electronics module is the creation of modular machines, utilizing a large number of individual components, which all serve a different function. These components are connected via wiring, and their default values altered, to bring about a desired result.
The guide I’ve provided is laid out generally in sequence of what is required to make a completed device, step by step.
Many of the component parts are bugged, and do not work correctly, due to coding errors. I’ll try and point out which specific errors I’ve found in particular.
This guide, beyond one or two examples, will not list particular circuit designs, or completed devices. The below is intended to help create your own. Use your imagination!
If you get frustrated by the length of this guide, just remember - the entire system boils down to - print assembly, fill with components, wire components together, edit starting values, and slap in a power cell.
A final note. It is very easy to find ways to break the game with Integrated Electronics. I would personally appreciate you not doing so, as it has the potential to ruin the fun for people who have a genuine intent. Other servers have removed this module, for that very reason. Don’t add BeeStation to the list of casualties. Thank you, and enjoy.
Essentially a box that holds all your components. They may be created from the “Assembly” menu in your Integrated Circuit Printer. There are three special subtypes worth mentioning. The medium-sized Weapon assembly is the only assembly capable of holding the Weapon Interface component. Mobile Assemblies are the only ones capable of holding the Locomotion component. Wall Mounted assemblies may be mounted to walls. They come in many shapes and sizes, experiment to find which one most closely resembles the device you’re trying to create.
A word in programming which describes either a True or False value. It is generally used in the context of Boolean Algebra, which is useful in the construction of real-life circuits, as it deals with only True and False values (or, in another sense, only 1’s and 0’s). Generally, the only thing one has to worry about in the context of the IE module, is that some components are only activated when supplied with a True boolean value.
An individual, functional part which one puts into an Assembly. These are your primary building blocks. The vast majority of menu options in your Integrated Circuits Printer are for categorizing particular components (saving the Tools and Assemblies menus).
Not an official term. I use the word “device” to mean an assembly containing a number of components. May or may not refer to a completed device, which serves a particular function or has a certain utility.
In programming, a null value refers to a value which simply isn’t. It’s not zero, an empty space in a text string, or a False boolean value (though some components may treat those three as a null value). Many components carry a “Null” value in their input and output data pins by default.
The input, output, and variables of a component. These are what one is wiring. There are two kinds, “data” pins - which appear on the top part of the UI, and “pulse” pins - which appear below. One can discern the difference between these, by seeing that “pulse” pins are always accompanied by either “PULSE IN”, or “PULSE OUT”. Data pins are broken up into two parts - the variable, and the pin itself. The pin always appears above the variable.
A pulse is an “activation signal”. Components are typically activated by one pulse, and transmit another after activation, through two different pins.
- Reference (REF/Ref):
A sort of code word, which indicates a specific instance of an object. When one is trying to manipulate a specific object, one uses a Ref.
The values which determine the precise functionality of a component. Variables are housed in Data Pins. Variables are often transmitted between components via wiring.
The act of using your Wiring Tool to connect a pulse pin to another pulse pin, or a data pin to another data pin.
Before any devices can be made, there are three bits of Research in the Technology Tree that have to be completed first. Either select the Scientist job - to make your life very easy, or trust Scientists to comply with your request. If you are heartfelt in your desire to learn and fiddle with circuits, I doubt you’ll be met with much resistance (assuming other, required research has been filled out first).
- Data Theory (2500 points)
This research is required to further research Circuit Research.
- Circuit Research (2500 points)
This research allows you to print a basic Circuit Printer. Required to research Advanced Circuit Research.
- Advanced Circuit Research (5000 points)
This research allows you to create an Advanced Designs disk, and an Instant Cloning disk.
- Integrated Circuit Printer
In order to build components, assemblies, and some tools - you will need an Integrated Circuit Printer. This can be created after Circuit Research is complete. This item may be created at the Prolathe, requiring a moderate amount of Iron and Glass, and a small amount of Copper.
- Advanced Designs Disk
In order to build some circuits, many of which are required to completely utilize the system, an Advanced Designs disk must be used on one’s Integrated Circuit Printer. You need create only one, since it can be used on an unlimited number of Integrated Circuit Printers. This item may be created in the Prolathe, and will require a small amount of Iron, Glass, and Copper.
- Instant Cloning Disk
In order to effectively produce designs you’ve already created, this disk must be used on one’s Integrated Circuits Printer. You need create only one, since it can be used on an unlimited number of Integrated Circuit Printers. This item may be created in the Prolathe, and will require a small amount of Iron, Glass, and Copper.
This item is required to directly manipulate List variables (which the Circuit Debugger cannot). It also has the ability to manually activate pulse pins, which is very useful for testing a device. Full details are listed below, in the Data Editing section of the guide. This item can be created in the Autolathe, for a small amount of Iron and Glass.
This item is required to close your assembly, after you’re finished with it, to prevent the layman from tampering with the perfection of your design. This item can be created in the Autolathe, for a small amount of Iron.
- Welding Tool
This item is required to seal, or repair, a closed assembly - to further prevent the layman from tampering with the perfection of your design. This item can be created in the Autolathe, for a small amount of Iron and Glass.
- Welding Helmet
This item is required, so that one may use the Welding Tool on your assemblies without blinding oneself. This item can be created in the Autolathe, for a moderate amount of Iron and Glass.
This item is required to secure your assembly to the floor. This is required for the Wire Connector component, but is not strictly required for any other component, or assembly. This item can be created in the Autolathe, for a small amount of Iron.
- Power Cell
All assemblies require Power Cells to function properly. Without them, your device will not work. Power Cells may be inserted into an assembly which has not had a Screwdriver used on it. It is recommended to wait to insert a Power Cell into your assembly, until your design has been finalized and saved with the Circuit Analyzer. The smallest size Power Cell may be created at an Autolathe for a small amount of Iron, Glass, and Copper - however, anything other than devices which demand a very small amount of power will generally require a Hyper Capacity Power Cell, or above - all of which can be acquired at the Prolathe.
- Iron Sheets (25)
Your Integrated Circuit Printer can hold a maximum of 25 Iron Sheets. Without Iron Sheets, it is impossible to create assemblies, or components. The larger the size of an assembly, and the more components used, the more Iron Sheets it takes to produce. More complex or powerful circuit components are generally more expensive to produce, as well.
- Circuit Wirer
The tool used to link components together. It also has the ability to remove those connections. Created from the “Tools” menu of your Integrated Circuit Printer, for a small amount of Metal.
- Circuit Debugger
The tool used to alter the variables listed in various components. Created from the “Tools” menu of your Integrated Circuit Printer, for a small amount of Iron.
- Circuit Analyzer
This tool, when used on an assembly, outputs a sort of “code” - which can be saved in an external document, and later loaded into an Integrated Circuit Printer to yield that same assembly. Remember - save frequently. Created from the “Tools” menu of your Integrated Circuit Printer, for a small amount of Iron.
- Assembly Detailer
Though not strictly required, this tool allows you to paint your assembly a few different colors. Useful only in vaguely indicating the function of a device through color (white for medical, red for security, yellow for engineering, and so on). Created from the “Tools” menu of your Integrated Circuit Printer, for a small amount of Iron.
Before starting work on a device, the most critical step is having an idea in mind for what that device is going to do. Without this vision in mind, one just be meanders through a very wide list of options, and never gets anything done. This said - in order to have an idea of what one wants to do, one needs to know what one can do. After picking up an Integrated Circuit Printer for the very first time, the first thing one should do is carefully explore every menu option presented to them. Pay particular attention to three categories - “Input”, “Manipulation”, and “Output”. If the options presented in those menus do not excite, and spark the imagination - then abandon this guide and Integrated Electronics entirely.
I’ll walk through a very simple example of a device one could create at the end of the guide, as a way of testing one’s knowledge - but it really is up to the reader to dream up what they want to a device to do. An excellent way to accomplish this, is to identify a problem on the station, or something that could be improved, with automation.
As stated above, assemblies can be thought of as boxes in which components are placed. There are a few factors to consider, in choosing the correct assembly to begin a project. The primary consideration is “size”.
There are 4 different sizes of assemblies (tiny, small, medium, and large). The size of an assembly determines the total number of components that can fit inside it, and the total complexity of components that can fit inside it. The complexity of each component can only be determined by printing and examining the component, or by diving into the github. In addition to the four core assembly sizes, there are two further options - “mobile”, which are the only assemblies capable of utilizing the Locomotion component - and Wall-Mounted, which can be mounted to walls.
Maximum Parts: 12
Maximum Complexity: 37
Tiny assemblies generally do not have a lot of utility. The huge gap in maximum complexity between tiny and small assemblies is a large hindrance. Like small assemblies, they may be implanted. If used at all, they are best used in conjunction with large devices, as trackers, tags, and so on.
Maximum Parts: 25
Maximum Complexity: 75
Small assemblies are fantastic for use as “controllers” or “tools”. They are additionally the largest size assembly that one can implant via surgery. Keep in mind - some components do not function inside of “containers” - such as a body (notably, the Grabber component). With some cleverness, it’s generally possible to trim the fat off of device configurations that would normally only fit in medium assemblies, and cram them into small assemblies.
Maximum Parts: 50
Maximum Complexity: 150
For “controllers” and “tools” whose configurations can’t fit into small assemblies. There’s not much more of a notable difference, beyond lack of ability to implant them, and taking up more space in an inventory. Note that the “type-e electronic mechanism” is the only assembly which allows utilization of the Weapon Firing Mechanism component in-hand.
Maximum Parts: 100
Maximum Complexity: 300
The largest possible assembly. Can be carried in-hand, but cannot fit in one’s inventory. It’s very rare that a device will need to use 100 parts, large assemblies shine in their vast complexity limit. Generally, the sky is the limit with large assemblies - as long as it doesn’t need to be carried around to be useful.
Maximum Parts: 75
Maximum Complexity: 225
As described above, mobile assemblies are the only assemblies capable of making use of the Locomotion component - which allows a device to move autonomously. Keep in mind, for this assembly to be an use at all - it must include the Locomotion component, which stands at 10 complexity, reducing the overall maximum complexity to 215. Additionally, the Locomotion component (in the “Manipulation” menu) requires a DIR variable be specified - which only Basic Pathfinder component, and Coordinate Pathfinder component can output - either of which further reducing available complexity by 5, to a new total of 210. Both of these components can be found in the “Smart” menu.
Wall Mounted assemblies can be placed on a wall, and wrenched to stay in place. They come in the traditional 4 sizes, with each size having identical available maximum part and complexity slots.
With a vision of what one wants to create in mind, and an empty assembly to begin building - the time has come to pick what components to place into it. This will be a rather large section, covering the various categories, and notable components - additionally indicating components I’ve found to not work as intended, due to bugged code.
Power - Passive
The primary ways to charge the battery inside your device.
- Large Tesla Relay: Cannot fit into any assembly other than Large, Heavy Wall Mounted, and Mobile.
- Fuel Cell: Bugged. At the very least, does not work as intended with Blood, and Welding Fuel. Likely doesn’t work with any kind of fuel.
- Starter: Does not actually provide power. Simply has a pulse output pin, which triggers when the device is first powered, or loses and then regains power.
This is one of the “bread and butter” component menus. A vast array of options for detecting various inputs.
- ID Card Reader: When an ID is used on a device with this component, its access is added to that device.
- Integrated Signaller: An overwhelmingly useful component for interfacing with other game systems. Nanites, remote signallers, grenades, pay-stands, airlocks, the list goes on and on.
- Telecommunication Interceptor: Useful for parsing incoming radio messages. When I mentioned components that could potentially encourage staff to remove the module if they were widely abused, this is it. One toggle, and every comms channel is dead. To help mitigate this, please do note that the exact location of devices containing this component are logged by the telecommunications monitoring terminal. The component does not function as intended - it cannot, to my knowledge, selectively choose which messages to block based on output data. Either everything is able to be sent, or everything is blocked.
- pAI Connector/Man-Machine Interface Tank: More useful for pAI’s than MMI’s. There is a data input List variable pin which allows one to specify laws. There are pulse output pins for move, up, down, left, right, left-click, shift-click, control-click, and alt-click. There are data output pins indicating a Ref to the pAI or MMI, the move DIR, and (most usefully) a Ref to the target of the click.
Pretty much what it says on the tin. Be aware - some components will break if a pressure threshold is reached.
- Tank Slot: Slightly bugged. The “on insert” pulse out pin does not work properly. This may potentially be circumnavigated by utilizing a Local Locator component?
A personal favorite. Given the vast, vast impact that the reagents module has on the game - the ability to interface with it via Integrated Electronics is equally significant. No specific component notes, but - to best utilize these components, consider the many things outside of characters which utilize reagents, and how they’re impacted by them.
Basic to advanced math components. If you want to manipulate numbers, these are what you’ll need.
Components that accept one data type, and output another.
- Reference Encoder/Reference Decoder: Given that Refs are widely utilized by Integrated Electronics, and the inability to transmit Ref data across certain components - this part has excellent utility. The Encoder accepts a Ref, and outputs a “string” (text data) - the Decoder reverses this process.
A rough analogy to the Selector input component could be drawn to these components. Mutiplexer (MUX) components accept a number in their first pin, which indicate which of the variables in the following input pins are sent to the outpin pin. Demultiplexers (DEMUX) components do the opposite. The first input pin indicates which of the data output pins recieve the data stored in the second input pin. Pulse Mux/Demux components are identical, with the exception that an input pulse is used to determine what data is sent where.
- Wire Node: Useless, except to help organize a device’s wiring layout. Transfers a pulse with zero delay from an pulse input pin, to a pulse output pin.
Generally very useful, but vital for some other components which deal with list input and output. Note - it is possible to abuse list construction for infinite (if clunky and difficult to utilize) data storage, by creating lists inside lists (inside lists, and so on). Consider how the At component could be utilized in conjunction with an Addition or Subtraction components (Math menu) to iterate through a list.
Components which compare data values, and output a boolean (true or false) value. Additionally, this menu houses “latches” - which can be utilized for single-value memory storage. However, latches require actual real life circuit knowledge to effectively utilize - and there is very little reason to use them when better data storage alternatives exist. Note the extended description in each comparative gate - “Logic circuits will treat a null, 0, and a “” string value as FALSE and anything else as TRUE.”.
General use components that allow devices to interact with the world. Exploration of their possibilities is hugely encouraged. Note how a Redescriber component might be used with a Starter component (Power - Passive menu), as there is no other way besides direct code editing from a Circuit Analyzer to edit the description of a device.
Data storage, pure and simple. Extremely useful. Each component contains a number of data input pins, and when the “set” pulse input is triggered, forwards them to the correlating data output pins - and in turn, any data pin wired to the data output pin.
Contains only two components. A drill, which can only be used on rock, as well as an ore analyzer which reveals the ore content of a rock.
Components dedicated to directly translating data into something observable by players. These components, unlike Manipulation components, cannot impact the game beyond that scope.
- Video Camera Circuit: The options for camera networks are - “ss13” (main station cameras), “rd” (some research department cameras), “toxins” (launch site), “mine” (mining station), “thunder” (thunderdome, visible from Bar monitors). This list may not be complete. Remember - one can use a multitool to directly interact with List variables. There is no current mechanism for creating new camera networks, or monitors.
Power - Active
Components which allow power transfer from a device’s power cell, to a target Ref which either is a power cell, or contains a power cell.
- Wire Connector: Note the proper usage of this component in its extended description. May also gain power directly from the wire network, if a negative value is used in the first data input pin.
Generally, only useful in conjunction with the Locomotion component (“Manipulation” menu). The Basic and Coordinate Pathfinder components output a DIR variable, while the more complex Advanced Pathfinder component instead outputs two lists - containing the absolute (as opposed to “relative” of the device’s location) coordinate points which lead toward the target. Using some List, Math, and Memory components - these two list variables can be sequentially plugged into a Coordinate Pathfinder, for proper navigation. Consider how these components might be also be used with a Global Positioning System component (“Input” menu).
Similar to the “Math” menu, except dealing instead with “string” (text) manipulation. Note how some components only accept, or output, Text-type data.
This menu contains two essential components, as well as three variants of a clock.
- Delay components: Quite often, one wants a particular component to active before or after another. These components are how that is accomplished. They accept a pulse input, wait for a certain number of seconds (or in the case of the Custom Delay component - tenths of a second), and then send the pulse along via a pulse output pin.
- Ticker components: Among the most vital components. Tickers generate a pulse after a delay. Consider how it would be impossible to generate a pulse through another means, other than when an input was triggered. As with the Custom Delay component, the delay between outputted pulses is measured in tenths of a second for the Custom Ticker component. The minimum delay is a tenth of a second.
Allows one to perform trigonometry. Why would one want to do this in a 2d, square-tile based game? I haven’t the faintest idea.
There are two tools used in editing exsisting data pints, both input data pins, and output data pins. The Circuit Debugger, and Multitool.
The typical use of this tool is that it may be used in hand, which causes a selection menu to pop up. An option from this menu is chosen, and then a value is input - through a couple different methods. With the tool in hand, and the menu of an assembly open, and a component within the assembly menu selected - one taps a data input or output pin. The value stored in the tool is then assigned to that pin. To clear the tool’s memory, simply use it in-hand again.
A “string” is the programming terms for a series of text characters. If one inputs a number value here (0-9), it will not be treated as a number - it will be treated as text.
The only acceptable inputs for this selection are the numbers 0 through 9. This option will make the assigned value a number, which can be manipulated through math, and so on.
Works identically the the “Sensor” component. When this option is selected, you may then tap any object - and a reference will be stored in the tool’s memory.
When this option is selected, the next value contained within a data input or output pin will be copied to the tool’s memory. You may then use the tool an unlimited number of times to place that data into further input and output data pins.
A shorthand method for placing a “Null” value into data input and output pins. See the Jargon Dictionary section above for details on the term “Null”.
- ID Lock
This option allows one to assign the value of an ID card to the assembly. Select this option, use an ID card on the tool, then tap the assembly with the tool. If an assembly is “locked”, it cannot be analyzed by a Circuit Analyzer tool.
The Multiool has several useful functions, two of which are exclusive to it. Generally, it can be thought of as a limited, improvised version of the Circuit Debugger and Circuit Wirer tools.
- Value Editing
Clicking any data pin variable will pop up an input box, where on can type a value which will automatically be of the required variable type. A notable advantage of the Multitool in this case is that one can manipulate “List” variables with a Multitool, which (probably due to an oversight) cannot be done with a Circuit Debugger.
Clicking a Boolean value will toggle, either from False to True, or True to False.
Clicking any data pin (the pin itself, not the pin’s variable) - allows the Multiool to act as a Circuit Wirer. Once a pin has been selected, click another Data Pin (again, not the pin’s variable) - to wire them together.
Circuits can also be quickly unwired with the Multitool, requiring only a single click on a connected wire to clear it.
Lastly, the Multitool has the ability to directly activate pulse pins, even in an assembly that has no battery, or power. With it in hand, simply click a pulse pin. This ability is unique to the Multitool. Note that this ability means that, while Data Pins can be wired with a Multitool - Pulse Pins cannot.
With all of one’s values correctly aligned, utilizing the Data Editing section of this guide - the time has come for the penultimate step. Components need to be properly connected (“wired”) in order for them to pass variables and pulses between them. The tool required for this is a Circuit Wirer, and to a lesser degree, a Multitool.
Wires appear as a list under the connected Pins. The first value of a wire indicates the variable the wire is tied to, the second value indicates the circuit the wire is tied to. Clicking the second variable in the wire will open the component indicated in the assembly interface.
The precise action of the Circuit Wirer tool is very simple. Click a Pin, then click another Pin of the same type - and a “wire” connection is formed.
Pulse Pins connect to Pulse Pins. While PULSE IN pins may be connected to PULSE IN Pins, this serves no practical purpose, as with PULSE OUT Pins to PULSE OUT Pins. Connecting a PULSE OUT Pin to a PULSE IN means, that - when the PULSE OUT condition is triggered - the PULSE IN Pin wired to it will be activated as well.
Data Pins connect to Data Pins. Data Pins must have the same variable type (or “Any”) to connect. The data contained with the Data Pin’s variable will be transferred to the wired Data Pin’s variable.
Unwiring requires one to click the first variable in the “wire” that appears, and then click the connected Pin. Alternatively, one can use a Multitool - and then one just needs to click the desired wire’s first variable.
Finishing a Device
To finish off a device, there is one required step, and several optional ones. First and foremost, to reiterate, save your device’s code using a Circuit Analyzer.
Paint the Device
Utilize an Assembly Detailer. See the above entry in the Required Tools section of the guide for details.
Set the Device’s Name
There is an option for this in the Assembly’s menu. The name should be an indicator of its function, and perhaps additionally indicate the creator. Take pride in your work!
Set the Device’s Description
Sadly, there is no method of doing this directly - without fiddling the code yielded from a Circuit Analyzer, or - by sticking a “Redescriber” component into the Assembly (found in the “Manipulation” menu of one’s Integrated Circuit Printer), editing the appropriate Text variable within that component, and pulsing the correct Pulse Pin with a Multitool. A description should contain precise details on how to use the device.
Insert a Power Cell
The only step actually required. Assemblies need power, and they can only be powered with Power Cells. For more detail, please review the Power Cell entry in the Required Tools section of this guide. Stick one in to an open assembly, and the device will function as it is designed to.
Close the Assembly
Using a screwdriver. This prevents direct manipulation of components.
Seal the Assembly
After the assembly is closed, one can use a Welding Tool to seal it, and prevent it from being easily opened with a screwdriver.
Wrench the Assembly
Using a wrench, one can stop the assembly from being moved. Keep in mind, even large assemblies do not have collision - anyone can walk right past them, or stand on them.
Device Interfacing and Networking
One device can be a powerful thing. Two or more devices working in conjunction with each other can be more powerful still. Consider the number of available methods with which devices can talk to each other, or even other game systems. Consider that a small device, which could require extensive amounts of processing, calculation, or memory components might not be able to fit them all in - but could talk with a larger device that could. Consider how many components are available for interacting with plants, reagents, atmospherics, power systems, radio signalers, and even mining.
As I stated above, Integrated Electronics can have a huge impact on the station. So, follow your vision - create devious, helpful, harmful, ingenious devices! Remember - the best device is one that anyone can pick up, look at, and use. Please feel free to post questions in this thread, about the guide, or Integrated Electronics in general.
You can find a simple, practical example on how to build a simple Flashlight linked here: Integrated Electronics: The Guide, Flashlight Example