Create UtilityCraft Extensions
Build your own UtilityCraft extension one working feature at a time. This learning path starts with the official addon template and gradually introduces scripted machines, energy, UI, IO, upgrades, recipes, fluids, gases, generators, reusable components, and advanced machinery.
You do not need to understand UtilityCraft's private implementation. The examples use only the public DoriosLib and DoriosCore entry points that an extension is expected to use.
Open the UtilityCraft Addon Template
Start at Getting Started. It explains every required pack, how to download the project, how to run it with or without Regolith, and which folders you are expected to edit.
The three parts of an extension
| Part | Responsibility |
|---|---|
| Your addon | Owns its blocks, items, entities, textures, recipes, scripts, namespace, and custom mechanics. |
| DoriosLib | Provides shared helpers and the public registries used to register components and UtilityCraft integrations. |
| DoriosCore | Provides the machinery-focused classes and systems used by machines, generators, storage, IO, ports, and interfaces. |
UtilityCraft supplies the runtime and shared assets expected by the template. UtilityCore owns networks; DoriosCore does not.
What you will learn
The documentation is organized as a progressive course:
- Prepare and run the official template.
- Build a small scripted machine.
- Give the machine a standard UtilityCraft UI and progress display.
- Configure item, liquid, and gas IO.
- Register and apply machine upgrades.
- Add content to UtilityCraft registries through DoriosLib.
- Reuse existing block and item components.
- Create passive and active generators.
- Move reusable addon behavior into an addon-owned core.
- Build ports and multiblock machinery.
Documentation map
| Section | Goal | Status |
|---|---|---|
| Getting Started | Install, inspect, and run the template safely. | Available |
| Your First Machine | Build a complete beginner-friendly scripted machine. | Available |
| Machine UI | Add slots, labels, progress, and standard tabs. | Available |
| Machine IO | Configure faces and item, liquid, and gas routing. | Available |
| Machine Upgrades | Register and consume standard and addon-owned perks. | Available |
| UtilityCraft Registries | Register recipes, resources, plants, fuels, and drops with DoriosLib. | Available |
| Reusable Components | Use existing block and item components correctly. | Available |
| Generators | Create passive, fuel, liquid, and gas generators. | Available |
| Advanced Examples | Extend DoriosCore safely and build multiblocks and ports. | Available |
| Machine UI Core | Look up every shared @uc.* JSON UI element. | Reference available |
Rules followed throughout this course
- Import DoriosCore only from
DoriosCore/index.js. - Import DoriosLib only from
DoriosLib/index.js. - Treat the template's
BP/scripts/DoriosCoreandBP/scripts/DoriosLibfolders as read-only dependencies. - Put reusable addon-owned code in an addon-owned core such as
MYADDON_CORE. - Keep concrete blocks, registrations, and examples outside DoriosCore.
- Use a unique namespace and unique manifest UUIDs for a real addon.
- Validate every example against the current UtilityCraft Addon Template.
Continue with Getting Started.