Skip to main content

Advanced Examples

This section moves repeated behavior out of individual block scripts and into systems owned by your addon. You will create a small public core, extend Machine without changing DoriosCore, expose multiblock storage through configurable ports, and build a complete processing multiblock.

These guides use the working implementations in the UtilityCraft Addon Template and the larger controllers in UtilityCraft Heavy Machinery as their source patterns.

Before you begin

Complete these sections first:

Multiblocks reuse the same storage, progress, label, and IO concepts. The difference is that one controller represents a validated structure instead of one block.

Ownership model

Your machine script
imports reusable addon behavior from MYADDON_CORE
extends public classes from DoriosCore/index.js

Your registrations and block components
use DoriosLib/index.js

Physical ports
are associated with the active controller by DoriosLib

Logical IO groups and multiblock lifecycle
are handled by DoriosCore

Networks
are owned by UtilityCore
Keep the shared libraries read-only

Never add an addon class to DoriosCore, edit a DoriosCore class, or place addon-specific rules inside DoriosLib. A reusable mechanic that belongs only to your addon goes in an addon-owned folder such as MYADDON_CORE.

What you will build

GuideResult
Create an Addon CoreA stable addon-owned entry point for reusable classes and helpers.
Create a Custom Machine ClassA ThermalMachine that adds persistent heat and custom upgrade perks.
Ports and Link NodesItem, liquid, gas, and energy ports that activate with a multiblock.
Multiblock MachinesA wrench-activated Factory Crusher with casing validation, internal components, energy, progress, ports, and teardown.

Start with Create an Addon Core.