Skip to content

Blueprint Asset Reference

Blueprints are the crafting-recipe system of Unturned™. A blueprint defines a transformation -- one or more input items are consumed to produce one or more output items, with optional skill requirements, workstation tags, map restrictions, and quest conditions. Every blueprint is defined on the item that hosts it, in that item's Asset.dat file. A blueprint can reference the host item itself as input or output, or it can chain together entirely unrelated items, forming the backbone of the game's crafting economy.

57 Studios™ has documented and validated the full blueprint configuration surface across the Unturned™ modding community. This article covers both the legacy V1 blueprint format (the Blueprint_#_ prefix system) and the V2 blueprint format (the JSON-style list syntax introduced in version 3.25.5.0), the full property reference for each format, the CategoryTag GUID system that controls crafting-menu tab placement, the this keyword for self-referencing blueprints, the conditions and rewards subsystem, and the blueprint-to-action linkage that powers right-click context menus. The article also includes a complete conversion guide from V1 to V2, worked examples drawn directly from shipped vanilla .dat files, and a diagnostic table for common blueprint errors.

The Unturned crafting menu displaying several blueprint categories populated by mod-defined recipes

Documentation source: This article references the official Smartly Dressed Games modding documentation for all field definitions and the Unturned™ game data files (version 3.x) for worked examples. Every field value, GUID, and enum constant in this article is traceable to its source.

Who this article is for

This article is written for Unturned™ mod authors who have already authored at least one item of any type and are familiar with the .dat file format and the master bundle pipeline. If you are new to item authoring, start with Item Asset Anatomy and Project Folder Structure and GUIDs before returning here. Readers who are only adding context-menu actions to existing items (without authoring new blueprints) should also read the companion article, Item Actions Reference.

What you will learn

  • The conceptual model of blueprints as item-transformation recipes
  • The complete V1 blueprint property reference (the Blueprint_#_ prefix system)
  • The complete V2 blueprint property reference (the JSON-style list syntax)
  • How V1 and V2 formats differ and when each should be used
  • The eleven shipped CategoryTag GUIDs that control crafting-menu tab placement
  • How to reference the host item itself using the this keyword
  • The InputItems and OutputItems syntax for single items, multiple items, and advanced configuration
  • The EBlueprintOperation enumeration: None, RepairTargetItem, and FillTargetItem
  • How conditions and rewards integrate into blueprints
  • Worked examples drawn directly from shipped vanilla .dat files
  • A diagnostic table covering the most common blueprint authoring errors

Background: how the blueprint system works

A blueprint is a recipe. The player opens the crafting menu, selects a crafting tab (Ammo, Apparel, Barricade, etc.), and sees a list of blueprints the player's current inventory can satisfy. When the player crafts a blueprint, the required input items are consumed from inventory and the output items are produced into inventory. The blueprint itself is not an item -- it is a configuration block defined inside the .dat file of whatever item hosts it.

The host item can be any item type: a weapon, a piece of clothing, a barricade, a medical consumable, a tool, or a supply item whose sole purpose is to carry blueprints. The host item itself may or may not be involved in the blueprint's inputs or outputs. A blueprint defined on a gun can craft ammunition; a blueprint defined on a barricade can salvage the barricade back into raw materials; a blueprint defined on a medical item can produce bandages from rags.

When a blueprint defines inputs that include the host item itself, the blueprint will automatically generate a context-menu action (right-click action) on the host item. Three default actions are recognized by the engine: Salvage (a blueprint with one supply, where that supply is the host item itself), Repair (a blueprint of type Repair or with operation RepairTargetItem), and Refill (a blueprint of type Refill or with operation FillTargetItem). Custom actions beyond these three require an explicit Actions block in the .dat file, which is documented in Item Actions Reference.

The flowchart above traces the full chain from discovering a blueprint in the crafting menu through to the completion of the craft. Every gate in the chain (conditions, input availability, skill level, workstation proximity) can independently block or allow crafting.

The two blueprint formats: V1 and V2

Since Unturned™ version 3.25.5.0, two distinct blueprint configuration formats coexist. The V1 format is the original, using the Blueprint_#_ prefix convention. The V2 format is the newer, using a JSON-style list syntax. The game engine can auto-convert most V1 blueprints to V2 at load time via the ResaveAssets launch option. Both formats remain valid in current Unturned™ versions, but the V2 format is the documented preference for new mod development because it provides features that the V1 format does not support (conditions, rewards, named blueprints, advanced InputItems configurations).

V1 format: the Blueprint_#_ prefix system

The V1 format is a flat key-value system. Every property belonging to a blueprint is prefixed with Blueprint_#_, where # is the zero-based index of the blueprint within the item's blueprint list. The total number of blueprints is declared with a Blueprints count field at the top level.

A minimal V1 blueprint that produces a single item from two inputs:

Blueprints 1
Blueprint_0_Type Gear
Blueprint_0_Supplies 2
Blueprint_0_Supply_0_ID 401
Blueprint_0_Supply_0_Amount 5
Blueprint_0_Supply_1_ID 402
Blueprint_0_Supply_1_Amount 3
Blueprint_0_Product 50001
Blueprint_0_Products 1

This blueprint appears in the Gear tab, consumes 5 of item 401 and 3 of item 402, and produces 1 of item 50001. Every V1 blueprint must include a Blueprint_#_Type, a Blueprint_#_Supplies count with corresponding Blueprint_#_Supply_#_ID entries, and at least one output definition (via Blueprint_#_Product/Blueprint_#_Products or Blueprint_#_Outputs/Blueprint_#_Output_#_ID/Blueprint_#_Output_#_Amount).

V2 format: the JSON-style list syntax

The V2 format places blueprint definitions inside a [ ... ] block after the Blueprints key. Each blueprint is a dictionary enclosed in { }. Fields are named without the Blueprint_#_ prefix.

The same minimal blueprint in V2:

Blueprints
[
    {
        CategoryTag "cdb2df24b76d4c6e9d8411c940d8337f" // Gear
        InputItems
        [
            "GUID-for-item-401 x 5"
            "GUID-for-item-402 x 3"
        ]
        OutputItems "GUID-for-item-50001"
    }
]

The key differences between V1 and V2 are summarized in the comparison table below.

AspectV1 formatV2 format
SyntaxFlat Blueprint_#_Property keysJSON-style [ { } ] dictionaries
CategorizationBlueprint_#_Type enum valueCategoryTag GUID (asset pointer to Tag asset)
Input itemsBlueprint_#_Supply_#_ID uint16 IDs onlyInputItems using GUIDs only, with quantity syntax (GUID x N)
Output itemsBlueprint_#_Product uint16 ID (+ Blueprint_#_Output_#_ID for multi-output)OutputItems using GUIDs only, with quantity syntax
Named blueprintsNot supportedName field for string-based identification
OperationsImplicit: Type Repair or Type RefillExplicit: Operation enum (RepairTargetItem, FillTargetItem)
Conditions and RewardsSupported via Blueprint_#_Condition_#_Type / Blueprint_#_Reward_#_TypeSupported via Conditions and Rewards blocks
Self-referencethis string in Blueprint_#_Supply_#_IDthis string in InputItems / OutputItems
Skill requirementsBlueprint_#_Skill + Blueprint_#_LevelSkill + Skill_Level
Workstation requirementsNot supported nativelyRequiresNearbyCraftingTags + RequiresStaticTags
Map restrictionBlueprint_#_MapMap
EffectBlueprint_#_Build (audio)Effect (asset pointer to Effect asset)
Searchable toggleBlueprint_#_SearchableSearchable
State transferBlueprint_#_State_Transfer (flag) + Blueprint_#_State_Transfer_Delete_AttachmentsStateTransfer (bool) + StateTransfer_DeleteAttachments (bool)

The V2 format is preferred for all new mod development. The V1 format is documented here for completeness because existing mods may still use it and understanding it is necessary when reading legacy .dat files or debugging V1-to-V2 conversion issues.

Complete V1 property reference

Top-level count field

FieldTypeRequiredDefaultPurpose
Blueprintsuint8Yes (V1)0Total number of blueprints defined on this item. Must match the number of distinct Blueprint_#_ groups configured.

Identity and categorization fields

FieldTypeRequiredDefaultPurpose
Blueprint_#_TypeEBlueprintType enumYes--The crafting-menu tab this blueprint appears under. Controls both categorization and, for Repair and Refill types, alters the crafting behavior.
Blueprint_#_MapstringNo""Restricts the blueprint to a specific map by name. The blueprint is hidden on all other maps.
Blueprint_#_SearchableboolNotrueWhen true, the blueprint is visible in search results even when the player lacks the required items. Set to false to hide debug-only blueprints from normal gameplay.
Blueprint_#_BuildGUID or uint16No--Legacy ID or GUID of an audio effect to play when the craft completes.
Blueprint_#_OriginEItemOrigin enumNoCraftSets the item origin for the output. Setting to Admin causes items to spawn at full quality. Requires Blueprint_#_Product.

Skill fields

FieldTypeRequiredDefaultPurpose
Blueprint_#_SkillEBlueprintSkill enumNoNoneThe skill the player must have levelled to craft this blueprint. Values: None, Craft, Cook, Repair. When set to Cook, the player must also be near a heat source such as a lit campfire.
Blueprint_#_Leveluint8No0The minimum level of the required skill. Used in conjunction with Blueprint_#_Skill.

Tool fields

FieldTypeRequiredDefaultPurpose
Blueprint_#_Tooluint16No0Legacy ID of an item that is required as a tool. The tool is not consumed when the blueprint is crafted.
Blueprint_#_Tool_CriticalflagNonot setIf the blueprint requires a tool, the blueprint is only visible while the player has that tool. Requires Blueprint_#_Tool.

Supply (input) fields

FieldTypeRequiredDefaultPurpose
Blueprint_#_Suppliesuint8Yes0Total number of Blueprint_#_Supply_#_ID properties that have been configured.
Blueprint_#_Supply_#_IDuint16 or string thisYes (if Supplies > 0)--Legacy ID of an item required as a supply. Can be set to the string this to reference the host item's own ID.
Blueprint_#_Supply_#_Amountuint8No0Quantity of the supply required.
Blueprint_#_Supply_#_CriticalflagNonot setThe blueprint is only visible while the player has this supply. Requires Blueprint_#_Supply_#_ID.
Blueprint_#_Supply_#_AllowEmptyboolNofalseIf true, items with an amount of zero (empty magazines) are treated as having an amount of one. Used in vanilla for salvaging empty magazines.
Blueprint_#_Supply_#_PrioritizationenumNoVariesControls which items are consumed first. Values: LowestAmount (consumes emptiest first; default for Ammo type blueprints) or LowestQuality (consumes lowest quality first; default for all other types).

Product (output) fields: single-item output

FieldTypeRequiredDefaultPurpose
Blueprint_#_Productuint16See descriptionHost item IDLegacy ID of the item created as the product. When left unconfigured, defaults to the host item's own ID. To output multiple different items, use Blueprint_#_Outputs and Blueprint_#_Output_#_ID instead.
Blueprint_#_Productsuint8No1Quantity of the product created. Requires that Blueprint_#_Product has been set.

Product (output) fields: multi-item output

FieldTypeRequiredDefaultPurpose
Blueprint_#_Outputsuint8No0Total number of Blueprint_#_Output_#_ID properties that have been configured.
Blueprint_#_Output_#_IDuint16Yes (if Outputs > 0)0Legacy ID of an item created as a product.
Blueprint_#_Output_#_Amountuint8No0Quantity of the product created.
Blueprint_#_Output_#_OriginEItemOrigin enumNoCraftSets the item origin for this specific output. Requires Blueprint_#_Output_#_ID.

State transfer fields

FieldTypeRequiredDefaultPurpose
Blueprint_#_State_TransferflagNonot setTransfer the current state of any supplies to the product. Transferred states include: amount (rounds in an ammunition box), quality percentage, selected firing mode, and fuel units.
Blueprint_#_State_Transfer_Delete_AttachmentsboolNofalseIf true and State_Transfer is enabled, any output guns will have all of their attachments deleted.

V1 enumeration reference

EBlueprintType

The Blueprint_#_Type field controls which crafting-menu tab the blueprint appears under. For the Repair value, the blueprint additionally triggers the repair crafting behavior (restoring the target item's quality). Note that in V2, Type is deprecated and CategoryTag plus Operation replace it.

ValueDescription
AmmoBlueprint appears in the Ammunition tab.
ApparelBlueprint appears in the Apparel tab.
BarricadeBlueprint appears in the Barricades tab.
FurnitureBlueprint appears in the Furniture tab.
GearBlueprint appears in the Gear tab.
RepairBlueprint appears in the Repair tab. Additionally triggers the repair crafting behavior, restoring the target item's quality rather than producing a new item.
StructureBlueprint appears in the Structures tab.
SupplyBlueprint appears in the Supplies tab.
ToolBlueprint appears in the Tools tab.
UtilitiesBlueprint appears in the Utilities tab.

In V1, the Repair type was overloaded: it controlled both the crafting-menu tab placement and the crafting behavior (repairing the target item rather than producing a new product). V2 separates these concerns into CategoryTag (tab placement) and Operation (crafting behavior).

EBlueprintSkill

ValueDescription
NoneNo skill is required.
CraftThe Crafting skill is required.
CookThe Cooking skill is required. The player must also be near a heat source.
RepairThe Engineer skill is required.

EItemOrigin

ValueDescription
CraftStandard crafted origin. Item spawns with standard quality.
AdminAdmin origin. Item spawns at full quality.

Complete V2 property reference

Top-level structure

The V2 blueprint block is defined inside a [ ... ] list. Each entry in the list is a dictionary enclosed in { }. The following fields are available inside each V2 blueprint dictionary.

Identity and categorization

FieldTypeRequiredDefaultPurpose
NamestringNo""Optional case-sensitive identifier. Used to reference this blueprint from a context-menu action or a prohibited-blueprints list. If a context action uses BlueprintName to target a blueprint, this Name must match exactly.
CategoryTagAsset Pointer (GUID)Yes--Determines which category the blueprint appears under in the crafting menu. Uses an asset pointer to a Tag asset. Replaces the V1 Type field. See the CategoryTag GUID reference section below.
TypeEBlueprintType enumNoDeprecatedShould not be used in V2 blueprints. The combination of CategoryTag and Operation replaces the overloaded V1 Type field.
MapstringNo""Name of a map that this blueprint is restricted to. The blueprint is only visible while on this map.
SearchableboolNotrueWhen true, the blueprint is visible in search results even when the player lacks the required items. Set to false to hide debug-only blueprints.

Operation field

FieldTypeRequiredDefaultPurpose
OperationEBlueprintOperation enumNoNoneControls what the blueprint does with the input items beyond basic crafting.

The EBlueprintOperation enumeration has three values:

ValueDescription
NoneNo special modification. Standard crafting behavior: inputs are consumed, outputs are produced.
RepairTargetItemRestore the target item to full quality. The first input item is the target; subsequent inputs are the repair materials consumed. Equivalent to the V1 Type Repair behavior.
FillTargetItemTransfer amount from the first input item to the target item. Used for refilling ammunition containers or fuel canisters from a source item. Equivalent to the V1 Type Refill behavior.

Operation field usage

The Operation field is how V2 blueprints express what V1 blueprints accomplished through the overloaded Type field. A V1 blueprint with Type Repair becomes a V2 blueprint with an appropriate CategoryTag (e.g., the Repair CategoryTag GUID) plus Operation RepairTargetItem. The separation means you can place a repair blueprint in any crafting category, not just the Repair tab.

Input items (supplies)

FieldTypeRequiredDefaultPurpose
InputItemsstring, list of strings, or list of dictionariesYes--The items required as supplies. Accepts three syntactic forms: a single item, a flat list of items, or a list of dictionaries with per-item configuration options.

The InputItems field supports three levels of configuration detail:

Level 1: Single item string. A single GUID with an optional quantity suffix:

InputItems "14901f32cd3240179fd6124324cc27e5 x 2" // Cloth x 2

Level 2: Flat list of item strings. An array of GUID strings, each with an optional quantity:

InputItems
[
    "7aee55ea2abf4f3fb70c4b2677da0e14" // Chemicals
    "098b13be34a7411db7736b7f866ada69" // Vehicle Battery
    "796932f416274112879175ef57274afd" // Refined Jazzberries
]

Level 3: List of dictionaries with per-item options. Each dictionary can specify the item GUID, a critical flag, and a delete flag:

InputItems
[
    {
        ID "8d840f701cc645789d4dc0765b461a2a" // Dressing Blueprint
        Critical true
        Delete false
    }
    {
        ID "e0503457d87b4230bfa78350c79d16ec" // Bandage
    }
    {
        ID "7aee55ea2abf4f3fb70c4b2677da0e14" // Chemicals
    }
]

The per-item dictionary fields are:

FieldTypeRequiredDefaultPurpose
IDGUID stringYes--The GUID of the input item.
CriticalboolNofalseIf true, the blueprint is only visible while the player possesses this item.
DeleteboolNotrueIf true, the item is consumed when the blueprint is crafted. Set to false for blueprint items or tools that should remain in inventory after crafting.

The this keyword

The string this is a special value for InputItems and OutputItems. When used, it refers to the GUID of the item that hosts the blueprint -- the item whose Asset.dat file contains the blueprint definition. It is not a GUID itself; it is a placeholder that the parser resolves at load time to the host item's GUID.

The most common use of this is in salvage blueprints, where the host item is the input and raw materials are the output:

{
    Name Salvage
    CategoryTag "7ed29f9101ae4523a3b2e389414b7bd9" // Salvage
    InputItems this
    OutputItems "14901f32cd3240179fd6124324cc27e5 x 2" // Cloth
    Effect "7eceb9f7751d4634b572c8e236355104" // Rip
}

This blueprint consumes the host item and produces two units of Cloth. The this keyword is also valid in OutputItems when the host item is the output product (a common pattern for craft-from-raw-materials blueprints):

{
    CategoryTag "cdb2df24b76d4c6e9d8411c940d8337f" // Gear
    InputItems "656f319d2d194813b390edc6edd8a697 x 10" // Metal Bar
    OutputItems this
    Effect "84347b13028340b8976033c08675d458" // Wrench
}

This blueprint consumes ten Metal Bars and produces the host item (the barricade stack). The this keyword avoids the common V1 mistake of accidentally writing the wrong ID when the host item and the blueprint's input or output reference the same item.

Pro tip

Use this in every blueprint where the host item is involved. It eliminates the single most common V1 blueprint error: a mismatched legacy ID caused by copying a blueprint from one item to another and forgetting to update the self-reference. The this keyword is always correct, because it resolves dynamically to the host item's own GUID.

Output items (products)

FieldTypeRequiredDefaultPurpose
OutputItemsstring or list of stringsYes--The items created by this blueprint. Uses the same GUID-with-quantity syntax as InputItems. Accepts a single string or a list of strings.

The OutputItems syntax mirrors InputItems but supports only strings (not dictionaries). Each entry is a GUID string with an optional x N quantity suffix:

OutputItems "14901f32cd3240179fd6124324cc27e5 x 3" // Cloth x 3

Multiple outputs use a list:

OutputItems
[
    "GUID-for-item-A x 2"
    "GUID-for-item-B"
    "GUID-for-item-C x 5"
]

When no quantity is specified, the default quantity is 1. The this keyword is also valid in OutputItems.

Effect field

FieldTypeRequiredDefaultPurpose
EffectAsset Pointer (GUID)No--An asset pointer to an Effect asset to play upon successfully crafting the blueprint.

Skill fields (V2)

FieldTypeRequiredDefaultPurpose
SkillEBlueprintSkill enumNoNoneThe skill the player must have levelled. Values: None, Craft, Cook, Repair.
Skill_Levelint32No0The minimum level of the required skill. The player's skill level must be greater than or equal to this value.

Workstation tag fields

FieldTypeRequiredDefaultPurpose
RequiresNearbyCraftingTagslist of GUID stringsNo--Tag assets that must be available from nearby crafting tag providers (workstations). The player must be within range of a workstation or object that provides these tags.
RequiresStaticTagslist of GUID stringsNo--Similar to RequiresNearbyCraftingTags, but only checked once during level startup. Can test for Level Asset tags, allowing levels to signal support for specific blueprint sets without using the Map property.

The vanilla game ships the following crafting tags:

Tag GUIDNamePurpose
99896da563a748148460c67b9962874fChemical Mixing / PharmaceuticalRequired for advanced medical crafting (Dressing, Adrenaline)
7b82c125a5a54984b8bb26576b59e977WorkbenchRequired for metalworking, weapon repair, and tool crafting
2ac5ddc545a848008c0308d21f5d2e6bSpinning Wheel / SewingRequired for clothing repair (Rain Hat, Rain Pants, Rain Jacket)

The following static tags are available for RequiresStaticTags:

Tag GUIDNamePurpose
73eb818d1aa044c7bb4e61b8f9b37a3cBuilding In Safezones AllowedLevel permits building inside safezones
f663677b88de40ec80ff36b0c1cae544Not-singleplayerLevel is not singleplayer
d7bd989414644b19b3299be0c6fab5f0SingleplayerLevel is singleplayer

State transfer fields (V2)

FieldTypeRequiredDefaultPurpose
StateTransferboolNofalseTransfer the current state of the first input item to the product. Transferred states include: amount (round count), quality percentage, selected firing mode, and fuel units.
StateTransfer_DeleteAttachmentsboolNofalseIf true and StateTransfer is enabled, any output guns will have all of their attachments deleted.

Conditions and Rewards (V2)

V2 blueprints support NPC quest conditions and rewards through the Conditions and Rewards blocks. Both are full quest-condition and quest-reward configurations identical in structure to the conditions and rewards system used by NPC dialogue and quest assets, except that all properties are prefixed with the appropriate path in the blueprint's scope.

For conditions, the syntax inside a V2 blueprint object is:

Conditions
[
    {
        Condition_0_Type Holiday
        Condition_0_Holiday Halloween
    }
]

For rewards, the syntax inside a V2 blueprint object is:

Rewards
[
    {
        Reward_0_Type Experience
        Reward_0_Experience 50
    }
]

When conditions are present and unmet, the blueprint is hidden from the crafting menu by default. The VisibleWithUnmetConditions field (bool, default false) can be set to true to display the blueprint with an "conditions unmet" message instead -- useful when the conditions have meaningful display text that informs the player what they need to do.

Full V2 property reference table

FieldTypeRequiredDefaultPurpose
NamestringNo""Case-sensitive identifier for action and blacklist references
CategoryTagAsset Pointer (GUID)Yes--Crafting menu category tag GUID
TypeEBlueprintType enumNoDeprecatedReplaced by CategoryTag + Operation
OperationEBlueprintOperation enumNoNoneCrafting behavior: None, RepairTargetItem, or FillTargetItem
InputItemsstring / list of strings / list of dictsYes--Required supply items
OutputItemsstring / list of stringsYes--Produced items
MapstringNo""Map name restriction
SearchableboolNotrueVisibility in search when items are lacking
VisibleWithUnmetConditionsboolNofalseShow blueprint when conditions are unmet
EffectAsset Pointer (GUID)No--Effect to play on craft
SkillEBlueprintSkill enumNoNoneRequired skill: None, Craft, Cook, Repair
Skill_Levelint32No0Minimum skill level
RequiresNearbyCraftingTagslist of GUID stringsNo--Nearby workstation tags required
RequiresStaticTagslist of GUID stringsNo--Startup-checked static tags
StateTransferboolNofalseTransfer state from first input to product
StateTransfer_DeleteAttachmentsboolNofalseDelete attachments on state-transferred guns
ConditionsConditions blockNo--NPC quest conditions
RewardsRewards blockNo--NPC quest rewards

Blueprint CategoryTag GUID reference

The V2 CategoryTag field uses an asset pointer to a Tag asset. The vanilla game ships eleven blueprint category tags, each with a GUID that modders should use when configuring V2 blueprint categories. These GUIDs are the only correct values for CategoryTag in V2 blueprints targeting vanilla crafting tabs.

CategoryGUIDIcon path
Ammod739926736374e5ba34b4ac6ffbb5c8fUI/BlueprintCategoryTagIcons/Ammo.png
Apparelebe755533bdd42d1871c3ac66b89530fUI/BlueprintCategoryTagIcons/Apparel.png
Barricade31a59b5fec3f4ec5b2887b1ce4acb029UI/BlueprintCategoryTagIcons/Barricade.png
Furnitureb0c6cc0a8b4346be89aef697ecdb8e46UI/BlueprintCategoryTagIcons/Furniture.png
Gearcdb2df24b76d4c6e9d8411c940d8337fUI/BlueprintCategoryTagIcons/Gear.png
Repair732ee6ffeb18418985cf4f9fde33dd11UI/BlueprintCategoryTagIcons/Repair.png
Salvage7ed29f9101ae4523a3b2e389414b7bd9UI/BlueprintCategoryTagIcons/Salvage.png
Structure71d9e182c18b4aad8e87778e4f621995UI/BlueprintCategoryTagIcons/Structure.png
Supplyd089feb7e43f40c5a7dfcefc36998cfbUI/BlueprintCategoryTagIcons/Supply.png
Toolad1804b6945145f3b308738b0b8ea447UI/BlueprintCategoryTagIcons/Tool.png
Utilitiesbfac6026305f4737a95fd275ebff65a6UI/BlueprintCategoryTagIcons/Utilities.png

The Salvage category

The Salvage category (7ed29f9101ae4523a3b2e389414b7bd9) does not correspond to a V1 Type enum value. It was introduced with V2 to provide a dedicated crafting tab for deconstruction and recycling blueprints. V1 salvage blueprints typically used the Repair or Gear type, which overloaded the tab placement. When migrating V1 salvage blueprints to V2, always use the Salvage CategoryTag GUID rather than the V1 type you were using before.

Worked examples from shipped vanilla data

Example 1: Simple salvage blueprint (Rain Hat)

The Rain Hat item (Hats/Rain_Hat/Asset.dat) ships with two V2 blueprints: a Salvage blueprint that destroys the hat for cloth, and a Repair blueprint that uses cloth to restore the hat. This is the simplest V2 blueprint pattern:

Blueprints
[
    {
        Name Salvage
        CategoryTag "7ed29f9101ae4523a3b2e389414b7bd9" // Salvage
        InputItems this
        OutputItems "14901f32cd3240179fd6124324cc27e5 x 2" // Cloth
        Effect "7eceb9f7751d4634b572c8e236355104" // Rip
    }
    {
        Name Repair
        CategoryTag "732ee6ffeb18418985cf4f9fde33dd11" // Repair
        Operation RepairTargetItem
        InputItems "14901f32cd3240179fd6124324cc27e5 x 2" // Cloth
        RequiresNearbyCraftingTags
        [
            "2ac5ddc545a848008c0308d21f5d2e6b" // Spinning Wheel
        ]
        Effect "7eceb9f7751d4634b572c8e236355104" // Rip
    }
]

Key observations: both blueprints have Name fields (used by the action generation system), the salvage blueprint uses InputItems this to consume the host item, the repair blueprint uses Operation RepairTargetItem to signal repair behavior, and both reference an Effect asset for the crafting sound.

Example 2: Multi-input crafting with workstation requirement (Adrenaline)

The Adrenaline item (Medical/Adrenaline/Adrenaline.dat) has a single V2 blueprint that requires five input items, a crafting skill, and a workstation tag:

Blueprints
[
    {
        CategoryTag "d089feb7e43f40c5a7dfcefc36998cfb" // Supplies
        InputItems
        [
            "7aee55ea2abf4f3fb70c4b2677da0e14" // Chemicals
            "098b13be34a7411db7736b7f866ada69" // Vehicle Battery
            "796932f416274112879175ef57274afd" // Refined Jazzberries
            "39f46646aa6f4baf91a8e6004acb9291" // Sugar
            "c0b0f4a9f46c49a59f4558210bf36da5" // Metal Can
        ]
        OutputItems this
        Skill Craft
        Skill_Level 2
        RequiresNearbyCraftingTags
        [
            "99896da563a748148460c67b9962874f" // Pharmaceutical
        ]
        Effect "7eceb9f7751d4634b572c8e236355104" // Rip
    }
]

Key observations: the five inputs are listed as a flat GUID array with no quantities (each defaults to 1), OutputItems this means the host item (Adrenaline) is the product, the blueprint requires Crafting skill level 2, and the player must be near a Pharmaceutical workstation tag.

Example 3: Advanced InputItems with Critical and Delete flags (Dressing)

The Dressing item (Medical/Dressing/Dressing.dat) has a second blueprint that uses dictionary-style InputItems with per-item configuration:

{
    CategoryTag "d089feb7e43f40c5a7dfcefc36998cfb" // Supplies
    InputItems
    [
        {
            ID "8d840f701cc645789d4dc0765b461a2a" // Dressing Blueprint
            Critical true
            Delete false
        }
        {
            ID "e0503457d87b4230bfa78350c79d16ec" // Bandage
        }
        {
            ID "7aee55ea2abf4f3fb70c4b2677da0e14" // Chemicals
        }
    ]
    OutputItems this
    Effect "7eceb9f7751d4634b572c8e236355104" // Rip
}

Key observations: The Dressing Blueprint supply item is marked Critical true (the blueprint is only visible when the player has this item) and Delete false (the blueprint item is not consumed by crafting -- it remains in inventory for reuse). The Bandage and Chemicals are consumed normally (their default Delete true applies).

Example 4: Barricade craft and salvage with V1 Actions block (Stack of Metal Bars)

The Stack of Metal Bars barricade (Barricades/Stack_Bar/Stack_Bar.dat) demonstrates the classic craft-and-salvage pair with a V1 format Actions block:

Blueprints
[
    {
        CategoryTag "cdb2df24b76d4c6e9d8411c940d8337f" // Gear
        InputItems "656f319d2d194813b390edc6edd8a697 x 10" // Metal Bar
        OutputItems this
        Effect "84347b13028340b8976033c08675d458" // Wrench
    }
    {
        CategoryTag "7ed29f9101ae4523a3b2e389414b7bd9" // Salvage
        InputItems this
        OutputItems "656f319d2d194813b390edc6edd8a697 x 10" // Metal Bar
        Effect "84347b13028340b8976033c08675d458" // Wrench
    }
]

Actions 1
Action_0_Type Blueprint
Action_0_Source 1911
Action_0_Blueprints 1
Action_0_Blueprint_0_Index 1
Action_0_Key Unstack

Key observations: The first blueprint crafts the barricade from 10 Metal Bars (OutputItems this = the barricade). The second blueprint salvages it back into 10 Metal Bars (InputItems this = consume barricade). The V1 Actions block uses Blueprint_0_Index 1 (zero-indexed, so this targets the second blueprint, the Salvage) and references the Unstack localization key.

Example 5: V1 to V2 conversion walkthrough

Consider a V1 blueprint that creates a custom rifle from raw materials:

Blueprints 1
Blueprint_0_Type Gear
Blueprint_0_Supplies 3
Blueprint_0_Supply_0_ID 401
Blueprint_0_Supply_0_Amount 4
Blueprint_0_Supply_1_ID 402
Blueprint_0_Supply_1_Amount 2
Blueprint_0_Supply_2_ID 403
Blueprint_0_Supply_2_Amount 1
Blueprint_0_Product 50001
Blueprint_0_Products 1
Blueprint_0_Skill Craft
Blueprint_0_Level 1
Blueprint_0_Tool 393
Blueprint_0_Tool_Critical

This blueprint is in the Gear tab, consumes 4 of item 401, 2 of item 402, and 1 of item 403, requires a tool (item 393, which must be present for the blueprint to be visible), and requires Crafting skill level 1. The same blueprint converted to V2:

Blueprints
[
    {
        CategoryTag "cdb2df24b76d4c6e9d8411c940d8337f" // Gear
        InputItems
        [
            "GUID-for-401 x 4"
            "GUID-for-402 x 2"
            {
                ID "GUID-for-403"
                Critical true
            }
        ]
        OutputItems "GUID-for-50001"
        Skill Craft
        Skill_Level 1
    }
]

Key conversion steps: (1) Replace Blueprint_0_Type Gear with CategoryTag using the appropriate Gear CategoryTag GUID. (2) Convert legacy IDs to GUIDs. (3) Move supplies from Blueprint_0_Supply_#_ID/Blueprint_0_Supply_#_Amount to InputItems GUID strings with quantity suffixes. (4) Convert Blueprint_0_Tool 393 with Blueprint_0_Tool_Critical into an InputItems dictionary entry with Critical true and Delete false. (5) Replace Blueprint_0_Product 50001 / Blueprint_0_Products 1 with OutputItems "GUID-for-50001". (6) Map V1 Blueprint_0_Skill to V2 Skill, Blueprint_0_Level to Skill_Level.

Tool items in V2

V1 blueprints distinguish between supply items (consumed) and tool items (not consumed) through separate fields (Blueprint_#_Supply_#_ID vs. Blueprint_#_Tool). In V2, both are expressed through InputItems. A tool that should not be consumed must use the dictionary form with Delete false. A tool that should gate blueprint visibility must additionally use Critical true. Failing to set Delete false on a tool item in V2 will cause the tool to be consumed on every craft, which is a destructive and hard-to-notice bug.

Blueprint default action generation

When a blueprint is configured in certain ways, the engine automatically generates a corresponding context-menu action on the host item. No Actions block is required for these three default patterns:

Blueprint patternGenerated action keyCondition
SalvageSalvageBlueprint has exactly one supply, and that supply's ID is the host item itself (this)
RepairRepairBlueprint's V1 type is Repair, or V2 operation is RepairTargetItem
RefillRefillBlueprint's V1 type is a refill type, or V2 operation is FillTargetItem

For blueprints that do not match any of these patterns (e.g., a crafting blueprint that produces an unrelated item), no default action is generated. An Actions block must be added to the host item to expose the blueprint on the right-click context menu. See Item Actions Reference for the complete action configuration syntax.

Diagnosing blueprint errors

SymptomMost likely causeResolution
Blueprint does not appear in any crafting tabCategoryTag GUID is missing or incorrectVerify the CategoryTag GUID against the reference table in this article
Blueprint appears but is always greyed outInput items use legacy IDs instead of GUIDs (V2)Convert all IDs in InputItems to GUIDs
Salvage action does not appear on right-clickSalvage blueprint uses more than one input supplyA salvage blueprint must have exactly one supply, and it must be this
Crafting consumes the blueprint item (a scroll/book)Delete false missing from dictionary InputItems entry for the blueprint supplyAdd Delete false to the dictionary entry for the blueprint supply item
Blueprint not visible when near workstationRequiresNearbyCraftingTags GUID does not match any workstation in rangeVerify the workstation object provides a matching tag GUID
Blueprint visible on wrong mapsV2 Map field populated but should be emptyRemove or correct the Map field
V1 blueprint fails after game updateV1-to-V2 auto-conversion produced incorrect InputItemsManually convert the blueprint to V2 format
V2 blueprint uses Type field expecting tab placementType is deprecated in V2 and ignoredReplace Type with CategoryTag
Blueprint consumes the tool itemTool added as plain GUID string, not dictionary with Delete falseWrap tool item in dictionary form: { ID "tool-guid" Critical true Delete false }
Duplicate blueprints after resaveAuto-conversion keeps V1 blueprints and adds V2 copiesRemove V1 blueprint properties after successful auto-conversion
this keyword produces wrong itemBlueprint was copied to a different host item but this now resolves to the new hostThis is the intended behavior; if the wrong item is referenced, use the explicit GUID instead of this

Blueprint authoring workflow

  1. Determine the host item. Every blueprint must be defined on an item. Choose the item that makes the most sense as the blueprint's home -- the output item (for crafting-from-materials blueprints), the input item (for salvage blueprints), or a dedicated blueprint scroll item (for complex chains).
  2. Choose the format. Use V2 for all new mod development. Use V1 only for compatibility with pre-3.25.5.0 servers or if porting an existing V1 mod.
  3. Select the CategoryTag. Choose the appropriate CategoryTag GUID from the reference table above. The tag determines which crafting tab the blueprint appears under.
  4. Define InputItems. List every required input item as a GUID string with quantity. Use the this keyword if the host item is an input. Use dictionary form for blueprint scrolls (Delete false) or critical items (Critical true).
  5. Define OutputItems. List every output item as a GUID string with quantity. Use this if the host item is the product.
  6. Set operation if applicable. For repair blueprints, add Operation RepairTargetItem. For refill blueprints, add Operation FillTargetItem.
  7. Configure requirements. Add Skill and Skill_Level if a skill should gate crafting. Add RequiresNearbyCraftingTags with workstation tag GUIDs if the blueprint should require a workstation.
  8. Add an Effect. Provide an Effect asset GUID for the crafting sound or visual effect. The vanilla game uses "7eceb9f7751d4634b572c8e236355104" (Rip) for cloth and medical crafting, and "84347b13028340b8976033c08675d458" (Wrench) for metal and tool crafting.
  9. Configure the name. Set a Name field if the blueprint will be referenced by an Actions block or a prohibited-blueprints list.
  10. Generate default action if applicable. If the blueprint matches one of the three default action patterns, the engine generates the action automatically. If not, add an explicit Actions block.
  11. Test in-game. Spawn the host item and all inputs. Open the crafting menu. Confirm the blueprint appears in the correct tab. Craft it. Confirm inputs are consumed, outputs are produced, and any workstation or skill requirements are enforced.

Best practices

  • Use V2 format for all new mod development. The V1 format is maintained for backward compatibility but limits functionality.
  • Use GUIDs, not legacy IDs, in all V2 blueprints. The vanilla game auto-conversion can handle legacy IDs, but mods should ship with GUIDs from the start.
  • Use the this keyword in every blueprint where the host item is an input or an output. It eliminates the most common copy-paste error in blueprint authoring.
  • Name every blueprint that you intend to reference from an Actions block or a prohibited-blueprints list. The BlueprintName field in an action configuration requires an exact match on the blueprint's Name.
  • Set Delete false on blueprint scroll items (supply items that are recipe books) and on tool items. Consuming the blueprint or tool on every craft is a difficult bug to notice during authoring because it requires multiple crafts to reproduce.
  • Use the Salvage CategoryTag (7ed29f9101ae4523a3b2e389414b7bd9) for all deconstruction blueprints, even if the V1 type was historically Gear or Repair. The Salvage tab is the dedicated location that players check for recycling recipes.
  • Test workstation requirements by moving out of range of the workstation before attempting to craft. Blueprints with missing workstation tags should be displayed with a workstation-missing indicator.
  • Test skill requirements by crafting on a character with insufficient skill levels. The blueprint should be displayed with a skill-requirement indicator.
  • Document any blueprint that consumes an unusual tool or has a non-obvious workstation requirement in the workshop description. Players cannot discover these requirements without inspecting the .dat directly.

Frequently asked questions

What is the difference between CategoryTag and Type?

CategoryTag is the V2 field that determines which crafting tab a blueprint appears under. It takes a GUID asset pointer to a Tag asset. Type is the V1 field that served the same purpose but also overloaded crafting behavior (Repair type meaning "repair the target item"). V2 separates these: CategoryTag controls the tab, Operation controls the behavior. The Type field is deprecated in V2 and should not be used in new blueprints.

Can a V2 blueprint output multiple different items?

Yes. Use a list of GUID strings in OutputItems. Each entry can specify its own quantity. Example: OutputItems ["GUID-A x 2", "GUID-B", "GUID-C x 5"] produces two of item A, one of item B, and five of item C.

What happens if InputItems lists a GUID that does not exist?

The blueprint will never be craftable. The engine checks that every input item exists and that the player possesses sufficient quantities. A GUID that resolves to no item will permanently fail the existence check. Always verify that every GUID in InputItems and OutputItems maps to a real item loaded by the game.

Can a blueprint have no inputs?

No. Every blueprint must have at least one input item. A blueprint with zero inputs would produce items from nothing, which the engine does not support. If you need a free-item-spawning mechanism for admin or creative purposes, use a command-line script or a server plugin rather than a zero-input blueprint.

How do I make a blueprint that works on multiple maps?

Omit the Map field entirely. A blueprint with no Map restriction is available on every map. The Map field is a restriction, not a requirement -- it limits the blueprint to the specified map rather than granting it to that map.

Can I use both V1 and V2 blueprints on the same item?

Yes, but it is not recommended. If an item has both Blueprint_#_Type (V1) properties and a Blueprints [ { ... } ] (V2) list, the engine processes both sets. This can produce duplicate or conflicting blueprints. The cohort recommendation is to pick one format per item and consolidate all blueprints into that format.

What is the difference between RequiresNearbyCraftingTags and RequiresStaticTags?

RequiresNearbyCraftingTags checks dynamically: every time the player opens the crafting menu or attempts to craft, the engine checks whether the player is near a workstation that provides the required tags. RequiresStaticTags checks once at level startup and caches the result. Use RequiresStaticTags for conditions that depend on the level itself (is the map singleplayer? does the map allow safezone building?) rather than on proximity to a movable workstation.

How do I make a blueprint which requires both a crafting skill and a workstation?

Set both Skill/Skill_Level and RequiresNearbyCraftingTags. The player must meet both requirements independently. The crafting UI will display both requirement indicators when they are unmet.

Can a blueprint have conditions and rewards?

Yes, in V2 only. V1 blueprints support conditions and rewards through the Blueprint_#_Condition_#_Type and Blueprint_#_Reward_#_Type prefix conventions, following the same syntax as quest conditions and rewards. V2 blueprints support them through Conditions and Rewards blocks.

What does the Critical flag do on an InputItems entry?

When Critical is true, the blueprint is only visible in the crafting menu when the player has that item. Without it, blueprints the player cannot currently craft (due to missing items) are still visible but greyed out. The Critical flag is primarily used for blueprint scroll items: the player should not see the blueprint at all until they find the scroll.

Can I use this in a V1 blueprint?

Yes. In V1, the Blueprint_#_Supply_#_ID field accepts the string value this to reference the host item's legacy ID. This is useful for salvage blueprints and avoids accidentally writing the wrong ID.

Do I need to define an Actions block for my blueprints?

If your blueprint matches one of the three default action patterns (Salvage, Repair, Refill), the engine generates the corresponding context action automatically and no Actions block is needed. If your blueprint does not match any of these patterns, you must add an explicit Actions block to expose the blueprint on the right-click context menu. See Item Actions Reference.

How do I migrate a large V1 mod to V2?

The game engine includes an auto-conversion feature triggered by the ResaveAssets launch option. It converts most V1 blueprints to V2 format and writes the converted .dat files. After auto-conversion, remove the original V1 blueprint properties from each .dat file and verify that the V2 blueprints function correctly in-game. Test every blueprint individually; the auto-conversion is reliable for standard blueprints but may produce unexpected results for blueprints with unusual combinations of fields.

What is the maximum number of blueprints an item can have?

There is no hard limit enforced by the engine. In V1, the Blueprints field is a uint8 (maximum 255). In V2, the list syntax has no explicit limit. The practical limit is determined by crafting-menu performance and player usability -- an item with more than 10 blueprints becomes difficult for players to navigate.

Advanced blueprint patterns

Chained blueprint families

The most common advanced pattern is a chain of blueprints where the output of one blueprint is the input of another. A tree-harvesting mod might define:

  1. Birch Log (host item, blueprint 0): InputItems this, OutputItems Birch Planks (with workstation: Sawmill)
  2. Birch Log (host item, blueprint 1): InputItems this, OutputItems Birch Sticks (with workstation: Sawmill)
  3. Birch Planks (host item, blueprint 0): InputItems "Birch-Planks-GUID x 2", OutputItems Birch Plank Barricade Stack
  4. Birch Plank Barricade Stack (host item, blueprint 1): InputItems this, OutputItems "Birch-Planks-GUID x 2"

This chain traces birch logs through planks to barricade stacks and back, giving players a full crafting economy around one resource type.

Event-locked blueprints

V2 blueprints with conditions can be locked behind seasonal events. A Halloween-exclusive blueprint uses a holiday condition:

Conditions
[
    {
        Condition_0_Type Holiday
        Condition_0_Holiday Halloween
    }
]

The blueprint is hidden for 11 months of the year and appears during the Halloween event. The VisibleWithUnmetConditions field can be set to true to display the blueprint with a message explaining that the Halloween event must be active, giving players a reason to return during the event period.

Multiple workstation dependencies

A blueprint can require multiple workstations simultaneously. A high-tier crafting blueprint might require both a Workbench and a Chemical Mixing station:

RequiresNearbyCraftingTags
[
    "7b82c125a5a54984b8bb26576b59e977" // Workbench
    "99896da563a748148460c67b9962874f" // Chemical Mixing
]

The player must be within range of objects that provide both tags. If servers configure workstations as separate objects placed in different locations, players must strategically position themselves to satisfy both requirements simultaneously.

Appendix A: Blueprint .dat field quick reference (V2)

FieldTypeRequiredDefault
NamestringNo""
CategoryTagGUIDYes--
TypeenumNoDeprecated
OperationenumNoNone
InputItemsstring / listYes--
OutputItemsstring / listYes--
MapstringNo""
SearchableboolNotrue
VisibleWithUnmetConditionsboolNofalse
EffectGUIDNo--
SkillenumNoNone
Skill_Levelint32No0
RequiresNearbyCraftingTagslist of GUIDsNo--
RequiresStaticTagslist of GUIDsNo--
StateTransferboolNofalse
StateTransfer_DeleteAttachmentsboolNofalse
ConditionsConditions blockNo--
RewardsRewards blockNo--

Appendix B: V1 blueprint .dat field quick reference

FieldTypeRequiredDefault
Blueprintsuint8Yes0
Blueprint_#_TypeEBlueprintType enumYes--
Blueprint_#_Suppliesuint8Yes0
Blueprint_#_Supply_#_IDuint16 or string thisYes--
Blueprint_#_Supply_#_Amountuint8No0
Blueprint_#_Supply_#_CriticalflagNonot set
Blueprint_#_Supply_#_AllowEmptyboolNofalse
Blueprint_#_Supply_#_PrioritizationenumNoVaries
Blueprint_#_Productuint16Situation-dependentHost item ID
Blueprint_#_Productsuint8No1
Blueprint_#_Outputsuint8No0
Blueprint_#_Output_#_IDuint16Yes (if Outputs > 0)0
Blueprint_#_Output_#_Amountuint8No0
Blueprint_#_Output_#_OriginEItemOrigin enumNoCraft
Blueprint_#_OriginEItemOrigin enumNoCraft
Blueprint_#_SkillEBlueprintSkill enumNoNone
Blueprint_#_Leveluint8No0
Blueprint_#_Tooluint16No0
Blueprint_#_Tool_CriticalflagNonot set
Blueprint_#_BuildGUID or uint16No--
Blueprint_#_MapstringNo""
Blueprint_#_SearchableboolNotrue
Blueprint_#_State_TransferflagNonot set
Blueprint_#_State_Transfer_Delete_AttachmentsboolNofalse

Appendix C: External references

Document history

VersionDateAuthorNotes
1.02026-07-2657 StudiosInitial publication. Complete V1 and V2 blueprint field reference, CategoryTag GUID catalog, this keyword documentation, InputItems/OutputItems syntax, worked examples from shipped vanilla data, V1-to-V2 conversion guide, diagnostic table, FAQ, appendices.

Cross-references