Download the Template
The UtilityCraft Addon Template is the starting point for this course. It contains complete working examples rather than isolated code fragments.
Option 1: create a repository from the template
If GitHub shows the Use this template button:
- Open the template repository.
- Select Use this template and then Create a new repository.
- Choose your repository owner and a name for the extension.
- Clone the new repository to your computer.
This creates an independent project with its own Git history.
Option 2: download a ZIP
- Open the template repository.
- Select Code and Download ZIP.
- Extract the entire archive into a new project folder.
- Do not extract only
BPor onlyRP; the root tools, types, and configuration are part of the learning project.
This option does not require Git.
Option 3: clone with Git
git clone https://github.com/DoriosStudios/UtilityCraft-Addon-Template.git MyUtilityCraftAddon
cd MyUtilityCraftAddon
Before pushing changes, connect this working copy to a repository you own. Do not push addon changes back to the template repository.
Verify the download
The project root should contain at least:
MyUtilityCraftAddon/
├── BP/
├── RP/
├── data/
├── docs/
├── tools/
├── types/
├── config.json
├── jsconfig.json
├── package.json
└── README.md
If BP, RP, or config.json is missing, return to the repository root and download the complete project.
Do not modify the libraries
These two folders are dependency snapshots:
BP/scripts/DoriosCore/
BP/scripts/DoriosLib/
Treat both folders as read-only. They are included so the project can build and run against the public libraries; they are not the place for addon-owned mechanics.
Always use the public imports:
import { Machine } from "DoriosCore/index.js";
import * as DoriosLib from "DoriosLib/index.js";
Reusable code owned by your addon belongs in an addon core such as MYADDON_CORE, based on the included ExampleCore folder.
Before turning it into your addon
Run the unchanged template once before renaming or deleting examples. A clean run proves the environment works and makes later errors easier to locate.
After that first run, a real addon should receive:
- its own BP and RP names;
- new header and module UUIDs;
- its own namespace for owned content;
- an addon-owned replacement name for
ExampleCore; - updated aliases in
config.json,jsconfig.json, and the bundle scripts; - final assets that you are licensed to distribute.
Keep the UtilityCraft dependency UUIDs and compatible version requirements. Do not reuse the template's addon UUIDs in a distributed project, because two packs with the same UUID cannot coexist safely.
Next: Run the project.