Configurator nested types and enums
This is the player-readable schema companion to supported settings. Fields marked optional may be omitted; required fields must be present. Unknown fields are refused. Arrays are dense and at most 128 items. Strings are at most 256 bytes and cannot contain NUL. Numbers are finite; guest integer bounds remain exact. Prototype identities use installed names, never objects.
SignalID/SignalIDBase require explicit type and name; quality defaults normal where supported. Conditional fulfilled is read-only and excluded. Quality/location object unions normalize to registered name strings. Selector fields must belong to the selected operation; default select. See normalization.
ArithmeticCombinatorParameterOperation
* or / or + or - or % or ^ or << or >> or AND or OR or XOR
ArithmeticCombinatorParameters
| Field | Type | Required |
|---|---|---|
first_constant |
integer −2147483648…2147483647 | no |
first_signal |
SignalID | no |
first_signal_networks |
CircuitNetworkSelection | no |
operation |
ArithmeticCombinatorParameterOperation | no |
output_signal |
SignalID | no |
second_constant |
integer −2147483648…2147483647 | no |
second_signal |
SignalID | no |
second_signal_networks |
CircuitNetworkSelection | no |
BlueprintQualityID
| Field | Type | Required |
|---|---|---|
name |
string ≤256 bytes, no NUL | no |
CircuitConditionDefinition
| Field | Type | Required |
|---|---|---|
comparator |
ComparatorString | no |
constant |
integer −2147483648…2147483647 | no |
first_signal |
SignalID | no |
second_signal |
SignalID | no |
CircuitNetworkSelection
| Field | Type | Required |
|---|---|---|
green |
boolean | no |
red |
boolean | no |
ComparatorString
= or > or < or ≥ or >= or ≤ or <= or ≠ or !=
DeciderCombinatorCondition
| Field | Type | Required |
|---|---|---|
comparator |
ComparatorString | no |
compare_type |
and or or |
no |
constant |
integer −2147483648…2147483647 | no |
first_signal |
SignalID | no |
first_signal_networks |
CircuitNetworkSelection | no |
second_signal |
SignalID | no |
second_signal_networks |
CircuitNetworkSelection | no |
DeciderCombinatorOutput
| Field | Type | Required |
|---|---|---|
constant |
integer −2147483648…2147483647 | no |
copy_count_from_input |
boolean | no |
networks |
CircuitNetworkSelection | no |
signal |
SignalID | yes |
DeciderCombinatorParameters
| Field | Type | Required |
|---|---|---|
conditions |
dense array ≤128 of DeciderCombinatorCondition | yes |
outputs |
dense array ≤128 of DeciderCombinatorOutput | yes |
DisplayPanelMessageDefinition
| Field | Type | Required |
|---|---|---|
condition |
CircuitConditionDefinition | yes |
icon |
SignalID | yes |
text |
string ≤256 bytes, no NUL | yes |
ItemCountType
integer 0…4294967295
LogisticFilter
| Field | Type | Required |
|---|---|---|
import_from |
registered location name string | no |
max |
ItemCountType | no |
min |
integer −2147483648…2147483647 | no |
minimum_delivery_count |
ItemCountType | no |
value |
SignalFilter | no |
Section filters additionally require index: integer 1–128. The list is dense
but indexes can be sparse. Duplicate indexes/identities refuse; nonzero min
requires explicit exact quality. max must not be below min.
ProgrammableSpeakerCircuitParameters
| Field | Type | Required |
|---|---|---|
instrument_id |
integer 0…4294967295 | yes |
note_id |
integer 0…4294967295 | yes |
signal_value_is_pitch |
boolean | yes |
stop_playing_sounds |
boolean | yes |
QualityCondition
{comparator?: ComparatorString; quality?: string ≤256 bytes, no NUL} or string ≤256 bytes, no NUL
QualityID
registered quality name string
SelectorCombinatorParameterOperation
select or count or random or quality-transfer or rocket-capacity or stack-size or quality-filter
SelectorCombinatorParameters
| Field | Type | Required |
|---|---|---|
operation |
SelectorCombinatorParameterOperation | no |
For operation count only:
| Field | Type | Required |
|---|---|---|
count_signal |
SignalID | no |
For operation quality-filter only:
| Field | Type | Required |
|---|---|---|
quality_filter |
QualityCondition | no |
For operation quality-transfer only:
| Field | Type | Required |
|---|---|---|
quality_destination_signal |
SignalID | yes |
quality_source_signal |
SignalIDBase | no |
quality_source_static |
BlueprintQualityID | no |
select_quality_from_signal |
boolean | no |
For operation random only:
| Field | Type | Required |
|---|---|---|
random_update_interval |
integer 0…4294967295 | no |
For operation select only:
| Field | Type | Required |
|---|---|---|
index_constant |
integer −2147483648…2147483647 | no |
index_signal |
SignalID | no |
select_max |
boolean | no |
SignalFilter
{comparator?: ComparatorString; name: string ≤256 bytes, no NUL; quality?: registered quality name string; type?: SignalIDType} or string ≤256 bytes, no NUL
SignalID
| Field | Type | Required |
|---|---|---|
name |
string ≤256 bytes, no NUL | yes |
quality |
registered quality name string | no |
type |
SignalIDType | yes |
SignalIDBase
| Field | Type | Required |
|---|---|---|
name |
string ≤256 bytes, no NUL | yes |
type |
SignalIDType | yes |
SignalIDType
item or fluid or virtual or entity or recipe or space-location or asteroid-chunk or quality
SpaceLocationID
registered location name string
boolean
boolean
float
finite number
int32
integer −2147483648…2147483647
nil
Absence only, never a stored Data value or implicit clear patch.
string
string ≤256 bytes, no NUL
table
bounded plain table
uint32
integer 0…4294967295
Normalization
- Conditions: constant/second_signal exclusive; comparator defaults <, constant 0.
=, <=, != normalize to ≥, ≤, ≠. fulfilled is observation-only.
- CircuitNetworkSelection omitted red/green means true for each.
- Arithmetic defaults operation *, missing numeric operands 0; signal operands replace corresponding constants. Each output needs each first input.
- Decider compare_type defaults or; output constant defaults 1, copy_count_from_input defaults true, networks default both. Each output needs an each condition. Ordinary condition first allows anything/everything; ordinary second and ordinary signal roots reject wildcards.
- Selector defaults select, index_constant 0, select_max true. count has optional count_signal; random defaults random_update_interval 0 (ticks). stack-size and rocket-capacity accept no operation-specific fields. quality-filter accepts registered quality/quality-comparator; quality-transfer requires destination signal, defaults select_quality_from_signal false and static normal; selecting signal quality uses quality_source_signal instead of static source.
- SignalFilter/QualityCondition readback includes normal and comparator = defaults. BlueprintQualityID defaults name normal. Ordinary signal quality defaults normal.
- LogisticFilter min defaults 0; registered nauvis is the default item import location. Section multiplier readback preserves native float32 precision.
- Native enum values are strings, not defines ordinals. Speaker instrument/note IDs are zero-based and validated against the actual target catalogue.
Native enum names
defines.control_behavior.cargo_landing_pad.exclusive_mode
none, send_contents, set_requests
defines.control_behavior.inserter.hand_read_mode
hold, pulse
defines.control_behavior.lamp.color_mode
color_mapping, components, packed_rgb
defines.control_behavior.logistic_container.exclusive_mode
none, send_contents, set_requests
defines.control_behavior.mining_drill.resource_read_mode
entire_patch, this_miner
defines.control_behavior.roboport.read_items_mode
logistics, missing_requests, none
defines.control_behavior.rocket_silo.read_mode
logistic_inventory, none, orbital_requests
defines.control_behavior.transport_belt.content_read_mode
entire_belt_hold, hold, pulse
defines.logistic_section_type
circuit_controlled, manual, request_missing_materials_controlled, transitional_request_controlled
defines.wire_connector_id
circuit_green, circuit_red, combinator_input_green, combinator_input_red, combinator_output_green, combinator_output_red, pole_copper, power_switch_left_copper, power_switch_right_copper