Changelog
All notable changes to the SPC Addon API, listed by version.
1.1.2 Latest
April 11, 2026
New Features
-
Connected texture API for addon display blocks.
New
ISpcConnectedDisplayinterface allows addon blocks to participate in the LOGO multiblock connected texture system. Implement this on your block class and return the display facing direction viagetDisplayFacing(BlockState). SPC’s built-in display blocks (and other addons) will recognize your block as a valid texture neighbor and connect accordingly. -
Live Diagnostics Panel API for addon modules.
New
ISpcDiagnosticsProviderinterface allows addon block entities to contribute custom entries to the Live Diagnostics Panel. Implement this on yourBlockEntityand returnSpcDiagnosticEntryinstances with a label, value, and active flag. Entries appear in a dedicated “Addon” section of the diagnostics overlay.
New API Classes
| Class | Package | Purpose |
|---|---|---|
ISpcConnectedDisplay |
com.hypernova.spc.api.multiblock |
Declare addon blocks as connected texture neighbors |
ISpcDiagnosticsProvider |
com.hypernova.spc.api.multiblock |
Contribute entries to the Live Diagnostics Panel |
SpcDiagnosticEntry |
com.hypernova.spc.api.multiblock |
Data record for a single diagnostic label + value |
Upgrade Steps
- Replace
storedprogramcontrols-1.1.1-api.jarwithstoredprogramcontrols-1.1.2-api.jarin yourlibs/folder. - Update
build.gradle:compileOnly files('libs/storedprogramcontrols-1.1.2-api.jar') - Update
neoforge.mods.toml:versionRange="[1.1.2,)" - Replace the runtime jar in
run/mods/with the lateststoredprogramcontrols-0.2.0.jar.
1.1.1
April 11, 2026
Bug Fixes
-
Addon blocks now recognized by multiblock validator.
LogoMachineBlocks.isMachineBlock()andgetModuleType()previously only checked for the internalLogoModuleProviderinterface. Blocks implementing the public API interfaceISpcMultiblockModulewere invisible to both BFS structure discovery and type validation. The multiblock always reported “Missing Input Block” / “Missing Output Block” even when addon blocks were placed correctly.
Details
Both isMachineBlock() and getModuleType() now have a fallback
path: if a block is not a built-in LogoModuleProvider, the methods check for
ISpcMultiblockModule, look up the registered SpcModuleType from
SpcModuleTypeRegistry, and map the declared SpcMultiblockPosition
to the corresponding internal LogoModuleType.
No addon-side code changes are required. Just update your dependency
version range to [1.1.1,) and replace the API jar.
Upgrade Steps
- Replace
storedprogramcontrols-1.1.0-api.jarwithstoredprogramcontrols-1.1.2-api.jarin yourlibs/folder. - Update
build.gradle:compileOnly files('libs/storedprogramcontrols-1.1.2-api.jar') - Update
neoforge.mods.toml:versionRange="[1.1.1,)" - Replace the runtime jar in
run/mods/with the lateststoredprogramcontrols-0.2.0.jar.
1.1.0
April 11, 2026 — Initial public release
Features
-
Custom function block nodes —
Register addon nodes via
SpcNodeSchema,ISpcCompiledNode, andSpcNodeRegistry. - Six signal types — DIGITAL, INTEGER, DECIMAL, TEXT, ITEM, ITEM_ID with automatic type conversion.
- Four-phase execution model — Input Read → Logic Evaluation → State Update → Output Apply.
- Persistent node state — Slot-based storage that survives across ticks and world saves.
-
Palette customization —
displayName,shortLabel, anddescriptionfields onSpcNodeSchemafor controlling how addon nodes appear in the editor. -
Multiblock module API —
ISpcMultiblockModule,SpcModuleType,SpcModuleTypeRegistry,ISpcPhysicalIoHandlerfor addon blocks that participate in the LOGO multiblock structure. -
Network device API —
ISpcNetworkDevice,ISpcNetworkActivation,ISpcCableTraversable,SpcNetworkRegistry. -
Runtime event API —
ISpcRuntimeEventListener,SpcRuntimeEventRegistryfor hooking into program lifecycle events. -
Context extensions —
ISpcExecutionContextExtensionfor injecting custom world interaction capabilities into the execution context. - Custom palette categories — Organize addon nodes under named categories in the Programming Block editor.