Skip to content

Reactor PLC Configurator

Mikayla edited this page May 4, 2024 · 21 revisions

Reactor PLC Configurator Tool

The reactor PLC configurator tool can be brought up any time from the terminal by running configure on a reactor PLC. It will automatically come up if there is no valid configuration present, as shown in the first screenshot below.

General Tips:

  • You can paste values into number/text fields
  • You can navigate around with tab and shift+tab (and arrow keys where applicable)
  • You can ctrl+a or double click number/text fields to select all
  • When configuring the system, fields will be pre-filled with any valid existing configuration data
  • You will be shown a summary of settings before any are saved

Table of Contents

  1. Main Menu
  2. Change Log
  3. View Configuration
  4. Import Legacy config.lua
  5. Configure System
    1. PLC Configuration Options
    2. Network Configuration
    3. Logging Configuration
    4. Color Options
      1. Color Accessibility
        1. Color Modes
      2. Jump to Color Options
    5. Apply the Configuration

Main Menu

Below are two examples of the main menu. If the configurator is started by the reactor PLC app itself due to a lack of configuration, the red warning text in the first example will be present. If a configuration is present, the view option and color options button will be enabled (unlike in the first example).

If a legacy config.lua file is present, the import option will be shown as seen below.

image image

Change Log

There is an embedded configuration file change log that will show what fields have been changed, added, or removed. This will help you figure out why a previously valid configuration may no longer be valid.

image

View Configuration

This option shows the currently active configuration of the device. Facility authentication keys will be censored via asterisks, but can be shown via the unhide button.

Import Legacy config.lua

This option is only available if reactor-plc/config.lua is found. Those settings will be attempted to be imported and then a summary will be shown before the settings are saved.

Afterwards you will see this prompt.

Or this one if there was somehow a problem saving the settings.

Configure System

This option will walk you through configuring the reactor PLC. Fields will be pre-filled with existing configuration data if present, otherwise the defaults will be shown.

PLC Configuration Options

The first option is if this device should be configured as networked. In most cases you want to do this, but if you don't want to have a whole system, you can set it as not networked. When not networked, it will run as a standalone safety system that will provide all the safety checks a redstone setup could, and more! (plus emergency coolant control if configured later)

Next you will set the Unit ID. If you have a networked reactor, you are currently limited to unit ID's 1 through 4. If not networked, this is more just for show or organization, so it supports 1 to 999.

Next you have the option to configure emergency coolant control. This is distinct from the supervisor's emergency coolant control that operates through RTUs. This is recommended for non-networked PLCs, but you can also set it up with networked ones to. Just make sure that emergency coolant pipes allow flow with either this signal or a signal from the RTU, not both in sequence (since that would require both to be active, not providing any safety redundancy). For example, one water pipe could be controlled by the PLC and a separate pipe could be controlled by an RTU.

Network Configuration

For networked reactor PLCs, you will need to provide channel information next. These are the channels you have chosen per this page, or they may be the defaults. Defaults are perfectly fine on single player, though not recommended on multiplayer if any other people may be using this project.

Next, continuing network configuration, there are some more options. There is the connection timeout, which decides how many seconds to wait before assuming the supervisor is no longer available (resulting in a SCRAM if the reactor was running). If your server is very laggy, you may need to increase this, but be wary of the RTTs that the supervisor shows on its front panel screens.

Second, for a very basic level of security/utility there is the connection range, which prevents the PLC from receiving any network packets that are beyond this distance away. A value of 0 disables this feature, allowing packets from any distance. Note, cross-dimensional packets (such as nether to overworld) have a nil distance, so with this feature enabled they will always be ignored.

Note

This may be changed in the future to block packets with nil distance if a max range is configured.

Finally for network configuration is a more solid security feature (solid enough for a block game). You can provide a passkey as a facility key (same for every device on your network) that will be used to perform an HMAC-MD5 message authentication hash on each packet. This verifies packets received are authentic and from one of your devices. It does NOT encrypt your data (that takes far too long), but there should be no need for it to do so. This feature prevents others from connecting to or even controlling your system.

Please DO NOT USE ONE OF YOUR REAL PASSWORDS. This key is stored in plaintext (human readable), so anyone who has access to that computer or the server's filesystem (like admins) can see it.

Logging Configuration

Before reaching the summary page, you will configure logging. This is likely to be unmodified, unless you want to store log files on a separate disk in-game for storage size reasons. That would allow for larger log files.

  • Log file modes are either "replace the log file each time the main PLC program starts" (not recommended) or "append to the log file each time the main PLC program starts" (recommended)
  • Log path should be a valid path to somewhere that a file can be created, otherwise the system will error on start
  • Debug messages are only really valuable for finding bugs of course, so if you have a problem and can send more detailed logs by reproducing the problem with debug messages enabled, that's ideal. If you are out to break the program, you might as well enable debug messages before you attempt to do so so the logs are already there. Do be aware this results in significantly larger log files, which may cause them to be recycled (cleared and restarted) more often if there are space problems.

Color Options

With color options, you can customize themes and color accessibility options. The reactor PLC has one theme option, which is for its front panel. Sandstone is the "light" theme (default), and Basalt is the "dark" theme.

image

Color Accessibility

Clicking "Accessibility" will bring up the color accessibility options. Here you will find a set of color modes intended to help with different types of colorblindness, plus options to change indicators to be black when off or change greens to be blues. The three colorblindness modes always set indicators to be black when off and green indicators to be blue, in addition to shifting the other colors used for indicators. For all modes, a preview of what the indicators will look like is shown. Note that exact colors vary by the theme you have selected since contrast needs to be maintained.

Non-standard color modes split up the NETWORK light on the front panel for clarity.

image

See this page for details on colorblindness modes.

Color Modes
  • Standard: Standard green/yellow/red shades with color tinted backgrounds.
  • Deuteranopia: Colorblindness mode targeted for Deuteranopia that uses modified blue/yellow/red shades with black backgrounds. This has the same blue shade as Protanopia, but red and yellow are different.
  • Protanopia: Colorblindness mode targeted for Protanopia that uses modified blue/yellow/red shades with black backgrounds. This has the same blue shade as Deuteranopia, but red and yellow are different.
  • Tritanopia: Colorblindness mode targeted for Tritanopia that uses modified blue/yellow/red shades with black backgrounds.
  • Blue for 'Good': Swaps blue in place of green in indicators. Uses standard shades for yellow and red, and maintains color tinted backgrounds.
  • Standard + Black: Same as Standard, except indicators have black backgrounds.
  • Blue + Black: Same as Blue for 'Good', except indicators have black backgrounds.

Jump to Color Options

If you jump to the color options from the main page, you will be able to apply the settings right away afterwards.

image

Once you apply, you will see this screen.

image

Or this one if there was somehow a problem saving the settings.

image

Apply the Configuration

Lastly, you will see an overview of all the configurations that are going to be applied. Auth keys are hidden in this view until you use the unhide button (this does not affect how they are stored).

Once you apply, you will see this screen.

Or this one if there was somehow a problem saving the settings.

Clone this wiki locally