Faulty Example for circuit_condition :: Read|Write CircuitConditionDefinition

lmb
Manual Inserter
Manual Inserter
Posts: 1
Joined: Mon Apr 14, 2025 3:14 pm
Contact:

Faulty Example for circuit_condition :: Read|Write CircuitConditionDefinition

Post by lmb »

Hello,

I think, I found a mistake in the docs:

In
[https://lua-api.factorio.com/latest/cla ... _condition][LuaGenericOnOffControlBehavior]
the example for the circuit condition does not work in my case.

Instead of:
a_behavior.circuit_condition = {condition={
comparator=">",
first_signal={type="item", name="rail-chain-signal"},
constant=4}
}
the following worked for me:
a_behavior.circuit_condition = {
comparator=">",
first_signal={type="item", name="rail-chain-signal"},
constant=4
}

I am unsure if the documentation is also incorrect and "CircuitConditionDefinition" should be replaced with "CircuitCondition" in "circuit_condition :: Read|Write CircuitConditionDefinition".

I am unsure if this is also the case for logistic_condition of LuaGenericOnOffControlBehavior.


My code (ran in the editor mode accessed via STRG+SHIFT+F11 in a normal game of factorio space age):

local surface = game.player.surface -- to create entities
local position = game.player.position

local stacks_per_chest = 48

function create_fast_inserter(position, direction)
local inserter = surface.create_entity{
name = "fast-inserter",
position = position,
force = game.player.force,
direction = direction
-- conditions = { circuit = {comparator = "<", first_signal = "iron-ore", constant = 4}, filters = {{index = 1, name = "iron-ore"}}
-- }
}
return inserter
end

function create_buffer_chest(position, recipe)
local buffer_chest = surface.create_entity{
name = "buffer-chest",
position = position,
force = game.player.force
}
local requester_point = buffer_chest.get_requester_point()
requester_point.trash_not_requested = true
local request_section = requester_point.get_section(1)
local name_of_product = recipe.products[1].name
local stack_size = prototypes.item[name_of_product].stack_size
local logistic_filter = {
value = {type = "item", name = name_of_product, quality = "normal"},
min = stack_size * stacks_per_chest
}
request_section.set_slot(1, logistic_filter)

local inserter = create_fast_inserter({x = position.x + 2, y = position.y}, defines.direction.west)

local connector_inserter = inserter.get_wire_connector(defines.wire_connector_id.circuit_green, true)
local connector_buffer_chest = buffer_chest.get_wire_connector(defines.wire_connector_id.circuit_green, true)
connector_inserter.connect_to(connector_buffer_chest)

local inserter_behavior = inserter.get_or_create_control_behavior()
--inserter_behavior.circuit_set_filters = true
inserter_behavior.circuit_enable_disable = true
inserter_behavior.circuit_condition = {
comparator=">",
first_signal={type="item", name="rail-chain-signal"},
constant=4
}
end

local recipe = game.player.force.recipes["electric-engine-unit"]
create_buffer_chest({x = position.x + 3, y = position.y}, recipe)
User avatar
Therenas
Factorio Staff
Factorio Staff
Posts: 324
Joined: Tue Dec 11, 2018 2:10 pm
Contact:

Re: Faulty Example for circuit_condition :: Read|Write CircuitConditionDefinition

Post by Therenas »

Thanks for the detailed report! Fixed the docs and examples for the next release.
Post Reply

Return to “Resolved Requests”