SPC Addon API
Build custom function block nodes for Stored Program Controls — the Siemens LOGO!-inspired industrial automation mod for Minecraft.
You need 3 Java files (~80 lines total) and 1 config entry to create a working addon node. Follow the learning path below — you can have a custom node running in under 30 minutes.
Recommended Learning Path
Follow these pages in order. Each one builds on the previous.
What Can You Build?
The SPC Addon API lets other NeoForge mods add custom function block nodes to the in-game LOGO programming editor. Your nodes appear in the palette, can be wired to other blocks, saved in programs, and run by the LOGO runtime — just like built-in ones.
| What you want to do | Difficulty | Page to read |
|---|---|---|
| Add a sensor, logic gate, math block, or actuator | Beginner | Your First Addon + Examples |
| Deep-dive into node schemas, ports, and parameters | Intermediate | Creating Custom Nodes |
| Organize nodes with custom categories and icons | Intermediate | Node Categories |
| Build timers, counters, or toggles with state | Intermediate | State & Persistence |
| Transform, scale, or multiplex signals | Intermediate | Signal Processing |
| Understand when/how your node executes | Beginner | Core Concepts |
| Read world data (weather, time, light, entities) | Beginner | Execution Context |
| Use different data types (numbers, text, items) | Beginner | Signal Types |
| Bridge to another mod (Create, Mekanism, etc.) | Intermediate | Context Extensions |
| Add physical blocks to the LOGO machine | Advanced | Multiblock Modules |
| Add wireless devices or network cables | Advanced | Network Devices |
| React to program start/stop events | Intermediate | Runtime Events |
How It Works — At a Glance
Your addon depends on the lightweight API jar at compile time. It contains only interfaces and records — no implementation. At runtime, the full SPC mod provides everything. Players need SPC installed alongside your addon.
Node Lifecycle Overview
-
Define a Schema
Declare your node's unique type ID, execution phase, input/output ports,
and any configurable parameters using
SpcNodeSchema. -
Implement the Compiled Node
Write a class that implements
ISpcCompiledNode. This is the per-tick executable logic: read inputs, compute, write outputs. -
Create a Factory
Implement
ISpcNodeFactoryto construct compiled node instances during program compilation. The factory receives all resolved addresses and parameter values. -
Register
Call
SpcNodeRegistry.register(schema, factory, category)in your@Modconstructor. Done! - Play! Your node appears in the LOGO editor palette. Players place it on the canvas, wire it to other blocks, and run programs.