Blueprint

2 min read

Updated on November 21, 2025

Introduction

Blueprints are Scriptable Objects used in Crafters to produce the Result of the Blueprint. They are also used in Blueprint Groups to create a range of Blueprints the Crafter can select from.

Setting up

There are some ready made Blueprints in /Blueprints in the root of the folder.
You can set up new Blueprints with Create>ResourceAndProduction>Item.

Settings

Result
This is the Item Amount that will be produced when the Crafter has finished the Craft Time. It also determines the Blueprint title in the custom editor. Result Amount can be a float if the Item’s precision type is set to float.

Materials
A List of Item Amounts that are needed to produce the Result. The Crafting UI and Blueprint Select Slot are currently set up to accept between 1 and 3 Materials and would need modification to accept more. Except the UI elements, there are no other barriers to setting as many Materials as you need. Material Amount can be a float if the Item’s precision type is set to float.

ID
Self populating ID. Every duplicate or new Blueprint created should assign a new unique ID for Blueprint. Each Blueprint needs a unique ID for the Blueprint to be distinguished.

Craft Time
Hours – How many hours are needed for the craft, between 0 and 23.

Minues – How many minutes are needed for the craft, between 0 and 59.

Seconds – How many seconds are needed for the craft, between 0 and 59.

Note – There is a maximum time limit of 23 hours, 59 minutes and 59 seconds for Blueprints.

Unlocked
Is this Blueprint available to be selected for crafting and should it appear in the Blueprint Select Menu?

Scripting

There are a couple of public methods to use as shown below

/// <summary>
/// Gets the total craft time in seconds from the CraftSeconds, CraftMinutes and CraftHours combined
/// </summary>
/// <returns>Total craft time</returns>
public int GetTotalCraftTime()

/// <summary>
/// Gives the total value of all the materials used to create the Blueprint result
/// </summary>
/// <returns>Result value from all the materials used</returns>
public double GetTotalValueOfResult()