A combinator you program with words, not wires.
The AI Combinator reads signals from red/green wires and outputs signals - just like any other combinator. The difference? You describe what you want in plain English instead of building complex arithmetic/decider logic.
Download the AI Combinator Launcher
โ ๏ธ The launcher is required - it bridges Factorio to the AI service.
Run the installer and launch the app
Configure your AI provider:
Start Factorio through the launcher - additionally you'll have to activate the mod
Windows may show a SmartScreen warning because the launcher isn't code-signed. This is normal for open-source projects.
Why you can trust it:
The AI Combinator is a standard combinator with one key difference: you describe its behavior in natural language.
Inputs:
Outputs:
Persistent State:
Limitations:
AI-generated code can be unpredictable. The test case system solves this by letting you define expected behavior before generating code.
You want a combinator that outputs 1 when at least two signals exceed 1000. This requires checking multiple conditions, which AI can handle but might get wrong.
Task: "If at least two signals are above 1000, return 1"
| Test Case | Red Wire Input | Expected Output | Description |
|---|---|---|---|
| None above | iron-plate: 500, copper-plate: 800 | signal-A: 0 | Both below threshold |
| One above | iron-plate: 1500, copper-plate: 800 | signal-A: 0 | Only one exceeds 1000 |
| Two above | iron-plate: 1500, copper-plate: 2000 | signal-A: 1 | Two signals exceed threshold |
| Three above | iron-plate: 1500, copper-plate: 2000, steel-plate: 3000 | signal-A: 1 | More than two also works |
This example shows how test cases catch edge cases - especially the boundary between "one above" and "two above" that AI might miscalculate.
"Output signal-A = 1 when iron-plate < 1000 or copper-plate < 1000"
Wire to a speaker or warning lamp.
"Add all incoming iron-plate signals to a running total, output on signal-I"
Tracks cumulative production. Wire to a display or use for milestone detection.
"Calculate items per minute (measured over 5 seconds) from the iron plate signal, output on signal-T"
Measures flow rate over time using persistent variables and game tick.
"Output the signal type with the highest value, set to 1"
Useful for selecting which resource needs attention most like for smart asteroid chunk reprocessing
Be specific about signals:
"Output signal-A = 1 when iron-plate < 1000"
"Sum all input signals, output result on signal-T"
"Pass through copper-plate signal only, ignore everything else"
Time-based operations:
"Toggle signal-A every 60 ticks"
"Output the average of signal-X over the last 60 ticks"
"Only update output once per second (60 ticks)"
Complex logic:
"Output the signal type with the lowest value"
"Count how many different signal types have value > 0"
"Multiply iron-plate by 2 and copper-plate by 3, sum the results"
Performance: Heavier than vanilla combinators, but lighter than building equivalent logic manually. For UPS-sensitive builds, update less frequently ("check once per second").
AI Providers: OpenAI, Anthropic, Google, xAI, DeepSeek. All paid services - typical usage costs pennies per session.
Under the hood: The AI generates Lua code that reads from red/green tables, stores state in var, and writes to out. You can view and edit the code directly if needed.
"No AI Bridge Connection"
Combinator not responding
UPS issues
Need help?
See DEVELOPMENT.md for technical details and development setup.
Based on the Moon Logic 2 mod, distributed under the same license.
โญ Like this mod? Star us on GitHub and share your builds with the community!