PLC logic for Rimworld scripting
Find a file
2026-10-14 01:52:46 -06:00
1.7 Sensors: colonists_trapped (reachability to the map edge); preset: the colonist-trapped rung, the layout gate on the two rooms, the chop rung on its reply 2026-10-14 01:52:46 -06:00
About Add RimPLC preview and transparent branding artwork 2026-10-12 12:47:38 -06:00
BridgeTools Publish standalone RimPLC with RimWorld 1.7 target 2026-10-12 12:28:37 -06:00
docs RimPLC's own wiki: eight pages (install, the window, the ladder, sensors, commands and the AI API, presets and building, links) rendered to docs/ for Pages, source under docs/wiki/, the cover beside them; the README points at the wiki; the companion DLL ships inside the mod folder only (a second copy at the game root registers the tools twice); threat_letter_unread sensor; the day-one camp order in the preset 2026-10-13 20:34:03 -06:00
Languages/English/Keyed Publish standalone RimPLC with RimWorld 1.7 target 2026-10-12 12:28:37 -06:00
Presets Sensors: colonists_trapped (reachability to the map edge); preset: the colonist-trapped rung, the layout gate on the two rooms, the chop rung on its reply 2026-10-14 01:52:46 -06:00
Source Sensors: colonists_trapped (reachability to the map edge); preset: the colonist-trapped rung, the layout gate on the two rooms, the chop rung on its reply 2026-10-14 01:52:46 -06:00
.gitignore Publish standalone RimPLC with RimWorld 1.7 target 2026-10-12 12:28:37 -06:00
LICENSE Publish standalone RimPLC with RimWorld 1.7 target 2026-10-12 12:28:37 -06:00
LoadFolders.xml Use the current 1.7 content folder throughout RimPLC 2026-10-12 13:18:37 -06:00
README.md RimPLC's own wiki: eight pages (install, the window, the ladder, sensors, commands and the AI API, presets and building, links) rendered to docs/ for Pages, source under docs/wiki/, the cover beside them; the README points at the wiki; the companion DLL ships inside the mod folder only (a second copy at the game root registers the tools twice); threat_letter_unread sensor; the day-one camp order in the preset 2026-10-13 20:34:03 -06:00

RimPLC

RimPLC — colony logic and control

A standalone ladder-logic advisor for RimWorld. Sensors read the colony, tags set thresholds, marks hold recorded values, and rungs describe if this, then this. The main tab shows each rung's live contacts and lets you edit, enable, import and export a ladder. Advice is the default; this version's automatic coils are limited to messages, marks and tags. It does not build, spawn or destroy world objects.

Version 0.1.0. Package ID Operator.RimPLC; author Operator. RimWorld 1.6 and 1.7 are declared targets and share the current 1.7/ content folder. A declaration is not a compatibility result: a running 1.7 session has not yet been verified. The core requires no other mod, Harmony or expansion. Rimrooms-specific preset rungs remain inactive without Rimrooms.

Read the wiki: install, the window, the ladder, sensors, commands and the AI API, presets and building. Its source is under docs/wiki and the rendered site under docs/. JSON formats for rules, tags, sensors, marks, ladders and commands are under docs/schema.

Install

Copy this repository's mod files to a local Mods folder as RimPLC, keeping About/ and LoadFolders.xml directly inside it. The loadable files are About/, LoadFolders.xml, 1.7/, Languages/ and Presets/; Source/ is for developers and BridgeTools/ is the separate optional companion below. Enable RimPLC through your mod manager. Back up a save before changing its mod list; removal from an existing save has not been checked.

Build the core

Install a .NET SDK and use your own local RimWorld installation:

dotnet build Source/RimPLC/RimPLC.csproj -c Release -p:RimWorldPath="C:/path/to/RimWorld"

RIMWORLD_PATH is also accepted. The project targets .NET Framework 4.7.2 and C# 7.3, treats warnings as errors, and writes 1.7/Assemblies/RimPLC.dll. Game assemblies are read from RimWorldWin64_Data/Managed with Private=false and are never copied into the output. Build commands do not stage or launch the game. The shipped Presets/LadderV2.json is self-contained; no parent repository, Python generator or training dataset is needed to build or run this mod.

Optional RimBridgeServer tools

The core mod does not require RimBridgeServer. Its file API works at <RimWorld config folder>/RimPLC/inbox.jsonl, returning results in outbox.jsonl.

To build the optional companion after building the core:

dotnet build Source/RimPLC.BridgeTools/RimPLC.BridgeTools.csproj -c Release -p:RimWorldPath="C:/path/to/RimWorld" -p:RimBridgeSdkPath="C:/path/to/RimBridgeServer.Sdk.dll"

With RimBridgeServer installed, copy only BridgeTools/RimPLC.BridgeTools.dll to <RimWorld>/BridgeTools/RimPLC/. The SDK and bridge are supplied by their own project; neither is bundled here. The companion exposes rimplc/read_ladder, read_state, set_tag, set_mark, upsert_rung, remove_rung, enable_rung, letters_seen, export and import.

License and repositories

Original RimPLC source is MIT licensed; see LICENSE. RimWorld and its assemblies belong to Ludeon Studios and are not included.

The original mod preview and transparent branding badge use a cream/brass ladder-circuit motif. They are promotional artwork; the game's RimPLC controls remain text-based.

These are the owner's publication destinations. A local export does not confirm that either remote has been created or updated.