Programable Network v1.1.1
Adds additional options to control machines by custom specified conditions in Controllers. Contains also programable displays and lights
| Source code | https://github.com/DeznekCZ/COIM/tree/main-programable-network-0.8 |
| Websites |
Programable Network — Mod Overview

What it adds
A logic-and-signals layer for Captain of Industry. The mod introduces a Controller building that hosts a grid of Modules wired together with typed cables. Modules read game state, perform arithmetic / boolean / control logic, and write back commands or signals. Several display and signal-bus entities round out the toolkit.
Top-level entities (registered from C#)
- Controller — placeable building with a grid layout. Hosts a programmable network of modules. Inspector supports Add / Move / Edit modes.
- Antenna (AM / FM) — wireless signal bus. Channels carry single values (AM) or arrays of borrowed signals (FM) between distant controllers.
- Display Entity — colourised lights, 7-segment and 16-segment digit displays driven by module outputs.
- Speaker — audio cue triggered by signal.
Module groups
Modules ship in groups, each registered by a RegisterData call in ModDefinition and assembled via the ModuleBuilderStart(...) fluent API in Data/Mod/Modules/Modules.cs (~2900 LOC). Categories visible to the player:
- Constants — integer, hex, product, crop, machine, vehicle…
- Buttons — manual triggers / latches.
- Arithmetic — sum, subtract, multiply, divide, modulo, etc. (extensible pin counts replace older fixed-arity variants — see Deprecation table).
- Stats — read live stats from buildings, machines, mines, farms, storages.
- Forks — fan-out / route signals.
- Booleans — and / or / xor / not (extensible).
- Decisions — conditional pickers (e.g. flip-flop, latch, memory).
- Connections — read / write to game entities (recipes, priorities, thermal storage, transports, etc.).
- Comparation — int compare (>, =, <, ≥, ≤).
- Display — 7-seg / 16-seg, ints, sliders, LEDs, toggles, images.
- Radio AM / FM — antenna read/write modules.
- Variables — named state slots shared across the controller.
- Plc (its own ModuleGroup) — runs user-authored Python code per tick via
PlcPy*. - Special:
Game_Pause(debug-only).
How user-authored content plugs in
The mod ships a Python "Custom" layer that loads at runtime — players can drop .py files into the mod's Modules/Custom/ folder to register new modules, templates, or controller blueprints without compiling C#.
Custom Python files (current ship)
Located under src/ProgramableNetwork.Modules/Custom/:
| File | Purpose |
|---|---|
clock.py |
Cyclic time source (configurable period & rollover). |
connection_isactive.py |
Reads the active state of a connected entity. |
connection_thermalstorage.py |
Reads thermal-storage charge level. |
controller_template.py |
"Basic hour clock" — a sample full Controller blueprint with wired-up modules. |
delay.py |
Delays a signal by N ticks. |
equal_selector.py |
Selects an output channel by equality match. |
flipflop.py |
Set/reset latch with extension pins. |
latch.py |
One-bit memory latch. |
max.py |
Max-of-inputs (extensible). |
memory_selector.py |
Indexed memory cell. |
notification.py |
Triggers a controller-level notification. |
randomizer.py |
Random integer source. |
shift.py |
Cyclic shifter — rotates channel inputs onto matching outputs. |
template.py |
Reference of a category-favorites + simple constants/displays template. |
timer.py |
One-shot / repeating timer. |
Python "Core" API (read-only — published lib)
Under src/ProgramableNetwork.Modules/Core/. Do not edit — it's the public surface other mod devs target.
| File | What it exposes |
|---|---|
module.py |
Module base class, default controllers, in/out helpers. |
template.py |
Template, Controller blueprint base. |
categories.py |
DefaultCategories (Connection, Arithmetic, Display, Control, Boolean, …). |
display.py |
Display registration helpers. |
fields.py |
Int32Field, EntityField, etc. |
io.py |
Input / Output proto helpers. |
errors.py |
Exception types surfaced to the parser. |
mafi.py |
Wrapper for Mafi types (e.g. Fix32). |
translate.py |
tr(...) for localized strings. |
ids.py |
(generated) IDs for all C#-registered modules. |
Custom .py files may import only from Core.* and Mafi.* — the runtime parser does not support stdlib or third-party modules.
Python PLC
The Python API also allows to write custom logic directly in the controller. Enough is to add the nodule and write a proper code.


This mod has no dependencies.
No other mods depend on this mod yet.
No announcements yet.
v1.1.1
Latest| Game version | 0.8.4 - 0.8.4a re-verified |
| Released | May 12, 2026 |
| File size | 3.2 MB |
| License | CoI-Keep |
Changelog
v1.1.1 | 2026-06-15: - added option convert hex values, that is usable for colors and product - added Compare: A vs B module (A<>B) — combined less/greater compare with binary / positive / sumup output modes; mode variants surface in the module picker as preset templates - extended Connection: Office - Unity - now have extendable pins to show more info - added hint checkbox, that will hide tooltip for controls - added option to select template directly from NewModule picker - added option to precofigure some fields directly from NewModule picker - added direct edit for modules, that are not part of controller yet
v1.1.1 | 2026-06-15:
v1.1.1 | 2026-06-15: - added option convert hex values, that is usable for colors and product - added Compare: A vs B module (A<>B) — combined less/greater compare with binary / positive / sumup output modes; mode variants surface in the module picker as preset templates - extended Connection: Office - Unity - now have extendable pins to show more info - added hint checkbox, that will hide tooltip for controls - added option to select template directly from NewModule picker - added option to precofigure some fields directly from NewModule picker - added direct edit for modules, that are not part of controller yet
v1.1.0 | 2026-05-01:
v1.1.0 | 2026-05-01: - added python PLC module for custom pin to pin reaction - changed cable display - updated modules to be extendable
v1.0.0 | 2025-07-10:
v1.0.0 | 2025-07-10: - added the connection modules - added simple LED lights - added 7-segment and 16-segment displays - added sound emitter