Redstone-over-Radio

Redstone-over-Radio is a complex mechanic in NTM that allows for the advanced monitoring and control of various industrial systems through the use of transmitters, receivers, and even basic arithmetic comparison components. One of the simplest but most powerful uses of RoR is in the replacing of the vanilla comparator with a much more versatile and easily used device.
Crafting
Each RoR component is relatively cheap with the most expensive component requiring a microchip, though each component requires glowstone which necessarily gates their acquisition behind entering the nether.
Basic Operation

Note: Changes to RoR components must be manually saved by pressing the "Save Settings" button
The most basic components in RoR are the transmitter and receiver. In order to set up transmission, the ID field (which can be composed of any 10 ASCII characters) must be equal in both the transmitter and receiver.
Multiple receivers will work as expected, with each receiver correctly reading the transmitted state. Multiple transmitters however are not supported. Each transmitter will simply write over the previous signal, with whatever transmitter happens to broadcast last having the final say. Due to the arbitrary nature of what an RoR signal can represent, there is no signal prioritization.
When placed on a block or part of a machine which outputs a comparator signal (fluid tank, crate, etc), the RoR transmitter will output a signal that is equivalent to its vanilla counterpart which will be immediately sent out to all receivers.
RoR components have similar placement rules to levers, being able to stick to any side of a solid block, even upside-down. In addition to sticking to solid blocks, they can also be attached to blocks they can interact with, like non-solid blocks with comparator output (e.g. chests), direct redstone output (e.g. radars) or in the case of the item counter, any block with an inventory (e.g. the item port on any multiblock machine).
Intermediate Operation

Transmitters and receivers are by default set to read and transmit signals exactly as vanilla comparators operate with a linearly increasing output according to the fullness of the container they are reading from. This behavior can be changed to a custom mapping by clicking the first button in the GUI of the transmitter, switching it to custom mapping mode. In this mode, the original signal that would be sent out by the transmitter is marked with the number next to the input field and can be changed by typing in any number between 0 and 15. When the transmitter reads a comparator signal equal to the number next to this field, it will then output a signal of whatever strength is input into this box.
This behavior only functions when set in a transmitter and will not influence the operation of any receiver that is set to its ID.
State Change vs. Polling
The next button present in this menu changes the RoR transmitter from only sending out a signal upon a change in the read comparator value (State Change) to constantly sending out a signal of its current comparator value (Polling). Unlike custom mapping, this setting does have an effect upon the behavior of receivers when set in addition to transmitters.
The most obvious instance where this option applies is if the transmitter is set to state change whereas the receiver is set to polling then when the receiver detects a change and sends out a signal, the receiver will pulse for only a single tick as the transmitter only outputted the signal for a single tick after the state change. The default behavior of state change may also cause RoR circuits to not function until a change in the system, meaning that a transmitter set to detect when a crate becomes full by sending out a signal only when the comparator value is equal to 15 will never activate as the state will never shift.
Advanced Operation
The final two RoR components are substantially more complex than previous components, especially the logic receiver which is capable of a variety of arithmetic and string matching functions to allow for very advanced behaviors to be implemented.
Item Counter

The item counter is relatively simple but is made more complex by the fact that it is capable of superseding the previous limit of 15 on signal strength. As the name suggests, it counts items in containers but on the scale of individual items rather than as a measure of fullness like a comparator. Once attached to a valid block, items can be placed in the blue box on the right side of the interface to designate which item in the container should be counted and the ID field to the left determines to which receivers it will send its signal.
The exact behavior of what types of items it counts can be changed by right clicking the item in the blue box to change it between Item Matches and Item and Meta Matches. Due to the fact that the count of items in an inventory can greatly exceed the standard Minecraft max redstone signal of 15, the item counter is complemented in its function well by the next RoR component: The logic receiver.
Logic Receiver
The logic receiver can perform a variety of comparison operations on a received signal in comparison to a specified constant and perform them in a specific order. The constant can be specified in the field to the left of the redstone output number displayed and the manner in which the constant is evaluated can be specified with the button to the left of the constant field. The function of each operator where it is not already obvious is below:
- Signal MATCHES String. Output if the text of the signal received is exactly equal to the constant. E.g. Signal 15, Constant 15 = Match
- Signal DOES NOT MATCH String. Output if the text of the signal received is NOT exactly equal to the constant. E.g. Signal 15, Constant 14 = Match
- Signal CONTAINS String. Output if the text of the signal contains the constant. E.g. Signal 15, Constant 1 = Match
- Signal DOES NOT CONTAIN String. Output if the text of the signal does NOT contain the constant. E.g. Signal 15, Constant 2 = Match
Each specified logical operation will occur in a set order and any operations performed after another will take precedence (operations for higher outputs are considered more important). This behavior can be switched to the opposite direction by pressing the first button to the right of the ID field which is by default set to evaluate the top-leftmost condition first and move down and rightwards.