Programable Network

Programable Network v1.1.1

Adds additional options to control machines by custom specified conditions in Controllers. Contains also programable displays and lights

Stable 1 day ago CoI-Keep Source code
Game versions: 0.8.4 – 0.8.4a
Save-game: Add Remove
77%
18

Programable Network — Mod Overview

image.png

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.

image.png

image.png

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
Save-game: Add Remove
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
Loading forum…