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